.init:000080C0 ; .init:000080C0 ; +-------------------------------------------------------------------------+ .init:000080C0 ; | This file has been generated by The Interactive Disassembler (IDA) | .init:000080C0 ; | Copyright (c) 2011 Hex-Rays, <support@hex-rays.com> | .init:000080C0 ; | License info: 48-651A-3264-D5 | .init:000080C0 ; | Beyond Limits GmbH | .init:000080C0 ; +-------------------------------------------------------------------------+ .init:000080C0 ; .init:000080C0 ; Input MD5 : 123B83C2F58B4621FB80BC524A81170E .init:000080C0 ; Input CRC32 : 8960C2B2 .init:000080C0 .init:000080C0 ; File Name : C:\Temp\tools\testacq .init:000080C0 ; Format : ELF for ARM (Executable) .init:000080C0 ; Imagebase : 8000 .init:000080C0 ; .init:000080C0 ; Source File : '/tmp/cross/build/glibc/csu/crti.S' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/csu/defs.h' .init:000080C0 ; Source File : 'initfini.c' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/csu/crti.S' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/csu/crti.S' .init:000080C0 ; Source File : 'crtstuff.c' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/csu/crtn.S' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/csu/defs.h' .init:000080C0 ; Source File : 'initfini.c' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/csu/crtn.S' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/csu/crtn.S' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'abi-note.S' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/csu/abi-tag.h' .init:000080C0 ; Source File : 'abi-note.S' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'abi-note.S' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'abi-note.S' .init:000080C0 ; Source File : 'init.c' .init:000080C0 ; Source File : 'crtstuff.c' .init:000080C0 ; Source File : 'usbd_opt.c' .init:000080C0 ; Source File : 'access_fpga.c' .init:000080C0 ; Source File : 'getdata_main.c' .init:000080C0 ; Source File : 'libc-start.c' .init:000080C0 ; Source File : 'check_fds.c' .init:000080C0 ; Source File : 'errno-loc.c' .init:000080C0 ; Source File : 'abort.c' .init:000080C0 ; Source File : 'exit.c' .init:000080C0 ; Source File : 'cxa_atexit.c' .init:000080C0 ; Source File : 'system.c' .init:000080C0 ; Source File : 'printf.c' .init:000080C0 ; Source File : 'sscanf.c' .init:000080C0 ; Source File : 'perror.c' .init:000080C0 ; Source File : 'iofflush.c' .init:000080C0 ; Source File : 'iovsscanf.c' .init:000080C0 ; Source File : 'fwprintf.c' .init:000080C0 ; Source File : 'fwide.c' .init:000080C0 ; Source File : 'fcloseall.c' .init:000080C0 ; Source File : 'genops.c' .init:000080C0 ; Source File : 'stdfiles.c' .init:000080C0 ; Source File : 'stdio.c' .init:000080C0 ; Source File : 'strops.c' .init:000080C0 ; Source File : 'malloc.c' .init:000080C0 ; Source File : 'morecore.c' .init:000080C0 ; Source File : '_strerror.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'memmove.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'mempcpy.c' .init:000080C0 ; Source File : 'memcpy.c' .init:000080C0 ; Source File : 'wordcopy.c' .init:000080C0 ; Source File : 'waitpid.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'execve.c' .init:000080C0 ; Source File : 'environ.c' .init:000080C0 ; Source File : 'fxstat64.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'fcntl.c' .init:000080C0 ; Source File : 'sbrk.c' .init:000080C0 ; Source File : 'getpagesize.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'no-tsd.c' .init:000080C0 ; Source File : 'dl-load.c' .init:000080C0 ; Source File : 'dl-cache.c' .init:000080C0 ; Source File : 'dl-lookup.c' .init:000080C0 ; Source File : 'dl-object.c' .init:000080C0 ; Source File : 'dl-error.c' .init:000080C0 ; Source File : 'dl-misc.c' .init:000080C0 ; Source File : 'dl-support.c' .init:000080C0 ; Source File : 'enbl-secure.c' .init:000080C0 ; Source File : 'dl-origin.c' .init:000080C0 ; Source File : 'init-first.c' .init:000080C0 ; Source File : 'set-init.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/errno.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/errno.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/errno.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'SYS_libc.c' .init:000080C0 ; Source File : 'assert.c' .init:000080C0 ; Source File : 'dcgettext.c' .init:000080C0 ; Source File : 'dcigettext.c' .init:000080C0 ; Source File : 'finddomain.c' .init:000080C0 ; Source File : 'loadmsgcat.c' .init:000080C0 ; Source File : 'localealias.c' .init:000080C0 ; Source File : 'l10nflist.c' .init:000080C0 ; Source File : 'explodename.c' .init:000080C0 ; Source File : 'plural.c' .init:000080C0 ; Source File : 'setfpucw.c' .init:000080C0 ; Source File : 'fpu_control.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'longjmp.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'jmp-unwind.c' .init:000080C0 ; Source File : 'raise.c' .init:000080C0 ; Source File : 'sigaction.c' .init:000080C0 ; Source File : 'sigprocmask.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'bsearch.c' .init:000080C0 ; Source File : 'msort.c' .init:000080C0 ; Source File : 'getenv.c' .init:000080C0 ; Source File : 'setenv.c' .init:000080C0 ; Source File : 'strtol.c' .init:000080C0 ; Source File : 'strtoul.c' .init:000080C0 ; Source File : 'itoa-digits.c' .init:000080C0 ; Source File : 'vfprintf.c' .init:000080C0 ; Source File : 'printf_fp.c' .init:000080C0 ; Source File : 'reg-printf.c' .init:000080C0 ; Source File : 'printf_fphex.c' .init:000080C0 ; Source File : 'fprintf.c' .init:000080C0 ; Source File : 'vfscanf.c' .init:000080C0 ; Source File : 'lockfile.c' .init:000080C0 ; Source File : 'vfwprintf.c' .init:000080C0 ; Source File : 'errlist.c' .init:000080C0 ; Source File : 'iofclose.c' .init:000080C0 ; Source File : 'iofopen.c' .init:000080C0 ; Source File : 'iopadn.c' .init:000080C0 ; Source File : 'iowpadn.c' .init:000080C0 ; Source File : 'wgenops.c' .init:000080C0 ; Source File : 'wfileops.c' .init:000080C0 ; Source File : 'iofwide.c' .init:000080C0 ; Source File : 'iofgets_u.c' .init:000080C0 ; Source File : 'fileops.c' .init:000080C0 ; Source File : 'strchr.c' .init:000080C0 ; Source File : 'strcmp.c' .init:000080C0 ; Source File : 'strdup.c' .init:000080C0 ; Source File : 'strnlen.c' .init:000080C0 ; Source File : 'strncmp.c' .init:000080C0 ; Source File : 'strrchr.c' .init:000080C0 ; Source File : 'strpbrk.c' .init:000080C0 ; Source File : 'strstr.c' .init:000080C0 ; Source File : 'memchr.c' .init:000080C0 ; Source File : 'memcmp.c' .init:000080C0 ; Source File : 'stpcpy.c' .init:000080C0 ; Source File : 'strcasecmp.c' .init:000080C0 ; Source File : 'rawmemchr.c' .init:000080C0 ; Source File : 'argz-count.c' .init:000080C0 ; Source File : 'argz-stringify.c' .init:000080C0 ; Source File : 'wcslen.c' .init:000080C0 ; Source File : 'wmemcpy.c' .init:000080C0 ; Source File : 'wmemmove.c' .init:000080C0 ; Source File : 'wmempcpy.c' .init:000080C0 ; Source File : 'btowc.c' .init:000080C0 ; Source File : 'mbrlen.c' .init:000080C0 ; Source File : 'mbrtowc.c' .init:000080C0 ; Source File : 'wcrtomb.c' .init:000080C0 ; Source File : 'mbsrtowcs.c' .init:000080C0 ; Source File : 'wcsrtombs.c' .init:000080C0 ; Source File : 'mbsnrtowcs.c' .init:000080C0 ; Source File : 'wcsnlen.c' .init:000080C0 ; Source File : 'wcschrnul.c' .init:000080C0 ; Source File : 'wcsmbsload.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'getuid.c' .init:000080C0 ; Source File : 'geteuid.c' .init:000080C0 ; Source File : 'getgid.c' .init:000080C0 ; Source File : 'getegid.c' .init:000080C0 ; Source File : 'sysconf.c' .init:000080C0 ; Source File : 'getopt_init.c' .init:000080C0 ; Source File : 'xstat64.c' .init:000080C0 ; Source File : 'open64.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'getcwd.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'brk.c' .init:000080C0 ; Source File : 'writev.c' .init:000080C0 ; Source File : 'getdtsz.c' .init:000080C0 ; Source File : 'tsearch.c' .init:000080C0 ; Source File : 'getsysstats.c' .init:000080C0 ; Source File : 'getclktck.c' .init:000080C0 ; Source File : 'init-misc.c' .init:000080C0 ; Source File : 'llseek.c' .init:000080C0 ; Source File : 'dl-profstub.c' .init:000080C0 ; Source File : 'gconv_open.c' .init:000080C0 ; Source File : 'gconv.c' .init:000080C0 ; Source File : 'gconv_close.c' .init:000080C0 ; Source File : 'gconv_db.c' .init:000080C0 ; Source File : 'gconv_conf.c' .init:000080C0 ; Source File : 'gconv_builtin.c' .init:000080C0 ; Source File : 'gconv_simple.c' .init:000080C0 ; Source File : 'gconv_trans.c' .init:000080C0 ; Source File : 'gconv_dl.c' .init:000080C0 ; Source File : 'setlocale.c' .init:000080C0 ; Source File : 'findlocale.c' .init:000080C0 ; Source File : 'loadlocale.c' .init:000080C0 ; Source File : 'mb_cur_max.c' .init:000080C0 ; Source File : 'lc-ctype.c' .init:000080C0 ; Source File : 'lc-messages.c' .init:000080C0 ; Source File : 'lc-monetary.c' .init:000080C0 ; Source File : 'lc-numeric.c' .init:000080C0 ; Source File : 'lc-time.c' .init:000080C0 ; Source File : 'lc-paper.c' .init:000080C0 ; Source File : 'lc-name.c' .init:000080C0 ; Source File : 'lc-address.c' .init:000080C0 ; Source File : 'lc-telephone.c' .init:000080C0 ; Source File : 'lc-measurement.c' .init:000080C0 ; Source File : 'lc-identification.c' .init:000080C0 ; Source File : 'lc-collate.c' .init:000080C0 ; Source File : 'C-ctype.c' .init:000080C0 ; Source File : 'C-messages.c' .init:000080C0 ; Source File : 'C-monetary.c' .init:000080C0 ; Source File : 'C-numeric.c' .init:000080C0 ; Source File : 'C-time.c' .init:000080C0 ; Source File : 'C-paper.c' .init:000080C0 ; Source File : 'C-name.c' .init:000080C0 ; Source File : 'C-address.c' .init:000080C0 ; Source File : 'C-telephone.c' .init:000080C0 ; Source File : 'C-measurement.c' .init:000080C0 ; Source File : 'C-identification.c' .init:000080C0 ; Source File : 'C-collate.c' .init:000080C0 ; Source File : 'C_name.c' .init:000080C0 ; Source File : 'ctype-info.c' .init:000080C0 ; Source File : 's_isinf.c' .init:000080C0 ; Source File : 's_isnan.c' .init:000080C0 ; Source File : 's_signbit.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'sigjmp.c' .init:000080C0 ; Source File : 'qsort.c' .init:000080C0 ; Source File : 'strtoll.c' .init:000080C0 ; Source File : 'strtoull.c' .init:000080C0 ; Source File : 'strtof.c' .init:000080C0 ; Source File : 'strtod.c' .init:000080C0 ; Source File : 'strtold.c' .init:000080C0 ; Source File : 'add_n.c' .init:000080C0 ; Source File : 'cmp.c' .init:000080C0 ; Source File : 'divrem.c' .init:000080C0 ; Source File : 'lshift.c' .init:000080C0 ; Source File : 'rshift.c' .init:000080C0 ; Source File : 'mul.c' .init:000080C0 ; Source File : 'mul_1.c' .init:000080C0 ; Source File : 'mul_n.c' .init:000080C0 ; Source File : 'sub_n.c' .init:000080C0 ; Source File : 'submul_1.c' .init:000080C0 ; Source File : 'dbl2mpn.c' .init:000080C0 ; Source File : 'mpn2flt.c' .init:000080C0 ; Source File : 'mpn2dbl.c' .init:000080C0 ; Source File : 'mp_clz_tab.c' .init:000080C0 ; Source File : 'fpioconst.c' .init:000080C0 ; Source File : '_itoa.c' .init:000080C0 ; Source File : '_itowa.c' .init:000080C0 ; Source File : 'itoa-udigits.c' .init:000080C0 ; Source File : 'itowa-digits.c' .init:000080C0 ; Source File : 'filedoalloc.c' .init:000080C0 ; Source File : 'wfiledoalloc.c' .init:000080C0 ; Source File : 'iogetdelim.c' .init:000080C0 ; Source File : 'iogetline.c' .init:000080C0 ; Source File : 'strcpy.c' .init:000080C0 ; Source File : 'strndup.c' .init:000080C0 ; Source File : 'strncase.c' .init:000080C0 ; Source File : 'argz-ctsep.c' .init:000080C0 ; Source File : 'argz-addsep.c' .init:000080C0 ; Source File : 'wcschr.c' .init:000080C0 ; Source File : 'mbsinit.c' .init:000080C0 ; Source File : 'tzset.c' .init:000080C0 ; Source File : 'tzfile.c' .init:000080C0 ; Source File : 'opendir.c' .init:000080C0 ; Source File : 'closedir.c' .init:000080C0 ; Source File : 'readdir.c' .init:000080C0 ; Source File : 'getdents.c' .init:000080C0 ; Source File : 'lxstat.c' .init:000080C0 ; Source File : 'isatty.c' .init:000080C0 ; Source File : 'tcgetattr.c' .init:000080C0 ; Source File : 'getrlimit.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'mntent_r.c' .init:000080C0 ; Source File : 'dl-profile.c' .init:000080C0 ; Source File : 'dl-libc.c' .init:000080C0 ; Source File : 'addmul_1.c' .init:000080C0 ; Source File : 'fseek.c' .init:000080C0 ; Source File : 'iofread_u.c' .init:000080C0 ; Source File : 'strncpy.c' .init:000080C0 ; Source File : 'ffs.c' .init:000080C0 ; Source File : 'offtime.c' .init:000080C0 ; Source File : 'localtime.c' .init:000080C0 ; Source File : 'mktime.c' .init:000080C0 ; Source File : 'profil.c' .init:000080C0 ; Source File : 'prof-freq.c' .init:000080C0 ; Source File : 'dl-open.c' .init:000080C0 ; Source File : 'dl-close.c' .init:000080C0 ; Source File : 'sigfillset.c' .init:000080C0 ; Source File : 'ioseekoff.c' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/unistd.h' .init:000080C0 ; Source File : '/tmp/cross/build/glibc/config.h' .init:000080C0 ; Source File : 'dl-reloc.c' .init:000080C0 ; Source File : 'dl-deps.c' .init:000080C0 ; Source File : 'dl-runtime.c' .init:000080C0 ; Source File : 'dl-init.c' .init:000080C0 ; Source File : 'dl-debug.c' .init:000080C0 ; Source File : 'dl-version.c' .init:000080C0 ; Source File : 'libgcc2.c' .init:000080C0 ; Source File : 'libgcc1.S' .init:000080C0 ; Source File : '/usr/local/arm/2.95.3/arm-linux/include/asm/unistd.h' .init:000080C0 ; Source File : 'libgcc1.S' .init:000080C0 ; Source File : 'libgcc2.c' .init:000080C0 ; Source File : 'libgcc1.S' .init:000080C0 ; Source File : 'libgcc2.c' .init:000080C0 ; Source File : 'libgcc1.S' .init:000080C0 ; Source File : 'libgcc2.c' .init:000080C0 ; Source File : 'libgcc1.S' .init:000080C0 .init:000080C0 ; Processor : ARM .init:000080C0 ; Target assembler: Generic assembler for ARM .init:000080C0 ; Byte sex : Little endian .init:000080C0 .init:000080C0 ; =========================================================================== .init:000080C0 .init:000080C0 ; Segment type: Pure code .init:000080C0 AREA .init, CODE .init:000080C0 ; ORG 0x80C0 .init:000080C0 CODE32 .init:000080C0 .init:000080C0 ; =============== S U B R O U T I N E ======================================= .init:000080C0 .init:000080C0 ; Attributes: bp-based frame .init:000080C0 .init:000080C0 EXPORT .init_proc .init:000080C0 .init_proc ; DATA XREF: _start+1Co .init:000080C0 ; .text:off_8110o .init:000080C0 MOV R12, SP ; _init .init:000080C4 STMFD SP!, {R11,R12,LR,PC} .init:000080C8 SUB R11, R12, #4 .init:000080CC BL call_gmon_start .init:000080D0 BL __do_global_ctors_aux .init:000080D4 LDMDB R11, {R11,SP,PC} .init:000080D4 ; End of function .init_proc .init:000080D4 .init:000080D4 ; .init ends .init:000080D4 .text:000080E0 ; =========================================================================== .text:000080E0 .text:000080E0 ; Segment type: Pure code .text:000080E0 AREA .text, CODE, ALIGN=4 .text:000080E0 ; ORG 0x80E0 .text:000080E0 CODE32 .text:000080E0 .text:000080E0 ; =============== S U B R O U T I N E ======================================= .text:000080E0 .text:000080E0 ; Attributes: noreturn .text:000080E0 .text:000080E0 EXPORT _start .text:000080E0 _start .text:000080E0 MOV R11, #0 .text:000080E4 LDMFD SP!, {R1} .text:000080E8 MOV R2, SP .text:000080EC STMFD SP!, {R0} .text:000080F0 LDR R0, =.term_proc .text:000080F4 STMFD SP!, {R0} .text:000080F8 LDR R0, =main .text:000080FC LDR R3, =.init_proc .text:00008100 BL __libc_start_main .text:00008104 ; --------------------------------------------------------------------------- .text:00008104 BL abort .text:00008104 ; End of function _start .text:00008104 .text:00008104 ; --------------------------------------------------------------------------- .text:00008108 off_8108 DCD .term_proc ; DATA XREF: _start+10r .text:0000810C off_810C DCD main ; DATA XREF: _start+18r .text:00008110 off_8110 DCD .init_proc ; DATA XREF: _start+1Cr .text:00008114 .text:00008114 ; =============== S U B R O U T I N E ======================================= .text:00008114 .text:00008114 ; Attributes: bp-based frame .text:00008114 .text:00008114 call_gmon_start ; CODE XREF: .init_proc+Cp .text:00008114 MOV R12, SP ; Alternative name is 'gcc2_compiled.' .text:00008118 STMFD SP!, {R10-R12,LR,PC} .text:0000811C LDR R10, =(_GLOBAL_OFFSET_TABLE_ - 0x812C) .text:00008120 LDR R3, =(off_6C254 - 0x6C248) .text:00008124 ADD R10, PC, R10 .text:00008128 LDR R3, [R10,R3] .text:0000812C SUB R11, R12, #4 .text:00008130 CMP R3, #0 .text:00008134 LDMEQDB R11, {R10,R11,SP,PC} .text:00008138 MOV LR, PC .text:0000813C MOV PC, R3 .text:00008140 LDMDB R11, {R10,R11,SP,PC} .text:00008140 ; End of function call_gmon_start .text:00008140 .text:00008140 ; --------------------------------------------------------------------------- .text:00008144 off_8144 DCD _GLOBAL_OFFSET_TABLE_ - 0x812C .text:00008144 ; DATA XREF: call_gmon_start+8r .text:00008148 off_8148 DCD off_6C254 - 0x6C248 ; DATA XREF: call_gmon_start+Cr .text:0000814C .text:0000814C ; =============== S U B R O U T I N E ======================================= .text:0000814C .text:0000814C ; Attributes: bp-based frame .text:0000814C .text:0000814C __do_global_dtors_aux ; CODE XREF: .term_proc+Cp .text:0000814C MOV R12, SP ; Alternative name is 'gcc2_compiled.' .text:00008150 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00008154 LDR R2, =completed.4 .text:00008158 SUB R11, R12, #4 .text:0000815C LDR R3, [R2] .text:00008160 MOV R5, R2 .text:00008164 CMP R3, #0 .text:00008168 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0000816C LDR R1, =p.3 .text:00008170 LDR R3, [R1] .text:00008174 LDR R2, [R3] .text:00008178 CMP R2, #0 .text:0000817C BEQ loc_81A8 .text:00008180 MOV R4, R1 .text:00008184 .text:00008184 loc_8184 ; CODE XREF: __do_global_dtors_aux+58j .text:00008184 LDR R3, [R4] .text:00008188 ADD R3, R3, #4 .text:0000818C STR R3, [R4] .text:00008190 MOV LR, PC .text:00008194 LDR PC, [R3,#-4] .text:00008198 LDR R2, [R4] .text:0000819C LDR R3, [R2] .text:000081A0 CMP R3, #0 .text:000081A4 BNE loc_8184 .text:000081A8 .text:000081A8 loc_81A8 ; CODE XREF: __do_global_dtors_aux+30j .text:000081A8 MOV R3, #1 .text:000081AC STR R3, [R5] .text:000081B0 LDMDB R11, {R4,R5,R11,SP,PC} .text:000081B0 ; End of function __do_global_dtors_aux .text:000081B0 .text:000081B0 ; --------------------------------------------------------------------------- .text:000081B4 off_81B4 DCD completed.4 ; DATA XREF: __do_global_dtors_aux+8r .text:000081B8 off_81B8 DCD p.3 ; DATA XREF: __do_global_dtors_aux+20r .text:000081BC .text:000081BC ; =============== S U B R O U T I N E ======================================= .text:000081BC .text:000081BC ; Attributes: bp-based frame .text:000081BC .text:000081BC fini_dummy .text:000081BC MOV R12, SP .text:000081C0 STMFD SP!, {R11,R12,LR,PC} .text:000081C4 SUB R11, R12, #4 .text:000081C8 LDMDB R11, {R11,SP,PC} .text:000081C8 ; End of function fini_dummy .text:000081C8 .text:000081CC .text:000081CC ; =============== S U B R O U T I N E ======================================= .text:000081CC .text:000081CC ; Attributes: bp-based frame .text:000081CC .text:000081CC EXPORT open_usbd_interface .text:000081CC open_usbd_interface ; CODE XREF: main+12Cp .text:000081CC MOV R12, SP ; Alternative name is 'gcc2_compiled.' .text:000081D0 STMFD SP!, {R11,R12,LR,PC} .text:000081D4 SUB R11, R12, #4 .text:000081D8 LDR R0, =aDevMiscUsb_cha ; "/dev/misc/usb_char" .text:000081DC MOV R1, #2 .text:000081E0 BL open .text:000081E4 LDR R3, =force_to_data_0 .text:000081E8 CMP R0, #0 .text:000081EC STR R0, [R3] .text:000081F0 MOV R0, #0 .text:000081F4 LDMGEDB R11, {R11,SP,PC} .text:000081F8 LDR R0, =aOpenDeviceUsb_ ; "open device usb_char" .text:000081FC BL perror .text:00008200 MOV R0, 0xFFFFFFFF .text:00008204 LDMDB R11, {R11,SP,PC} .text:00008204 ; End of function open_usbd_interface .text:00008204 .text:00008204 ; --------------------------------------------------------------------------- .text:00008208 off_8208 DCD aDevMiscUsb_cha ; DATA XREF: open_usbd_interface+Cr .text:00008208 ; "/dev/misc/usb_char" .text:0000820C off_820C DCD force_to_data_0 ; DATA XREF: open_usbd_interface+18r .text:00008210 off_8210 DCD aOpenDeviceUsb_ ; DATA XREF: open_usbd_interface+2Cr .text:00008210 ; "open device usb_char" .text:00008214 .text:00008214 ; =============== S U B R O U T I N E ======================================= .text:00008214 .text:00008214 ; Attributes: bp-based frame .text:00008214 .text:00008214 EXPORT close_usbd_interface .text:00008214 close_usbd_interface .text:00008214 MOV R12, SP .text:00008218 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000821C LDR R4, =force_to_data_0 .text:00008220 LDR R0, [R4] .text:00008224 SUB R11, R12, #4 .text:00008228 CMP R0, #0 .text:0000822C BLE loc_823C .text:00008230 BL close .text:00008234 MOV R3, 0xFFFFFFFF .text:00008238 STR R3, [R4] .text:0000823C .text:0000823C loc_823C ; CODE XREF: close_usbd_interface+18j .text:0000823C MOV R0, #0 .text:00008240 LDMDB R11, {R4,R11,SP,PC} .text:00008240 ; End of function close_usbd_interface .text:00008240 .text:00008240 ; --------------------------------------------------------------------------- .text:00008244 off_8244 DCD force_to_data_0 ; DATA XREF: close_usbd_interface+8r .text:00008248 .text:00008248 ; =============== S U B R O U T I N E ======================================= .text:00008248 .text:00008248 ; Attributes: bp-based frame .text:00008248 .text:00008248 EXPORT read_data_from_usbd .text:00008248 read_data_from_usbd ; CODE XREF: main+160p .text:00008248 MOV R12, SP .text:0000824C STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00008250 SUB R11, R12, #4 .text:00008254 MOV R10, R0 .text:00008258 MOV R4, #0 .text:0000825C MOV R5, #0xFA0 .text:00008260 LDR R8, =force_to_data_0 .text:00008264 MOV R6, R4 .text:00008268 LDR R7, =usbd_recv_buf .text:0000826C .text:0000826C loc_826C ; CODE XREF: read_data_from_usbd+60j .text:0000826C ADD R1, R4, R7 .text:00008270 LDR R0, [R8] .text:00008274 MOV R2, R5 .text:00008278 BL read .text:0000827C CMP R0, #0 .text:00008280 BLT loc_82C4 .text:00008284 BNE loc_8298 .text:00008288 CMP R4, #0 .text:0000828C BEQ loc_82AC .text:00008290 ADD R6, R6, #1 .text:00008294 B loc_82A0 .text:00008298 ; --------------------------------------------------------------------------- .text:00008298 .text:00008298 loc_8298 ; CODE XREF: read_data_from_usbd+3Cj .text:00008298 ADD R4, R4, R0 .text:0000829C RSB R5, R0, R5 .text:000082A0 .text:000082A0 loc_82A0 ; CODE XREF: read_data_from_usbd+4Cj .text:000082A0 CMP R4, #0xFA0 .text:000082A4 CMPLE R6, #2 .text:000082A8 BLE loc_826C .text:000082AC .text:000082AC loc_82AC ; CODE XREF: read_data_from_usbd+44j .text:000082AC CMP R4, R5 .text:000082B0 BLE loc_82CC .text:000082B4 LDR R0, =aRecv_dataLenOv ; "[##] recv_data len over. usbd_recv_coun"... .text:000082B8 BL printf .text:000082BC MOV R0, 0xFFFFFFFE .text:000082C0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000082C4 ; --------------------------------------------------------------------------- .text:000082C4 .text:000082C4 loc_82C4 ; CODE XREF: read_data_from_usbd+38j .text:000082C4 MOV R0, 0xFFFFFFFF .text:000082C8 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000082CC ; --------------------------------------------------------------------------- .text:000082CC .text:000082CC loc_82CC ; CODE XREF: read_data_from_usbd+68j .text:000082CC CMP R4, #0 .text:000082D0 BLE loc_82E4 .text:000082D4 MOV R0, R10 .text:000082D8 MOV R1, R7 .text:000082DC MOV R2, R4 .text:000082E0 BL memcpy .text:000082E4 .text:000082E4 loc_82E4 ; CODE XREF: read_data_from_usbd+88j .text:000082E4 MOV R0, R4 .text:000082E8 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000082E8 ; End of function read_data_from_usbd .text:000082E8 .text:000082E8 ; --------------------------------------------------------------------------- .text:000082EC off_82EC DCD force_to_data_0 ; DATA XREF: read_data_from_usbd+18r .text:000082F0 off_82F0 DCD usbd_recv_buf ; DATA XREF: read_data_from_usbd+20r .text:000082F4 off_82F4 DCD aRecv_dataLenOv ; DATA XREF: read_data_from_usbd+6Cr .text:000082F4 ; "[##] recv_data len over. usbd_recv_coun"... .text:000082F8 .text:000082F8 ; =============== S U B R O U T I N E ======================================= .text:000082F8 .text:000082F8 ; Attributes: bp-based frame .text:000082F8 .text:000082F8 EXPORT write_data_to_usbd .text:000082F8 write_data_to_usbd ; CODE XREF: main+530p .text:000082F8 MOV R12, SP .text:000082FC STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00008300 SUB R11, R12, #4 .text:00008304 MOV R7, #0 .text:00008308 SUBS R5, R1, #0 .text:0000830C BLE loc_8384 .text:00008310 LDR R10, =force_to_data_0 .text:00008314 MOV R6, R0 .text:00008318 LDR R8, =aUsbdwSendDataC ; "[usbdw] send data count = %d. \n" .text:0000831C .text:0000831C loc_831C ; CODE XREF: write_data_to_usbd+70j .text:0000831C MOV R1, R6 .text:00008320 LDR R0, [R10] .text:00008324 MOV R2, R5 .text:00008328 BL write .text:0000832C MOV R4, R0 .text:00008330 MOV R0, R8 .text:00008334 MOV R1, R4 .text:00008338 BL printf .text:0000833C CMP R4, #0 .text:00008340 BLT loc_8398 .text:00008344 RSB R5, R4, R5 .text:00008348 ADD R6, R6, R4 .text:0000834C ADD R7, R7, #1 .text:00008350 CMP R7, #2 .text:00008354 MOVGT R3, #0 .text:00008358 MOVLE R3, #1 .text:0000835C CMP R5, #0 .text:00008360 MOVLE R3, #0 .text:00008364 CMP R3, #0 .text:00008368 BNE loc_831C .text:0000836C CMP R7, #2 .text:00008370 BLE loc_83A8 .text:00008374 LDR R0, =aUsbdwSendDataT ; "[usbdw] send data to usb timeout. ret -"... .text:00008378 BL printf .text:0000837C MOV R0, 0xFFFFFFFE .text:00008380 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00008384 ; --------------------------------------------------------------------------- .text:00008384 .text:00008384 loc_8384 ; CODE XREF: write_data_to_usbd+14j .text:00008384 BGE loc_83A8 .text:00008388 LDR R0, =aUsbdwSendDataL ; "[usbdw] send data len err, ret -1.\n" .text:0000838C BL printf .text:00008390 MOV R0, 0xFFFFFFFF .text:00008394 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00008398 ; --------------------------------------------------------------------------- .text:00008398 .text:00008398 loc_8398 ; CODE XREF: write_data_to_usbd+48j .text:00008398 LDR R0, =aUsbdwSendDat_0 ; "[usbdw] send data to usb err. ret -3.\n" .text:0000839C BL printf .text:000083A0 MOV R0, 0xFFFFFFFD .text:000083A4 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000083A8 ; --------------------------------------------------------------------------- .text:000083A8 .text:000083A8 loc_83A8 ; CODE XREF: write_data_to_usbd+78j .text:000083A8 ; write_data_to_usbd:loc_8384j .text:000083A8 MOV R0, #0 .text:000083AC LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000083AC ; End of function write_data_to_usbd .text:000083AC .text:000083AC ; --------------------------------------------------------------------------- .text:000083B0 off_83B0 DCD force_to_data_0 ; DATA XREF: write_data_to_usbd+18r .text:000083B4 off_83B4 DCD aUsbdwSendDataC ; DATA XREF: write_data_to_usbd+20r .text:000083B4 ; "[usbdw] send data count = %d. \n" .text:000083B8 off_83B8 DCD aUsbdwSendDataT ; DATA XREF: write_data_to_usbd+7Cr .text:000083B8 ; "[usbdw] send data to usb timeout. ret -"... .text:000083BC off_83BC DCD aUsbdwSendDataL ; DATA XREF: write_data_to_usbd+90r .text:000083BC ; "[usbdw] send data len err, ret -1.\n" .text:000083C0 off_83C0 DCD aUsbdwSendDat_0 ; DATA XREF: write_data_to_usbd:loc_8398r .text:000083C0 ; "[usbdw] send data to usb err. ret -3.\n" .text:000083C4 .text:000083C4 ; =============== S U B R O U T I N E ======================================= .text:000083C4 .text:000083C4 ; Attributes: bp-based frame .text:000083C4 .text:000083C4 EXPORT open_fpga_interface .text:000083C4 open_fpga_interface ; CODE XREF: main+128p .text:000083C4 .text:000083C4 var_18 = -0x18 .text:000083C4 var_14 = -0x14 .text:000083C4 .text:000083C4 MOV R12, SP ; Alternative name is 'gcc2_compiled.' .text:000083C8 STMFD SP!, {R4,R11,R12,LR,PC} .text:000083CC SUB R11, R12, #4 .text:000083D0 MOV R1, #2 .text:000083D4 LDR R0, =aDevDsoFpga ; "/dev/dso-fpga" .text:000083D8 SUB SP, SP, #8 .text:000083DC BL open .text:000083E0 LDR R3, =arm_fpga_fd .text:000083E4 CMP R0, #0 .text:000083E8 STR R0, [R3] .text:000083EC BGE loc_8400 .text:000083F0 LDR R0, =aOpenFpga ; "open fpga" .text:000083F4 BL perror .text:000083F8 MOV R0, 0xFFFFFFFF .text:000083FC B loc_8454 .text:00008400 ; --------------------------------------------------------------------------- .text:00008400 .text:00008400 loc_8400 ; CODE XREF: open_fpga_interface+28j .text:00008400 STR R0, [SP,#0x18+var_18] .text:00008404 MOV R4, #0 .text:00008408 STR R4, [SP,#0x18+var_14] .text:0000840C MOV R0, R4 .text:00008410 MOV R1, #0xFF .text:00008414 MOV R2, #3 .text:00008418 MOV R3, #1 .text:0000841C BL mmap .text:00008420 LDR R3, =arm_fpga_p .text:00008424 CMN R0, #1 .text:00008428 STR R0, [R3] .text:0000842C BEQ loc_8448 .text:00008430 MOV R0, R4 .text:00008434 B loc_8454 .text:00008434 ; --------------------------------------------------------------------------- .text:00008438 off_8438 DCD aDevDsoFpga ; DATA XREF: open_fpga_interface+10r .text:00008438 ; "/dev/dso-fpga" .text:0000843C off_843C DCD arm_fpga_fd ; DATA XREF: open_fpga_interface+1Cr .text:00008440 off_8440 DCD aOpenFpga ; DATA XREF: open_fpga_interface+2Cr .text:00008440 ; "open fpga" .text:00008444 off_8444 DCD arm_fpga_p ; DATA XREF: open_fpga_interface+5Cr .text:00008448 ; --------------------------------------------------------------------------- .text:00008448 .text:00008448 loc_8448 ; CODE XREF: open_fpga_interface+68j .text:00008448 LDR R0, =aMampErr ; "mamp err!\n" .text:0000844C BL perror .text:00008450 MOV R0, 0xFFFFFFFE .text:00008454 .text:00008454 loc_8454 ; CODE XREF: open_fpga_interface+38j .text:00008454 ; open_fpga_interface+70j .text:00008454 B locret_845C .text:00008454 ; --------------------------------------------------------------------------- .text:00008458 off_8458 DCD aMampErr ; DATA XREF: open_fpga_interface:loc_8448r .text:00008458 ; "mamp err!\n" .text:0000845C ; --------------------------------------------------------------------------- .text:0000845C .text:0000845C locret_845C ; CODE XREF: open_fpga_interface:loc_8454j .text:0000845C LDMDB R11, {R4,R11,SP,PC} .text:0000845C ; End of function open_fpga_interface .text:0000845C .text:00008460 .text:00008460 ; =============== S U B R O U T I N E ======================================= .text:00008460 .text:00008460 ; Attributes: bp-based frame .text:00008460 .text:00008460 EXPORT close_fpga_interface .text:00008460 close_fpga_interface .text:00008460 MOV R12, SP .text:00008464 STMFD SP!, {R11,R12,LR,PC} .text:00008468 LDR R3, =arm_fpga_p .text:0000846C SUB R11, R12, #4 .text:00008470 LDR R0, [R3] .text:00008474 MOV R1, #0xFF .text:00008478 BL munmap .text:0000847C LDR R3, =arm_fpga_fd .text:00008480 LDR R0, [R3] .text:00008484 BL close .text:00008488 MOV R0, #0 .text:0000848C LDMDB R11, {R11,SP,PC} .text:0000848C ; End of function close_fpga_interface .text:0000848C .text:0000848C ; --------------------------------------------------------------------------- .text:00008490 off_8490 DCD arm_fpga_p ; DATA XREF: close_fpga_interface+8r .text:00008494 off_8494 DCD arm_fpga_fd ; DATA XREF: close_fpga_interface+1Cr .text:00008498 .text:00008498 ; =============== S U B R O U T I N E ======================================= .text:00008498 .text:00008498 ; Attributes: bp-based frame .text:00008498 .text:00008498 EXPORT read_fpga .text:00008498 read_fpga ; CODE XREF: main+180p .text:00008498 ; main+1A0p ... .text:00008498 MOV R12, SP .text:0000849C STMFD SP!, {R11,R12,LR,PC} .text:000084A0 LDR R3, =arm_fpga_p .text:000084A4 MOV R2, R0 .text:000084A8 LDR R0, [R3] .text:000084AC SUB R11, R12, #4 .text:000084B0 CMP R0, #0 .text:000084B4 LDRNE R3, [R0,R2,LSL#2] .text:000084B8 MOVNE R0, #0 .text:000084BC STRNE R3, [R1] .text:000084C0 LDMNEDB R11, {R11,SP,PC} .text:000084C4 MOV R0, 0xFFFFFFFF .text:000084C8 LDMDB R11, {R11,SP,PC} .text:000084C8 ; End of function read_fpga .text:000084C8 .text:000084C8 ; --------------------------------------------------------------------------- .text:000084CC off_84CC DCD arm_fpga_p ; DATA XREF: read_fpga+8r .text:000084D0 .text:000084D0 ; =============== S U B R O U T I N E ======================================= .text:000084D0 .text:000084D0 ; Attributes: bp-based frame .text:000084D0 .text:000084D0 EXPORT write_fpga .text:000084D0 write_fpga .text:000084D0 MOV R12, SP .text:000084D4 STMFD SP!, {R11,R12,LR,PC} .text:000084D8 LDR R3, =arm_fpga_p .text:000084DC SUB R11, R12, #4 .text:000084E0 LDR R3, [R3] .text:000084E4 MOV R2, R0 .text:000084E8 CMP R3, #0 .text:000084EC MOVNE R0, #0 .text:000084F0 STRNE R1, [R3,R2,LSL#2] .text:000084F4 LDMNEDB R11, {R11,SP,PC} .text:000084F8 MOV R0, 0xFFFFFFFF .text:000084FC LDMDB R11, {R11,SP,PC} .text:000084FC ; End of function write_fpga .text:000084FC .text:000084FC ; --------------------------------------------------------------------------- .text:00008500 off_8500 DCD arm_fpga_p ; DATA XREF: write_fpga+8r .text:00008504 .text:00008504 ; =============== S U B R O U T I N E ======================================= .text:00008504 .text:00008504 ; Attributes: bp-based frame .text:00008504 .text:00008504 EXPORT get_fpga_sample_data .text:00008504 get_fpga_sample_data .text:00008504 MOV R12, SP .text:00008508 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000850C SUB R11, R12, #4 .text:00008510 MOV R12, #0 .text:00008514 CMP R12, R1 .text:00008518 MOV LR, R2 .text:0000851C BGE loc_853C .text:00008520 LDR R4, =arm_fpga_p .text:00008524 .text:00008524 loc_8524 ; CODE XREF: get_fpga_sample_data+34j .text:00008524 LDR R3, [R4] .text:00008528 LDR R2, [R3,LR,LSL#2] .text:0000852C STR R2, [R0,R12,LSL#2] .text:00008530 ADD R12, R12, #1 .text:00008534 CMP R12, R1 .text:00008538 BLT loc_8524 .text:0000853C .text:0000853C loc_853C ; CODE XREF: get_fpga_sample_data+18j .text:0000853C MOV R0, #0 .text:00008540 LDMDB R11, {R4,R11,SP,PC} .text:00008540 ; End of function get_fpga_sample_data .text:00008540 .text:00008540 ; --------------------------------------------------------------------------- .text:00008544 off_8544 DCD arm_fpga_p ; DATA XREF: get_fpga_sample_data+1Cr .text:00008548 .text:00008548 ; =============== S U B R O U T I N E ======================================= .text:00008548 .text:00008548 ; Attributes: bp-based frame .text:00008548 .text:00008548 check_usbd_data ; CODE XREF: main+16Cp .text:00008548 .text:00008548 var_20 = -0x20 .text:00008548 var_1B = -0x1B .text:00008548 .text:00008548 MOV R12, SP ; Alternative name is 'gcc2_compiled.' .text:0000854C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00008550 SUB R11, R12, #4 .text:00008554 MOV R5, R0 .text:00008558 SUB R4, R11, #-var_20 .text:0000855C MOV R0, R4 .text:00008560 MOV R2, #0xA .text:00008564 LDR R1, =dword_5593C .text:00008568 SUB SP, SP, #0xC .text:0000856C BL memcpy .text:00008570 MOV R1, #0 .text:00008574 .text:00008574 loc_8574 ; CODE XREF: check_usbd_data+60j .text:00008574 LDRB R2, [R11,#var_1B] .text:00008578 LDRB R3, [R4,R1] .text:0000857C ADD R12, R2, R3 .text:00008580 STRB R12, [R11,#var_1B] .text:00008584 LDRB R2, [R5,R1] .text:00008588 LDRB R3, [R4,R1] .text:0000858C CMP R2, R3 .text:00008590 BEQ loc_85A0 .text:00008594 MOV R0, 0xFFFFFFFF .text:00008598 B locret_85C0 .text:00008598 ; --------------------------------------------------------------------------- .text:0000859C off_859C DCD dword_5593C ; DATA XREF: check_usbd_data+1Cr .text:000085A0 ; --------------------------------------------------------------------------- .text:000085A0 .text:000085A0 loc_85A0 ; CODE XREF: check_usbd_data+48j .text:000085A0 ADD R1, R1, #1 .text:000085A4 CMP R1, #4 .text:000085A8 BLE loc_8574 .text:000085AC LDRB R2, [R5,#5] .text:000085B0 AND R3, R12, #0xFF .text:000085B4 CMP R2, R3 .text:000085B8 MOVNE R0, 0xFFFFFFFF .text:000085BC MOVEQ R0, #0 .text:000085C0 .text:000085C0 locret_85C0 ; CODE XREF: check_usbd_data+50j .text:000085C0 LDMDB R11, {R4,R5,R11,SP,PC} .text:000085C0 ; End of function check_usbd_data .text:000085C0 .text:000085C4 .text:000085C4 ; =============== S U B R O U T I N E ======================================= .text:000085C4 .text:000085C4 ; Attributes: bp-based frame .text:000085C4 .text:000085C4 cmd_acq ; CODE XREF: main+534p .text:000085C4 MOV R12, SP .text:000085C8 STMFD SP!, {R11,R12,LR,PC} .text:000085CC LDR R0, =aFpga_exeW196 ; "/fpga.exe w 19 6" .text:000085D0 SUB R11, R12, #4 .text:000085D4 BL system .text:000085D8 LDR R0, =aFpga_exeW190 ; "/fpga.exe w 19 0" .text:000085DC BL system .text:000085E0 LDMDB R11, {R11,SP,PC} .text:000085E0 ; End of function cmd_acq .text:000085E0 .text:000085E0 ; --------------------------------------------------------------------------- .text:000085E4 off_85E4 DCD aFpga_exeW196 ; DATA XREF: cmd_acq+8r .text:000085E4 ; "/fpga.exe w 19 6" .text:000085E8 off_85E8 DCD aFpga_exeW190 ; DATA XREF: cmd_acq+14r .text:000085E8 ; "/fpga.exe w 19 0" .text:000085EC .text:000085EC ; =============== S U B R O U T I N E ======================================= .text:000085EC .text:000085EC ; Attributes: bp-based frame .text:000085EC .text:000085EC EXPORT main .text:000085EC main ; DATA XREF: _start+18o .text:000085EC ; .text:off_810Co .text:000085EC .text:000085EC var_444 = -0x444 .text:000085EC var_440 = -0x440 .text:000085EC var_43C = -0x43C .text:000085EC var_438 = -0x438 .text:000085EC var_434 = -0x434 .text:000085EC var_430 = -0x430 .text:000085EC var_42C = -0x42C .text:000085EC var_420 = -0x420 .text:000085EC .text:000085EC MOV R12, SP .text:000085F0 STMFD SP!, {R4-R12,LR,PC} .text:000085F4 SUB R11, R12, #4 .text:000085F8 MOV R3, #0 .text:000085FC SUB SP, SP, #0x410 .text:00008600 SUB SP, SP, #0xC .text:00008604 STR R3, [R11,#var_434] .text:00008608 MOV R2, 0x79E .text:00008610 STR R2, [R11,#var_430] .text:00008614 MOV R10, R3 .text:00008618 MOV R4, R0 .text:0000861C LDR R0, =dword_55970 .text:00008620 MOV R5, R1 .text:00008624 BL printf .text:00008628 CMP R4, #3 .text:0000862C BNE loc_8B4C .text:00008630 SUB R2, R11, #-var_420 .text:00008634 SUB R2, R2, #8 .text:00008638 LDR R4, =dword_559B8 .text:0000863C SUB R2, R2, #4 .text:00008640 LDR R0, [R5,#4] .text:00008644 MOV R1, R4 .text:00008648 BL sscanf .text:0000864C LDR R3, [R11,#var_42C] .text:00008650 CMP R3, #1 .text:00008654 BHI loc_8B4C .text:00008658 MOV R1, R4 .text:0000865C SUB R2, R11, #-var_420 .text:00008660 SUB R2, R2, #8 .text:00008664 LDR R0, [R5,#8] .text:00008668 SUB R2, R2, #8 .text:0000866C BL sscanf .text:00008670 LDR R3, [R11,#var_430] .text:00008674 CMP R3, #0x1F40 .text:00008678 BHI loc_8B4C .text:0000867C MOV R4, 0x1F54 .text:00008684 MOV R1, R10 .text:00008688 LDR R0, =data0 .text:0000868C MOV R2, R4 .text:00008690 BL memset .text:00008694 MOV R1, R10 .text:00008698 LDR R0, =data1 .text:0000869C MOV R2, R4 .text:000086A0 LDR R7, =fifo_data .text:000086A4 BL memset .text:000086A8 MOV R1, R10 .text:000086AC LDR R0, =data2 .text:000086B0 MOV R2, R4 .text:000086B4 BL memset .text:000086B8 MOV R1, R10 .text:000086BC LDR R0, =data3 .text:000086C0 MOV R2, R4 .text:000086C4 BL memset .text:000086C8 MOV R1, R10 .text:000086CC MOV R5, #0x7D00 .text:000086D0 ADD R4, R5, #0x14 .text:000086D4 LDR R0, =data4 .text:000086D8 MOV R2, R4 .text:000086DC LDR R6, =getdata1 .text:000086E0 BL memset .text:000086E4 MOV R0, R6 .text:000086E8 MOV R1, R10 .text:000086EC MOV R2, R4 .text:000086F0 BL memset .text:000086F4 MOV R1, R10 .text:000086F8 LDR R0, =getdata2 .text:000086FC MOV R2, R4 .text:00008700 BL memset .text:00008704 MOV R0, R7 .text:00008708 MOV R1, R10 .text:0000870C MOV R2, R5 .text:00008710 BL memset .text:00008714 BL open_fpga_interface .text:00008718 BL open_usbd_interface .text:0000871C LDR R0, =aTest ; "/test" .text:00008720 BL system .text:00008724 SUB R3, R11, #-var_420 .text:00008728 SUB R3, R3, #8 .text:0000872C STR R3, [R11,#var_444] .text:00008730 MOV R9, R6 .text:00008734 SUB R3, R3, #0xC .text:00008738 STR R3, [R11,#var_440] .text:0000873C SUB R3, R11, #-var_430 .text:00008740 SUB R3, R3, #8 .text:00008744 STR R3, [R11,#var_43C] .text:00008748 .text:00008748 loc_8748 ; CODE XREF: main+174j .text:00008748 ; main+194j ... .text:00008748 LDR R0, [R11,#var_444] .text:0000874C BL read_data_from_usbd .text:00008750 STR R0, [R11,#var_434] .text:00008754 LDR R0, [R11,#var_444] .text:00008758 BL check_usbd_data .text:0000875C SUBS R4, R0, #0 .text:00008760 BNE loc_8748 .text:00008764 LDR R1, [R11,#var_440] .text:00008768 MOV R0, #6 .text:0000876C BL read_fpga .text:00008770 CMP R0, #0 .text:00008774 BNE loc_8784 .text:00008778 LDR R3, [R11,#var_434] .text:0000877C TST R3, #1 .text:00008780 BEQ loc_8748 .text:00008784 .text:00008784 loc_8784 ; CODE XREF: main+188j .text:00008784 LDR R1, [R11,#var_43C] .text:00008788 MOV R0, #2 .text:0000878C BL read_fpga .text:00008790 LDR R1, [R11,#var_438] .text:00008794 LDR R0, =aValue0xX ; "value:0x%x\n" .text:00008798 BL printf .text:0000879C MOV R3, #0xFF00 .text:000087A0 LDR R2, [R11,#var_438] .text:000087A4 ADD R3, R3, #0xFF .text:000087A8 LDR R0, =aX0xXY0xX ; "X :0x%x, Y: 0x%x\n" .text:000087AC AND R8, R3, R2,LSR#16 .text:000087B0 MOV R1, R8 .text:000087B4 AND R6, R2, R3 .text:000087B8 MOV R2, R6 .text:000087BC BL printf .text:000087C0 LDR R2, [R11,#var_430] .text:000087C4 LDR R0, =dword_559E4 .text:000087C8 RSB R1, R2, R6 .text:000087CC RSB R2, R2, R8 .text:000087D0 BL printf .text:000087D4 CMP R8, R6 .text:000087D8 MOVCS R7, R8 .text:000087DC MOVCC R7, R6 .text:000087E0 CMP R4, R7 .text:000087E4 BGE loc_8808 .text:000087E8 MOV R4, R7 .text:000087EC LDR R5, =fifo_data .text:000087F0 .text:000087F0 loc_87F0 ; CODE XREF: main+218j .text:000087F0 MOV R0, #0 .text:000087F4 MOV R1, R5 .text:000087F8 ADD R5, R5, #4 .text:000087FC BL read_fpga .text:00008800 SUBS R4, R4, #1 .text:00008804 BNE loc_87F0 .text:00008808 .text:00008808 loc_8808 ; CODE XREF: main+1F8j .text:00008808 LDR R1, [R11,#var_430] .text:0000880C MOV R4, #0 .text:00008810 RSB R3, R1, R6 .text:00008814 CMP R7, R3 .text:00008818 BEQ loc_8850 .text:0000881C LDR LR, =data0 .text:00008820 MOV R0, R1 .text:00008824 LDR R12, =fifo_data .text:00008828 .text:00008828 loc_8828 ; CODE XREF: main+260j .text:00008828 ADD R3, R4, R6 .text:0000882C RSB R3, R1, R3 .text:00008830 MOV R1, R0 .text:00008834 LDRB R2, [R12,R3,LSL#2] .text:00008838 RSB R3, R1, R6 .text:0000883C RSB R3, R3, R7 .text:00008840 STRB R2, [LR,R4] .text:00008844 ADD R4, R4, #1 .text:00008848 CMP R4, R3 .text:0000884C BCC loc_8828 .text:00008850 .text:00008850 loc_8850 ; CODE XREF: main+22Cj .text:00008850 LDR R1, [R11,#var_430] .text:00008854 MOV R4, #0 .text:00008858 RSB R3, R1, R6 .text:0000885C CMP R7, R3 .text:00008860 BEQ loc_889C .text:00008864 LDR LR, =data1 .text:00008868 MOV R0, R1 .text:0000886C LDR R12, =fifo_data .text:00008870 .text:00008870 loc_8870 ; CODE XREF: main+2ACj .text:00008870 ADD R3, R4, R6 .text:00008874 RSB R3, R1, R3 .text:00008878 MOV R1, R0 .text:0000887C LDR R2, [R12,R3,LSL#2] .text:00008880 RSB R3, R1, R6 .text:00008884 RSB R3, R3, R7 .text:00008888 MOV R2, R2,LSR#8 .text:0000888C STRB R2, [LR,R4] .text:00008890 ADD R4, R4, #1 .text:00008894 CMP R4, R3 .text:00008898 BCC loc_8870 .text:0000889C .text:0000889C loc_889C ; CODE XREF: main+274j .text:0000889C LDR R1, [R11,#var_430] .text:000088A0 MOV R4, #0 .text:000088A4 RSB R3, R1, R8 .text:000088A8 CMP R7, R3 .text:000088AC BEQ loc_88E8 .text:000088B0 LDR LR, =data2 .text:000088B4 MOV R0, R1 .text:000088B8 LDR R12, =fifo_data .text:000088BC .text:000088BC loc_88BC ; CODE XREF: main+2F8j .text:000088BC ADD R3, R4, R8 .text:000088C0 RSB R3, R1, R3 .text:000088C4 MOV R1, R0 .text:000088C8 LDR R2, [R12,R3,LSL#2] .text:000088CC RSB R3, R1, R8 .text:000088D0 RSB R3, R3, R7 .text:000088D4 MOV R2, R2,LSR#16 .text:000088D8 STRB R2, [LR,R4] .text:000088DC ADD R4, R4, #1 .text:000088E0 CMP R4, R3 .text:000088E4 BCC loc_88BC .text:000088E8 .text:000088E8 loc_88E8 ; CODE XREF: main+2C0j .text:000088E8 LDR R1, [R11,#var_430] .text:000088EC MOV R4, #0 .text:000088F0 RSB R3, R1, R8 .text:000088F4 CMP R7, R3 .text:000088F8 BEQ loc_8934 .text:000088FC LDR LR, =data3 .text:00008900 MOV R0, R1 .text:00008904 LDR R12, =fifo_data .text:00008908 .text:00008908 loc_8908 ; CODE XREF: main+344j .text:00008908 ADD R3, R4, R8 .text:0000890C RSB R3, R1, R3 .text:00008910 MOV R1, R0 .text:00008914 LDR R2, [R12,R3,LSL#2] .text:00008918 RSB R3, R1, R8 .text:0000891C RSB R3, R3, R7 .text:00008920 MOV R2, R2,LSR#24 .text:00008924 STRB R2, [LR,R4] .text:00008928 ADD R4, R4, #1 .text:0000892C CMP R4, R3 .text:00008930 BCC loc_8908 .text:00008934 .text:00008934 loc_8934 ; CODE XREF: main+30Cj .text:00008934 SUB R3, R11, #-var_430 .text:00008938 LDMIA R3, {R3,R4} .text:0000893C RSB R2, R3, R6 .text:00008940 RSB R3, R3, R8 .text:00008944 CMP R2, R3 .text:00008948 SUBCS R5, R7, R3 .text:0000894C SUBCC R5, R7, R2 .text:00008950 CMP R4, #0 .text:00008954 BNE loc_8A30 .text:00008958 LDR R0, =aDst4000Data ; "dst4000 data\n" .text:0000895C BL printf .text:00008960 CMP R4, R5 .text:00008964 MOV LR, R5,LSL#1 .text:00008968 BCS loc_89A4 .text:0000896C LDR R12, =getdata1 .text:00008970 MOV R0, #6 .text:00008974 LDR R8, =data0 .text:00008978 MOV R1, #5 .text:0000897C LDR R7, =data2 .text:00008980 .text:00008980 loc_8980 ; CODE XREF: main+3B4j .text:00008980 LDRB R3, [R8,R4] .text:00008984 STRB R3, [R12,R1] .text:00008988 ADD R1, R1, #2 .text:0000898C LDRB R2, [R7,R4] .text:00008990 ADD R4, R4, #1 .text:00008994 CMP R4, R5 .text:00008998 STRB R2, [R12,R0] .text:0000899C ADD R0, R0, #2 .text:000089A0 BCC loc_8980 .text:000089A4 .text:000089A4 loc_89A4 ; CODE XREF: main+37Cj .text:000089A4 MOV R10, LR .text:000089A8 MOV R4, #0 .text:000089AC CMP R4, R5 .text:000089B0 BCS loc_89EC .text:000089B4 LDR R12, =getdata1 .text:000089B8 ADD R0, R10, #6 .text:000089BC LDR R8, =data1 .text:000089C0 ADD R1, R10, #5 .text:000089C4 LDR R7, =data3 .text:000089C8 .text:000089C8 loc_89C8 ; CODE XREF: main+3FCj .text:000089C8 LDRB R3, [R8,R4] .text:000089CC STRB R3, [R12,R1] .text:000089D0 ADD R1, R1, #2 .text:000089D4 LDRB R2, [R7,R4] .text:000089D8 ADD R4, R4, #1 .text:000089DC CMP R4, R5 .text:000089E0 STRB R2, [R12,R0] .text:000089E4 ADD R0, R0, #2 .text:000089E8 BCC loc_89C8 .text:000089EC .text:000089EC loc_89EC ; CODE XREF: main+3C4j .text:000089EC MOV R10, LR,LSL#1 .text:000089F0 B loc_8AA8 .text:000089F0 ; --------------------------------------------------------------------------- .text:000089F4 off_89F4 DCD dword_55970 ; DATA XREF: main+30r .text:000089F8 off_89F8 DCD dword_559B8 ; DATA XREF: main+4Cr .text:000089FC off_89FC DCD data0 ; DATA XREF: main+9Cr .text:000089FC ; main+230r ... .text:00008A00 off_8A00 DCD data1 ; DATA XREF: main+ACr .text:00008A00 ; main+278r ... .text:00008A04 off_8A04 DCD fifo_data ; DATA XREF: main+B4r .text:00008A04 ; main+200r ... .text:00008A08 off_8A08 DCD data2 ; DATA XREF: main+C0r .text:00008A08 ; main+2C4r ... .text:00008A0C off_8A0C DCD data3 ; DATA XREF: main+D0r .text:00008A0C ; main+310r ... .text:00008A10 off_8A10 DCD data4 ; DATA XREF: main+E8r .text:00008A14 off_8A14 DCD getdata1 ; DATA XREF: main+F0r .text:00008A14 ; main+380r ... .text:00008A18 off_8A18 DCD getdata2 ; DATA XREF: main+10Cr .text:00008A1C off_8A1C DCD aTest ; DATA XREF: main+130r .text:00008A1C ; "/test" .text:00008A20 off_8A20 DCD aValue0xX ; DATA XREF: main+1A8r .text:00008A20 ; "value:0x%x\n" .text:00008A24 off_8A24 DCD aX0xXY0xX ; DATA XREF: main+1BCr .text:00008A24 ; "X :0x%x, Y: 0x%x\n" .text:00008A28 off_8A28 DCD dword_559E4 ; DATA XREF: main+1D8r .text:00008A2C off_8A2C DCD aDst4000Data ; DATA XREF: main+36Cr .text:00008A2C ; "dst4000 data\n" .text:00008A30 ; --------------------------------------------------------------------------- .text:00008A30 .text:00008A30 loc_8A30 ; CODE XREF: main+368j .text:00008A30 CMP R4, #1 .text:00008A34 BNE loc_8AA8 .text:00008A38 LDR R0, =aDst3000Data ; "dst3000 data\n" .text:00008A3C MOV R4, #0 .text:00008A40 BL printf .text:00008A44 CMP R4, R5 .text:00008A48 MOV LR, R5,LSL#1 .text:00008A4C BCS loc_8A70 .text:00008A50 LDR R0, =getdata1 .text:00008A54 LDR R1, =data0 .text:00008A58 .text:00008A58 loc_8A58 ; CODE XREF: main+480j .text:00008A58 ADD R2, R4, #5 .text:00008A5C LDRB R3, [R1,R4] .text:00008A60 ADD R4, R4, #1 .text:00008A64 CMP R4, R5 .text:00008A68 STRB R3, [R0,R2] .text:00008A6C BCC loc_8A58 .text:00008A70 .text:00008A70 loc_8A70 ; CODE XREF: main+460j .text:00008A70 MOV R10, R5 .text:00008A74 MOV R4, #0 .text:00008A78 CMP R4, R10 .text:00008A7C BCS loc_8AA4 .text:00008A80 LDR R12, =getdata1 .text:00008A84 ADD R1, R10, #5 .text:00008A88 LDR R0, =data1 .text:00008A8C .text:00008A8C loc_8A8C ; CODE XREF: main+4B4j .text:00008A8C ADD R2, R4, R1 .text:00008A90 LDRB R3, [R0,R4] .text:00008A94 ADD R4, R4, #1 .text:00008A98 CMP R4, R5 .text:00008A9C STRB R3, [R12,R2] .text:00008AA0 BCC loc_8A8C .text:00008AA4 .text:00008AA4 loc_8AA4 ; CODE XREF: main+490j .text:00008AA4 MOV R10, LR .text:00008AA8 .text:00008AA8 loc_8AA8 ; CODE XREF: main+404j .text:00008AA8 ; main+448j .text:00008AA8 LDR R0, =aCh_data_len0xX ; "ch_data_len:0x%x\n" .text:00008AAC MOV R1, R10 .text:00008AB0 BL printf .text:00008AB4 MOV R2, #0x53 .text:00008AB8 STRB R2, [R9] .text:00008ABC ADD R3, R10, #3 .text:00008AC0 STRB R3, [R9,#1] .text:00008AC4 MOV R3, R3,LSR#8 .text:00008AC8 STRB R3, [R9,#2] .text:00008ACC ADD R2, R2, #0x2F .text:00008AD0 MOV R1, #0 .text:00008AD4 STRB R2, [R9,#3] .text:00008AD8 MOV R4, R1 .text:00008ADC MOV R3, #2 .text:00008AE0 STRB R3, [R9,#4] .text:00008AE4 ADD R0, R10, #5 .text:00008AE8 CMP R4, R0 .text:00008AEC STRB R1, [R9,R0] .text:00008AF0 ADD R1, R10, #6 .text:00008AF4 BCS loc_8B18 .text:00008AF8 LDR R12, =getdata1 .text:00008AFC .text:00008AFC loc_8AFC ; CODE XREF: main+528j .text:00008AFC LDRB R2, [R12,R4] .text:00008B00 ADD R4, R4, #1 .text:00008B04 LDRB R3, [R12,R0] .text:00008B08 CMP R4, R0 .text:00008B0C ADD R3, R3, R2 .text:00008B10 STRB R3, [R12,R0] .text:00008B14 BCC loc_8AFC .text:00008B18 .text:00008B18 loc_8B18 ; CODE XREF: main+508j .text:00008B18 LDR R0, =getdata1 .text:00008B1C BL write_data_to_usbd .text:00008B20 BL cmd_acq .text:00008B24 MOV R1, #0 .text:00008B28 LDR R0, [R11,#var_444] .text:00008B2C MOV R2, #0x400 .text:00008B30 BL memset .text:00008B34 B loc_8748 .text:00008B34 ; --------------------------------------------------------------------------- .text:00008B38 off_8B38 DCD aDst3000Data ; DATA XREF: main+44Cr .text:00008B38 ; "dst3000 data\n" .text:00008B3C off_8B3C DCD getdata1 ; DATA XREF: main+464r .text:00008B3C ; main+494r ... .text:00008B40 off_8B40 DCD data0 ; DATA XREF: main+468r .text:00008B44 off_8B44 DCD data1 ; DATA XREF: main+49Cr .text:00008B48 off_8B48 DCD aCh_data_len0xX ; DATA XREF: main:loc_8AA8r .text:00008B48 ; "ch_data_len:0x%x\n" .text:00008B4C ; --------------------------------------------------------------------------- .text:00008B4C .text:00008B4C loc_8B4C ; CODE XREF: main+40j .text:00008B4C ; main+68j ... .text:00008B4C LDR R0, =aErrorCmd ; "error cmd!!!!\n" .text:00008B50 BL printf .text:00008B54 MOV R0, 0xFFFFFFFF .text:00008B58 B locret_8B60 .text:00008B58 ; --------------------------------------------------------------------------- .text:00008B5C off_8B5C DCD aErrorCmd ; DATA XREF: main:loc_8B4Cr .text:00008B5C ; "error cmd!!!!\n" .text:00008B60 ; --------------------------------------------------------------------------- .text:00008B60 .text:00008B60 locret_8B60 ; CODE XREF: main+56Cj .text:00008B60 LDMDB R11, {R4-R11,SP,PC} .text:00008B60 ; End of function main .text:00008B60 .text:00008B64 .text:00008B64 ; =============== S U B R O U T I N E ======================================= .text:00008B64 .text:00008B64 ; Attributes: noreturn bp-based frame .text:00008B64 .text:00008B64 EXPORT __libc_start_main .text:00008B64 __libc_start_main ; CODE XREF: _start+20p .text:00008B64 .text:00008B64 var_10 = -0x10 .text:00008B64 arg_0 = 4 .text:00008B64 arg_4 = 8 .text:00008B64 arg_8 = 0xC .text:00008B64 .text:00008B64 MOV R12, SP .text:00008B68 STMFD SP!, {R11,R12,LR,PC} .text:00008B6C SUB R11, R12, #4 .text:00008B70 MOV LR, #0 .text:00008B74 MOV R5, R1 .text:00008B78 SUB SP, SP, #4 .text:00008B7C STR R0, [R11,#var_10] .text:00008B80 MOV R4, R2 .text:00008B84 MOV R8, R3 .text:00008B88 MOV R3, R5,LSL#2 .text:00008B8C ADD R7, R3, #4 .text:00008B90 LDR R12, =_dl_starting_up .text:00008B94 ADD R6, R4, R7 .text:00008B98 CMP R12, LR .text:00008B9C LDR R10, [R11,#arg_4] .text:00008BA0 BEQ loc_8BB4 .text:00008BA4 LDR R3, [R12] .text:00008BA8 CMP R3, LR .text:00008BAC MOVNE LR, #0 .text:00008BB0 MOVEQ LR, #1 .text:00008BB4 .text:00008BB4 loc_8BB4 ; CODE XREF: __libc_start_main+3Cj .text:00008BB4 LDR R3, =__libc_multiple_libcs .text:00008BB8 STR LR, [R3] .text:00008BBC LDR R1, =environ .text:00008BC0 STR R6, [R1] .text:00008BC4 LDR R0, =0 .text:00008BC8 LDR R2, =__libc_stack_end .text:00008BCC CMP R0, #0 .text:00008BD0 LDR R3, [R11,#arg_8] .text:00008BD4 MOV R9, R1 .text:00008BD8 STR R3, [R2] .text:00008BDC BEQ loc_8BE8 .text:00008BE0 MOV LR, PC .text:00008BE4 MOV PC, R0 .text:00008BE8 .text:00008BE8 loc_8BE8 ; CODE XREF: __libc_start_main+78j .text:00008BE8 LDR R3, =__libc_enable_secure .text:00008BEC LDR R2, [R3] .text:00008BF0 CMP R2, #0 .text:00008BF4 BEQ loc_8BFC .text:00008BF8 BL __libc_check_standard_fds .text:00008BFC .text:00008BFC loc_8BFC ; CODE XREF: __libc_start_main+90j .text:00008BFC LDR R3, [R4,R7] .text:00008C00 MOV R0, R6 .text:00008C04 CMP R3, #0 .text:00008C08 BEQ loc_8C18 .text:00008C0C .text:00008C0C loc_8C0C ; CODE XREF: __libc_start_main+B0j .text:00008C0C LDR R3, [R0,#4]! .text:00008C10 CMP R3, #0 .text:00008C14 BNE loc_8C0C .text:00008C18 .text:00008C18 loc_8C18 ; CODE XREF: __libc_start_main+A4j .text:00008C18 ADD R0, R0, #4 .text:00008C1C BL _dl_aux_init .text:00008C20 CMP R10, #0 .text:00008C24 BEQ loc_8C38 .text:00008C28 MOV R0, R10 .text:00008C2C MOV R1, #0 .text:00008C30 MOV R2, R1 .text:00008C34 BL __cxa_atexit .text:00008C38 .text:00008C38 loc_8C38 ; CODE XREF: __libc_start_main+C0j .text:00008C38 MOV R0, R5 .text:00008C3C LDR R2, [R9] .text:00008C40 MOV R1, R4 .text:00008C44 BL __libc_init_first .text:00008C48 LDR R3, [R11,#arg_0] .text:00008C4C CMP R3, #0 .text:00008C50 BEQ loc_8C64 .text:00008C54 MOV R0, R3 .text:00008C58 MOV R1, #0 .text:00008C5C MOV R2, R1 .text:00008C60 BL __cxa_atexit .text:00008C64 .text:00008C64 loc_8C64 ; CODE XREF: __libc_start_main+ECj .text:00008C64 CMP R8, #0 .text:00008C68 BEQ loc_8C74 .text:00008C6C MOV LR, PC .text:00008C70 MOV PC, R8 .text:00008C74 .text:00008C74 loc_8C74 ; CODE XREF: __libc_start_main+104j .text:00008C74 LDR R2, [R9] .text:00008C78 MOV R0, R5 .text:00008C7C LDR R3, [R11,#var_10] .text:00008C80 MOV R1, R4 .text:00008C84 MOV LR, PC .text:00008C88 MOV PC, R3 .text:00008C8C BL exit .text:00008C8C ; End of function __libc_start_main .text:00008C8C .text:00008C8C ; --------------------------------------------------------------------------- .text:00008C90 off_8C90 DCD _dl_starting_up ; DATA XREF: __libc_start_main+2Cr .text:00008C94 off_8C94 DCD __libc_multiple_libcs .text:00008C94 ; DATA XREF: __libc_start_main:loc_8BB4r .text:00008C98 off_8C98 DCD environ ; DATA XREF: __libc_start_main+58r .text:00008C9C off_8C9C DCD 0 ; DATA XREF: __libc_start_main+60r .text:00008CA0 off_8CA0 DCD __libc_stack_end ; DATA XREF: __libc_start_main+64r .text:00008CA4 off_8CA4 DCD __libc_enable_secure .text:00008CA4 ; DATA XREF: __libc_start_main:loc_8BE8r .text:00008CA8 ; --------------------------------------------------------------------------- .text:00008CA8 LDMDB R11, {R4-R11,SP,PC} .text:00008CAC .text:00008CAC ; =============== S U B R O U T I N E ======================================= .text:00008CAC .text:00008CAC ; Attributes: bp-based frame .text:00008CAC .text:00008CAC check_one_fd ; CODE XREF: __libc_check_standard_fds+1Cp .text:00008CAC ; __libc_check_standard_fds+28p ... .text:00008CAC .text:00008CAC var_70 = -0x70 .text:00008CAC var_60 = -0x60 .text:00008CAC var_10 = -0x10 .text:00008CAC .text:00008CAC MOV R12, SP .text:00008CB0 STMFD SP!, {R4,R11,R12,LR,PC} .text:00008CB4 SUB R11, R12, #4 .text:00008CB8 MOV R4, R1 .text:00008CBC MOV R1, #1 .text:00008CC0 SUB SP, SP, #0x60 .text:00008CC4 BL fcntl .text:00008CC8 CMN R0, #1 .text:00008CCC BNE locret_8D54 .text:00008CD0 BL __errno_location .text:00008CD4 LDR R3, [R0] .text:00008CD8 CMP R3, #9 .text:00008CDC BNE locret_8D54 .text:00008CE0 LDR R0, =aDevNull ; "/dev/null" .text:00008CE4 MOV R1, R4 .text:00008CE8 BL open .text:00008CEC MOV R1, R0 .text:00008CF0 CMN R1, #1 .text:00008CF4 BEQ loc_8D4C .text:00008CF8 MOV R0, #3 .text:00008CFC SUB R2, R11, #-var_70 .text:00008D00 BL __fxstat64 .text:00008D04 CMP R0, #0 .text:00008D08 BNE loc_8D4C .text:00008D0C LDR R3, [R11,#var_60] .text:00008D10 AND R3, R3, #0xF000 .text:00008D14 CMP R3, #0x2000 .text:00008D18 BNE loc_8D4C .text:00008D1C MOV R3, #0x100 .text:00008D20 MOV R1, 0xFFFFFFC0 .text:00008D24 SUB R0, R11, #-var_10 .text:00008D28 ADD R3, R3, #3 .text:00008D2C LDR R2, [R0,R1] .text:00008D30 ADD R1, R1, R11 .text:00008D34 CMP R2, R3 .text:00008D38 SUB R3, R1, #0x10 .text:00008D3C BNE loc_8D4C .text:00008D40 LDR R3, [R3,#4] .text:00008D44 CMP R3, #0 .text:00008D48 BEQ locret_8D54 .text:00008D4C .text:00008D4C loc_8D4C ; CODE XREF: check_one_fd+48j .text:00008D4C ; check_one_fd+5Cj ... .text:00008D4C B loc_8D4C .text:00008D4C ; --------------------------------------------------------------------------- .text:00008D50 off_8D50 DCD aDevNull ; DATA XREF: check_one_fd+34r .text:00008D50 ; "/dev/null" .text:00008D54 ; --------------------------------------------------------------------------- .text:00008D54 .text:00008D54 locret_8D54 ; CODE XREF: check_one_fd+20j .text:00008D54 ; check_one_fd+30j ... .text:00008D54 LDMDB R11, {R4,R11,SP,PC} .text:00008D54 ; End of function check_one_fd .text:00008D54 .text:00008D58 .text:00008D58 ; =============== S U B R O U T I N E ======================================= .text:00008D58 .text:00008D58 ; Attributes: bp-based frame .text:00008D58 .text:00008D58 EXPORT __libc_check_standard_fds .text:00008D58 __libc_check_standard_fds ; CODE XREF: __libc_start_main+94p .text:00008D58 MOV R12, SP .text:00008D5C STMFD SP!, {R4,R11,R12,LR,PC} .text:00008D60 SUB R11, R12, #4 .text:00008D64 MOV R0, #0 .text:00008D68 MOV R1, #0x8000 .text:00008D6C MOV R4, R1 .text:00008D70 ADD R4, R4, #2 .text:00008D74 BL check_one_fd .text:00008D78 MOV R0, #1 .text:00008D7C MOV R1, R4 .text:00008D80 BL check_one_fd .text:00008D84 MOV R0, #2 .text:00008D88 MOV R1, R4 .text:00008D8C BL check_one_fd .text:00008D90 LDMDB R11, {R4,R11,SP,PC} .text:00008D90 ; End of function __libc_check_standard_fds .text:00008D90 .text:00008D94 .text:00008D94 ; =============== S U B R O U T I N E ======================================= .text:00008D94 .text:00008D94 ; Attributes: bp-based frame .text:00008D94 .text:00008D94 WEAK __errno_location .text:00008D94 __errno_location ; CODE XREF: check_one_fd+24p .text:00008D94 ; system+A0p ... .text:00008D94 MOV R12, SP .text:00008D98 STMFD SP!, {R11,R12,LR,PC} .text:00008D9C SUB R11, R12, #4 .text:00008DA0 LDR R0, =errno .text:00008DA4 LDMDB R11, {R11,SP,PC} .text:00008DA4 ; End of function __errno_location .text:00008DA4 .text:00008DA4 ; --------------------------------------------------------------------------- .text:00008DA8 off_8DA8 DCD errno ; DATA XREF: __errno_location+Cr .text:00008DAC .text:00008DAC ; =============== S U B R O U T I N E ======================================= .text:00008DAC .text:00008DAC ; Attributes: noreturn bp-based frame .text:00008DAC .text:00008DAC EXPORT abort .text:00008DAC abort ; CODE XREF: _start+24p .text:00008DAC ; top_check+7Cp ... .text:00008DAC .text:00008DAC var_118 = -0x118 .text:00008DAC var_98 = -0x98 .text:00008DAC var_94 = -0x94 .text:00008DAC var_14 = -0x14 .text:00008DAC .text:00008DAC MOV R12, SP .text:00008DB0 STMFD SP!, {R11,R12,LR,PC} .text:00008DB4 LDR R3, =0 .text:00008DB8 SUB R11, R12, #4 .text:00008DBC CMP R3, #0 .text:00008DC0 MOV R6, R3 .text:00008DC4 SUB SP, SP, #0x10C .text:00008DC8 BEQ loc_8DD8 .text:00008DCC LDR R0, =lock .text:00008DD0 MOV LR, PC .text:00008DD4 MOV PC, R6 .text:00008DD8 .text:00008DD8 loc_8DD8 ; CODE XREF: abort+1Cj .text:00008DD8 LDR R3, =stage .text:00008DDC LDR R12, [R3] .text:00008DE0 MOV R5, R3 .text:00008DE4 CMP R12, #0 .text:00008DE8 BNE loc_8E28 .text:00008DEC MOV R2, #0x1F .text:00008DF0 SUB R0, R11, #-var_118 .text:00008DF4 MOV R1, R0 .text:00008DF8 MOV LR, R12 .text:00008DFC ADD R3, R12, #1 .text:00008E00 STR R3, [R5] .text:00008E04 .text:00008E04 loc_8E04 ; CODE XREF: abort+60j .text:00008E04 STR LR, [R0,R2,LSL#2] .text:00008E08 SUBS R2, R2, #1 .text:00008E0C BPL loc_8E04 .text:00008E10 LDR R3, [R11,#var_118] .text:00008E14 ORR R3, R3, #0x20 .text:00008E18 STR R3, [R11,#var_118] .text:00008E1C MOV R0, #1 .text:00008E20 MOV R2, #0 .text:00008E24 BL sigprocmask .text:00008E28 .text:00008E28 loc_8E28 ; CODE XREF: abort+3Cj .text:00008E28 LDR R3, [R5] .text:00008E2C CMP R3, #1 .text:00008E30 BNE loc_8E44 .text:00008E34 ADD R3, R3, #1 .text:00008E38 STR R3, [R5] .text:00008E3C MOV R0, #0 .text:00008E40 BL fflush .text:00008E44 .text:00008E44 loc_8E44 ; CODE XREF: abort+84j .text:00008E44 LDR R4, [R5] .text:00008E48 CMP R4, #2 .text:00008E4C BNE loc_8E94 .text:00008E50 LDR R2, =0 .text:00008E54 MOV R3, #0 .text:00008E58 STR R3, [R5] .text:00008E5C CMP R2, R3 .text:00008E60 BEQ loc_8E70 .text:00008E64 LDR R0, =lock .text:00008E68 MOV LR, PC .text:00008E6C MOV PC, R2 .text:00008E70 .text:00008E70 loc_8E70 ; CODE XREF: abort+B4j .text:00008E70 MOV R0, #6 .text:00008E74 BL raise .text:00008E78 CMP R6, #0 .text:00008E7C BEQ loc_8E8C .text:00008E80 LDR R0, =lock .text:00008E84 MOV LR, PC .text:00008E88 MOV PC, R6 .text:00008E8C .text:00008E8C loc_8E8C ; CODE XREF: abort+D0j .text:00008E8C ADD R3, R4, #1 .text:00008E90 STR R3, [R5] .text:00008E94 .text:00008E94 loc_8E94 ; CODE XREF: abort+A0j .text:00008E94 LDR R3, [R5] .text:00008E98 CMP R3, #3 .text:00008E9C BNE loc_8EF0 .text:00008EA0 ADD R3, R3, #1 .text:00008EA4 STR R3, [R5] .text:00008EA8 SUB R4, R11, #-var_98 .text:00008EAC MOV R0, R4 .text:00008EB0 MOV R1, #0 .text:00008EB4 MOV R2, #0x8C .text:00008EB8 BL memset .text:00008EBC SUB R0, R11, #-var_94 .text:00008EC0 MOV R2, #0x1F .text:00008EC4 MOV R1, R4 .text:00008EC8 MOV R12, 0xFFFFFFFF .text:00008ECC MOV R3, #0 .text:00008ED0 STR R3, [R11,#var_98] .text:00008ED4 .text:00008ED4 loc_8ED4 ; CODE XREF: abort+130j .text:00008ED4 STR R12, [R0,R2,LSL#2] .text:00008ED8 SUBS R2, R2, #1 .text:00008EDC BPL loc_8ED4 .text:00008EE0 MOV R2, #0 .text:00008EE4 STR R2, [R11,#var_14] .text:00008EE8 MOV R0, #6 .text:00008EEC BL sigaction .text:00008EF0 .text:00008EF0 loc_8EF0 ; CODE XREF: abort+F0j .text:00008EF0 LDR R3, [R5] .text:00008EF4 CMP R3, #4 .text:00008EF8 BNE loc_8F08 .text:00008EFC ADD R3, R3, #1 .text:00008F00 STR R3, [R5] .text:00008F04 BL fcloseall .text:00008F08 .text:00008F08 loc_8F08 ; CODE XREF: abort+14Cj .text:00008F08 LDR R0, [R5] .text:00008F0C CMP R0, #5 .text:00008F10 BNE loc_8F20 .text:00008F14 ADD R0, R0, #1 .text:00008F18 STR R0, [R5] .text:00008F1C BL raise .text:00008F20 .text:00008F20 loc_8F20 ; CODE XREF: abort+164j .text:00008F20 LDR R3, [R5] .text:00008F24 CMP R3, #6 .text:00008F28 ADDEQ R3, R3, #1 .text:00008F2C STREQ R3, [R5] .text:00008F30 LDR R3, [R5] .text:00008F34 CMP R3, #7 .text:00008F38 BNE loc_8F4C .text:00008F3C ADD R3, R3, #1 .text:00008F40 STR R3, [R5] .text:00008F44 MOV R0, #0x7F ; status .text:00008F48 BL _exit .text:00008F4C ; --------------------------------------------------------------------------- .text:00008F4C .text:00008F4C loc_8F4C ; CODE XREF: abort+18Cj .text:00008F4C ; abort:loc_8F4Cj .text:00008F4C B loc_8F4C .text:00008F4C ; End of function abort .text:00008F4C .text:00008F4C ; --------------------------------------------------------------------------- .text:00008F50 off_8F50 DCD 0 ; DATA XREF: abort+8r .text:00008F54 off_8F54 DCD lock ; DATA XREF: abort+20r .text:00008F54 ; abort+B8r ... .text:00008F58 off_8F58 DCD stage ; DATA XREF: abort:loc_8DD8r .text:00008F5C off_8F5C DCD 0 ; DATA XREF: abort+A4r .text:00008F60 ; --------------------------------------------------------------------------- .text:00008F60 LDMDB R11, {R4-R6,R11,SP,PC} .text:00008F64 .text:00008F64 ; =============== S U B R O U T I N E ======================================= .text:00008F64 .text:00008F64 ; Attributes: noreturn bp-based frame .text:00008F64 .text:00008F64 EXPORT exit .text:00008F64 exit ; CODE XREF: __libc_start_main+128p .text:00008F64 MOV R12, SP .text:00008F68 STMFD SP!, {R11,R12,LR,PC} .text:00008F6C LDR R2, =__exit_funcs .text:00008F70 LDR R8, =__elf_set___libc_atexit_element__cleanup__ .text:00008F74 SUB R11, R12, #4 .text:00008F78 LDR R7, =__elf_set___libc_subinit_element_non_dynamic_init__ .text:00008F7C MOV R5, R0 .text:00008F80 LDR R3, [R2] .text:00008F84 MOV R4, R2 .text:00008F88 CMP R3, #0 .text:00008F8C BEQ loc_9050 .text:00008F90 MOV R6, R4 .text:00008F94 .text:00008F94 loc_8F94 ; CODE XREF: exit+E8j .text:00008F94 LDR R3, [R6] .text:00008F98 LDR R2, [R3,#4] .text:00008F9C MOV R3, R6 .text:00008FA0 CMP R2, #0 .text:00008FA4 BEQ loc_902C .text:00008FA8 .text:00008FA8 loc_8FA8 ; CODE XREF: exit+C4j .text:00008FA8 LDR R3, [R3] .text:00008FAC LDR R2, [R3,#4] .text:00008FB0 SUB R2, R2, #1 .text:00008FB4 STR R2, [R3,#4] .text:00008FB8 MOV R2, R2,LSL#4 .text:00008FBC ADD R2, R2, #8 .text:00008FC0 LDR R1, [R3,R2] .text:00008FC4 ADD R3, R3, R2 .text:00008FC8 CMP R1, #4 ; switch 5 cases .text:00008FCC LDRLS PC, [PC,R1,LSL#2] ; switch jump .text:00008FD0 B loc_9018 ; jumptable 00008FCC default case .text:00008FD0 ; --------------------------------------------------------------------------- .text:00008FD4 DCD loc_9018 ; jump table for switch statement .text:00008FD4 DCD loc_9018 .text:00008FD4 DCD loc_8FE8 .text:00008FD4 DCD loc_8FFC .text:00008FD4 DCD loc_9008 .text:00008FE8 ; --------------------------------------------------------------------------- .text:00008FE8 .text:00008FE8 loc_8FE8 ; CODE XREF: exit+68j .text:00008FE8 ; DATA XREF: exit+70o .text:00008FE8 LDR R1, [R3,#8] ; jumptable 00008FCC case 2 .text:00008FEC MOV R0, R5 .text:00008FF0 MOV LR, PC .text:00008FF4 LDR PC, [R3,#4] .text:00008FF8 B loc_9018 ; jumptable 00008FCC default case .text:00008FFC ; --------------------------------------------------------------------------- .text:00008FFC .text:00008FFC loc_8FFC ; CODE XREF: exit+68j .text:00008FFC ; DATA XREF: exit+70o .text:00008FFC MOV LR, PC ; jumptable 00008FCC case 3 .text:00009000 LDR PC, [R3,#4] .text:00009004 B loc_9018 ; jumptable 00008FCC default case .text:00009008 ; --------------------------------------------------------------------------- .text:00009008 .text:00009008 loc_9008 ; CODE XREF: exit+68j .text:00009008 ; DATA XREF: exit+70o .text:00009008 LDR R0, [R3,#8] ; jumptable 00008FCC case 4 .text:0000900C MOV R1, R5 .text:00009010 MOV LR, PC .text:00009014 LDR PC, [R3,#4] .text:00009018 .text:00009018 loc_9018 ; CODE XREF: exit+68j .text:00009018 ; exit+6Cj ... .text:00009018 LDR R3, [R4] ; jumptable 00008FCC default case .text:0000901C LDR R2, [R3,#4] .text:00009020 MOV R3, R4 .text:00009024 CMP R2, #0 .text:00009028 BNE loc_8FA8 .text:0000902C .text:0000902C loc_902C ; CODE XREF: exit+40j .text:0000902C LDR R0, [R6] .text:00009030 LDR R3, [R0] .text:00009034 CMP R3, #0 .text:00009038 STR R3, [R6] .text:0000903C BEQ loc_9044 .text:00009040 BL free .text:00009044 .text:00009044 loc_9044 ; CODE XREF: exit+D8j .text:00009044 LDR R3, [R4] .text:00009048 CMP R3, #0 .text:0000904C BNE loc_8F94 .text:00009050 .text:00009050 loc_9050 ; CODE XREF: exit+28j .text:00009050 MOV R4, R8 .text:00009054 CMP R4, R7 .text:00009058 BCS loc_906C .text:0000905C .text:0000905C loc_905C ; CODE XREF: exit+104j .text:0000905C MOV LR, PC .text:00009060 LDR PC, [R4],#4 .text:00009064 CMP R4, R7 .text:00009068 BCC loc_905C .text:0000906C .text:0000906C loc_906C ; CODE XREF: exit+F4j .text:0000906C MOV R0, R5 ; status .text:00009070 BL _exit .text:00009070 ; End of function exit .text:00009070 .text:00009070 ; --------------------------------------------------------------------------- .text:00009074 off_9074 DCD __exit_funcs ; DATA XREF: exit+8r .text:00009078 off_9078 DCD __elf_set___libc_atexit_element__cleanup__ .text:00009078 ; DATA XREF: exit+Cr .text:0000907C off_907C DCD __elf_set___libc_subinit_element_non_dynamic_init__ .text:0000907C ; DATA XREF: exit+14r .text:00009080 ; --------------------------------------------------------------------------- .text:00009080 LDMDB R11, {R4-R8,R11,SP,PC} .text:00009084 .text:00009084 ; =============== S U B R O U T I N E ======================================= .text:00009084 .text:00009084 ; Attributes: bp-based frame .text:00009084 .text:00009084 EXPORT __cxa_atexit .text:00009084 __cxa_atexit ; CODE XREF: __libc_start_main+D0p .text:00009084 ; __libc_start_main+FCp .text:00009084 MOV R12, SP .text:00009088 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000908C SUB R11, R12, #4 .text:00009090 MOV R4, R0 .text:00009094 MOV R5, R1 .text:00009098 MOV R6, R2 .text:0000909C BL __new_exitfn .text:000090A0 SUBS R2, R0, #0 .text:000090A4 BEQ loc_90BC .text:000090A8 MOV R3, #4 .text:000090AC STMIA R2, {R3-R5} .text:000090B0 MOV R0, #0 .text:000090B4 STR R6, [R2,#0xC] .text:000090B8 LDMDB R11, {R4-R6,R11,SP,PC} .text:000090BC ; --------------------------------------------------------------------------- .text:000090BC .text:000090BC loc_90BC ; CODE XREF: __cxa_atexit+20j .text:000090BC MOV R0, 0xFFFFFFFF .text:000090C0 LDMDB R11, {R4-R6,R11,SP,PC} .text:000090C0 ; End of function __cxa_atexit .text:000090C0 .text:000090C4 .text:000090C4 ; =============== S U B R O U T I N E ======================================= .text:000090C4 .text:000090C4 ; Attributes: bp-based frame .text:000090C4 .text:000090C4 EXPORT __new_exitfn .text:000090C4 __new_exitfn ; CODE XREF: __cxa_atexit+18p .text:000090C4 MOV R12, SP .text:000090C8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000090CC SUB R11, R12, #4 .text:000090D0 LDR R3, =0 .text:000090D4 MOV R5, #0 .text:000090D8 CMP R3, R5 .text:000090DC BEQ loc_90EC .text:000090E0 LDR R0, =lock_0 .text:000090E4 MOV LR, PC .text:000090E8 MOV PC, R3 .text:000090EC .text:000090EC loc_90EC ; CODE XREF: __new_exitfn+18j .text:000090EC LDR R3, =__exit_funcs .text:000090F0 LDR R7, =0 .text:000090F4 LDR R4, [R3] .text:000090F8 MOV R6, R3 .text:000090FC CMP R4, #0 .text:00009100 BEQ loc_9160 .text:00009104 .text:00009104 loc_9104 ; CODE XREF: __new_exitfn+98j .text:00009104 LDR R3, [R4,#4] .text:00009108 MOV R5, #0 .text:0000910C CMP R5, R3 .text:00009110 MOV R2, R3 .text:00009114 BCS loc_9144 .text:00009118 LDR R3, [R4,#8] .text:0000911C CMP R3, R5 .text:00009120 BEQ loc_9144 .text:00009124 MOV R0, R2 .text:00009128 ADD R1, R4, #8 .text:0000912C .text:0000912C loc_912C ; CODE XREF: __new_exitfn+7Cj .text:0000912C ADD R5, R5, #1 .text:00009130 CMP R5, R0 .text:00009134 BCS loc_9144 .text:00009138 LDR R3, [R1,R5,LSL#4] .text:0000913C CMP R3, #0 .text:00009140 BNE loc_912C .text:00009144 .text:00009144 loc_9144 ; CODE XREF: __new_exitfn+50j .text:00009144 ; __new_exitfn+5Cj ... .text:00009144 CMP R5, R2 .text:00009148 BCC loc_9160 .text:0000914C CMP R2, #0x1F .text:00009150 BLS loc_91CC .text:00009154 LDR R4, [R4] .text:00009158 CMP R4, #0 .text:0000915C BNE loc_9104 .text:00009160 .text:00009160 loc_9160 ; CODE XREF: __new_exitfn+3Cj .text:00009160 ; __new_exitfn+84j ... .text:00009160 CMP R4, #0 .text:00009164 BNE loc_9190 .text:00009168 MOV R0, #0x208 .text:0000916C BL malloc .text:00009170 SUBS R4, R0, #0 .text:00009174 BEQ loc_9190 .text:00009178 LDR R3, [R6] .text:0000917C STR R3, [R4] .text:00009180 STR R4, [R6] .text:00009184 MOV R5, #0 .text:00009188 MOV R3, #1 .text:0000918C STR R3, [R4,#4] .text:00009190 .text:00009190 loc_9190 ; CODE XREF: __new_exitfn+A0j .text:00009190 ; __new_exitfn+B0j .text:00009190 CMP R4, #0 .text:00009194 ADDNE R2, R4, #8 .text:00009198 MOVNE R3, #1 .text:0000919C STRNE R3, [R2,R5,LSL#4] .text:000091A0 CMP R7, #0 .text:000091A4 BEQ loc_91B4 .text:000091A8 LDR R0, =lock_0 .text:000091AC MOV LR, PC .text:000091B0 MOV PC, R7 .text:000091B4 .text:000091B4 loc_91B4 ; CODE XREF: __new_exitfn+E0j .text:000091B4 CMP R4, #0 .text:000091B8 BEQ loc_91DC .text:000091BC MOV R3, R5,LSL#4 .text:000091C0 ADD R3, R3, #8 .text:000091C4 ADD R0, R4, R3 .text:000091C8 LDMDB R11, {R4-R7,R11,SP,PC} .text:000091CC ; --------------------------------------------------------------------------- .text:000091CC .text:000091CC loc_91CC ; CODE XREF: __new_exitfn+8Cj .text:000091CC MOV R5, R2 .text:000091D0 ADD R3, R5, #1 .text:000091D4 STR R3, [R4,#4] .text:000091D8 B loc_9160 .text:000091DC ; --------------------------------------------------------------------------- .text:000091DC .text:000091DC loc_91DC ; CODE XREF: __new_exitfn+F4j .text:000091DC MOV R0, R4 .text:000091E0 LDMDB R11, {R4-R7,R11,SP,PC} .text:000091E0 ; End of function __new_exitfn .text:000091E0 .text:000091E0 ; --------------------------------------------------------------------------- .text:000091E4 off_91E4 DCD 0 ; DATA XREF: __new_exitfn+Cr .text:000091E8 off_91E8 DCD lock_0 ; DATA XREF: __new_exitfn+1Cr .text:000091E8 ; __new_exitfn+E4r .text:000091EC off_91EC DCD __exit_funcs ; DATA XREF: __new_exitfn:loc_90ECr .text:000091F0 dword_91F0 DCD 0 ; DATA XREF: __new_exitfn+2Cr .text:000091F4 .text:000091F4 ; =============== S U B R O U T I N E ======================================= .text:000091F4 .text:000091F4 ; Attributes: bp-based frame .text:000091F4 .text:000091F4 WEAK system .text:000091F4 system ; CODE XREF: cmd_acq+10p .text:000091F4 ; cmd_acq+18p ... .text:000091F4 .text:000091F4 var_2E0 = -0x2E0 .text:000091F4 var_2DC = -0x2DC .text:000091F4 var_2D8 = -0x2D8 .text:000091F4 var_2D4 = -0x2D4 .text:000091F4 var_2D0 = -0x2D0 .text:000091F4 var_2CC = -0x2CC .text:000091F4 var_24C = -0x24C .text:000091F4 var_1CC = -0x1CC .text:000091F4 var_140 = -0x140 .text:000091F4 var_B4 = -0xB4 .text:000091F4 var_B0 = -0xB0 .text:000091F4 var_30 = -0x30 .text:000091F4 .text:000091F4 MOV R12, SP ; Alternative name is '__libc_system' .text:000091F8 STMFD SP!, {R4-R12,LR,PC} .text:000091FC SUB R11, R12, #4 .text:00009200 SUBS R10, R0, #0 .text:00009204 SUB SP, SP, #0x2B8 .text:00009208 BNE loc_9224 .text:0000920C LDR R0, =aExit0 ; "exit 0" .text:00009210 BL system .text:00009214 CMP R0, #0 .text:00009218 MOVNE R0, #0 .text:0000921C MOVEQ R0, #1 .text:00009220 B locret_9490 .text:00009224 ; --------------------------------------------------------------------------- .text:00009224 .text:00009224 loc_9224 ; CODE XREF: system+14j .text:00009224 SUB R12, R11, #-var_B0 .text:00009228 MOV R1, #0x1F .text:0000922C SUB R4, R11, #-var_B4 .text:00009230 SUB R7, R11, #-var_140 .text:00009234 MOV R3, #1 .text:00009238 STR R3, [R11,#var_B4] .text:0000923C MOV R2, #0 .text:00009240 MOV R0, R2 .text:00009244 STR R2, [R11,#var_30] .text:00009248 .text:00009248 loc_9248 ; CODE XREF: system+60j .text:00009248 MOV R3, R1,LSL#2 .text:0000924C SUBS R1, R1, #1 .text:00009250 STR R0, [R12,R3] .text:00009254 BPL loc_9248 .text:00009258 MOV R0, #2 .text:0000925C MOV R1, R4 .text:00009260 MOV R2, R7 .text:00009264 BL sigaction .text:00009268 CMP R0, #0 .text:0000926C MOV R0, 0xFFFFFFFF .text:00009270 BLT locret_9490 .text:00009274 MOV R0, #3 .text:00009278 MOV R1, R4 .text:0000927C SUB R4, R11, #-var_1CC .text:00009280 MOV R2, R4 .text:00009284 BL sigaction .text:00009288 CMP R0, #0 .text:0000928C MOV R9, R4 .text:00009290 BGE loc_92B4 .text:00009294 BL __errno_location .text:00009298 LDR R6, [R0] .text:0000929C MOV R0, #2 .text:000092A0 MOV R1, R7 .text:000092A4 MOV R2, #0 .text:000092A8 BL sigaction .text:000092AC BL __errno_location .text:000092B0 B loc_9344 .text:000092B4 ; --------------------------------------------------------------------------- .text:000092B4 .text:000092B4 loc_92B4 ; CODE XREF: system+9Cj .text:000092B4 MOV R2, #0x1F .text:000092B8 SUB R1, R11, #-var_24C .text:000092BC MOV R5, R1 .text:000092C0 SUB R8, R11, #-var_2CC .text:000092C4 MOV R0, #0 .text:000092C8 .text:000092C8 loc_92C8 ; CODE XREF: system+E0j .text:000092C8 MOV R3, R2,LSL#2 .text:000092CC SUBS R2, R2, #1 .text:000092D0 STR R0, [R1,R3] .text:000092D4 BPL loc_92C8 .text:000092D8 LDR R3, [R11,#var_24C] .text:000092DC ORR R3, R3, #0x10000 .text:000092E0 STR R3, [R11,#var_24C] .text:000092E4 BL __errno_location .text:000092E8 MOV R4, #0 .text:000092EC LDR R6, [R0] .text:000092F0 MOV R0, R4 .text:000092F4 MOV R1, R5 .text:000092F8 MOV R2, R8 .text:000092FC BL sigprocmask .text:00009300 CMP R0, R4 .text:00009304 BGE loc_9358 .text:00009308 BL __errno_location .text:0000930C LDR R3, [R0] .text:00009310 CMP R3, #0x26 .text:00009314 BEQ loc_9350 .text:00009318 BL __errno_location .text:0000931C LDR R6, [R0] .text:00009320 MOV R0, #2 .text:00009324 MOV R1, R7 .text:00009328 MOV R2, R4 .text:0000932C BL sigaction .text:00009330 MOV R0, #3 .text:00009334 MOV R1, R9 .text:00009338 MOV R2, R4 .text:0000933C BL sigaction .text:00009340 BL __errno_location .text:00009344 .text:00009344 loc_9344 ; CODE XREF: system+BCj .text:00009344 STR R6, [R0] .text:00009348 MOV R0, 0xFFFFFFFF .text:0000934C B locret_9490 .text:00009350 ; --------------------------------------------------------------------------- .text:00009350 .text:00009350 loc_9350 ; CODE XREF: system+120j .text:00009350 BL __errno_location .text:00009354 STR R6, [R0] .text:00009358 .text:00009358 loc_9358 ; CODE XREF: system+110j .text:00009358 BL fork .text:0000935C SUBS R5, R0, #0 .text:00009360 BNE loc_93C8 .text:00009364 STR R10, [R11,#var_2D4] .text:00009368 STR R5, [R11,#var_2D0] .text:0000936C LDR R3, =aSh ; "sh" .text:00009370 STR R3, [R11,#var_2DC] .text:00009374 LDR R2, =aC ; "-c" .text:00009378 STR R2, [R11,#var_2D8] .text:0000937C MOV R0, #2 .text:00009380 SUB R1, R11, #-var_140 .text:00009384 MOV R2, R5 .text:00009388 BL sigaction .text:0000938C MOV R0, #3 .text:00009390 SUB R1, R11, #-var_1CC .text:00009394 MOV R2, R5 .text:00009398 BL sigaction .text:0000939C MOV R0, #2 .text:000093A0 SUB R1, R11, #-var_2CC .text:000093A4 MOV R2, R5 .text:000093A8 BL sigprocmask .text:000093AC LDR R3, =environ .text:000093B0 LDR R0, =aBinSh ; "/bin/sh" .text:000093B4 LDR R2, [R3] .text:000093B8 SUB R1, R11, #-var_2DC .text:000093BC BL execve .text:000093C0 MOV R0, #0x7F ; status .text:000093C4 BL _exit .text:000093C8 ; --------------------------------------------------------------------------- .text:000093C8 .text:000093C8 loc_93C8 ; CODE XREF: system+16Cj .text:000093C8 BLT loc_9404 .text:000093CC SUB R6, R11, #-var_2E0 .text:000093D0 .text:000093D0 loc_93D0 ; CODE XREF: system+204j .text:000093D0 MOV R0, R5 .text:000093D4 MOV R1, R6 .text:000093D8 MOV R2, #0 .text:000093DC BL waitpid .text:000093E0 MOV R4, R0 .text:000093E4 CMN R4, #1 .text:000093E8 BNE loc_93FC .text:000093EC BL __errno_location .text:000093F0 LDR R3, [R0] .text:000093F4 CMP R3, #4 .text:000093F8 BEQ loc_93D0 .text:000093FC .text:000093FC loc_93FC ; CODE XREF: system+1F4j .text:000093FC CMP R4, R5 .text:00009400 BEQ loc_940C .text:00009404 .text:00009404 loc_9404 ; CODE XREF: system:loc_93C8j .text:00009404 MOV R3, 0xFFFFFFFF .text:00009408 STR R3, [R11,#var_2E0] .text:0000940C .text:0000940C loc_940C ; CODE XREF: system+20Cj .text:0000940C BL __errno_location .text:00009410 LDR R6, [R0] .text:00009414 MOV R0, #2 .text:00009418 MOV R1, R7 .text:0000941C MOV R2, #0 .text:00009420 BL sigaction .text:00009424 MOV R4, R0 .text:00009428 MOV R0, #3 .text:0000942C MOV R1, R9 .text:00009430 MOV R2, #0 .text:00009434 BL sigaction .text:00009438 MOV R5, R0 .text:0000943C MOV R0, #2 .text:00009440 MOV R1, R8 .text:00009444 MOV R2, #0 .text:00009448 BL sigprocmask .text:0000944C ORR R4, R4, R5 .text:00009450 ORRS R4, R4, R0 .text:00009454 BEQ loc_948C .text:00009458 BL __errno_location .text:0000945C LDR R3, [R0] .text:00009460 CMP R3, #0x26 .text:00009464 BEQ loc_9484 .text:00009468 MOV R0, 0xFFFFFFFF .text:0000946C B locret_9490 .text:0000946C ; --------------------------------------------------------------------------- .text:00009470 off_9470 DCD aExit0 ; DATA XREF: system+18r .text:00009470 ; "exit 0" .text:00009474 off_9474 DCD aSh ; DATA XREF: system+178r .text:00009474 ; "sh" .text:00009478 off_9478 DCD aC ; DATA XREF: system+180r .text:00009478 ; "-c" .text:0000947C off_947C DCD environ ; DATA XREF: system+1B8r .text:00009480 off_9480 DCD aBinSh ; DATA XREF: system+1BCr .text:00009480 ; "/bin/sh" .text:00009484 ; --------------------------------------------------------------------------- .text:00009484 .text:00009484 loc_9484 ; CODE XREF: system+270j .text:00009484 BL __errno_location .text:00009488 STR R6, [R0] .text:0000948C .text:0000948C loc_948C ; CODE XREF: system+260j .text:0000948C LDR R0, [R11,#var_2E0] .text:00009490 .text:00009490 locret_9490 ; CODE XREF: system+2Cj .text:00009490 ; system+7Cj ... .text:00009490 LDMDB R11, {R4-R11,SP,PC} .text:00009490 ; End of function system .text:00009490 .text:00009494 .text:00009494 ; =============== S U B R O U T I N E ======================================= .text:00009494 .text:00009494 ; Attributes: bp-based frame .text:00009494 .text:00009494 EXPORT printf .text:00009494 printf ; CODE XREF: read_data_from_usbd+70p .text:00009494 ; write_data_to_usbd+40p ... .text:00009494 .text:00009494 varg_r0 = 4 .text:00009494 varg_r1 = 8 .text:00009494 varg_r2 = 0xC .text:00009494 varg_r3 = 0x10 .text:00009494 .text:00009494 MOV R12, SP ; Alternative name is '_IO_printf' .text:00009498 STMFD SP!, {R0-R3} .text:0000949C STMFD SP!, {R11,R12,LR,PC} .text:000094A0 LDR R3, =stdout .text:000094A4 SUB R11, R12, #0x14 .text:000094A8 LDR R1, [R11,#varg_r0] .text:000094AC LDR R0, [R3] .text:000094B0 ADD R2, R11, #8 .text:000094B4 BL vfprintf .text:000094B8 B locret_94C0 .text:000094B8 ; --------------------------------------------------------------------------- .text:000094BC off_94BC DCD stdout ; DATA XREF: printf+Cr .text:000094C0 ; --------------------------------------------------------------------------- .text:000094C0 .text:000094C0 locret_94C0 ; CODE XREF: printf+24j .text:000094C0 LDMDB R11, {R11,SP,PC} .text:000094C0 ; End of function printf .text:000094C0 .text:000094C4 .text:000094C4 ; =============== S U B R O U T I N E ======================================= .text:000094C4 .text:000094C4 ; Attributes: bp-based frame .text:000094C4 .text:000094C4 EXPORT sscanf .text:000094C4 sscanf ; CODE XREF: main+5Cp .text:000094C4 ; main+80p ... .text:000094C4 .text:000094C4 varg_r1 = 4 .text:000094C4 varg_r2 = 8 .text:000094C4 varg_r3 = 0xC .text:000094C4 .text:000094C4 MOV R12, SP ; Alternative name is '_IO_sscanf' .text:000094C8 STMFD SP!, {R1-R3} .text:000094CC STMFD SP!, {R11,R12,LR,PC} .text:000094D0 SUB R11, R12, #0x10 .text:000094D4 LDR R1, [R11,#varg_r1] .text:000094D8 ADD R2, R11, #8 .text:000094DC BL vsscanf .text:000094E0 LDMDB R11, {R11,SP,PC} .text:000094E0 ; End of function sscanf .text:000094E0 .text:000094E4 .text:000094E4 ; =============== S U B R O U T I N E ======================================= .text:000094E4 .text:000094E4 ; Attributes: bp-based frame .text:000094E4 .text:000094E4 EXPORT perror .text:000094E4 perror ; CODE XREF: open_usbd_interface+30p .text:000094E4 ; open_fpga_interface+30p ... .text:000094E4 .text:000094E4 var_420 = -0x420 .text:000094E4 var_410 = -0x410 .text:000094E4 .text:000094E4 MOV R12, SP .text:000094E8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000094EC SUB R11, R12, #4 .text:000094F0 MOV R4, R0 .text:000094F4 SUB SP, SP, #0x400 .text:000094F8 SUB SP, SP, #4 .text:000094FC BL __errno_location .text:00009500 CMP R4, #0 .text:00009504 LDR R0, [R0] .text:00009508 BEQ loc_9518 .text:0000950C LDRB R3, [R4] .text:00009510 CMP R3, #0 .text:00009514 BNE loc_9524 .text:00009518 .text:00009518 loc_9518 ; CODE XREF: perror+24j .text:00009518 LDR R7, =dword_55A7C .text:0000951C MOV R4, R7 .text:00009520 B loc_9528 .text:00009524 ; --------------------------------------------------------------------------- .text:00009524 .text:00009524 loc_9524 ; CODE XREF: perror+30j .text:00009524 LDR R7, =asc_55A80 ; ": " .text:00009528 .text:00009528 loc_9528 ; CODE XREF: perror+3Cj .text:00009528 SUB R1, R11, #-var_410 .text:0000952C SUB R1, R1, #0xC .text:00009530 MOV R2, #0x400 .text:00009534 BL strerror_r .text:00009538 LDR R6, =stderr .text:0000953C MOV R5, R0 .text:00009540 LDR R0, [R6] .text:00009544 MOV R1, #0 .text:00009548 BL fwide .text:0000954C CMP R0, #0 .text:00009550 BLE loc_9580 .text:00009554 STR R5, [SP,#0x420+var_420] .text:00009558 LDR R0, [R6] .text:0000955C MOV R2, R4 .text:00009560 LDR R1, =asc_55A84 ; "%" .text:00009564 MOV R3, R7 .text:00009568 BL fwprintf .text:0000956C B locret_95A0 .text:0000956C ; --------------------------------------------------------------------------- .text:00009570 off_9570 DCD dword_55A7C ; DATA XREF: perror:loc_9518r .text:00009574 off_9574 DCD asc_55A80 ; DATA XREF: perror:loc_9524r .text:00009574 ; ": " .text:00009578 off_9578 DCD stderr ; DATA XREF: perror+54r .text:0000957C off_957C DCD asc_55A84 ; DATA XREF: perror+7Cr .text:0000957C ; "%" .text:00009580 ; --------------------------------------------------------------------------- .text:00009580 .text:00009580 loc_9580 ; CODE XREF: perror+6Cj .text:00009580 STR R5, [SP,#0x420+var_420] .text:00009584 LDR R0, [R6] .text:00009588 MOV R2, R4 .text:0000958C LDR R1, =aSSS ; "%s%s%s\n" .text:00009590 MOV R3, R7 .text:00009594 BL fprintf .text:00009598 B locret_95A0 .text:00009598 ; --------------------------------------------------------------------------- .text:0000959C off_959C DCD aSSS ; DATA XREF: perror+A8r .text:0000959C ; "%s%s%s\n" .text:000095A0 ; --------------------------------------------------------------------------- .text:000095A0 .text:000095A0 locret_95A0 ; CODE XREF: perror+88j .text:000095A0 ; perror+B4j .text:000095A0 LDMDB R11, {R4-R7,R11,SP,PC} .text:000095A0 ; End of function perror .text:000095A0 .text:000095A4 .text:000095A4 ; =============== S U B R O U T I N E ======================================= .text:000095A4 .text:000095A4 ; Attributes: bp-based frame .text:000095A4 .text:000095A4 WEAK fflush .text:000095A4 fflush ; CODE XREF: abort+94p .text:000095A4 ; __assert_fail+8Cp .text:000095A4 .text:000095A4 var_28 = -0x28 .text:000095A4 .text:000095A4 MOV R12, SP .text:000095A8 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000095AC SUB R11, R12, #4 .text:000095B0 SUBS R4, R0, #0 .text:000095B4 SUB SP, SP, #0x10 .text:000095B8 BNE loc_95C4 .text:000095BC BL _IO_flush_all .text:000095C0 B loc_9660 .text:000095C4 ; --------------------------------------------------------------------------- .text:000095C4 .text:000095C4 loc_95C4 ; CODE XREF: fflush+14j .text:000095C4 LDR R3, [R4] .text:000095C8 MOV R6, #0 .text:000095CC TST R3, #0x8000 .text:000095D0 BNE loc_95E0 .text:000095D4 LDR R3, =0 .text:000095D8 SUBS R6, R3, R6 .text:000095DC MOVNE R6, #1 .text:000095E0 .text:000095E0 loc_95E0 ; CODE XREF: fflush+2Cj .text:000095E0 CMP R6, #0 .text:000095E4 BEQ loc_95F8 .text:000095E8 SUB R0, R11, #-var_28 .text:000095EC LDR R1, =funlockfile .text:000095F0 MOV R2, R4 .text:000095F4 BL 0 .text:000095F8 .text:000095F8 loc_95F8 ; CODE XREF: fflush+40j .text:000095F8 LDR R3, [R4] .text:000095FC TST R3, #0x8000 .text:00009600 BNE loc_960C .text:00009604 MOV R0, R4 .text:00009608 BL flockfile .text:0000960C .text:0000960C loc_960C ; CODE XREF: fflush+5Cj .text:0000960C LDRB R3, [R4,#0x46] .text:00009610 MOV R3, R3,LSL#24 .text:00009614 ADD R3, R4, R3,ASR#24 .text:00009618 LDR R2, [R3,#0x94] .text:0000961C MOV R0, R4 .text:00009620 MOV LR, PC .text:00009624 LDR PC, [R2,#0x30] .text:00009628 CMP R0, #0 .text:0000962C LDR R3, [R4] .text:00009630 MOVEQ R5, #0 .text:00009634 MOVNE R5, 0xFFFFFFFF .text:00009638 TST R3, #0x8000 .text:0000963C BNE loc_9648 .text:00009640 MOV R0, R4 .text:00009644 BL funlockfile .text:00009648 .text:00009648 loc_9648 ; CODE XREF: fflush+98j .text:00009648 CMP R6, #0 .text:0000964C BEQ loc_965C .text:00009650 SUB R0, R11, #-var_28 .text:00009654 MOV R1, #0 .text:00009658 BL 0 .text:0000965C .text:0000965C loc_965C ; CODE XREF: fflush+A8j .text:0000965C MOV R0, R5 .text:00009660 .text:00009660 loc_9660 ; CODE XREF: fflush+1Cj .text:00009660 B locret_966C .text:00009660 ; --------------------------------------------------------------------------- .text:00009664 dword_9664 DCD 0 ; DATA XREF: fflush+30r .text:00009668 off_9668 DCD funlockfile ; DATA XREF: fflush+48r .text:0000966C ; --------------------------------------------------------------------------- .text:0000966C .text:0000966C locret_966C ; CODE XREF: fflush:loc_9660j .text:0000966C LDMDB R11, {R4-R6,R11,SP,PC} .text:0000966C ; End of function fflush .text:0000966C .text:00009670 .text:00009670 ; =============== S U B R O U T I N E ======================================= .text:00009670 .text:00009670 ; Attributes: bp-based frame .text:00009670 .text:00009670 WEAK vsscanf .text:00009670 vsscanf ; CODE XREF: sscanf+18p .text:00009670 .text:00009670 var_DC = -0xDC .text:00009670 var_D8 = -0xD8 .text:00009670 var_C0 = -0xC0 .text:00009670 var_78 = -0x78 .text:00009670 var_2C = -0x2C .text:00009670 .text:00009670 MOV R12, SP ; Alternative name is '__vsscanf' .text:00009674 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00009678 SUB R11, R12, #4 .text:0000967C SUB R3, R11, #-var_D8 .text:00009680 MOV R7, R0 .text:00009684 SUB R5, R11, #-var_C0 .text:00009688 MOV R0, R5 .text:0000968C SUB SP, SP, #0xBC .text:00009690 STR R3, [R11,#var_78] .text:00009694 MOV R4, #0 .text:00009698 MOV R8, R1 .text:0000969C STR R4, [SP,#0xDC+var_DC] .text:000096A0 MOV R1, R4 .text:000096A4 MOV R6, R2 .text:000096A8 MOV R2, 0xFFFFFFFF .text:000096AC MOV R3, R4 .text:000096B0 BL _IO_no_init .text:000096B4 LDR R3, =_IO_str_jumps .text:000096B8 STR R3, [R11,#var_2C] .text:000096BC MOV R0, R5 .text:000096C0 MOV R1, R7 .text:000096C4 MOV R2, R4 .text:000096C8 MOV R3, R4 .text:000096CC BL _IO_str_init_static .text:000096D0 MOV R0, R5 .text:000096D4 MOV R1, R8 .text:000096D8 MOV R2, R6 .text:000096DC MOV R3, R4 .text:000096E0 BL _IO_vfscanf .text:000096E4 B locret_96EC .text:000096E4 ; --------------------------------------------------------------------------- .text:000096E8 off_96E8 DCD _IO_str_jumps ; DATA XREF: vsscanf+44r .text:000096EC ; --------------------------------------------------------------------------- .text:000096EC .text:000096EC locret_96EC ; CODE XREF: vsscanf+74j .text:000096EC LDMDB R11, {R4-R8,R11,SP,PC} .text:000096EC ; End of function vsscanf .text:000096EC .text:000096F0 .text:000096F0 ; =============== S U B R O U T I N E ======================================= .text:000096F0 .text:000096F0 ; Attributes: bp-based frame .text:000096F0 .text:000096F0 EXPORT fwprintf .text:000096F0 fwprintf ; CODE XREF: perror+84p .text:000096F0 .text:000096F0 varg_r1 = 4 .text:000096F0 varg_r2 = 8 .text:000096F0 varg_r3 = 0xC .text:000096F0 .text:000096F0 MOV R12, SP .text:000096F4 STMFD SP!, {R1-R3} .text:000096F8 STMFD SP!, {R11,R12,LR,PC} .text:000096FC SUB R11, R12, #0x10 .text:00009700 LDR R1, [R11,#varg_r1] .text:00009704 ADD R2, R11, #8 .text:00009708 BL vfwprintf .text:0000970C LDMDB R11, {R11,SP,PC} .text:0000970C ; End of function fwprintf .text:0000970C .text:00009710 .text:00009710 ; =============== S U B R O U T I N E ======================================= .text:00009710 .text:00009710 ; Attributes: bp-based frame .text:00009710 .text:00009710 EXPORT fwide .text:00009710 fwide ; CODE XREF: perror+64p .text:00009710 .text:00009710 var_28 = -0x28 .text:00009710 .text:00009710 MOV R12, SP .text:00009714 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00009718 SUB R11, R12, #4 .text:0000971C CMP R1, #0 .text:00009720 MOVEQ R3, #0 .text:00009724 MOVNE R3, #1 .text:00009728 MOVGE R5, R3 .text:0000972C MOVLT R5, 0xFFFFFFFF .text:00009730 CMP R5, #0 .text:00009734 MOV R4, R0 .text:00009738 SUB SP, SP, #0x10 .text:0000973C LDR R0, [R4,#0x5C] .text:00009740 BEQ locret_97F8 .text:00009744 SUBS R2, R0, #0 .text:00009748 BNE locret_97F8 .text:0000974C LDR R3, [R4] .text:00009750 MOV R6, R2 .text:00009754 TST R3, #0x8000 .text:00009758 BNE loc_9768 .text:0000975C LDR R3, =0 .text:00009760 SUBS R6, R3, #0 .text:00009764 MOVNE R6, #1 .text:00009768 .text:00009768 loc_9768 ; CODE XREF: fwide+48j .text:00009768 CMP R6, #0 .text:0000976C BEQ loc_9780 .text:00009770 SUB R0, R11, #-var_28 .text:00009774 LDR R1, =funlockfile .text:00009778 MOV R2, R4 .text:0000977C BL 0 .text:00009780 .text:00009780 loc_9780 ; CODE XREF: fwide+5Cj .text:00009780 LDR R3, [R4] .text:00009784 TST R3, #0x8000 .text:00009788 BNE loc_9794 .text:0000978C MOV R0, R4 .text:00009790 BL flockfile .text:00009794 .text:00009794 loc_9794 ; CODE XREF: fwide+78j .text:00009794 CMP R5, #0 .text:00009798 BGE loc_97BC .text:0000979C LDR R3, [R4,#0x5C] .text:000097A0 CMP R3, #0 .text:000097A4 MOVEQ R3, 0xFFFFFFFF .text:000097A8 STREQ R3, [R4,#0x5C] .text:000097AC LDR R5, [R4,#0x5C] .text:000097B0 B loc_97CC .text:000097B0 ; --------------------------------------------------------------------------- .text:000097B4 dword_97B4 DCD 0 ; DATA XREF: fwide+4Cr .text:000097B8 off_97B8 DCD funlockfile ; DATA XREF: fwide+64r .text:000097BC ; --------------------------------------------------------------------------- .text:000097BC .text:000097BC loc_97BC ; CODE XREF: fwide+88j .text:000097BC MOV R0, R4 .text:000097C0 MOV R1, R5 .text:000097C4 BL _IO_fwide .text:000097C8 MOV R5, R0 .text:000097CC .text:000097CC loc_97CC ; CODE XREF: fwide+A0j .text:000097CC LDR R3, [R4] .text:000097D0 TST R3, #0x8000 .text:000097D4 BNE loc_97E0 .text:000097D8 MOV R0, R4 .text:000097DC BL funlockfile .text:000097E0 .text:000097E0 loc_97E0 ; CODE XREF: fwide+C4j .text:000097E0 CMP R6, #0 .text:000097E4 BEQ loc_97F4 .text:000097E8 SUB R0, R11, #-var_28 .text:000097EC MOV R1, #0 .text:000097F0 BL 0 .text:000097F4 .text:000097F4 loc_97F4 ; CODE XREF: fwide+D4j .text:000097F4 MOV R0, R5 .text:000097F8 .text:000097F8 locret_97F8 ; CODE XREF: fwide+30j .text:000097F8 ; fwide+38j .text:000097F8 LDMDB R11, {R4-R6,R11,SP,PC} .text:000097F8 ; End of function fwide .text:000097F8 .text:000097FC .text:000097FC ; =============== S U B R O U T I N E ======================================= .text:000097FC .text:000097FC ; Attributes: bp-based frame .text:000097FC .text:000097FC WEAK fcloseall .text:000097FC fcloseall ; CODE XREF: abort+158p .text:000097FC MOV R12, SP .text:00009800 STMFD SP!, {R11,R12,LR,PC} .text:00009804 SUB R11, R12, #4 .text:00009808 BL _cleanup .text:0000980C LDMDB R11, {R11,SP,PC} .text:0000980C ; End of function fcloseall .text:0000980C .text:00009810 .text:00009810 ; =============== S U B R O U T I N E ======================================= .text:00009810 .text:00009810 ; Attributes: bp-based frame .text:00009810 .text:00009810 EXPORT _IO_un_link .text:00009810 _IO_un_link ; CODE XREF: _IO_default_finish+A4p .text:00009810 ; fopen+7Cp ... .text:00009810 MOV R12, SP .text:00009814 STMFD SP!, {R4,R11,R12,LR,PC} .text:00009818 MOV R4, R0 .text:0000981C LDR R3, [R4] .text:00009820 SUB R11, R12, #4 .text:00009824 TST R3, #0x80 .text:00009828 LDMEQDB R11, {R4,R11,SP,PC} .text:0000982C LDR R3, =0 .text:00009830 CMP R3, #0 .text:00009834 BEQ loc_9844 .text:00009838 LDR R0, =list_all_lock .text:0000983C MOV LR, PC .text:00009840 MOV PC, R3 .text:00009844 .text:00009844 loc_9844 ; CODE XREF: _IO_un_link+24j .text:00009844 LDR R1, =_IO_list_all .text:00009848 LDR R3, [R1] .text:0000984C LDR R12, =0 .text:00009850 CMP R3, #0 .text:00009854 BEQ loc_988C .text:00009858 CMP R3, R4 .text:0000985C LDREQ R3, [R4,#0x34] .text:00009860 STREQ R3, [R1] .text:00009864 BEQ loc_988C .text:00009868 .text:00009868 loc_9868 ; CODE XREF: _IO_un_link+70j .text:00009868 LDR R2, [R1] .text:0000986C LDR R3, [R2,#0x34] .text:00009870 ADD R1, R2, #0x34 .text:00009874 CMP R3, #0 .text:00009878 BEQ loc_988C .text:0000987C CMP R3, R4 .text:00009880 BNE loc_9868 .text:00009884 LDR R3, [R4,#0x34] .text:00009888 STR R3, [R2,#0x34] .text:0000988C .text:0000988C loc_988C ; CODE XREF: _IO_un_link+44j .text:0000988C ; _IO_un_link+54j ... .text:0000988C CMP R12, #0 .text:00009890 BEQ loc_98A0 .text:00009894 LDR R0, =list_all_lock .text:00009898 MOV LR, PC .text:0000989C MOV PC, R12 .text:000098A0 .text:000098A0 loc_98A0 ; CODE XREF: _IO_un_link+80j .text:000098A0 LDR R3, [R4] .text:000098A4 BIC R3, R3, #0x80 .text:000098A8 STR R3, [R4] .text:000098AC LDMDB R11, {R4,R11,SP,PC} .text:000098AC ; End of function _IO_un_link .text:000098AC .text:000098AC ; --------------------------------------------------------------------------- .text:000098B0 off_98B0 DCD 0 ; DATA XREF: _IO_un_link+1Cr .text:000098B4 off_98B4 DCD list_all_lock ; DATA XREF: _IO_un_link+28r .text:000098B4 ; _IO_un_link+84r .text:000098B8 off_98B8 DCD _IO_list_all ; DATA XREF: _IO_un_link:loc_9844r .text:000098BC dword_98BC DCD 0 ; DATA XREF: _IO_un_link+3Cr .text:000098C0 .text:000098C0 ; =============== S U B R O U T I N E ======================================= .text:000098C0 .text:000098C0 ; Attributes: bp-based frame .text:000098C0 .text:000098C0 EXPORT _IO_link_in .text:000098C0 _IO_link_in ; CODE XREF: _IO_new_file_init+30p .text:000098C0 ; _IO_new_file_fopen+1B8p ... .text:000098C0 MOV R12, SP .text:000098C4 STMFD SP!, {R4,R11,R12,LR,PC} .text:000098C8 MOV R4, R0 .text:000098CC LDR R3, [R4] .text:000098D0 SUB R11, R12, #4 .text:000098D4 TST R3, #0x80 .text:000098D8 LDMNEDB R11, {R4,R11,SP,PC} .text:000098DC LDR R2, =0 .text:000098E0 ORR R3, R3, #0x80 .text:000098E4 STR R3, [R4] .text:000098E8 CMP R2, #0 .text:000098EC BEQ loc_98FC .text:000098F0 LDR R0, =list_all_lock .text:000098F4 MOV LR, PC .text:000098F8 MOV PC, R2 .text:000098FC .text:000098FC loc_98FC ; CODE XREF: _IO_link_in+2Cj .text:000098FC LDR R2, =_IO_list_all .text:00009900 LDR R3, [R2] .text:00009904 STR R3, [R4,#0x34] .text:00009908 LDR R3, =0 .text:0000990C STR R4, [R2] .text:00009910 CMP R3, #0 .text:00009914 LDMEQDB R11, {R4,R11,SP,PC} .text:00009918 LDR R0, =list_all_lock .text:0000991C MOV LR, PC .text:00009920 MOV PC, R3 .text:00009924 LDMDB R11, {R4,R11,SP,PC} .text:00009924 ; End of function _IO_link_in .text:00009924 .text:00009924 ; --------------------------------------------------------------------------- .text:00009928 off_9928 DCD 0 ; DATA XREF: _IO_link_in+1Cr .text:0000992C off_992C DCD list_all_lock ; DATA XREF: _IO_link_in+30r .text:0000992C ; _IO_link_in+58r .text:00009930 off_9930 DCD _IO_list_all ; DATA XREF: _IO_link_in:loc_98FCr .text:00009934 off_9934 DCD 0 ; DATA XREF: _IO_link_in+48r .text:00009938 .text:00009938 ; =============== S U B R O U T I N E ======================================= .text:00009938 .text:00009938 ; Attributes: bp-based frame .text:00009938 .text:00009938 EXPORT _IO_least_marker .text:00009938 _IO_least_marker ; CODE XREF: save_for_backup+14p .text:00009938 MOV R12, SP .text:0000993C STMFD SP!, {R11,R12,LR,PC} .text:00009940 LDR R3, [R0,#0xC] .text:00009944 SUB R11, R12, #4 .text:00009948 LDR R2, [R0,#0x30] .text:0000994C RSB R0, R3, R1 .text:00009950 CMP R2, #0 .text:00009954 LDMEQDB R11, {R11,SP,PC} .text:00009958 .text:00009958 loc_9958 ; CODE XREF: _IO_least_marker+34j .text:00009958 LDR R3, [R2,#8] .text:0000995C LDR R2, [R2] .text:00009960 CMP R3, R0 .text:00009964 MOVLT R0, R3 .text:00009968 CMP R2, #0 .text:0000996C BNE loc_9958 .text:00009970 LDMDB R11, {R11,SP,PC} .text:00009970 ; End of function _IO_least_marker .text:00009970 .text:00009974 .text:00009974 ; =============== S U B R O U T I N E ======================================= .text:00009974 .text:00009974 ; Attributes: bp-based frame .text:00009974 .text:00009974 EXPORT _IO_switch_to_main_get_area .text:00009974 _IO_switch_to_main_get_area ; CODE XREF: _IO_free_backup_area+1Cp .text:00009974 ; __underflow+88p ... .text:00009974 MOV R12, SP .text:00009978 STMFD SP!, {R11,R12,LR,PC} .text:0000997C LDR R3, [R0] .text:00009980 BIC R3, R3, #0x100 .text:00009984 STR R3, [R0] .text:00009988 LDR R3, [R0,#0x2C] .text:0000998C LDR R2, [R0,#8] .text:00009990 STR R3, [R0,#8] .text:00009994 STR R2, [R0,#0x2C] .text:00009998 LDR R3, [R0,#0x24] .text:0000999C LDR R2, [R0,#0xC] .text:000099A0 STR R3, [R0,#0xC] .text:000099A4 STR R3, [R0,#4] .text:000099A8 SUB R11, R12, #4 .text:000099AC STR R2, [R0,#0x24] .text:000099B0 LDMDB R11, {R11,SP,PC} .text:000099B0 ; End of function _IO_switch_to_main_get_area .text:000099B0 .text:000099B4 .text:000099B4 ; =============== S U B R O U T I N E ======================================= .text:000099B4 .text:000099B4 ; Attributes: bp-based frame .text:000099B4 .text:000099B4 EXPORT _IO_switch_to_backup_area .text:000099B4 _IO_switch_to_backup_area ; CODE XREF: _IO_seekmark+58p .text:000099B4 ; _IO_default_pbackfail+B8p .text:000099B4 MOV R12, SP .text:000099B8 STMFD SP!, {R11,R12,LR,PC} .text:000099BC LDR R3, [R0] .text:000099C0 ORR R3, R3, #0x100 .text:000099C4 STR R3, [R0] .text:000099C8 LDR R2, [R0,#0x2C] .text:000099CC LDR R1, [R0,#8] .text:000099D0 STR R2, [R0,#8] .text:000099D4 STR R1, [R0,#0x2C] .text:000099D8 LDR R3, [R0,#0x24] .text:000099DC LDR R1, [R0,#0xC] .text:000099E0 STR R3, [R0,#0xC] .text:000099E4 STR R2, [R0,#4] .text:000099E8 SUB R11, R12, #4 .text:000099EC STR R1, [R0,#0x24] .text:000099F0 LDMDB R11, {R11,SP,PC} .text:000099F0 ; End of function _IO_switch_to_backup_area .text:000099F0 .text:000099F4 .text:000099F4 ; =============== S U B R O U T I N E ======================================= .text:000099F4 .text:000099F4 ; Attributes: bp-based frame .text:000099F4 .text:000099F4 EXPORT _IO_switch_to_get_mode .text:000099F4 _IO_switch_to_get_mode ; CODE XREF: __underflow+58p .text:000099F4 ; __uflow+58p ... .text:000099F4 MOV R12, SP .text:000099F8 STMFD SP!, {R4,R11,R12,LR,PC} .text:000099FC MOV R4, R0 .text:00009A00 LDR R2, [R4,#0x14] .text:00009A04 LDR R3, [R4,#0x10] .text:00009A08 SUB R11, R12, #4 .text:00009A0C CMP R2, R3 .text:00009A10 BLS loc_9A38 .text:00009A14 LDRB R3, [R4,#0x46] .text:00009A18 MOV R3, R3,LSL#24 .text:00009A1C ADD R3, R4, R3,ASR#24 .text:00009A20 LDR R2, [R3,#0x94] .text:00009A24 MOV R1, 0xFFFFFFFF .text:00009A28 MOV LR, PC .text:00009A2C LDR PC, [R2,#0xC] .text:00009A30 CMN R0, #1 .text:00009A34 LDMEQDB R11, {R4,R11,SP,PC} .text:00009A38 .text:00009A38 loc_9A38 ; CODE XREF: _IO_switch_to_get_mode+1Cj .text:00009A38 LDR R3, [R4] .text:00009A3C TST R3, #0x100 .text:00009A40 LDRNE R3, [R4,#0x28] .text:00009A44 STRNE R3, [R4,#0xC] .text:00009A48 BNE loc_9A64 .text:00009A4C LDR R1, [R4,#0x14] .text:00009A50 LDR R3, [R4,#8] .text:00009A54 LDR R2, [R4,#0x1C] .text:00009A58 CMP R1, R3 .text:00009A5C STR R2, [R4,#0xC] .text:00009A60 STRHI R1, [R4,#8] .text:00009A64 .text:00009A64 loc_9A64 ; CODE XREF: _IO_switch_to_get_mode+54j .text:00009A64 LDR R2, [R4,#0x14] .text:00009A68 STR R2, [R4,#4] .text:00009A6C STR R2, [R4,#0x18] .text:00009A70 LDR R3, [R4] .text:00009A74 STR R2, [R4,#0x10] .text:00009A78 MOV R0, #0 .text:00009A7C BIC R3, R3, #0x800 .text:00009A80 STR R3, [R4] .text:00009A84 LDMDB R11, {R4,R11,SP,PC} .text:00009A84 ; End of function _IO_switch_to_get_mode .text:00009A84 .text:00009A88 .text:00009A88 ; =============== S U B R O U T I N E ======================================= .text:00009A88 .text:00009A88 ; Attributes: bp-based frame .text:00009A88 .text:00009A88 EXPORT _IO_free_backup_area .text:00009A88 _IO_free_backup_area ; CODE XREF: __underflow+D0p .text:00009A88 ; __uflow+D4p ... .text:00009A88 MOV R12, SP .text:00009A8C STMFD SP!, {R4,R11,R12,LR,PC} .text:00009A90 MOV R4, R0 .text:00009A94 LDR R3, [R4] .text:00009A98 SUB R11, R12, #4 .text:00009A9C TST R3, #0x100 .text:00009AA0 BEQ loc_9AA8 .text:00009AA4 BL _IO_switch_to_main_get_area .text:00009AA8 .text:00009AA8 loc_9AA8 ; CODE XREF: _IO_free_backup_area+18j .text:00009AA8 LDR R0, [R4,#0x24] .text:00009AAC BL free .text:00009AB0 MOV R3, #0 .text:00009AB4 STR R3, [R4,#0x24] .text:00009AB8 STR R3, [R4,#0x2C] .text:00009ABC STR R3, [R4,#0x28] .text:00009AC0 LDMDB R11, {R4,R11,SP,PC} .text:00009AC0 ; End of function _IO_free_backup_area .text:00009AC0 .text:00009AC4 .text:00009AC4 ; =============== S U B R O U T I N E ======================================= .text:00009AC4 .text:00009AC4 ; Attributes: bp-based frame .text:00009AC4 .text:00009AC4 EXPORT __overflow .text:00009AC4 __overflow ; CODE XREF: vfprintf+ADCp .text:00009AC4 ; vfprintf+1004p ... .text:00009AC4 MOV R12, SP .text:00009AC8 STMFD SP!, {R11,R12,LR,PC} .text:00009ACC MOV R2, R0 .text:00009AD0 LDR R3, [R2,#0x5C] .text:00009AD4 SUB R11, R12, #4 .text:00009AD8 CMP R3, #0 .text:00009ADC MOVEQ R3, 0xFFFFFFFF .text:00009AE0 STREQ R3, [R2,#0x5C] .text:00009AE4 LDRB R3, [R2,#0x46] .text:00009AE8 MOV R0, R2 .text:00009AEC MOV R3, R3,LSL#24 .text:00009AF0 ADD R3, R2, R3,ASR#24 .text:00009AF4 LDR R2, [R3,#0x94] .text:00009AF8 MOV LR, PC .text:00009AFC LDR PC, [R2,#0xC] .text:00009B00 LDMDB R11, {R11,SP,PC} .text:00009B00 ; End of function __overflow .text:00009B00 .text:00009B04 .text:00009B04 ; =============== S U B R O U T I N E ======================================= .text:00009B04 .text:00009B04 ; Attributes: bp-based frame .text:00009B04 .text:00009B04 save_for_backup ; CODE XREF: __underflow+ACp .text:00009B04 ; __uflow+B0p ... .text:00009B04 MOV R12, SP .text:00009B08 STMFD SP!, {R4-R12,LR,PC} .text:00009B0C SUB R11, R12, #4 .text:00009B10 MOV R4, R0 .text:00009B14 MOV R8, R1 .text:00009B18 BL _IO_least_marker .text:00009B1C LDR R2, [R4,#0xC] .text:00009B20 LDR R1, [R4,#0x2C] .text:00009B24 MOV R5, R0 .text:00009B28 LDR R0, [R4,#0x24] .text:00009B2C RSB R3, R2, R8 .text:00009B30 RSB R6, R5, R3 .text:00009B34 RSB R3, R0, R1 .text:00009B38 CMP R6, R3 .text:00009B3C BLS loc_9BC8 .text:00009B40 MOV R9, #0x64 .text:00009B44 ADD R0, R6, R9 .text:00009B48 BL malloc .text:00009B4C SUBS R7, R0, #0 .text:00009B50 MOVEQ R0, 0xFFFFFFFF .text:00009B54 LDMEQDB R11, {R4-R11,SP,PC} .text:00009B58 CMP R5, #0 .text:00009B5C BGE loc_9B8C .text:00009B60 ADD R3, R7, #0x64 .text:00009B64 MOV R0, R3 .text:00009B68 RSB R2, R5, #0 .text:00009B6C LDR R1, [R4,#0x2C] .text:00009B70 MOV R10, R3 .text:00009B74 ADD R1, R1, R5 .text:00009B78 BL mempcpy .text:00009B7C LDR R1, [R4,#0xC] .text:00009B80 RSB R2, R1, R8 .text:00009B84 BL mempcpy .text:00009B88 B loc_9BA8 .text:00009B8C ; --------------------------------------------------------------------------- .text:00009B8C .text:00009B8C loc_9B8C ; CODE XREF: save_for_backup+58j .text:00009B8C ADD R3, R7, #0x64 .text:00009B90 MOV R0, R3 .text:00009B94 MOV R2, R6 .text:00009B98 LDR R1, [R4,#0xC] .text:00009B9C MOV R10, R3 .text:00009BA0 ADD R1, R1, R5 .text:00009BA4 BL memcpy .text:00009BA8 .text:00009BA8 loc_9BA8 ; CODE XREF: save_for_backup+84j .text:00009BA8 LDR R0, [R4,#0x24] .text:00009BAC CMP R0, #0 .text:00009BB0 BEQ loc_9BB8 .text:00009BB4 BL free .text:00009BB8 .text:00009BB8 loc_9BB8 ; CODE XREF: save_for_backup+ACj .text:00009BB8 STR R7, [R4,#0x24] .text:00009BBC ADD R3, R10, R6 .text:00009BC0 STR R3, [R4,#0x2C] .text:00009BC4 B loc_9C18 .text:00009BC8 ; --------------------------------------------------------------------------- .text:00009BC8 .text:00009BC8 loc_9BC8 ; CODE XREF: save_for_backup+38j .text:00009BC8 RSB R9, R6, R3 .text:00009BCC CMP R5, #0 .text:00009BD0 BGE loc_9C00 .text:00009BD4 ADD R0, R0, R9 .text:00009BD8 ADD R1, R1, R5 .text:00009BDC RSB R2, R5, #0 .text:00009BE0 BL memmove .text:00009BE4 LDR R0, [R4,#0x24] .text:00009BE8 LDR R1, [R4,#0xC] .text:00009BEC ADD R0, R0, R9 .text:00009BF0 RSB R0, R5, R0 .text:00009BF4 RSB R2, R1, R8 .text:00009BF8 BL memcpy .text:00009BFC B loc_9C18 .text:00009C00 ; --------------------------------------------------------------------------- .text:00009C00 .text:00009C00 loc_9C00 ; CODE XREF: save_for_backup+CCj .text:00009C00 CMP R6, #0 .text:00009C04 BEQ loc_9C18 .text:00009C08 ADD R0, R0, R9 .text:00009C0C ADD R1, R2, R5 .text:00009C10 MOV R2, R6 .text:00009C14 BL memcpy .text:00009C18 .text:00009C18 loc_9C18 ; CODE XREF: save_for_backup+C0j .text:00009C18 ; save_for_backup+F8j ... .text:00009C18 LDR R0, [R4,#0x30] .text:00009C1C LDR R3, [R4,#0x24] .text:00009C20 LDR R2, [R4,#0xC] .text:00009C24 CMP R0, #0 .text:00009C28 ADD R3, R3, R9 .text:00009C2C RSB R1, R2, R8 .text:00009C30 STR R3, [R4,#0x28] .text:00009C34 BEQ loc_9C50 .text:00009C38 .text:00009C38 loc_9C38 ; CODE XREF: save_for_backup+148j .text:00009C38 LDR R3, [R0,#8] .text:00009C3C RSB R3, R1, R3 .text:00009C40 STR R3, [R0,#8] .text:00009C44 LDR R0, [R0] .text:00009C48 CMP R0, #0 .text:00009C4C BNE loc_9C38 .text:00009C50 .text:00009C50 loc_9C50 ; CODE XREF: save_for_backup+130j .text:00009C50 MOV R0, #0 .text:00009C54 LDMDB R11, {R4-R11,SP,PC} .text:00009C54 ; End of function save_for_backup .text:00009C54 .text:00009C58 .text:00009C58 ; =============== S U B R O U T I N E ======================================= .text:00009C58 .text:00009C58 ; Attributes: bp-based frame .text:00009C58 .text:00009C58 EXPORT __underflow .text:00009C58 __underflow ; CODE XREF: _IO_default_xsgetn+9Cp .text:00009C58 ; _IO_file_xsgetn+F0p ... .text:00009C58 MOV R12, SP .text:00009C5C STMFD SP!, {R4,R11,R12,LR,PC} .text:00009C60 MOV R4, R0 .text:00009C64 LDRB R3, [R4,#0x46] .text:00009C68 SUB R11, R12, #4 .text:00009C6C CMP R3, #0 .text:00009C70 BNE loc_9C90 .text:00009C74 LDR R3, [R4,#0x5C] .text:00009C78 MOV R2, 0xFFFFFFFF .text:00009C7C CMP R3, #0 .text:00009C80 STREQ R2, [R4,#0x5C] .text:00009C84 LDR R2, [R4,#0x5C] .text:00009C88 CMN R2, #1 .text:00009C8C BNE loc_9D10 .text:00009C90 .text:00009C90 loc_9C90 ; CODE XREF: __underflow+18j .text:00009C90 LDR R3, [R4,#0x5C] .text:00009C94 CMP R3, #0 .text:00009C98 MOVEQ R3, 0xFFFFFFFF .text:00009C9C STREQ R3, [R4,#0x5C] .text:00009CA0 LDR R3, [R4] .text:00009CA4 TST R3, #0x800 .text:00009CA8 BEQ loc_9CBC .text:00009CAC MOV R0, R4 .text:00009CB0 BL _IO_switch_to_get_mode .text:00009CB4 CMN R0, #1 .text:00009CB8 LDMEQDB R11, {R4,R11,SP,PC} .text:00009CBC .text:00009CBC loc_9CBC ; CODE XREF: __underflow+50j .text:00009CBC LDMIB R4, {R2,R3} .text:00009CC0 CMP R2, R3 .text:00009CC4 BCS loc_9CD0 .text:00009CC8 .text:00009CC8 loc_9CC8 ; CODE XREF: __underflow+94j .text:00009CC8 LDRB R0, [R2] .text:00009CCC LDMDB R11, {R4,R11,SP,PC} .text:00009CD0 ; --------------------------------------------------------------------------- .text:00009CD0 .text:00009CD0 loc_9CD0 ; CODE XREF: __underflow+6Cj .text:00009CD0 LDR R3, [R4] .text:00009CD4 TST R3, #0x100 .text:00009CD8 BEQ loc_9CF0 .text:00009CDC MOV R0, R4 .text:00009CE0 BL _IO_switch_to_main_get_area .text:00009CE4 LDMIB R4, {R2,R3} .text:00009CE8 CMP R2, R3 .text:00009CEC BCC loc_9CC8 .text:00009CF0 .text:00009CF0 loc_9CF0 ; CODE XREF: __underflow+80j .text:00009CF0 LDR R3, [R4,#0x30] .text:00009CF4 CMP R3, #0 .text:00009CF8 BEQ loc_9D18 .text:00009CFC LDR R1, [R4,#8] .text:00009D00 MOV R0, R4 .text:00009D04 BL save_for_backup .text:00009D08 CMP R0, #0 .text:00009D0C BEQ loc_9D2C .text:00009D10 .text:00009D10 loc_9D10 ; CODE XREF: __underflow+34j .text:00009D10 MOV R0, 0xFFFFFFFF .text:00009D14 LDMDB R11, {R4,R11,SP,PC} .text:00009D18 ; --------------------------------------------------------------------------- .text:00009D18 .text:00009D18 loc_9D18 ; CODE XREF: __underflow+A0j .text:00009D18 LDR R3, [R4,#0x24] .text:00009D1C CMP R3, #0 .text:00009D20 BEQ loc_9D2C .text:00009D24 MOV R0, R4 .text:00009D28 BL _IO_free_backup_area .text:00009D2C .text:00009D2C loc_9D2C ; CODE XREF: __underflow+B4j .text:00009D2C ; __underflow+C8j .text:00009D2C LDRB R3, [R4,#0x46] .text:00009D30 MOV R3, R3,LSL#24 .text:00009D34 ADD R3, R4, R3,ASR#24 .text:00009D38 LDR R2, [R3,#0x94] .text:00009D3C MOV R0, R4 .text:00009D40 MOV LR, PC .text:00009D44 LDR PC, [R2,#0x10] .text:00009D48 LDMDB R11, {R4,R11,SP,PC} .text:00009D48 ; End of function __underflow .text:00009D48 .text:00009D4C .text:00009D4C ; =============== S U B R O U T I N E ======================================= .text:00009D4C .text:00009D4C ; Attributes: bp-based frame .text:00009D4C .text:00009D4C EXPORT __uflow .text:00009D4C __uflow ; CODE XREF: _IO_vfscanf+194p .text:00009D4C ; _IO_vfscanf+27Cp ... .text:00009D4C MOV R12, SP .text:00009D50 STMFD SP!, {R4,R11,R12,LR,PC} .text:00009D54 MOV R4, R0 .text:00009D58 LDRB R3, [R4,#0x46] .text:00009D5C SUB R11, R12, #4 .text:00009D60 CMP R3, #0 .text:00009D64 BNE loc_9D84 .text:00009D68 LDR R3, [R4,#0x5C] .text:00009D6C MOV R2, 0xFFFFFFFF .text:00009D70 CMP R3, #0 .text:00009D74 STREQ R2, [R4,#0x5C] .text:00009D78 LDR R2, [R4,#0x5C] .text:00009D7C CMN R2, #1 .text:00009D80 BNE loc_9E08 .text:00009D84 .text:00009D84 loc_9D84 ; CODE XREF: __uflow+18j .text:00009D84 LDR R3, [R4,#0x5C] .text:00009D88 CMP R3, #0 .text:00009D8C MOVEQ R3, 0xFFFFFFFF .text:00009D90 STREQ R3, [R4,#0x5C] .text:00009D94 LDR R3, [R4] .text:00009D98 TST R3, #0x800 .text:00009D9C BEQ loc_9DB0 .text:00009DA0 MOV R0, R4 .text:00009DA4 BL _IO_switch_to_get_mode .text:00009DA8 CMN R0, #1 .text:00009DAC LDMEQDB R11, {R4,R11,SP,PC} .text:00009DB0 .text:00009DB0 loc_9DB0 ; CODE XREF: __uflow+50j .text:00009DB0 LDMIB R4, {R2,R3} .text:00009DB4 CMP R2, R3 .text:00009DB8 BCS loc_9DC8 .text:00009DBC .text:00009DBC loc_9DBC ; CODE XREF: __uflow+98j .text:00009DBC LDRB R0, [R2],#1 .text:00009DC0 STR R2, [R4,#4] .text:00009DC4 LDMDB R11, {R4,R11,SP,PC} .text:00009DC8 ; --------------------------------------------------------------------------- .text:00009DC8 .text:00009DC8 loc_9DC8 ; CODE XREF: __uflow+6Cj .text:00009DC8 LDR R3, [R4] .text:00009DCC TST R3, #0x100 .text:00009DD0 BEQ loc_9DE8 .text:00009DD4 MOV R0, R4 .text:00009DD8 BL _IO_switch_to_main_get_area .text:00009DDC LDMIB R4, {R2,R3} .text:00009DE0 CMP R2, R3 .text:00009DE4 BCC loc_9DBC .text:00009DE8 .text:00009DE8 loc_9DE8 ; CODE XREF: __uflow+84j .text:00009DE8 LDR R3, [R4,#0x30] .text:00009DEC CMP R3, #0 .text:00009DF0 BEQ loc_9E10 .text:00009DF4 LDR R1, [R4,#8] .text:00009DF8 MOV R0, R4 .text:00009DFC BL save_for_backup .text:00009E00 CMP R0, #0 .text:00009E04 BEQ loc_9E24 .text:00009E08 .text:00009E08 loc_9E08 ; CODE XREF: __uflow+34j .text:00009E08 MOV R0, 0xFFFFFFFF .text:00009E0C LDMDB R11, {R4,R11,SP,PC} .text:00009E10 ; --------------------------------------------------------------------------- .text:00009E10 .text:00009E10 loc_9E10 ; CODE XREF: __uflow+A4j .text:00009E10 LDR R3, [R4,#0x24] .text:00009E14 CMP R3, #0 .text:00009E18 BEQ loc_9E24 .text:00009E1C MOV R0, R4 .text:00009E20 BL _IO_free_backup_area .text:00009E24 .text:00009E24 loc_9E24 ; CODE XREF: __uflow+B8j .text:00009E24 ; __uflow+CCj .text:00009E24 LDRB R3, [R4,#0x46] .text:00009E28 MOV R3, R3,LSL#24 .text:00009E2C ADD R3, R4, R3,ASR#24 .text:00009E30 LDR R2, [R3,#0x94] .text:00009E34 MOV R0, R4 .text:00009E38 MOV LR, PC .text:00009E3C LDR PC, [R2,#0x14] .text:00009E40 LDMDB R11, {R4,R11,SP,PC} .text:00009E40 ; End of function __uflow .text:00009E40 .text:00009E44 .text:00009E44 ; =============== S U B R O U T I N E ======================================= .text:00009E44 .text:00009E44 ; Attributes: bp-based frame .text:00009E44 .text:00009E44 EXPORT _IO_setb .text:00009E44 _IO_setb ; CODE XREF: _IO_doallocbuf+68p .text:00009E44 ; _IO_default_setbuf+78p ... .text:00009E44 MOV R12, SP .text:00009E48 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00009E4C SUB R11, R12, #4 .text:00009E50 MOV R4, R0 .text:00009E54 MOV R6, R1 .text:00009E58 MOV R7, R2 .text:00009E5C LDR R12, [R4,#0x1C] .text:00009E60 MOV R5, R3 .text:00009E64 CMP R12, #0 .text:00009E68 BEQ loc_9E98 .text:00009E6C LDR R3, [R4] .text:00009E70 TST R3, #1 .text:00009E74 BNE loc_9E98 .text:00009E78 LDR R1, [R4,#0x20] .text:00009E7C MOV R0, R12 .text:00009E80 RSB R1, R12, R1 .text:00009E84 ADD R1, R1, #0xFF0 .text:00009E88 ADD R1, R1, #0xF .text:00009E8C BIC R1, R1, #0xFF0 .text:00009E90 BIC R1, R1, #0xF .text:00009E94 BL munmap .text:00009E98 .text:00009E98 loc_9E98 ; CODE XREF: _IO_setb+24j .text:00009E98 ; _IO_setb+30j .text:00009E98 STR R6, [R4,#0x1C] .text:00009E9C CMP R5, #0 .text:00009EA0 STR R7, [R4,#0x20] .text:00009EA4 LDRNE R3, [R4] .text:00009EA8 BICNE R3, R3, #1 .text:00009EAC STRNE R3, [R4] .text:00009EB0 LDREQ R3, [R4] .text:00009EB4 ORREQ R3, R3, #1 .text:00009EB8 STREQ R3, [R4] .text:00009EBC LDMDB R11, {R4-R7,R11,SP,PC} .text:00009EBC ; End of function _IO_setb .text:00009EBC .text:00009EC0 .text:00009EC0 ; =============== S U B R O U T I N E ======================================= .text:00009EC0 .text:00009EC0 ; Attributes: bp-based frame .text:00009EC0 .text:00009EC0 EXPORT _IO_doallocbuf .text:00009EC0 _IO_doallocbuf ; CODE XREF: _IO_wfile_underflow+160p .text:00009EC0 ; _IO_wfile_overflow+90p ... .text:00009EC0 MOV R12, SP .text:00009EC4 STMFD SP!, {R4,R11,R12,LR,PC} .text:00009EC8 MOV R4, R0 .text:00009ECC LDR R3, [R4,#0x1C] .text:00009ED0 SUB R11, R12, #4 .text:00009ED4 CMP R3, #0 .text:00009ED8 LDMNEDB R11, {R4,R11,SP,PC} .text:00009EDC LDR R3, [R4] .text:00009EE0 TST R3, #2 .text:00009EE4 BEQ loc_9EF4 .text:00009EE8 LDR R3, [R4,#0x5C] .text:00009EEC CMP R3, #0 .text:00009EF0 BLE loc_9F18 .text:00009EF4 .text:00009EF4 loc_9EF4 ; CODE XREF: _IO_doallocbuf+24j .text:00009EF4 LDRB R3, [R4,#0x46] .text:00009EF8 MOV R3, R3,LSL#24 .text:00009EFC ADD R3, R4, R3,ASR#24 .text:00009F00 LDR R2, [R3,#0x94] .text:00009F04 MOV R0, R4 .text:00009F08 MOV LR, PC .text:00009F0C LDR PC, [R2,#0x34] .text:00009F10 CMN R0, #1 .text:00009F14 LDMNEDB R11, {R4,R11,SP,PC} .text:00009F18 .text:00009F18 loc_9F18 ; CODE XREF: _IO_doallocbuf+30j .text:00009F18 MOV R0, R4 .text:00009F1C ADD R1, R0, #0x47 .text:00009F20 ADD R2, R0, #0x48 .text:00009F24 MOV R3, #0 .text:00009F28 BL _IO_setb .text:00009F2C LDMDB R11, {R4,R11,SP,PC} .text:00009F2C ; End of function _IO_doallocbuf .text:00009F2C .text:00009F30 .text:00009F30 ; =============== S U B R O U T I N E ======================================= .text:00009F30 .text:00009F30 ; Attributes: bp-based frame .text:00009F30 .text:00009F30 EXPORT _IO_default_underflow .text:00009F30 _IO_default_underflow .text:00009F30 MOV R12, SP .text:00009F34 STMFD SP!, {R11,R12,LR,PC} .text:00009F38 SUB R11, R12, #4 .text:00009F3C MOV R0, 0xFFFFFFFF .text:00009F40 LDMDB R11, {R11,SP,PC} .text:00009F40 ; End of function _IO_default_underflow .text:00009F40 .text:00009F44 .text:00009F44 ; =============== S U B R O U T I N E ======================================= .text:00009F44 .text:00009F44 ; Attributes: bp-based frame .text:00009F44 .text:00009F44 EXPORT _IO_default_uflow .text:00009F44 _IO_default_uflow .text:00009F44 MOV R12, SP .text:00009F48 STMFD SP!, {R4,R11,R12,LR,PC} .text:00009F4C MOV R4, R0 .text:00009F50 LDRB R3, [R4,#0x46] .text:00009F54 SUB R11, R12, #4 .text:00009F58 MOV R3, R3,LSL#24 .text:00009F5C ADD R3, R4, R3,ASR#24 .text:00009F60 LDR R2, [R3,#0x94] .text:00009F64 MOV LR, PC .text:00009F68 LDR PC, [R2,#0x10] .text:00009F6C CMN R0, #1 .text:00009F70 LDMEQDB R11, {R4,R11,SP,PC} .text:00009F74 LDR R3, [R4,#4] .text:00009F78 LDRB R0, [R3],#1 .text:00009F7C STR R3, [R4,#4] .text:00009F80 LDMDB R11, {R4,R11,SP,PC} .text:00009F80 ; End of function _IO_default_uflow .text:00009F80 .text:00009F84 .text:00009F84 ; =============== S U B R O U T I N E ======================================= .text:00009F84 .text:00009F84 ; Attributes: bp-based frame .text:00009F84 .text:00009F84 EXPORT _IO_default_xsputn .text:00009F84 _IO_default_xsputn ; CODE XREF: _IO_new_file_xsputn+174p .text:00009F84 MOV R12, SP .text:00009F88 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00009F8C SUB R11, R12, #4 .text:00009F90 MOV R7, R1 .text:00009F94 MOV R8, R2 .text:00009F98 SUBS R6, R8, #0 .text:00009F9C MOV R5, R0 .text:00009FA0 MOVEQ R0, R8 .text:00009FA4 LDMEQDB R11, {R4-R8,R11,SP,PC} .text:00009FA8 .text:00009FA8 loc_9FA8 ; CODE XREF: _IO_default_xsputn+BCj .text:00009FA8 ADD R3, R5, #0x18 .text:00009FAC LDMDA R3, {R3,R4} .text:00009FB0 SUB R4, R4, R3 .text:00009FB4 LDR R0, [R5,#0x14] .text:00009FB8 CMP R4, #0 .text:00009FBC BLE loc_A010 .text:00009FC0 CMP R4, R6 .text:00009FC4 MOVCS R4, R6 .text:00009FC8 CMP R4, #0x14 .text:00009FCC BLE loc_9FE4 .text:00009FD0 MOV R1, R7 .text:00009FD4 ADD R7, R7, R4 .text:00009FD8 MOV R2, R4 .text:00009FDC BL mempcpy .text:00009FE0 B loc_A008 .text:00009FE4 ; --------------------------------------------------------------------------- .text:00009FE4 .text:00009FE4 loc_9FE4 ; CODE XREF: _IO_default_xsputn+48j .text:00009FE4 CMP R4, #0 .text:00009FE8 MOVLE R4, #0 .text:00009FEC BLE loc_A00C .text:00009FF0 SUBS R2, R4, #1 .text:00009FF4 BMI loc_A008 .text:00009FF8 .text:00009FF8 loc_9FF8 ; CODE XREF: _IO_default_xsputn+80j .text:00009FF8 LDRB R3, [R7],#1 .text:00009FFC SUBS R2, R2, #1 .text:0000A000 STRB R3, [R0],#1 .text:0000A004 BPL loc_9FF8 .text:0000A008 .text:0000A008 loc_A008 ; CODE XREF: _IO_default_xsputn+5Cj .text:0000A008 ; _IO_default_xsputn+70j .text:0000A008 STR R0, [R5,#0x14] .text:0000A00C .text:0000A00C loc_A00C ; CODE XREF: _IO_default_xsputn+68j .text:0000A00C RSB R6, R4, R6 .text:0000A010 .text:0000A010 loc_A010 ; CODE XREF: _IO_default_xsputn+38j .text:0000A010 CMP R6, #0 .text:0000A014 BEQ loc_A044 .text:0000A018 LDRB R3, [R5,#0x46] .text:0000A01C LDRB R1, [R7],#1 .text:0000A020 MOV R3, R3,LSL#24 .text:0000A024 ADD R3, R5, R3,ASR#24 .text:0000A028 LDR R2, [R3,#0x94] .text:0000A02C MOV R0, R5 .text:0000A030 MOV LR, PC .text:0000A034 LDR PC, [R2,#0xC] .text:0000A038 CMN R0, #1 .text:0000A03C SUBNE R6, R6, #1 .text:0000A040 BNE loc_9FA8 .text:0000A044 .text:0000A044 loc_A044 ; CODE XREF: _IO_default_xsputn+90j .text:0000A044 RSB R0, R6, R8 .text:0000A048 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000A048 ; End of function _IO_default_xsputn .text:0000A048 .text:0000A04C .text:0000A04C ; =============== S U B R O U T I N E ======================================= .text:0000A04C .text:0000A04C ; Attributes: bp-based frame .text:0000A04C .text:0000A04C EXPORT _IO_sgetn .text:0000A04C _IO_sgetn ; CODE XREF: fread_unlocked+2Cp .text:0000A04C MOV R12, SP .text:0000A050 STMFD SP!, {R11,R12,LR,PC} .text:0000A054 SUB R11, R12, #4 .text:0000A058 MOV R3, R0 .text:0000A05C LDRB R12, [R3,#0x46] .text:0000A060 MOV R12, R12,LSL#24 .text:0000A064 ADD R3, R3, R12,ASR#24 .text:0000A068 LDR R12, [R3,#0x94] .text:0000A06C MOV LR, PC .text:0000A070 LDR PC, [R12,#0x20] .text:0000A074 LDMDB R11, {R11,SP,PC} .text:0000A074 ; End of function _IO_sgetn .text:0000A074 .text:0000A078 .text:0000A078 ; =============== S U B R O U T I N E ======================================= .text:0000A078 .text:0000A078 ; Attributes: bp-based frame .text:0000A078 .text:0000A078 EXPORT _IO_default_xsgetn .text:0000A078 _IO_default_xsgetn .text:0000A078 MOV R12, SP .text:0000A07C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000A080 SUB R11, R12, #4 .text:0000A084 MOV R5, R0 .text:0000A088 MOV R8, R2 .text:0000A08C MOV R6, R8 .text:0000A090 MOV R7, R1 .text:0000A094 .text:0000A094 loc_A094 ; CODE XREF: _IO_default_xsgetn+A4j .text:0000A094 ADD R3, R5, #8 .text:0000A098 LDMDA R3, {R3,R4} .text:0000A09C SUB R4, R4, R3 .text:0000A0A0 LDR R1, [R5,#4] .text:0000A0A4 CMP R4, #0 .text:0000A0A8 BLE loc_A108 .text:0000A0AC CMP R4, R6 .text:0000A0B0 MOVCS R4, R6 .text:0000A0B4 CMP R4, #0x14 .text:0000A0B8 BLE loc_A0DC .text:0000A0BC MOV R0, R7 .text:0000A0C0 MOV R2, R4 .text:0000A0C4 BL mempcpy .text:0000A0C8 LDR R3, [R5,#4] .text:0000A0CC MOV R7, R0 .text:0000A0D0 ADD R3, R3, R4 .text:0000A0D4 STR R3, [R5,#4] .text:0000A0D8 B loc_A104 .text:0000A0DC ; --------------------------------------------------------------------------- .text:0000A0DC .text:0000A0DC loc_A0DC ; CODE XREF: _IO_default_xsgetn+40j .text:0000A0DC CMP R4, #0 .text:0000A0E0 MOVLE R4, #0 .text:0000A0E4 BLE loc_A104 .text:0000A0E8 SUBS R2, R4, #1 .text:0000A0EC BMI loc_A100 .text:0000A0F0 .text:0000A0F0 loc_A0F0 ; CODE XREF: _IO_default_xsgetn+84j .text:0000A0F0 LDRB R3, [R1],#1 .text:0000A0F4 SUBS R2, R2, #1 .text:0000A0F8 STRB R3, [R7],#1 .text:0000A0FC BPL loc_A0F0 .text:0000A100 .text:0000A100 loc_A100 ; CODE XREF: _IO_default_xsgetn+74j .text:0000A100 STR R1, [R5,#4] .text:0000A104 .text:0000A104 loc_A104 ; CODE XREF: _IO_default_xsgetn+60j .text:0000A104 ; _IO_default_xsgetn+6Cj .text:0000A104 RSB R6, R4, R6 .text:0000A108 .text:0000A108 loc_A108 ; CODE XREF: _IO_default_xsgetn+30j .text:0000A108 CMP R6, #0 .text:0000A10C BEQ loc_A120 .text:0000A110 MOV R0, R5 .text:0000A114 BL __underflow .text:0000A118 CMN R0, #1 .text:0000A11C BNE loc_A094 .text:0000A120 .text:0000A120 loc_A120 ; CODE XREF: _IO_default_xsgetn+94j .text:0000A120 RSB R0, R6, R8 .text:0000A124 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000A124 ; End of function _IO_default_xsgetn .text:0000A124 .text:0000A128 .text:0000A128 ; =============== S U B R O U T I N E ======================================= .text:0000A128 .text:0000A128 ; Attributes: bp-based frame .text:0000A128 .text:0000A128 EXPORT _IO_default_setbuf .text:0000A128 _IO_default_setbuf ; CODE XREF: _IO_new_file_setbuf+10p .text:0000A128 MOV R12, SP .text:0000A12C STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000A130 SUB R11, R12, #4 .text:0000A134 MOV R4, R0 .text:0000A138 LDRB R3, [R4,#0x46] .text:0000A13C MOV R6, R1 .text:0000A140 MOV R3, R3,LSL#24 .text:0000A144 ADD R3, R4, R3,ASR#24 .text:0000A148 LDR R1, [R3,#0x94] .text:0000A14C MOV R5, R2 .text:0000A150 MOV LR, PC .text:0000A154 LDR PC, [R1,#0x30] .text:0000A158 CMN R0, #1 .text:0000A15C MOVEQ R0, #0 .text:0000A160 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000A164 CMP R5, #0 .text:0000A168 MOVNE R3, #0 .text:0000A16C MOVEQ R3, #1 .text:0000A170 CMP R6, #0 .text:0000A174 MOVNE R12, R3 .text:0000A178 MOVEQ R12, #1 .text:0000A17C CMP R12, #0 .text:0000A180 BEQ loc_A1A8 .text:0000A184 LDR R3, [R4] .text:0000A188 ORR R3, R3, #2 .text:0000A18C STR R3, [R4] .text:0000A190 MOV R0, R4 .text:0000A194 ADD R1, R4, #0x47 .text:0000A198 ADD R2, R4, #0x48 .text:0000A19C MOV R3, #0 .text:0000A1A0 BL _IO_setb .text:0000A1A4 B loc_A1C8 .text:0000A1A8 ; --------------------------------------------------------------------------- .text:0000A1A8 .text:0000A1A8 loc_A1A8 ; CODE XREF: _IO_default_setbuf+58j .text:0000A1A8 LDR R3, [R4] .text:0000A1AC BIC R3, R3, #2 .text:0000A1B0 STR R3, [R4] .text:0000A1B4 MOV R0, R4 .text:0000A1B8 MOV R1, R6 .text:0000A1BC ADD R2, R1, R5 .text:0000A1C0 MOV R3, R12 .text:0000A1C4 BL _IO_setb .text:0000A1C8 .text:0000A1C8 loc_A1C8 ; CODE XREF: _IO_default_setbuf+7Cj .text:0000A1C8 MOV R3, #0 .text:0000A1CC STR R3, [R4,#0x18] .text:0000A1D0 STR R3, [R4,#0x14] .text:0000A1D4 STR R3, [R4,#0x10] .text:0000A1D8 STR R3, [R4,#8] .text:0000A1DC STR R3, [R4,#4] .text:0000A1E0 MOV R0, R4 .text:0000A1E4 STR R3, [R4,#0xC] .text:0000A1E8 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000A1E8 ; End of function _IO_default_setbuf .text:0000A1E8 .text:0000A1EC .text:0000A1EC ; =============== S U B R O U T I N E ======================================= .text:0000A1EC .text:0000A1EC ; Attributes: bp-based frame .text:0000A1EC .text:0000A1EC EXPORT _IO_default_seekpos .text:0000A1EC _IO_default_seekpos .text:0000A1EC .text:0000A1EC var_14 = -0x14 .text:0000A1EC .text:0000A1EC MOV R12, SP .text:0000A1F0 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A1F4 SUB R11, R12, #4 .text:0000A1F8 SUB SP, SP, #4 .text:0000A1FC LDRB R12, [R0,#0x46] .text:0000A200 MOV R12, R12,LSL#24 .text:0000A204 ADD R12, R0, R12,ASR#24 .text:0000A208 LDR R4, [R12,#0x94] .text:0000A20C STR R3, [SP,#0x14+var_14] .text:0000A210 MOV R3, #0 .text:0000A214 MOV LR, PC .text:0000A218 LDR PC, [R4,#0x24] .text:0000A21C LDMDB R11, {R4,R11,SP,PC} .text:0000A21C ; End of function _IO_default_seekpos .text:0000A21C .text:0000A220 .text:0000A220 ; =============== S U B R O U T I N E ======================================= .text:0000A220 .text:0000A220 ; Attributes: bp-based frame .text:0000A220 .text:0000A220 EXPORT _IO_default_doallocate .text:0000A220 _IO_default_doallocate .text:0000A220 .text:0000A220 var_1C = -0x1C .text:0000A220 var_18 = -0x18 .text:0000A220 .text:0000A220 MOV R12, SP .text:0000A224 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000A228 SUB R11, R12, #4 .text:0000A22C MOV R5, R0 .text:0000A230 SUB SP, SP, #8 .text:0000A234 MOV R4, 0xFFFFFFFF .text:0000A238 STR R4, [SP,#0x1C+var_1C] .text:0000A23C MOV R0, #0 .text:0000A240 STR R0, [SP,#0x1C+var_18] .text:0000A244 MOV R1, #0x2000 .text:0000A248 MOV R2, #3 .text:0000A24C MOV R3, #0x22 .text:0000A250 BL mmap .text:0000A254 MOV R1, R0 .text:0000A258 CMP R1, R4 .text:0000A25C BEQ loc_A278 .text:0000A260 MOV R0, R5 .text:0000A264 ADD R2, R1, #0x2000 .text:0000A268 MOV R3, #1 .text:0000A26C BL _IO_setb .text:0000A270 MOV R0, #1 .text:0000A274 B locret_A27C .text:0000A278 ; --------------------------------------------------------------------------- .text:0000A278 .text:0000A278 loc_A278 ; CODE XREF: _IO_default_doallocate+3Cj .text:0000A278 MOV R0, R4 .text:0000A27C .text:0000A27C locret_A27C ; CODE XREF: _IO_default_doallocate+54j .text:0000A27C LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A27C ; End of function _IO_default_doallocate .text:0000A27C .text:0000A280 .text:0000A280 ; =============== S U B R O U T I N E ======================================= .text:0000A280 .text:0000A280 ; Attributes: bp-based frame .text:0000A280 .text:0000A280 EXPORT _IO_init .text:0000A280 _IO_init .text:0000A280 .text:0000A280 var_10 = -0x10 .text:0000A280 .text:0000A280 MOV R12, SP .text:0000A284 STMFD SP!, {R11,R12,LR,PC} .text:0000A288 MOV R3, #0 .text:0000A28C SUB SP, SP, #4 .text:0000A290 STR R3, [SP,#0x10+var_10] .text:0000A294 SUB R11, R12, #4 .text:0000A298 MOV R2, 0xFFFFFFFF .text:0000A29C BL _IO_no_init .text:0000A2A0 LDMDB R11, {R11,SP,PC} .text:0000A2A0 ; End of function _IO_init .text:0000A2A0 .text:0000A2A4 .text:0000A2A4 ; =============== S U B R O U T I N E ======================================= .text:0000A2A4 .text:0000A2A4 ; Attributes: bp-based frame .text:0000A2A4 .text:0000A2A4 EXPORT _IO_no_init .text:0000A2A4 _IO_no_init ; CODE XREF: vsscanf+40p .text:0000A2A4 ; _IO_init+1Cp ... .text:0000A2A4 .text:0000A2A4 var_28 = -0x28 .text:0000A2A4 arg_0 = 4 .text:0000A2A4 .text:0000A2A4 MOV R12, SP .text:0000A2A8 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000A2AC ORR R1, R1, #0xFB000000 .text:0000A2B0 ORR R1, R1, #0xAD0000 .text:0000A2B4 MOV R5, R0 .text:0000A2B8 SUB SP, SP, #4 .text:0000A2BC STR R1, [R5] .text:0000A2C0 MOV R6, #0 .text:0000A2C4 STR R6, [R5,#0x1C] .text:0000A2C8 STR R6, [R5,#0x20] .text:0000A2CC STR R6, [R5,#0xC] .text:0000A2D0 STR R6, [R5,#4] .text:0000A2D4 STR R6, [R5,#8] .text:0000A2D8 STR R6, [R5,#0x10] .text:0000A2DC STR R6, [R5,#0x14] .text:0000A2E0 STR R6, [R5,#0x18] .text:0000A2E4 STR R6, [R5,#0x34] .text:0000A2E8 STR R6, [R5,#0x24] .text:0000A2EC STR R6, [R5,#0x28] .text:0000A2F0 STR R6, [R5,#0x2C] .text:0000A2F4 STR R6, [R5,#0x30] .text:0000A2F8 MOV R1, R6 .text:0000A2FC STRB R1, [R5,#0x44] .text:0000A300 STRB R6, [R5,#0x45] .text:0000A304 STRB R1, [R5,#0x46] .text:0000A308 SUB R11, R12, #4 .text:0000A30C MOV R8, R2 .text:0000A310 MOV R10, R3 .text:0000A314 LDR R7, =0 .text:0000A318 CMP R7, R6 .text:0000A31C BEQ loc_A350 .text:0000A320 SUB R4, R11, #-var_28 .text:0000A324 MOV R0, R4 .text:0000A328 BL 0 .text:0000A32C MOV R0, R4 .text:0000A330 MOV R1, #1 .text:0000A334 BL 0 .text:0000A338 LDR R0, [R5,#0x48] .text:0000A33C MOV R1, R4 .text:0000A340 MOV LR, PC .text:0000A344 MOV PC, R7 .text:0000A348 MOV R0, R4 .text:0000A34C BL 0 .text:0000A350 .text:0000A350 loc_A350 ; CODE XREF: _IO_no_init+78j .text:0000A350 CMP R8, #0 .text:0000A354 STR R8, [R5,#0x5C] .text:0000A358 BLT locret_A3C8 .text:0000A35C STR R10, [R5,#0x58] .text:0000A360 STR R6, [R10,#0x18] .text:0000A364 LDR R3, [R5,#0x58] .text:0000A368 STR R6, [R3,#0x1C] .text:0000A36C LDR R2, [R5,#0x58] .text:0000A370 STR R6, [R2,#8] .text:0000A374 LDR R3, [R5,#0x58] .text:0000A378 STR R6, [R3] .text:0000A37C LDR R2, [R5,#0x58] .text:0000A380 STR R6, [R2,#4] .text:0000A384 LDR R3, [R5,#0x58] .text:0000A388 STR R6, [R3,#0xC] .text:0000A38C LDR R2, [R5,#0x58] .text:0000A390 STR R6, [R2,#0x10] .text:0000A394 LDR R3, [R5,#0x58] .text:0000A398 STR R6, [R3,#0x14] .text:0000A39C LDR R2, [R5,#0x58] .text:0000A3A0 STR R6, [R2,#0x20] .text:0000A3A4 LDR R3, [R5,#0x58] .text:0000A3A8 STR R6, [R3,#0x24] .text:0000A3AC LDR R2, [R5,#0x58] .text:0000A3B0 STR R6, [R2,#0x28] .text:0000A3B4 LDR R3, [R11,#arg_0] .text:0000A3B8 LDR R1, [R5,#0x58] .text:0000A3BC STR R3, [R1,#0xB8] .text:0000A3C0 B locret_A3C8 .text:0000A3C0 ; --------------------------------------------------------------------------- .text:0000A3C4 off_A3C4 DCD 0 ; DATA XREF: _IO_no_init+70r .text:0000A3C8 ; --------------------------------------------------------------------------- .text:0000A3C8 .text:0000A3C8 locret_A3C8 ; CODE XREF: _IO_no_init+B4j .text:0000A3C8 ; _IO_no_init+11Cj .text:0000A3C8 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000A3C8 ; End of function _IO_no_init .text:0000A3C8 .text:0000A3CC .text:0000A3CC ; =============== S U B R O U T I N E ======================================= .text:0000A3CC .text:0000A3CC ; Attributes: bp-based frame .text:0000A3CC .text:0000A3CC EXPORT _IO_default_sync .text:0000A3CC _IO_default_sync .text:0000A3CC MOV R12, SP .text:0000A3D0 STMFD SP!, {R11,R12,LR,PC} .text:0000A3D4 SUB R11, R12, #4 .text:0000A3D8 MOV R0, #0 .text:0000A3DC LDMDB R11, {R11,SP,PC} .text:0000A3DC ; End of function _IO_default_sync .text:0000A3DC .text:0000A3E0 .text:0000A3E0 ; =============== S U B R O U T I N E ======================================= .text:0000A3E0 .text:0000A3E0 ; Attributes: bp-based frame .text:0000A3E0 .text:0000A3E0 EXPORT _IO_default_finish .text:0000A3E0 _IO_default_finish ; CODE XREF: _IO_str_finish+3Cp .text:0000A3E0 ; _IO_new_file_finish+90p .text:0000A3E0 MOV R12, SP .text:0000A3E4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000A3E8 MOV R4, R0 .text:0000A3EC LDR R2, [R4,#0x1C] .text:0000A3F0 SUB R11, R12, #4 .text:0000A3F4 CMP R2, #0 .text:0000A3F8 BEQ loc_A430 .text:0000A3FC LDR R3, [R4] .text:0000A400 ANDS R5, R3, #1 .text:0000A404 BNE loc_A430 .text:0000A408 LDR R1, [R4,#0x20] .text:0000A40C MOV R0, R2 .text:0000A410 RSB R1, R2, R1 .text:0000A414 ADD R1, R1, #0xFF0 .text:0000A418 ADD R1, R1, #0xF .text:0000A41C BIC R1, R1, #0xFF0 .text:0000A420 BIC R1, R1, #0xF .text:0000A424 BL munmap .text:0000A428 STR R5, [R4,#0x20] .text:0000A42C STR R5, [R4,#0x1C] .text:0000A430 .text:0000A430 loc_A430 ; CODE XREF: _IO_default_finish+18j .text:0000A430 ; _IO_default_finish+24j .text:0000A430 LDR R3, [R4,#0x30] .text:0000A434 LDR R5, =0 .text:0000A438 CMP R3, #0 .text:0000A43C BEQ loc_A454 .text:0000A440 MOV R2, #0 .text:0000A444 .text:0000A444 loc_A444 ; CODE XREF: _IO_default_finish+70j .text:0000A444 STR R2, [R3,#4] .text:0000A448 LDR R3, [R3] .text:0000A44C CMP R3, #0 .text:0000A450 BNE loc_A444 .text:0000A454 .text:0000A454 loc_A454 ; CODE XREF: _IO_default_finish+5Cj .text:0000A454 LDR R0, [R4,#0x24] .text:0000A458 CMP R0, #0 .text:0000A45C BEQ loc_A46C .text:0000A460 BL free .text:0000A464 MOV R3, #0 .text:0000A468 STR R3, [R4,#0x24] .text:0000A46C .text:0000A46C loc_A46C ; CODE XREF: _IO_default_finish+7Cj .text:0000A46C CMP R5, #0 .text:0000A470 BEQ loc_A480 .text:0000A474 LDR R0, [R4,#0x48] .text:0000A478 MOV LR, PC .text:0000A47C MOV PC, R5 .text:0000A480 .text:0000A480 loc_A480 ; CODE XREF: _IO_default_finish+90j .text:0000A480 MOV R0, R4 .text:0000A484 BL _IO_un_link .text:0000A488 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A488 ; End of function _IO_default_finish .text:0000A488 .text:0000A488 ; --------------------------------------------------------------------------- .text:0000A48C dword_A48C DCD 0 ; DATA XREF: _IO_default_finish+54r .text:0000A490 .text:0000A490 ; =============== S U B R O U T I N E ======================================= .text:0000A490 .text:0000A490 ; Attributes: bp-based frame .text:0000A490 .text:0000A490 EXPORT _IO_default_seekoff .text:0000A490 _IO_default_seekoff .text:0000A490 MOV R12, SP .text:0000A494 STMFD SP!, {R11,R12,LR,PC} .text:0000A498 SUB R11, R12, #4 .text:0000A49C MOV R1, 0xFFFFFFFF .text:0000A4A0 MOV R0, 0xFFFFFFFF .text:0000A4A4 LDMDB R11, {R11,SP,PC} .text:0000A4A4 ; End of function _IO_default_seekoff .text:0000A4A4 .text:0000A4A8 .text:0000A4A8 ; =============== S U B R O U T I N E ======================================= .text:0000A4A8 .text:0000A4A8 ; Attributes: bp-based frame .text:0000A4A8 .text:0000A4A8 EXPORT _IO_sputbackc .text:0000A4A8 _IO_sputbackc ; CODE XREF: _IO_vfscanf+1E0p .text:0000A4A8 ; _IO_vfscanf+3B8p ... .text:0000A4A8 MOV R12, SP .text:0000A4AC STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A4B0 MOV R4, R0 .text:0000A4B4 LDR R2, [R4,#4] .text:0000A4B8 LDR R3, [R4,#0xC] .text:0000A4BC SUB R11, R12, #4 .text:0000A4C0 CMP R2, R3 .text:0000A4C4 BLS loc_A4E0 .text:0000A4C8 LDRB R0, [R2,#-1] .text:0000A4CC AND R3, R1, #0xFF .text:0000A4D0 CMP R0, R3 .text:0000A4D4 SUBEQ R3, R2, #1 .text:0000A4D8 STREQ R3, [R4,#4] .text:0000A4DC BEQ loc_A4FC .text:0000A4E0 .text:0000A4E0 loc_A4E0 ; CODE XREF: _IO_sputbackc+1Cj .text:0000A4E0 LDRB R3, [R4,#0x46] .text:0000A4E4 MOV R3, R3,LSL#24 .text:0000A4E8 ADD R3, R4, R3,ASR#24 .text:0000A4EC LDR R2, [R3,#0x94] .text:0000A4F0 MOV R0, R4 .text:0000A4F4 MOV LR, PC .text:0000A4F8 LDR PC, [R2,#0x18] .text:0000A4FC .text:0000A4FC loc_A4FC ; CODE XREF: _IO_sputbackc+34j .text:0000A4FC CMN R0, #1 .text:0000A500 LDMEQDB R11, {R4,R11,SP,PC} .text:0000A504 LDR R3, [R4] .text:0000A508 BIC R3, R3, #0x10 .text:0000A50C STR R3, [R4] .text:0000A510 LDMDB R11, {R4,R11,SP,PC} .text:0000A510 ; End of function _IO_sputbackc .text:0000A510 .text:0000A514 .text:0000A514 ; =============== S U B R O U T I N E ======================================= .text:0000A514 .text:0000A514 ; Attributes: bp-based frame .text:0000A514 .text:0000A514 EXPORT _IO_sungetc .text:0000A514 _IO_sungetc .text:0000A514 MOV R12, SP .text:0000A518 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A51C MOV R4, R0 .text:0000A520 LDR R0, [R4,#4] .text:0000A524 LDR R3, [R4,#0xC] .text:0000A528 SUB R11, R12, #4 .text:0000A52C CMP R0, R3 .text:0000A530 SUBHI R3, R0, #1 .text:0000A534 STRHI R3, [R4,#4] .text:0000A538 LDRHIB R0, [R0,#-1] .text:0000A53C BHI loc_A560 .text:0000A540 LDRB R3, [R4,#0x46] .text:0000A544 MOV R0, R4 .text:0000A548 MOV R3, R3,LSL#24 .text:0000A54C ADD R3, R4, R3,ASR#24 .text:0000A550 LDR R2, [R3,#0x94] .text:0000A554 MOV R1, 0xFFFFFFFF .text:0000A558 MOV LR, PC .text:0000A55C LDR PC, [R2,#0x18] .text:0000A560 .text:0000A560 loc_A560 ; CODE XREF: _IO_sungetc+28j .text:0000A560 CMN R0, #1 .text:0000A564 LDMEQDB R11, {R4,R11,SP,PC} .text:0000A568 LDR R3, [R4] .text:0000A56C BIC R3, R3, #0x10 .text:0000A570 STR R3, [R4] .text:0000A574 LDMDB R11, {R4,R11,SP,PC} .text:0000A574 ; End of function _IO_sungetc .text:0000A574 .text:0000A578 .text:0000A578 ; =============== S U B R O U T I N E ======================================= .text:0000A578 .text:0000A578 ; Attributes: bp-based frame .text:0000A578 .text:0000A578 EXPORT _IO_adjust_column .text:0000A578 _IO_adjust_column ; CODE XREF: new_do_write+E4p .text:0000A578 MOV R12, SP .text:0000A57C STMFD SP!, {R11,R12,LR,PC} .text:0000A580 SUB R11, R12, #4 .text:0000A584 ADD R12, R1, R2 .text:0000A588 CMP R12, R1 .text:0000A58C MOV LR, R0 .text:0000A590 BLS loc_A5B8 .text:0000A594 SUB R3, R2, #1 .text:0000A598 ADD R3, R1, R3 .text:0000A59C RSB R0, R12, R3 .text:0000A5A0 .text:0000A5A0 loc_A5A0 ; CODE XREF: _IO_adjust_column+3Cj .text:0000A5A0 LDRB R3, [R12,#-1]! .text:0000A5A4 ADD R0, R0, #1 .text:0000A5A8 CMP R3, #0xA .text:0000A5AC LDMEQDB R11, {R11,SP,PC} .text:0000A5B0 CMP R12, R1 .text:0000A5B4 BHI loc_A5A0 .text:0000A5B8 .text:0000A5B8 loc_A5B8 ; CODE XREF: _IO_adjust_column+18j .text:0000A5B8 ADD R0, LR, R2 .text:0000A5BC LDMDB R11, {R11,SP,PC} .text:0000A5BC ; End of function _IO_adjust_column .text:0000A5BC .text:0000A5C0 .text:0000A5C0 ; =============== S U B R O U T I N E ======================================= .text:0000A5C0 .text:0000A5C0 ; Attributes: bp-based frame .text:0000A5C0 .text:0000A5C0 EXPORT _IO_flush_all .text:0000A5C0 _IO_flush_all ; CODE XREF: fflush+18p .text:0000A5C0 ; _cleanup+Cp .text:0000A5C0 MOV R12, SP .text:0000A5C4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000A5C8 LDR R3, =_IO_list_all .text:0000A5CC SUB R11, R12, #4 .text:0000A5D0 LDR R4, [R3] .text:0000A5D4 MOV R5, #0 .text:0000A5D8 CMP R4, R5 .text:0000A5DC BEQ loc_A65C .text:0000A5E0 .text:0000A5E0 loc_A5E0 ; CODE XREF: _IO_flush_all+98j .text:0000A5E0 LDR R1, [R4,#0x5C] .text:0000A5E4 CMP R1, #0 .text:0000A5E8 BGT loc_A600 .text:0000A5EC LDR R2, [R4,#0x14] .text:0000A5F0 LDR R3, [R4,#0x10] .text:0000A5F4 LDRB R12, [R4,#0x46] .text:0000A5F8 CMP R2, R3 .text:0000A5FC BHI loc_A62C .text:0000A600 .text:0000A600 loc_A600 ; CODE XREF: _IO_flush_all+28j .text:0000A600 LDRB R3, [R4,#0x46] .text:0000A604 CMP R3, #0 .text:0000A608 MOV R12, R3 .text:0000A60C BNE loc_A650 .text:0000A610 CMP R1, #0 .text:0000A614 BLE loc_A650 .text:0000A618 LDR R3, [R4,#0x58] .text:0000A61C LDR R1, [R3,#0x10] .text:0000A620 LDR R2, [R3,#0xC] .text:0000A624 CMP R1, R2 .text:0000A628 BLS loc_A650 .text:0000A62C .text:0000A62C loc_A62C ; CODE XREF: _IO_flush_all+3Cj .text:0000A62C MOV R0, R4 .text:0000A630 MOV R3, R12,LSL#24 .text:0000A634 ADD R3, R4, R3,ASR#24 .text:0000A638 LDR R2, [R3,#0x94] .text:0000A63C MOV R1, 0xFFFFFFFF .text:0000A640 MOV LR, PC .text:0000A644 LDR PC, [R2,#0xC] .text:0000A648 CMN R0, #1 .text:0000A64C MOVEQ R5, 0xFFFFFFFF .text:0000A650 .text:0000A650 loc_A650 ; CODE XREF: _IO_flush_all+4Cj .text:0000A650 ; _IO_flush_all+54j ... .text:0000A650 LDR R4, [R4,#0x34] .text:0000A654 CMP R4, #0 .text:0000A658 BNE loc_A5E0 .text:0000A65C .text:0000A65C loc_A65C ; CODE XREF: _IO_flush_all+1Cj .text:0000A65C MOV R0, R5 .text:0000A660 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A660 ; End of function _IO_flush_all .text:0000A660 .text:0000A660 ; --------------------------------------------------------------------------- .text:0000A664 off_A664 DCD _IO_list_all ; DATA XREF: _IO_flush_all+8r .text:0000A668 .text:0000A668 ; =============== S U B R O U T I N E ======================================= .text:0000A668 .text:0000A668 ; Attributes: bp-based frame .text:0000A668 .text:0000A668 WEAK _flushlbf .text:0000A668 _flushlbf ; CODE XREF: _IO_wfile_underflow+1D4p .text:0000A668 ; _IO_new_file_underflow+94p .text:0000A668 MOV R12, SP .text:0000A66C STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A670 LDR R3, =_IO_list_all .text:0000A674 LDR R4, [R3] .text:0000A678 SUB R11, R12, #4 .text:0000A67C CMP R4, #0 .text:0000A680 LDMEQDB R11, {R4,R11,SP,PC} .text:0000A684 .text:0000A684 loc_A684 ; CODE XREF: _flushlbf+54j .text:0000A684 LDR R3, [R4] .text:0000A688 AND R3, R3, #0x208 .text:0000A68C CMP R3, #0x200 .text:0000A690 BNE loc_A6B4 .text:0000A694 LDRB R3, [R4,#0x46] .text:0000A698 MOV R0, R4 .text:0000A69C MOV R3, R3,LSL#24 .text:0000A6A0 ADD R3, R4, R3,ASR#24 .text:0000A6A4 LDR R2, [R3,#0x94] .text:0000A6A8 MOV R1, 0xFFFFFFFF .text:0000A6AC MOV LR, PC .text:0000A6B0 LDR PC, [R2,#0xC] .text:0000A6B4 .text:0000A6B4 loc_A6B4 ; CODE XREF: _flushlbf+28j .text:0000A6B4 LDR R4, [R4,#0x34] .text:0000A6B8 CMP R4, #0 .text:0000A6BC BNE loc_A684 .text:0000A6C0 LDMDB R11, {R4,R11,SP,PC} .text:0000A6C0 ; End of function _flushlbf .text:0000A6C0 .text:0000A6C0 ; --------------------------------------------------------------------------- .text:0000A6C4 off_A6C4 DCD _IO_list_all ; DATA XREF: _flushlbf+8r .text:0000A6C8 .text:0000A6C8 ; =============== S U B R O U T I N E ======================================= .text:0000A6C8 .text:0000A6C8 ; Attributes: bp-based frame .text:0000A6C8 .text:0000A6C8 _IO_unbuffer_write ; CODE XREF: _cleanup+14p .text:0000A6C8 MOV R12, SP .text:0000A6CC STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A6D0 LDR R3, =_IO_list_all .text:0000A6D4 LDR R4, [R3] .text:0000A6D8 SUB R11, R12, #4 .text:0000A6DC CMP R4, #0 .text:0000A6E0 LDMEQDB R11, {R4,R11,SP,PC} .text:0000A6E4 .text:0000A6E4 loc_A6E4 ; CODE XREF: _IO_unbuffer_write+74j .text:0000A6E4 LDR R3, [R4] .text:0000A6E8 ANDS R1, R3, #2 .text:0000A6EC BNE loc_A734 .text:0000A6F0 BIC R3, R3, #0xFF0 .text:0000A6F4 BIC R3, R3, #7 .text:0000A6F8 MOV R3, R3,LSL#19 .text:0000A6FC MOV R3, R3,LSR#19 .text:0000A700 CMP R3, #8 .text:0000A704 BEQ loc_A734 .text:0000A708 LDR R3, [R4,#0x5C] .text:0000A70C CMP R3, #0 .text:0000A710 BEQ loc_A734 .text:0000A714 LDRB R3, [R4,#0x46] .text:0000A718 MOV R0, R4 .text:0000A71C MOV R3, R3,LSL#24 .text:0000A720 ADD R3, R4, R3,ASR#24 .text:0000A724 LDR R12, [R3,#0x94] .text:0000A728 MOV R2, R1 .text:0000A72C MOV LR, PC .text:0000A730 LDR PC, [R12,#0x2C] .text:0000A734 .text:0000A734 loc_A734 ; CODE XREF: _IO_unbuffer_write+24j .text:0000A734 ; _IO_unbuffer_write+3Cj ... .text:0000A734 LDR R4, [R4,#0x34] .text:0000A738 CMP R4, #0 .text:0000A73C BNE loc_A6E4 .text:0000A740 LDMDB R11, {R4,R11,SP,PC} .text:0000A740 ; End of function _IO_unbuffer_write .text:0000A740 .text:0000A740 ; --------------------------------------------------------------------------- .text:0000A744 off_A744 DCD _IO_list_all ; DATA XREF: _IO_unbuffer_write+8r .text:0000A748 .text:0000A748 ; =============== S U B R O U T I N E ======================================= .text:0000A748 .text:0000A748 ; Attributes: bp-based frame .text:0000A748 .text:0000A748 WEAK _cleanup .text:0000A748 _cleanup ; CODE XREF: fcloseall+Cp .text:0000A748 MOV R12, SP ; Alternative name is '_IO_cleanup' .text:0000A74C STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A750 SUB R11, R12, #4 .text:0000A754 BL _IO_flush_all .text:0000A758 MOV R4, R0 .text:0000A75C BL _IO_unbuffer_write .text:0000A760 MOV R0, R4 .text:0000A764 LDMDB R11, {R4,R11,SP,PC} .text:0000A764 ; End of function _cleanup .text:0000A764 .text:0000A768 .text:0000A768 ; =============== S U B R O U T I N E ======================================= .text:0000A768 .text:0000A768 ; Attributes: bp-based frame .text:0000A768 .text:0000A768 EXPORT _IO_init_marker .text:0000A768 _IO_init_marker .text:0000A768 MOV R12, SP .text:0000A76C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000A770 MOV R5, R0 .text:0000A774 MOV R4, R1 .text:0000A778 STR R4, [R5,#4] .text:0000A77C LDR R3, [R4] .text:0000A780 SUB R11, R12, #4 .text:0000A784 TST R3, #0x800 .text:0000A788 BEQ loc_A794 .text:0000A78C MOV R0, R4 .text:0000A790 BL _IO_switch_to_get_mode .text:0000A794 .text:0000A794 loc_A794 ; CODE XREF: _IO_init_marker+20j .text:0000A794 LDR R3, [R4] .text:0000A798 TST R3, #0x100 .text:0000A79C ADDNE R2, R4, #4 .text:0000A7A0 LDMNEIA R2, {R2,R3} .text:0000A7A4 SUBNE R3, R2, R3 .text:0000A7A8 LDREQ R3, [R4,#4] .text:0000A7AC LDREQ R2, [R4,#0xC] .text:0000A7B0 RSBEQ R3, R2, R3 .text:0000A7B4 STR R3, [R5,#8] .text:0000A7B8 LDR R3, [R4,#0x30] .text:0000A7BC STR R3, [R5] .text:0000A7C0 STR R5, [R4,#0x30] .text:0000A7C4 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A7C4 ; End of function _IO_init_marker .text:0000A7C4 .text:0000A7C8 .text:0000A7C8 ; =============== S U B R O U T I N E ======================================= .text:0000A7C8 .text:0000A7C8 ; Attributes: bp-based frame .text:0000A7C8 .text:0000A7C8 EXPORT _IO_remove_marker .text:0000A7C8 _IO_remove_marker .text:0000A7C8 MOV R12, SP .text:0000A7CC STMFD SP!, {R11,R12,LR,PC} .text:0000A7D0 LDR R3, [R0,#4] .text:0000A7D4 SUB R11, R12, #4 .text:0000A7D8 LDR R2, [R3,#0x30] .text:0000A7DC ADD R1, R3, #0x30 .text:0000A7E0 CMP R2, #0 .text:0000A7E4 LDMEQDB R11, {R11,SP,PC} .text:0000A7E8 .text:0000A7E8 loc_A7E8 ; CODE XREF: _IO_remove_marker+40j .text:0000A7E8 LDR R3, [R1] .text:0000A7EC CMP R3, R0 .text:0000A7F0 LDREQ R3, [R3] .text:0000A7F4 STREQ R3, [R1] .text:0000A7F8 LDMEQDB R11, {R11,SP,PC} .text:0000A7FC MOV R1, R3 .text:0000A800 LDR R3, [R1] .text:0000A804 CMP R3, #0 .text:0000A808 BNE loc_A7E8 .text:0000A80C LDMDB R11, {R11,SP,PC} .text:0000A80C ; End of function _IO_remove_marker .text:0000A80C .text:0000A810 .text:0000A810 ; =============== S U B R O U T I N E ======================================= .text:0000A810 .text:0000A810 ; Attributes: bp-based frame .text:0000A810 .text:0000A810 EXPORT _IO_marker_difference .text:0000A810 _IO_marker_difference .text:0000A810 MOV R12, SP .text:0000A814 STMFD SP!, {R11,R12,LR,PC} .text:0000A818 LDR R3, [R0,#8] .text:0000A81C LDR R0, [R1,#8] .text:0000A820 SUB R11, R12, #4 .text:0000A824 RSB R0, R0, R3 .text:0000A828 LDMDB R11, {R11,SP,PC} .text:0000A828 ; End of function _IO_marker_difference .text:0000A828 .text:0000A82C .text:0000A82C ; =============== S U B R O U T I N E ======================================= .text:0000A82C .text:0000A82C ; Attributes: bp-based frame .text:0000A82C .text:0000A82C EXPORT _IO_marker_delta .text:0000A82C _IO_marker_delta .text:0000A82C MOV R12, SP .text:0000A830 STMFD SP!, {R11,R12,LR,PC} .text:0000A834 LDR R1, [R0,#4] .text:0000A838 SUB R11, R12, #4 .text:0000A83C CMP R1, #0 .text:0000A840 MOVEQ R0, 0xFFFFFFFF .text:0000A844 LDMEQDB R11, {R11,SP,PC} .text:0000A848 LDR R3, [R1] .text:0000A84C TST R3, #0x100 .text:0000A850 ADDNE R3, R1, #4 .text:0000A854 LDMNEIA R3, {R2,R3} .text:0000A858 SUBNE R2, R2, R3 .text:0000A85C LDREQ R2, [R1,#4] .text:0000A860 LDREQ R3, [R1,#0xC] .text:0000A864 RSBEQ R2, R3, R2 .text:0000A868 LDR R0, [R0,#8] .text:0000A86C RSB R0, R2, R0 .text:0000A870 LDMDB R11, {R11,SP,PC} .text:0000A870 ; End of function _IO_marker_delta .text:0000A870 .text:0000A874 .text:0000A874 ; =============== S U B R O U T I N E ======================================= .text:0000A874 .text:0000A874 ; Attributes: bp-based frame .text:0000A874 .text:0000A874 EXPORT _IO_seekmark .text:0000A874 _IO_seekmark .text:0000A874 MOV R12, SP .text:0000A878 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000A87C MOV R5, R1 .text:0000A880 LDR R4, [R5,#4] .text:0000A884 SUB R11, R12, #4 .text:0000A888 CMP R4, R0 .text:0000A88C MOVNE R0, 0xFFFFFFFF .text:0000A890 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0000A894 LDR R3, [R5,#8] .text:0000A898 CMP R3, #0 .text:0000A89C BLT loc_A8BC .text:0000A8A0 LDR R3, [R4] .text:0000A8A4 TST R3, #0x100 .text:0000A8A8 BEQ loc_A8B4 .text:0000A8AC MOV R0, R4 .text:0000A8B0 BL _IO_switch_to_main_get_area .text:0000A8B4 .text:0000A8B4 loc_A8B4 ; CODE XREF: _IO_seekmark+34j .text:0000A8B4 LDR R3, [R4,#0xC] .text:0000A8B8 B loc_A8D4 .text:0000A8BC ; --------------------------------------------------------------------------- .text:0000A8BC .text:0000A8BC loc_A8BC ; CODE XREF: _IO_seekmark+28j .text:0000A8BC LDR R3, [R4] .text:0000A8C0 TST R3, #0x100 .text:0000A8C4 BNE loc_A8D0 .text:0000A8C8 MOV R0, R4 .text:0000A8CC BL _IO_switch_to_backup_area .text:0000A8D0 .text:0000A8D0 loc_A8D0 ; CODE XREF: _IO_seekmark+50j .text:0000A8D0 LDR R3, [R4,#8] .text:0000A8D4 .text:0000A8D4 loc_A8D4 ; CODE XREF: _IO_seekmark+44j .text:0000A8D4 LDR R2, [R5,#8] .text:0000A8D8 ADD R3, R3, R2 .text:0000A8DC STR R3, [R4,#4] .text:0000A8E0 MOV R0, #0 .text:0000A8E4 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A8E4 ; End of function _IO_seekmark .text:0000A8E4 .text:0000A8E8 .text:0000A8E8 ; =============== S U B R O U T I N E ======================================= .text:0000A8E8 .text:0000A8E8 ; Attributes: bp-based frame .text:0000A8E8 .text:0000A8E8 EXPORT _IO_unsave_markers .text:0000A8E8 _IO_unsave_markers ; CODE XREF: _IO_wfile_seekoff+510p .text:0000A8E8 ; _IO_new_file_close_it+6Cp ... .text:0000A8E8 MOV R12, SP .text:0000A8EC STMFD SP!, {R11,R12,LR,PC} .text:0000A8F0 LDR R3, [R0,#0x30] .text:0000A8F4 SUB R11, R12, #4 .text:0000A8F8 CMP R3, #0 .text:0000A8FC MOVNE R3, #0 .text:0000A900 STRNE R3, [R0,#0x30] .text:0000A904 LDR R3, [R0,#0x24] .text:0000A908 CMP R3, #0 .text:0000A90C LDMEQDB R11, {R11,SP,PC} .text:0000A910 BL _IO_free_backup_area .text:0000A914 LDMDB R11, {R11,SP,PC} .text:0000A914 ; End of function _IO_unsave_markers .text:0000A914 .text:0000A918 .text:0000A918 ; =============== S U B R O U T I N E ======================================= .text:0000A918 .text:0000A918 ; Attributes: bp-based frame .text:0000A918 .text:0000A918 EXPORT _IO_default_pbackfail .text:0000A918 _IO_default_pbackfail ; CODE XREF: _IO_str_pbackfail+34p .text:0000A918 MOV R12, SP .text:0000A91C STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000A920 MOV R5, R0 .text:0000A924 LDR R2, [R5,#4] .text:0000A928 SUB R11, R12, #4 .text:0000A92C LDR R3, [R5,#0xC] .text:0000A930 MOV R10, R1 .text:0000A934 CMP R2, R3 .text:0000A938 BLS loc_A95C .text:0000A93C LDR R3, [R5] .text:0000A940 TST R3, #0x100 .text:0000A944 BNE loc_A95C .text:0000A948 LDRB R3, [R2,#-1] .text:0000A94C CMP R3, R10 .text:0000A950 SUBEQ R3, R2, #1 .text:0000A954 STREQ R3, [R5,#4] .text:0000A958 BEQ loc_AA48 .text:0000A95C .text:0000A95C loc_A95C ; CODE XREF: _IO_default_pbackfail+20j .text:0000A95C ; _IO_default_pbackfail+2Cj .text:0000A95C LDR R3, [R5] .text:0000A960 TST R3, #0x100 .text:0000A964 BNE loc_A9D8 .text:0000A968 LDR R1, [R5,#4] .text:0000A96C LDR R3, [R5,#0xC] .text:0000A970 CMP R1, R3 .text:0000A974 LDR R3, [R5,#0x24] .text:0000A978 BLS loc_A99C .text:0000A97C CMP R3, #0 .text:0000A980 BEQ loc_A99C .text:0000A984 MOV R0, R5 .text:0000A988 BL save_for_backup .text:0000A98C CMP R0, #0 .text:0000A990 BEQ loc_A9C4 .text:0000A994 .text:0000A994 loc_A994 ; CODE XREF: _IO_default_pbackfail+98j .text:0000A994 ; _IO_default_pbackfail+E8j .text:0000A994 MOV R0, 0xFFFFFFFF .text:0000A998 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000A99C ; --------------------------------------------------------------------------- .text:0000A99C .text:0000A99C loc_A99C ; CODE XREF: _IO_default_pbackfail+60j .text:0000A99C ; _IO_default_pbackfail+68j .text:0000A99C CMP R3, #0 .text:0000A9A0 BNE loc_A9C4 .text:0000A9A4 MOV R0, #0x80 .text:0000A9A8 BL malloc .text:0000A9AC CMP R0, #0 .text:0000A9B0 BEQ loc_A994 .text:0000A9B4 STR R0, [R5,#0x24] .text:0000A9B8 ADD R3, R0, #0x80 .text:0000A9BC STR R3, [R5,#0x2C] .text:0000A9C0 STR R3, [R5,#0x28] .text:0000A9C4 .text:0000A9C4 loc_A9C4 ; CODE XREF: _IO_default_pbackfail+78j .text:0000A9C4 ; _IO_default_pbackfail+88j .text:0000A9C4 LDR R3, [R5,#4] .text:0000A9C8 STR R3, [R5,#0xC] .text:0000A9CC MOV R0, R5 .text:0000A9D0 BL _IO_switch_to_backup_area .text:0000A9D4 B loc_AA38 .text:0000A9D8 ; --------------------------------------------------------------------------- .text:0000A9D8 .text:0000A9D8 loc_A9D8 ; CODE XREF: _IO_default_pbackfail+4Cj .text:0000A9D8 LDR R3, [R5,#4] .text:0000A9DC LDR R2, [R5,#0xC] .text:0000A9E0 CMP R3, R2 .text:0000A9E4 BHI loc_AA38 .text:0000A9E8 LDR R3, [R5,#8] .text:0000A9EC RSB R6, R2, R3 .text:0000A9F0 MOV R8, R6,LSL#1 .text:0000A9F4 MOV R0, R8 .text:0000A9F8 BL malloc .text:0000A9FC SUBS R7, R0, #0 .text:0000AA00 BEQ loc_A994 .text:0000AA04 RSB R4, R6, R8 .text:0000AA08 ADD R4, R7, R4 .text:0000AA0C MOV R0, R4 .text:0000AA10 LDR R1, [R5,#0xC] .text:0000AA14 MOV R2, R6 .text:0000AA18 BL memcpy .text:0000AA1C LDR R0, [R5,#0xC] .text:0000AA20 BL free .text:0000AA24 STR R7, [R5,#0xC] .text:0000AA28 STR R4, [R5,#4] .text:0000AA2C ADD R3, R7, R8 .text:0000AA30 STR R3, [R5,#8] .text:0000AA34 STR R4, [R5,#0x28] .text:0000AA38 .text:0000AA38 loc_AA38 ; CODE XREF: _IO_default_pbackfail+BCj .text:0000AA38 ; _IO_default_pbackfail+CCj .text:0000AA38 LDR R2, [R5,#4] .text:0000AA3C SUB R3, R2, #1 .text:0000AA40 STR R3, [R5,#4] .text:0000AA44 STRB R10, [R2,#-1] .text:0000AA48 .text:0000AA48 loc_AA48 ; CODE XREF: _IO_default_pbackfail+40j .text:0000AA48 AND R0, R10, #0xFF .text:0000AA4C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000AA4C ; End of function _IO_default_pbackfail .text:0000AA4C .text:0000AA50 .text:0000AA50 ; =============== S U B R O U T I N E ======================================= .text:0000AA50 .text:0000AA50 ; Attributes: bp-based frame .text:0000AA50 .text:0000AA50 EXPORT _IO_default_seek .text:0000AA50 _IO_default_seek .text:0000AA50 MOV R12, SP .text:0000AA54 STMFD SP!, {R11,R12,LR,PC} .text:0000AA58 SUB R11, R12, #4 .text:0000AA5C MOV R1, 0xFFFFFFFF .text:0000AA60 MOV R0, 0xFFFFFFFF .text:0000AA64 LDMDB R11, {R11,SP,PC} .text:0000AA64 ; End of function _IO_default_seek .text:0000AA64 .text:0000AA68 .text:0000AA68 ; =============== S U B R O U T I N E ======================================= .text:0000AA68 .text:0000AA68 ; Attributes: bp-based frame .text:0000AA68 .text:0000AA68 EXPORT _IO_default_stat .text:0000AA68 _IO_default_stat .text:0000AA68 MOV R12, SP .text:0000AA6C STMFD SP!, {R11,R12,LR,PC} .text:0000AA70 SUB R11, R12, #4 .text:0000AA74 MOV R0, 0xFFFFFFFF .text:0000AA78 LDMDB R11, {R11,SP,PC} .text:0000AA78 ; End of function _IO_default_stat .text:0000AA78 .text:0000AA7C .text:0000AA7C ; =============== S U B R O U T I N E ======================================= .text:0000AA7C .text:0000AA7C ; Attributes: bp-based frame .text:0000AA7C .text:0000AA7C EXPORT _IO_default_read .text:0000AA7C _IO_default_read .text:0000AA7C MOV R12, SP .text:0000AA80 STMFD SP!, {R11,R12,LR,PC} .text:0000AA84 SUB R11, R12, #4 .text:0000AA88 MOV R0, 0xFFFFFFFF .text:0000AA8C LDMDB R11, {R11,SP,PC} .text:0000AA8C ; End of function _IO_default_read .text:0000AA8C .text:0000AA90 .text:0000AA90 ; =============== S U B R O U T I N E ======================================= .text:0000AA90 .text:0000AA90 ; Attributes: bp-based frame .text:0000AA90 .text:0000AA90 EXPORT _IO_default_write .text:0000AA90 _IO_default_write .text:0000AA90 MOV R12, SP .text:0000AA94 STMFD SP!, {R11,R12,LR,PC} .text:0000AA98 SUB R11, R12, #4 .text:0000AA9C MOV R0, #0 .text:0000AAA0 LDMDB R11, {R11,SP,PC} .text:0000AAA0 ; End of function _IO_default_write .text:0000AAA0 .text:0000AAA4 .text:0000AAA4 ; =============== S U B R O U T I N E ======================================= .text:0000AAA4 .text:0000AAA4 ; Attributes: bp-based frame .text:0000AAA4 .text:0000AAA4 EXPORT _IO_default_showmanyc .text:0000AAA4 _IO_default_showmanyc .text:0000AAA4 MOV R12, SP .text:0000AAA8 STMFD SP!, {R11,R12,LR,PC} .text:0000AAAC SUB R11, R12, #4 .text:0000AAB0 MOV R0, 0xFFFFFFFF .text:0000AAB4 LDMDB R11, {R11,SP,PC} .text:0000AAB4 ; End of function _IO_default_showmanyc .text:0000AAB4 .text:0000AAB8 .text:0000AAB8 ; =============== S U B R O U T I N E ======================================= .text:0000AAB8 .text:0000AAB8 ; Attributes: bp-based frame .text:0000AAB8 .text:0000AAB8 EXPORT _IO_default_imbue .text:0000AAB8 _IO_default_imbue .text:0000AAB8 MOV R12, SP .text:0000AABC STMFD SP!, {R11,R12,LR,PC} .text:0000AAC0 SUB R11, R12, #4 .text:0000AAC4 LDMDB R11, {R11,SP,PC} .text:0000AAC4 ; End of function _IO_default_imbue .text:0000AAC4 .text:0000AAC8 .text:0000AAC8 ; =============== S U B R O U T I N E ======================================= .text:0000AAC8 .text:0000AAC8 ; Attributes: bp-based frame .text:0000AAC8 .text:0000AAC8 EXPORT _IO_iter_begin .text:0000AAC8 _IO_iter_begin .text:0000AAC8 MOV R12, SP .text:0000AACC STMFD SP!, {R11,R12,LR,PC} .text:0000AAD0 LDR R3, =_IO_list_all .text:0000AAD4 SUB R11, R12, #4 .text:0000AAD8 LDR R0, [R3] .text:0000AADC LDMDB R11, {R11,SP,PC} .text:0000AADC ; End of function _IO_iter_begin .text:0000AADC .text:0000AADC ; --------------------------------------------------------------------------- .text:0000AAE0 off_AAE0 DCD _IO_list_all ; DATA XREF: _IO_iter_begin+8r .text:0000AAE4 .text:0000AAE4 ; =============== S U B R O U T I N E ======================================= .text:0000AAE4 .text:0000AAE4 ; Attributes: bp-based frame .text:0000AAE4 .text:0000AAE4 EXPORT _IO_iter_end .text:0000AAE4 _IO_iter_end .text:0000AAE4 MOV R12, SP .text:0000AAE8 STMFD SP!, {R11,R12,LR,PC} .text:0000AAEC SUB R11, R12, #4 .text:0000AAF0 MOV R0, #0 .text:0000AAF4 LDMDB R11, {R11,SP,PC} .text:0000AAF4 ; End of function _IO_iter_end .text:0000AAF4 .text:0000AAF8 .text:0000AAF8 ; =============== S U B R O U T I N E ======================================= .text:0000AAF8 .text:0000AAF8 ; Attributes: bp-based frame .text:0000AAF8 .text:0000AAF8 EXPORT _IO_iter_next .text:0000AAF8 _IO_iter_next .text:0000AAF8 MOV R12, SP .text:0000AAFC STMFD SP!, {R11,R12,LR,PC} .text:0000AB00 SUB R11, R12, #4 .text:0000AB04 LDR R0, [R0,#0x34] .text:0000AB08 LDMDB R11, {R11,SP,PC} .text:0000AB08 ; End of function _IO_iter_next .text:0000AB08 .text:0000AB0C .text:0000AB0C ; =============== S U B R O U T I N E ======================================= .text:0000AB0C .text:0000AB0C ; Attributes: bp-based frame .text:0000AB0C .text:0000AB0C EXPORT _IO_iter_file .text:0000AB0C _IO_iter_file .text:0000AB0C MOV R12, SP .text:0000AB10 STMFD SP!, {R11,R12,LR,PC} .text:0000AB14 SUB R11, R12, #4 .text:0000AB18 LDMDB R11, {R11,SP,PC} .text:0000AB18 ; End of function _IO_iter_file .text:0000AB18 .text:0000AB1C .text:0000AB1C ; =============== S U B R O U T I N E ======================================= .text:0000AB1C .text:0000AB1C ; Attributes: bp-based frame .text:0000AB1C .text:0000AB1C EXPORT _IO_list_lock .text:0000AB1C _IO_list_lock .text:0000AB1C MOV R12, SP .text:0000AB20 STMFD SP!, {R11,R12,LR,PC} .text:0000AB24 LDR R3, =0 .text:0000AB28 SUB R11, R12, #4 .text:0000AB2C CMP R3, #0 .text:0000AB30 LDMEQDB R11, {R11,SP,PC} .text:0000AB34 LDR R0, =list_all_lock .text:0000AB38 MOV LR, PC .text:0000AB3C MOV PC, R3 .text:0000AB40 LDMDB R11, {R11,SP,PC} .text:0000AB40 ; End of function _IO_list_lock .text:0000AB40 .text:0000AB40 ; --------------------------------------------------------------------------- .text:0000AB44 off_AB44 DCD 0 ; DATA XREF: _IO_list_lock+8r .text:0000AB48 off_AB48 DCD list_all_lock ; DATA XREF: _IO_list_lock+18r .text:0000AB4C .text:0000AB4C ; =============== S U B R O U T I N E ======================================= .text:0000AB4C .text:0000AB4C ; Attributes: bp-based frame .text:0000AB4C .text:0000AB4C EXPORT _IO_list_unlock .text:0000AB4C _IO_list_unlock .text:0000AB4C MOV R12, SP .text:0000AB50 STMFD SP!, {R11,R12,LR,PC} .text:0000AB54 LDR R3, =0 .text:0000AB58 SUB R11, R12, #4 .text:0000AB5C CMP R3, #0 .text:0000AB60 LDMEQDB R11, {R11,SP,PC} .text:0000AB64 LDR R0, =list_all_lock .text:0000AB68 MOV LR, PC .text:0000AB6C MOV PC, R3 .text:0000AB70 LDMDB R11, {R11,SP,PC} .text:0000AB70 ; End of function _IO_list_unlock .text:0000AB70 .text:0000AB70 ; --------------------------------------------------------------------------- .text:0000AB74 off_AB74 DCD 0 ; DATA XREF: _IO_list_unlock+8r .text:0000AB78 off_AB78 DCD list_all_lock ; DATA XREF: _IO_list_unlock+18r .text:0000AB7C .text:0000AB7C ; =============== S U B R O U T I N E ======================================= .text:0000AB7C .text:0000AB7C ; Attributes: bp-based frame .text:0000AB7C .text:0000AB7C EXPORT _IO_list_resetlock .text:0000AB7C _IO_list_resetlock .text:0000AB7C .text:0000AB7C var_18 = -0x18 .text:0000AB7C .text:0000AB7C MOV R12, SP .text:0000AB80 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000AB84 LDR R5, =0 .text:0000AB88 SUB R11, R12, #4 .text:0000AB8C CMP R5, #0 .text:0000AB90 SUB SP, SP, #4 .text:0000AB94 BEQ locret_ABD4 .text:0000AB98 SUB R4, R11, #-var_18 .text:0000AB9C MOV R0, R4 .text:0000ABA0 BL 0 .text:0000ABA4 MOV R0, R4 .text:0000ABA8 MOV R1, #1 .text:0000ABAC BL 0 .text:0000ABB0 LDR R0, =list_all_lock .text:0000ABB4 MOV R1, R4 .text:0000ABB8 MOV LR, PC .text:0000ABBC MOV PC, R5 .text:0000ABC0 MOV R0, R4 .text:0000ABC4 BL 0 .text:0000ABC8 B locret_ABD4 .text:0000ABC8 ; --------------------------------------------------------------------------- .text:0000ABCC off_ABCC DCD 0 ; DATA XREF: _IO_list_resetlock+8r .text:0000ABD0 off_ABD0 DCD list_all_lock ; DATA XREF: _IO_list_resetlock+34r .text:0000ABD4 ; --------------------------------------------------------------------------- .text:0000ABD4 .text:0000ABD4 locret_ABD4 ; CODE XREF: _IO_list_resetlock+18j .text:0000ABD4 ; _IO_list_resetlock+4Cj .text:0000ABD4 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000ABD4 ; End of function _IO_list_resetlock .text:0000ABD4 .text:0000ABD8 .text:0000ABD8 ; =============== S U B R O U T I N E ======================================= .text:0000ABD8 .text:0000ABD8 ; Attributes: bp-based frame .text:0000ABD8 .text:0000ABD8 EXPORT _IO_str_init_static .text:0000ABD8 _IO_str_init_static ; CODE XREF: vsscanf+5Cp .text:0000ABD8 ; _IO_str_init_readonly+14p .text:0000ABD8 MOV R12, SP .text:0000ABDC STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000ABE0 SUB R11, R12, #4 .text:0000ABE4 SUBS R12, R2, #0 .text:0000ABE8 MOV R5, R0 .text:0000ABEC MOV R4, R1 .text:0000ABF0 MOV R7, R3 .text:0000ABF4 BNE loc_AC08 .text:0000ABF8 MOV R0, R4 .text:0000ABFC BL strlen .text:0000AC00 MOV R12, R0 .text:0000AC04 B loc_AC7C .text:0000AC08 ; --------------------------------------------------------------------------- .text:0000AC08 .text:0000AC08 loc_AC08 ; CODE XREF: _IO_str_init_static+1Cj .text:0000AC08 BGE loc_AC7C .text:0000AC0C MOV R12, #0x200 .text:0000AC10 MOV R1, R12,LSL#1 .text:0000AC14 ADD R3, R4, R1 .text:0000AC18 CMP R3, R4 .text:0000AC1C BLS loc_AC50 .text:0000AC20 .text:0000AC20 loc_AC20 ; CODE XREF: _IO_str_init_static+74j .text:0000AC20 MOV R12, R1 .text:0000AC24 MOV R1, R12,LSL#1 .text:0000AC28 CMP R1, #0 .text:0000AC2C BLE loc_AC50 .text:0000AC30 ADD R2, R4, R1 .text:0000AC34 CMN R1, #0xFC000001 .text:0000AC38 MOVGT R3, #0 .text:0000AC3C MOVLE R3, #1 .text:0000AC40 CMP R2, R4 .text:0000AC44 MOVLS R3, #0 .text:0000AC48 CMP R3, #0 .text:0000AC4C BNE loc_AC20 .text:0000AC50 .text:0000AC50 loc_AC50 ; CODE XREF: _IO_str_init_static+44j .text:0000AC50 ; _IO_str_init_static+54j .text:0000AC50 MOV R1, R12,ASR#1 .text:0000AC54 CMP R1, #0 .text:0000AC58 BLE loc_AC7C .text:0000AC5C .text:0000AC5C loc_AC5C ; CODE XREF: _IO_str_init_static+A0j .text:0000AC5C ADD R3, R4, R12 .text:0000AC60 ADD R3, R3, R1 .text:0000AC64 ADD R2, R12, R1 .text:0000AC68 CMP R3, R4 .text:0000AC6C MOVHI R12, R2 .text:0000AC70 MOV R1, R1,ASR#1 .text:0000AC74 CMP R1, #0 .text:0000AC78 BGT loc_AC5C .text:0000AC7C .text:0000AC7C loc_AC7C ; CODE XREF: _IO_str_init_static+2Cj .text:0000AC7C ; _IO_str_init_static:loc_AC08j ... .text:0000AC7C MOV R0, R5 .text:0000AC80 ADD R6, R4, R12 .text:0000AC84 MOV R1, R4 .text:0000AC88 MOV R2, R6 .text:0000AC8C MOV R3, #0 .text:0000AC90 BL _IO_setb .text:0000AC94 STR R4, [R5,#0x10] .text:0000AC98 STR R4, [R5,#0xC] .text:0000AC9C CMP R7, #0 .text:0000ACA0 STR R4, [R5,#4] .text:0000ACA4 STRNE R7, [R5,#0x14] .text:0000ACA8 STRNE R6, [R5,#0x18] .text:0000ACAC STRNE R7, [R5,#8] .text:0000ACB0 STREQ R4, [R5,#0x14] .text:0000ACB4 STREQ R4, [R5,#0x18] .text:0000ACB8 STREQ R6, [R5,#8] .text:0000ACBC MOV R3, #0 .text:0000ACC0 STR R3, [R5,#0x98] .text:0000ACC4 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000ACC4 ; End of function _IO_str_init_static .text:0000ACC4 .text:0000ACC8 .text:0000ACC8 ; =============== S U B R O U T I N E ======================================= .text:0000ACC8 .text:0000ACC8 ; Attributes: bp-based frame .text:0000ACC8 .text:0000ACC8 EXPORT _IO_str_init_readonly .text:0000ACC8 _IO_str_init_readonly .text:0000ACC8 MOV R12, SP .text:0000ACCC STMFD SP!, {R4,R11,R12,LR,PC} .text:0000ACD0 SUB R11, R12, #4 .text:0000ACD4 MOV R4, R0 .text:0000ACD8 MOV R3, #0 .text:0000ACDC BL _IO_str_init_static .text:0000ACE0 LDR R3, [R4] .text:0000ACE4 ORR R3, R3, #8 .text:0000ACE8 STR R3, [R4] .text:0000ACEC LDMDB R11, {R4,R11,SP,PC} .text:0000ACEC ; End of function _IO_str_init_readonly .text:0000ACEC .text:0000ACF0 .text:0000ACF0 ; =============== S U B R O U T I N E ======================================= .text:0000ACF0 .text:0000ACF0 ; Attributes: bp-based frame .text:0000ACF0 .text:0000ACF0 EXPORT _IO_str_overflow .text:0000ACF0 _IO_str_overflow .text:0000ACF0 MOV R12, SP .text:0000ACF4 STMFD SP!, {R4-R12,LR,PC} .text:0000ACF8 SUB R11, R12, #4 .text:0000ACFC MOV R4, R0 .text:0000AD00 MOV R9, R1 .text:0000AD04 LDR R2, [R4] .text:0000AD08 CMN R9, #1 .text:0000AD0C MOVNE R8, #0 .text:0000AD10 MOVEQ R8, #1 .text:0000AD14 TST R2, #8 .text:0000AD18 BEQ loc_AD2C .text:0000AD1C CMP R8, #0 .text:0000AD20 MOVEQ R0, 0xFFFFFFFF .text:0000AD24 MOVNE R0, #0 .text:0000AD28 LDMDB R11, {R4-R11,SP,PC} .text:0000AD2C ; --------------------------------------------------------------------------- .text:0000AD2C .text:0000AD2C loc_AD2C ; CODE XREF: _IO_str_overflow+28j .text:0000AD2C AND R3, R2, #0xC00 .text:0000AD30 CMP R3, #0x400 .text:0000AD34 BNE loc_AD50 .text:0000AD38 ORR R3, R2, #0x800 .text:0000AD3C STR R3, [R4] .text:0000AD40 LDR R2, [R4,#4] .text:0000AD44 STR R2, [R4,#0x14] .text:0000AD48 LDR R3, [R4,#8] .text:0000AD4C STR R3, [R4,#4] .text:0000AD50 .text:0000AD50 loc_AD50 ; CODE XREF: _IO_str_overflow+44j .text:0000AD50 ADD R3, R4, #0x20 .text:0000AD54 LDMDA R3, {R1,R3} .text:0000AD58 SUB R1, R3, R1 .text:0000AD5C ADD R3, R4, #0x14 .text:0000AD60 LDMDA R3, {R2,R3} .text:0000AD64 SUB R2, R3, R2 .text:0000AD68 LDR R6, [R4,#0x1C] .text:0000AD6C ADD R3, R1, R8 .text:0000AD70 CMP R2, R3 .text:0000AD74 BCC loc_AE38 .text:0000AD78 LDR R3, [R4] .text:0000AD7C ANDS R10, R3, #1 .text:0000AD80 BEQ loc_AD8C .text:0000AD84 .text:0000AD84 loc_AD84 ; CODE XREF: _IO_str_overflow+B4j .text:0000AD84 MOV R0, 0xFFFFFFFF .text:0000AD88 LDMDB R11, {R4-R11,SP,PC} .text:0000AD8C ; --------------------------------------------------------------------------- .text:0000AD8C .text:0000AD8C loc_AD8C ; CODE XREF: _IO_str_overflow+90j .text:0000AD8C MOV R3, R1,LSL#1 .text:0000AD90 ADD R7, R3, #0x64 .text:0000AD94 MOV R0, R7 .text:0000AD98 MOV LR, PC .text:0000AD9C LDR PC, [R4,#0x98] .text:0000ADA0 SUBS R5, R0, #0 .text:0000ADA4 BEQ loc_AD84 .text:0000ADA8 CMP R6, #0 .text:0000ADAC BEQ loc_ADD8 .text:0000ADB0 MOV R0, R5 .text:0000ADB4 ADD R3, R4, #0x20 .text:0000ADB8 LDMDA R3, {R2,R3} .text:0000ADBC SUB R2, R3, R2 .text:0000ADC0 MOV R1, R6 .text:0000ADC4 BL memcpy .text:0000ADC8 MOV R0, R6 .text:0000ADCC MOV LR, PC .text:0000ADD0 LDR PC, [R4,#0x9C] .text:0000ADD4 STR R10, [R4,#0x1C] .text:0000ADD8 .text:0000ADD8 loc_ADD8 ; CODE XREF: _IO_str_overflow+BCj .text:0000ADD8 MOV R0, R4 .text:0000ADDC MOV R1, R5 .text:0000ADE0 ADD R2, R5, R7 .text:0000ADE4 MOV R3, #1 .text:0000ADE8 BL _IO_setb .text:0000ADEC LDR R3, [R4,#0xC] .text:0000ADF0 LDR R2, [R4,#4] .text:0000ADF4 STR R5, [R4,#0x10] .text:0000ADF8 RSB R3, R6, R3 .text:0000ADFC ADD R3, R5, R3 .text:0000AE00 STR R3, [R4,#0xC] .text:0000AE04 RSB R2, R6, R2 .text:0000AE08 ADD R2, R5, R2 .text:0000AE0C STR R2, [R4,#4] .text:0000AE10 LDR R3, [R4,#8] .text:0000AE14 LDR R2, [R4,#0x14] .text:0000AE18 RSB R3, R6, R3 .text:0000AE1C ADD R3, R5, R3 .text:0000AE20 STR R3, [R4,#8] .text:0000AE24 RSB R2, R6, R2 .text:0000AE28 ADD R2, R5, R2 .text:0000AE2C STR R2, [R4,#0x14] .text:0000AE30 LDR R3, [R4,#0x20] .text:0000AE34 STR R3, [R4,#0x18] .text:0000AE38 .text:0000AE38 loc_AE38 ; CODE XREF: _IO_str_overflow+84j .text:0000AE38 CMP R8, #0 .text:0000AE3C LDREQ R3, [R4,#0x14] .text:0000AE40 STREQB R9, [R3],#1 .text:0000AE44 STREQ R3, [R4,#0x14] .text:0000AE48 LDR R2, [R4,#0x14] .text:0000AE4C LDR R3, [R4,#8] .text:0000AE50 CMP R2, R3 .text:0000AE54 STRHI R2, [R4,#8] .text:0000AE58 MOV R0, R9 .text:0000AE5C LDMDB R11, {R4-R11,SP,PC} .text:0000AE5C ; End of function _IO_str_overflow .text:0000AE5C .text:0000AE60 .text:0000AE60 ; =============== S U B R O U T I N E ======================================= .text:0000AE60 .text:0000AE60 ; Attributes: bp-based frame .text:0000AE60 .text:0000AE60 EXPORT _IO_str_underflow .text:0000AE60 _IO_str_underflow .text:0000AE60 MOV R12, SP .text:0000AE64 STMFD SP!, {R11,R12,LR,PC} .text:0000AE68 LDR R2, [R0,#0x14] .text:0000AE6C LDR R3, [R0,#8] .text:0000AE70 SUB R11, R12, #4 .text:0000AE74 CMP R2, R3 .text:0000AE78 STRHI R2, [R0,#8] .text:0000AE7C LDR R2, [R0] .text:0000AE80 AND R3, R2, #0xC00 .text:0000AE84 CMP R3, #0xC00 .text:0000AE88 BNE loc_AEA4 .text:0000AE8C BIC R3, R2, #0x800 .text:0000AE90 STR R3, [R0] .text:0000AE94 LDR R2, [R0,#0x14] .text:0000AE98 STR R2, [R0,#4] .text:0000AE9C LDR R3, [R0,#0x18] .text:0000AEA0 STR R3, [R0,#0x14] .text:0000AEA4 .text:0000AEA4 loc_AEA4 ; CODE XREF: _IO_str_underflow+28j .text:0000AEA4 LDMIB R0, {R2,R3} .text:0000AEA8 CMP R2, R3 .text:0000AEAC MOV R0, 0xFFFFFFFF .text:0000AEB0 LDMCSDB R11, {R11,SP,PC} .text:0000AEB4 LDRB R0, [R2] .text:0000AEB8 LDMDB R11, {R11,SP,PC} .text:0000AEB8 ; End of function _IO_str_underflow .text:0000AEB8 .text:0000AEBC .text:0000AEBC ; =============== S U B R O U T I N E ======================================= .text:0000AEBC .text:0000AEBC ; Attributes: bp-based frame .text:0000AEBC .text:0000AEBC EXPORT _IO_str_count .text:0000AEBC _IO_str_count ; CODE XREF: _IO_str_seekoff+90p .text:0000AEBC MOV R12, SP .text:0000AEC0 STMFD SP!, {R11,R12,LR,PC} .text:0000AEC4 LDR R2, [R0,#8] .text:0000AEC8 LDR R3, [R0,#0x14] .text:0000AECC LDR R0, [R0,#0xC] .text:0000AED0 SUB R11, R12, #4 .text:0000AED4 CMP R2, R3 .text:0000AED8 RSBCS R0, R0, R2 .text:0000AEDC RSBCC R0, R0, R3 .text:0000AEE0 LDMDB R11, {R11,SP,PC} .text:0000AEE0 ; End of function _IO_str_count .text:0000AEE0 .text:0000AEE4 .text:0000AEE4 ; =============== S U B R O U T I N E ======================================= .text:0000AEE4 .text:0000AEE4 ; Attributes: bp-based frame .text:0000AEE4 .text:0000AEE4 EXPORT _IO_str_seekoff .text:0000AEE4 _IO_str_seekoff .text:0000AEE4 .text:0000AEE4 var_2C = -0x2C .text:0000AEE4 arg_0 = 4 .text:0000AEE4 .text:0000AEE4 MOV R12, SP .text:0000AEE8 STMFD SP!, {R4-R12,LR,PC} .text:0000AEEC SUB R11, R12, #4 .text:0000AEF0 MOV R8, R2 .text:0000AEF4 MOV R7, R1 .text:0000AEF8 MOV R10, R0 .text:0000AEFC SUB SP, SP, #4 .text:0000AF00 LDR R9, [R11,#arg_0] .text:0000AF04 MOV R12, R3 .text:0000AF08 CMP R9, #0 .text:0000AF0C BNE loc_AF28 .text:0000AF10 LDR R3, [R10] .text:0000AF14 TST R3, #0x400 .text:0000AF18 BEQ loc_AF28 .text:0000AF1C TST R3, #0x800 .text:0000AF20 MOVEQ R9, #1 .text:0000AF24 MOVNE R9, #2 .text:0000AF28 .text:0000AF28 loc_AF28 ; CODE XREF: _IO_str_seekoff+28j .text:0000AF28 ; _IO_str_seekoff+34j .text:0000AF28 CMP R9, #0 .text:0000AF2C BNE loc_AF6C .text:0000AF30 LDR R3, [R10] .text:0000AF34 TST R3, #8 .text:0000AF38 BEQ loc_AF54 .text:0000AF3C LDR R3, [R10,#4] .text:0000AF40 LDR R2, [R10,#0xC] .text:0000AF44 RSB R3, R2, R3 .text:0000AF48 MOV R1, R3 .text:0000AF4C MOV R2, R1,ASR#31 .text:0000AF50 B loc_B098 .text:0000AF54 ; --------------------------------------------------------------------------- .text:0000AF54 .text:0000AF54 loc_AF54 ; CODE XREF: _IO_str_seekoff+54j .text:0000AF54 ADD R2, R10, #0x14 .text:0000AF58 LDMDA R2, {R2,R3} .text:0000AF5C SUB R3, R3, R2 .text:0000AF60 MOV R1, R3 .text:0000AF64 MOV R2, R1,ASR#31 .text:0000AF68 B loc_B098 .text:0000AF6C ; --------------------------------------------------------------------------- .text:0000AF6C .text:0000AF6C loc_AF6C ; CODE XREF: _IO_str_seekoff+48j .text:0000AF6C STR R12, [R11,#var_2C] .text:0000AF70 MOV R0, R10 .text:0000AF74 BL _IO_str_count .text:0000AF78 MOV R2, 0xFFFFFFFF .text:0000AF7C MOV R1, 0xFFFFFFFF .text:0000AF80 TST R9, #1 .text:0000AF84 LDR R12, [R11,#var_2C] .text:0000AF88 BEQ loc_B00C .text:0000AF8C CMP R12, #1 .text:0000AF90 BEQ loc_AFCC .text:0000AF94 ADDS R3, R7, R0 .text:0000AF98 ADC R4, R8, R0,ASR#31 .text:0000AF9C SUBS R1, R12, #2 .text:0000AFA0 MOVNE R1, #1 .text:0000AFA4 MOV R2, #0 .text:0000AFA8 RSBS R5, R1, #0 .text:0000AFAC RSC R6, R2, #0 .text:0000AFB0 AND R7, R7, R5 .text:0000AFB4 AND R8, R8, R6 .text:0000AFB8 BIC R3, R3, R5 .text:0000AFBC BIC R4, R4, R6 .text:0000AFC0 ORR R7, R7, R3 .text:0000AFC4 ORR R8, R8, R4 .text:0000AFC8 B loc_AFE0 .text:0000AFCC ; --------------------------------------------------------------------------- .text:0000AFCC .text:0000AFCC loc_AFCC ; CODE XREF: _IO_str_seekoff+ACj .text:0000AFCC LDR R3, [R10,#4] .text:0000AFD0 LDR R2, [R10,#0xC] .text:0000AFD4 RSB R3, R2, R3 .text:0000AFD8 ADDS R7, R7, R3 .text:0000AFDC ADC R8, R8, R3,ASR#31 .text:0000AFE0 .text:0000AFE0 loc_AFE0 ; CODE XREF: _IO_str_seekoff+E4j .text:0000AFE0 CMP R8, #0 .text:0000AFE4 BLT loc_B078 .text:0000AFE8 CMP R7, R0 .text:0000AFEC BGT loc_B078 .text:0000AFF0 LDR R3, [R10,#0xC] .text:0000AFF4 ADD R2, R3, R7 .text:0000AFF8 STR R2, [R10,#4] .text:0000AFFC MOV R2, R8 .text:0000B000 MOV R1, R7 .text:0000B004 ADD R3, R3, R0 .text:0000B008 STR R3, [R10,#8] .text:0000B00C .text:0000B00C loc_B00C ; CODE XREF: _IO_str_seekoff+A4j .text:0000B00C TST R9, #2 .text:0000B010 BEQ loc_B098 .text:0000B014 CMP R12, #1 .text:0000B018 BEQ loc_B054 .text:0000B01C ADDS R3, R7, R0 .text:0000B020 ADC R4, R8, R0,ASR#31 .text:0000B024 SUBS R1, R12, #2 .text:0000B028 MOVNE R1, #1 .text:0000B02C MOV R2, #0 .text:0000B030 RSBS R5, R1, #0 .text:0000B034 RSC R6, R2, #0 .text:0000B038 AND R7, R7, R5 .text:0000B03C AND R8, R8, R6 .text:0000B040 BIC R3, R3, R5 .text:0000B044 BIC R4, R4, R6 .text:0000B048 ORR R7, R7, R3 .text:0000B04C ORR R8, R8, R4 .text:0000B050 B loc_B068 .text:0000B054 ; --------------------------------------------------------------------------- .text:0000B054 .text:0000B054 loc_B054 ; CODE XREF: _IO_str_seekoff+134j .text:0000B054 ADD R2, R10, #0x14 .text:0000B058 LDMDA R2, {R2,R3} .text:0000B05C SUB R3, R3, R2 .text:0000B060 ADDS R7, R7, R3 .text:0000B064 ADC R8, R8, R3,ASR#31 .text:0000B068 .text:0000B068 loc_B068 ; CODE XREF: _IO_str_seekoff+16Cj .text:0000B068 CMP R8, #0 .text:0000B06C BLT loc_B078 .text:0000B070 CMP R7, R0 .text:0000B074 BLE loc_B084 .text:0000B078 .text:0000B078 loc_B078 ; CODE XREF: _IO_str_seekoff+100j .text:0000B078 ; _IO_str_seekoff+108j ... .text:0000B078 MOV R1, 0xFFFFFFFF .text:0000B07C MOV R0, 0xFFFFFFFF .text:0000B080 B locret_B0A0 .text:0000B084 ; --------------------------------------------------------------------------- .text:0000B084 .text:0000B084 loc_B084 ; CODE XREF: _IO_str_seekoff+190j .text:0000B084 LDR R3, [R10,#0x10] .text:0000B088 MOV R2, R8 .text:0000B08C MOV R1, R7 .text:0000B090 ADD R3, R3, R7 .text:0000B094 STR R3, [R10,#0x14] .text:0000B098 .text:0000B098 loc_B098 ; CODE XREF: _IO_str_seekoff+6Cj .text:0000B098 ; _IO_str_seekoff+84j ... .text:0000B098 MOV R0, R1 .text:0000B09C MOV R1, R2 .text:0000B0A0 .text:0000B0A0 locret_B0A0 ; CODE XREF: _IO_str_seekoff+19Cj .text:0000B0A0 LDMDB R11, {R4-R11,SP,PC} .text:0000B0A0 ; End of function _IO_str_seekoff .text:0000B0A0 .text:0000B0A4 .text:0000B0A4 ; =============== S U B R O U T I N E ======================================= .text:0000B0A4 .text:0000B0A4 ; Attributes: bp-based frame .text:0000B0A4 .text:0000B0A4 EXPORT _IO_str_pbackfail .text:0000B0A4 _IO_str_pbackfail .text:0000B0A4 MOV R12, SP .text:0000B0A8 STMFD SP!, {R11,R12,LR,PC} .text:0000B0AC SUB R11, R12, #4 .text:0000B0B0 MOV R2, R0 .text:0000B0B4 MOV R0, 0xFFFFFFFF .text:0000B0B8 LDR R3, [R2] .text:0000B0BC CMP R1, R0 .text:0000B0C0 MOV R3, R3,LSR#3 .text:0000B0C4 ANDNE R3, R3, #1 .text:0000B0C8 MOVEQ R3, #0 .text:0000B0CC CMP R3, #0 .text:0000B0D0 LDMNEDB R11, {R11,SP,PC} .text:0000B0D4 MOV R0, R2 .text:0000B0D8 BL _IO_default_pbackfail .text:0000B0DC LDMDB R11, {R11,SP,PC} .text:0000B0DC ; End of function _IO_str_pbackfail .text:0000B0DC .text:0000B0E0 .text:0000B0E0 ; =============== S U B R O U T I N E ======================================= .text:0000B0E0 .text:0000B0E0 ; Attributes: bp-based frame .text:0000B0E0 .text:0000B0E0 EXPORT _IO_str_finish .text:0000B0E0 _IO_str_finish .text:0000B0E0 MOV R12, SP .text:0000B0E4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000B0E8 MOV R4, R0 .text:0000B0EC LDR R0, [R4,#0x1C] .text:0000B0F0 SUB R11, R12, #4 .text:0000B0F4 CMP R0, #0 .text:0000B0F8 BEQ loc_B110 .text:0000B0FC LDR R3, [R4] .text:0000B100 TST R3, #1 .text:0000B104 BNE loc_B110 .text:0000B108 MOV LR, PC .text:0000B10C LDR PC, [R4,#0x9C] .text:0000B110 .text:0000B110 loc_B110 ; CODE XREF: _IO_str_finish+18j .text:0000B110 ; _IO_str_finish+24j .text:0000B110 MOV R1, #0 .text:0000B114 STR R1, [R4,#0x1C] .text:0000B118 MOV R0, R4 .text:0000B11C BL _IO_default_finish .text:0000B120 LDMDB R11, {R4,R11,SP,PC} .text:0000B120 ; End of function _IO_str_finish .text:0000B120 .text:0000B124 .text:0000B124 ; =============== S U B R O U T I N E ======================================= .text:0000B124 .text:0000B124 ; Attributes: bp-based frame .text:0000B124 .text:0000B124 ptmalloc_lock_all ; DATA XREF: ptmalloc_init+114o .text:0000B124 ; .text:off_B6B8o .text:0000B124 MOV R12, SP .text:0000B128 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000B12C LDR R3, =0 .text:0000B130 SUB R11, R12, #4 .text:0000B134 CMP R3, #0 .text:0000B138 BEQ loc_B14C .text:0000B13C LDR R0, =list_lock .text:0000B140 MOV LR, PC .text:0000B144 MOV PC, R3 .text:0000B148 B loc_B158 .text:0000B14C ; --------------------------------------------------------------------------- .text:0000B14C .text:0000B14C loc_B14C ; CODE XREF: ptmalloc_lock_all+14j .text:0000B14C LDR R2, =list_lock .text:0000B150 MOV R3, #1 .text:0000B154 STR R3, [R2] .text:0000B158 .text:0000B158 loc_B158 ; CODE XREF: ptmalloc_lock_all+24j .text:0000B158 LDR R4, =main_arena .text:0000B15C LDR R8, =__malloc_hook .text:0000B160 LDR R10, =__free_hook .text:0000B164 MOV R7, #1 .text:0000B168 LDR R5, =0 .text:0000B16C MOV R6, R4 .text:0000B170 .text:0000B170 loc_B170 ; CODE XREF: ptmalloc_lock_all+70j .text:0000B170 CMP R5, #0 .text:0000B174 BEQ loc_B188 .text:0000B178 ADD R0, R4, #0x410 .text:0000B17C MOV LR, PC .text:0000B180 MOV PC, R5 .text:0000B184 B loc_B18C .text:0000B188 ; --------------------------------------------------------------------------- .text:0000B188 .text:0000B188 loc_B188 ; CODE XREF: ptmalloc_lock_all+50j .text:0000B188 STR R7, [R4,#(main_arena+0x410 - 0x6B64C)] .text:0000B18C .text:0000B18C loc_B18C ; CODE XREF: ptmalloc_lock_all+60j .text:0000B18C LDR R4, [R4,#0x408] .text:0000B190 CMP R4, R6 .text:0000B194 BNE loc_B170 .text:0000B198 LDR R3, =malloc_atfork .text:0000B19C LDR R1, [R8] .text:0000B1A0 STR R3, [R8] .text:0000B1A4 LDR R0, [R10] .text:0000B1A8 LDR R3, =free_atfork .text:0000B1AC STR R3, [R10] .text:0000B1B0 LDR R2, =save_malloc_hook .text:0000B1B4 STR R1, [R2] .text:0000B1B8 LDR R3, =__libc_internal_tsd_get .text:0000B1BC LDR R2, [R3] .text:0000B1C0 LDR R3, =save_free_hook .text:0000B1C4 CMP R2, #0 .text:0000B1C8 STR R0, [R3] .text:0000B1CC BEQ loc_B1E0 .text:0000B1D0 MOV R0, #0 .text:0000B1D4 MOV LR, PC .text:0000B1D8 MOV PC, R2 .text:0000B1DC B loc_B1E8 .text:0000B1E0 ; --------------------------------------------------------------------------- .text:0000B1E0 .text:0000B1E0 loc_B1E0 ; CODE XREF: ptmalloc_lock_all+A8j .text:0000B1E0 LDR R3, =__libc_tsd_MALLOC_data .text:0000B1E4 LDR R0, [R3] .text:0000B1E8 .text:0000B1E8 loc_B1E8 ; CODE XREF: ptmalloc_lock_all+B8j .text:0000B1E8 LDR R3, =__libc_internal_tsd_set .text:0000B1EC LDR R2, =save_arena .text:0000B1F0 LDR R12, [R3] .text:0000B1F4 STR R0, [R2] .text:0000B1F8 CMP R12, #0 .text:0000B1FC BEQ loc_B214 .text:0000B200 MOV R0, #0 .text:0000B204 MOV R1, R0 .text:0000B208 MOV LR, PC .text:0000B20C MOV PC, R12 .text:0000B210 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000B214 ; --------------------------------------------------------------------------- .text:0000B214 .text:0000B214 loc_B214 ; CODE XREF: ptmalloc_lock_all+D8j .text:0000B214 LDR R3, =__libc_tsd_MALLOC_data .text:0000B218 STR R12, [R3] .text:0000B21C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000B21C ; End of function ptmalloc_lock_all .text:0000B21C .text:0000B21C ; --------------------------------------------------------------------------- .text:0000B220 off_B220 DCD 0 ; DATA XREF: ptmalloc_lock_all+8r .text:0000B220 ; ptmalloc_lock_all+44r .text:0000B224 off_B224 DCD list_lock ; DATA XREF: ptmalloc_lock_all+18r .text:0000B224 ; ptmalloc_lock_all:loc_B14Cr .text:0000B228 off_B228 DCD main_arena ; DATA XREF: ptmalloc_lock_all:loc_B158r .text:0000B22C off_B22C DCD __malloc_hook ; DATA XREF: ptmalloc_lock_all+38r .text:0000B230 off_B230 DCD __free_hook ; DATA XREF: ptmalloc_lock_all+3Cr .text:0000B234 off_B234 DCD malloc_atfork ; DATA XREF: ptmalloc_lock_all+74r .text:0000B238 off_B238 DCD free_atfork ; DATA XREF: ptmalloc_lock_all+84r .text:0000B23C off_B23C DCD save_malloc_hook ; DATA XREF: ptmalloc_lock_all+8Cr .text:0000B240 off_B240 DCD __libc_internal_tsd_get .text:0000B240 ; DATA XREF: ptmalloc_lock_all+94r .text:0000B244 off_B244 DCD save_free_hook ; DATA XREF: ptmalloc_lock_all+9Cr .text:0000B248 off_B248 DCD __libc_tsd_MALLOC_data .text:0000B248 ; DATA XREF: ptmalloc_lock_all:loc_B1E0r .text:0000B248 ; ptmalloc_lock_all:loc_B214r .text:0000B24C off_B24C DCD __libc_internal_tsd_set .text:0000B24C ; DATA XREF: ptmalloc_lock_all:loc_B1E8r .text:0000B250 off_B250 DCD save_arena ; DATA XREF: ptmalloc_lock_all+C8r .text:0000B254 .text:0000B254 ; =============== S U B R O U T I N E ======================================= .text:0000B254 .text:0000B254 ; Attributes: bp-based frame .text:0000B254 .text:0000B254 ptmalloc_unlock_all ; DATA XREF: ptmalloc_init+118o .text:0000B254 ; .text:off_B6BCo .text:0000B254 MOV R12, SP .text:0000B258 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000B25C LDR R3, =__libc_internal_tsd_set .text:0000B260 LDR R2, [R3] .text:0000B264 SUB R11, R12, #4 .text:0000B268 CMP R2, #0 .text:0000B26C BEQ loc_B288 .text:0000B270 LDR R3, =save_arena .text:0000B274 LDR R1, [R3] .text:0000B278 MOV R0, #0 .text:0000B27C MOV LR, PC .text:0000B280 MOV PC, R2 .text:0000B284 B loc_B298 .text:0000B288 ; --------------------------------------------------------------------------- .text:0000B288 .text:0000B288 loc_B288 ; CODE XREF: ptmalloc_unlock_all+18j .text:0000B288 LDR R3, =save_arena .text:0000B28C LDR R1, =__libc_tsd_MALLOC_data .text:0000B290 LDR R2, [R3] .text:0000B294 STR R2, [R1] .text:0000B298 .text:0000B298 loc_B298 ; CODE XREF: ptmalloc_unlock_all+30j .text:0000B298 LDR R2, =save_malloc_hook .text:0000B29C LDR R1, =__malloc_hook .text:0000B2A0 LDR R3, [R2] .text:0000B2A4 STR R3, [R1] .text:0000B2A8 LDR R4, =main_arena .text:0000B2AC LDR R8, =list_lock .text:0000B2B0 LDR R6, =0 .text:0000B2B4 LDR R2, =save_free_hook .text:0000B2B8 LDR R1, =__free_hook .text:0000B2BC MOV R7, R4 .text:0000B2C0 LDR R3, [R2] .text:0000B2C4 MOV R5, R6 .text:0000B2C8 STR R3, [R1] .text:0000B2CC .text:0000B2CC loc_B2CC ; CODE XREF: ptmalloc_unlock_all+9Cj .text:0000B2CC CMP R5, #0 .text:0000B2D0 BEQ loc_B2E4 .text:0000B2D4 ADD R0, R4, #0x410 .text:0000B2D8 MOV LR, PC .text:0000B2DC MOV PC, R5 .text:0000B2E0 B loc_B2E8 .text:0000B2E4 ; --------------------------------------------------------------------------- .text:0000B2E4 .text:0000B2E4 loc_B2E4 ; CODE XREF: ptmalloc_unlock_all+7Cj .text:0000B2E4 STR R6, [R4,#(main_arena+0x410 - 0x6B64C)] .text:0000B2E8 .text:0000B2E8 loc_B2E8 ; CODE XREF: ptmalloc_unlock_all+8Cj .text:0000B2E8 LDR R4, [R4,#0x408] .text:0000B2EC CMP R4, R7 .text:0000B2F0 BNE loc_B2CC .text:0000B2F4 CMP R6, #0 .text:0000B2F8 BEQ loc_B30C .text:0000B2FC MOV R0, R8 .text:0000B300 MOV LR, PC .text:0000B304 MOV PC, R6 .text:0000B308 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000B30C ; --------------------------------------------------------------------------- .text:0000B30C .text:0000B30C loc_B30C ; CODE XREF: ptmalloc_unlock_all+A4j .text:0000B30C STR R6, [R8] .text:0000B310 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000B310 ; End of function ptmalloc_unlock_all .text:0000B310 .text:0000B310 ; --------------------------------------------------------------------------- .text:0000B314 off_B314 DCD __libc_internal_tsd_set .text:0000B314 ; DATA XREF: ptmalloc_unlock_all+8r .text:0000B318 off_B318 DCD save_arena ; DATA XREF: ptmalloc_unlock_all+1Cr .text:0000B318 ; ptmalloc_unlock_all:loc_B288r .text:0000B31C off_B31C DCD __libc_tsd_MALLOC_data .text:0000B31C ; DATA XREF: ptmalloc_unlock_all+38r .text:0000B320 off_B320 DCD save_malloc_hook ; DATA XREF: ptmalloc_unlock_all:loc_B298r .text:0000B324 off_B324 DCD __malloc_hook ; DATA XREF: ptmalloc_unlock_all+48r .text:0000B328 off_B328 DCD main_arena ; DATA XREF: ptmalloc_unlock_all+54r .text:0000B32C off_B32C DCD list_lock ; DATA XREF: ptmalloc_unlock_all+58r .text:0000B330 off_B330 DCD 0 ; DATA XREF: ptmalloc_unlock_all+5Cr .text:0000B334 off_B334 DCD save_free_hook ; DATA XREF: ptmalloc_unlock_all+60r .text:0000B338 off_B338 DCD __free_hook ; DATA XREF: ptmalloc_unlock_all+64r .text:0000B33C .text:0000B33C ; =============== S U B R O U T I N E ======================================= .text:0000B33C .text:0000B33C ; Attributes: bp-based frame .text:0000B33C .text:0000B33C ptmalloc_init_all ; DATA XREF: ptmalloc_init+11Co .text:0000B33C ; .text:off_B6C0o .text:0000B33C MOV R12, SP .text:0000B340 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000B344 LDR R3, =__libc_internal_tsd_set .text:0000B348 LDR R2, [R3] .text:0000B34C SUB R11, R12, #4 .text:0000B350 CMP R2, #0 .text:0000B354 BEQ loc_B370 .text:0000B358 LDR R3, =save_arena .text:0000B35C LDR R1, [R3] .text:0000B360 MOV R0, #0 .text:0000B364 MOV LR, PC .text:0000B368 MOV PC, R2 .text:0000B36C B loc_B380 .text:0000B370 ; --------------------------------------------------------------------------- .text:0000B370 .text:0000B370 loc_B370 ; CODE XREF: ptmalloc_init_all+18j .text:0000B370 LDR R3, =save_arena .text:0000B374 LDR R1, =__libc_tsd_MALLOC_data .text:0000B378 LDR R2, [R3] .text:0000B37C STR R2, [R1] .text:0000B380 .text:0000B380 loc_B380 ; CODE XREF: ptmalloc_init_all+30j .text:0000B380 LDR R2, =save_malloc_hook .text:0000B384 LDR R1, =__malloc_hook .text:0000B388 LDR R3, [R2] .text:0000B38C STR R3, [R1] .text:0000B390 LDR R4, =main_arena .text:0000B394 LDR R8, =list_lock .text:0000B398 LDR R6, =0 .text:0000B39C LDR R2, =save_free_hook .text:0000B3A0 LDR R1, =__free_hook .text:0000B3A4 MOV R7, R4 .text:0000B3A8 LDR R3, [R2] .text:0000B3AC MOV R5, R6 .text:0000B3B0 STR R3, [R1] .text:0000B3B4 .text:0000B3B4 loc_B3B4 ; CODE XREF: ptmalloc_init_all+A0j .text:0000B3B4 CMP R5, #0 .text:0000B3B8 BEQ loc_B3D0 .text:0000B3BC ADD R0, R4, #0x410 .text:0000B3C0 MOV R1, #0 .text:0000B3C4 MOV LR, PC .text:0000B3C8 MOV PC, R5 .text:0000B3CC B loc_B3D4 .text:0000B3D0 ; --------------------------------------------------------------------------- .text:0000B3D0 .text:0000B3D0 loc_B3D0 ; CODE XREF: ptmalloc_init_all+7Cj .text:0000B3D0 STR R6, [R4,#(main_arena+0x410 - 0x6B64C)] .text:0000B3D4 .text:0000B3D4 loc_B3D4 ; CODE XREF: ptmalloc_init_all+90j .text:0000B3D4 LDR R4, [R4,#0x408] .text:0000B3D8 CMP R4, R7 .text:0000B3DC BNE loc_B3B4 .text:0000B3E0 CMP R6, #0 .text:0000B3E4 BEQ loc_B3FC .text:0000B3E8 MOV R0, R8 .text:0000B3EC MOV R1, #0 .text:0000B3F0 MOV LR, PC .text:0000B3F4 MOV PC, R6 .text:0000B3F8 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000B3FC ; --------------------------------------------------------------------------- .text:0000B3FC .text:0000B3FC loc_B3FC ; CODE XREF: ptmalloc_init_all+A8j .text:0000B3FC STR R6, [R8] .text:0000B400 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000B400 ; End of function ptmalloc_init_all .text:0000B400 .text:0000B400 ; --------------------------------------------------------------------------- .text:0000B404 off_B404 DCD __libc_internal_tsd_set ; DATA XREF: ptmalloc_init_all+8r .text:0000B408 off_B408 DCD save_arena ; DATA XREF: ptmalloc_init_all+1Cr .text:0000B408 ; ptmalloc_init_all:loc_B370r .text:0000B40C off_B40C DCD __libc_tsd_MALLOC_data ; DATA XREF: ptmalloc_init_all+38r .text:0000B410 off_B410 DCD save_malloc_hook ; DATA XREF: ptmalloc_init_all:loc_B380r .text:0000B414 off_B414 DCD __malloc_hook ; DATA XREF: ptmalloc_init_all+48r .text:0000B418 off_B418 DCD main_arena ; DATA XREF: ptmalloc_init_all+54r .text:0000B41C off_B41C DCD list_lock ; DATA XREF: ptmalloc_init_all+58r .text:0000B420 off_B420 DCD 0 ; DATA XREF: ptmalloc_init_all+5Cr .text:0000B424 off_B424 DCD save_free_hook ; DATA XREF: ptmalloc_init_all+60r .text:0000B428 off_B428 DCD __free_hook ; DATA XREF: ptmalloc_init_all+64r .text:0000B42C .text:0000B42C ; =============== S U B R O U T I N E ======================================= .text:0000B42C .text:0000B42C ; Attributes: bp-based frame .text:0000B42C .text:0000B42C ptmalloc_init ; CODE XREF: malloc_hook_ini+1Cp .text:0000B42C ; realloc_hook_ini+28p ... .text:0000B42C MOV R12, SP .text:0000B430 STMFD SP!, {R4-R12,LR,PC} .text:0000B434 LDR R2, =__libc_malloc_initialized .text:0000B438 SUB R11, R12, #4 .text:0000B43C LDR R3, [R2] .text:0000B440 MOV R9, R2 .text:0000B444 CMP R3, #0 .text:0000B448 LDMGEDB R11, {R4-R11,SP,PC} .text:0000B44C MOV R5, #0 .text:0000B450 STR R5, [R9] .text:0000B454 LDR R4, =__libc_pagesize .text:0000B458 BL getpagesize .text:0000B45C STR R0, [R4] .text:0000B460 LDR R1, =__malloc_hook .text:0000B464 LDR R3, =malloc_starter .text:0000B468 LDR R12, [R1] .text:0000B46C STR R3, [R1] .text:0000B470 LDR R2, =__free_hook .text:0000B474 LDR R3, =free_starter .text:0000B478 LDR LR, [R2] .text:0000B47C STR R3, [R2] .text:0000B480 LDR R0, =save_malloc_hook .text:0000B484 STR R12, [R0] .text:0000B488 MOV R7, R1 .text:0000B48C MOV R10, R2 .text:0000B490 LDR R12, =0 .text:0000B494 MOV R6, R0 .text:0000B498 LDR R3, =save_free_hook .text:0000B49C CMP R12, R5 .text:0000B4A0 MOV R8, R3 .text:0000B4A4 STR LR, [R3] .text:0000B4A8 BEQ loc_B4B4 .text:0000B4AC MOV LR, PC .text:0000B4B0 MOV PC, R12 .text:0000B4B4 .text:0000B4B4 loc_B4B4 ; CODE XREF: ptmalloc_init+7Cj .text:0000B4B4 LDR R3, =0 .text:0000B4B8 CMP R3, #0 .text:0000B4BC MOV R4, R3 .text:0000B4C0 BEQ loc_B4D8 .text:0000B4C4 LDR R0, =(main_arena+0x410) .text:0000B4C8 MOV R1, R5 .text:0000B4CC MOV LR, PC .text:0000B4D0 MOV PC, R4 .text:0000B4D4 B loc_B4E0 .text:0000B4D8 ; --------------------------------------------------------------------------- .text:0000B4D8 .text:0000B4D8 loc_B4D8 ; CODE XREF: ptmalloc_init+94j .text:0000B4D8 LDR R3, =(main_arena+0x410) .text:0000B4DC STR R4, [R3] .text:0000B4E0 .text:0000B4E0 loc_B4E0 ; CODE XREF: ptmalloc_init+A8j .text:0000B4E0 CMP R4, #0 .text:0000B4E4 BEQ loc_B4FC .text:0000B4E8 LDR R0, =list_lock .text:0000B4EC MOV R1, #0 .text:0000B4F0 MOV LR, PC .text:0000B4F4 MOV PC, R4 .text:0000B4F8 B loc_B504 .text:0000B4FC ; --------------------------------------------------------------------------- .text:0000B4FC .text:0000B4FC loc_B4FC ; CODE XREF: ptmalloc_init+B8j .text:0000B4FC LDR R3, =list_lock .text:0000B500 STR R4, [R3] .text:0000B504 .text:0000B504 loc_B504 ; CODE XREF: ptmalloc_init+CCj .text:0000B504 LDR R3, =__libc_internal_tsd_set .text:0000B508 LDR R3, [R3] .text:0000B50C CMP R3, #0 .text:0000B510 BEQ loc_B528 .text:0000B514 LDR R1, =main_arena .text:0000B518 MOV R0, #0 .text:0000B51C MOV LR, PC .text:0000B520 MOV PC, R3 .text:0000B524 B loc_B534 .text:0000B528 ; --------------------------------------------------------------------------- .text:0000B528 .text:0000B528 loc_B528 ; CODE XREF: ptmalloc_init+E4j .text:0000B528 LDR R2, =__libc_tsd_MALLOC_data .text:0000B52C LDR R3, =main_arena .text:0000B530 STR R3, [R2] .text:0000B534 .text:0000B534 loc_B534 ; CODE XREF: ptmalloc_init+F8j .text:0000B534 LDR R3, =0 .text:0000B538 CMP R3, #0 .text:0000B53C BEQ loc_B554 .text:0000B540 LDR R0, =ptmalloc_lock_all .text:0000B544 LDR R1, =ptmalloc_unlock_all .text:0000B548 LDR R2, =ptmalloc_init_all .text:0000B54C MOV LR, PC .text:0000B550 MOV PC, R3 .text:0000B554 .text:0000B554 loc_B554 ; CODE XREF: ptmalloc_init+110j .text:0000B554 LDR R3, [R6] .text:0000B558 STR R3, [R7] .text:0000B55C LDR R2, =__libc_enable_secure .text:0000B560 LDR R3, [R8] .text:0000B564 LDR R4, [R2] .text:0000B568 STR R3, [R10] .text:0000B56C CMP R4, #0 .text:0000B570 BNE loc_B624 .text:0000B574 LDR R0, =aMalloc_trim_th ; "MALLOC_TRIM_THRESHOLD_" .text:0000B578 BL getenv .text:0000B57C CMP R0, #0 .text:0000B580 BEQ loc_B5A0 .text:0000B584 MOV R1, R4 .text:0000B588 MOV R2, #0xA .text:0000B58C MOV R3, R4 .text:0000B590 BL __strtol_internal .text:0000B594 MOV R1, R0 .text:0000B598 MOV R0, 0xFFFFFFFF .text:0000B59C BL mallopt .text:0000B5A0 .text:0000B5A0 loc_B5A0 ; CODE XREF: ptmalloc_init+154j .text:0000B5A0 LDR R0, =aMalloc_top_pad ; "MALLOC_TOP_PAD_" .text:0000B5A4 BL getenv .text:0000B5A8 CMP R0, #0 .text:0000B5AC BEQ loc_B5CC .text:0000B5B0 MOV R1, R4 .text:0000B5B4 MOV R2, #0xA .text:0000B5B8 MOV R3, R4 .text:0000B5BC BL __strtol_internal .text:0000B5C0 MOV R1, R0 .text:0000B5C4 MOV R0, 0xFFFFFFFE .text:0000B5C8 BL mallopt .text:0000B5CC .text:0000B5CC loc_B5CC ; CODE XREF: ptmalloc_init+180j .text:0000B5CC LDR R0, =aMalloc_mmap_th ; "MALLOC_MMAP_THRESHOLD_" .text:0000B5D0 BL getenv .text:0000B5D4 CMP R0, #0 .text:0000B5D8 BEQ loc_B5F8 .text:0000B5DC MOV R1, R4 .text:0000B5E0 MOV R2, #0xA .text:0000B5E4 MOV R3, R4 .text:0000B5E8 BL __strtol_internal .text:0000B5EC MOV R1, R0 .text:0000B5F0 MOV R0, 0xFFFFFFFD .text:0000B5F4 BL mallopt .text:0000B5F8 .text:0000B5F8 loc_B5F8 ; CODE XREF: ptmalloc_init+1ACj .text:0000B5F8 LDR R0, =aMalloc_mmap_ma ; "MALLOC_MMAP_MAX_" .text:0000B5FC BL getenv .text:0000B600 CMP R0, #0 .text:0000B604 BEQ loc_B624 .text:0000B608 MOV R1, R4 .text:0000B60C MOV R2, #0xA .text:0000B610 MOV R3, R1 .text:0000B614 BL __strtol_internal .text:0000B618 MOV R1, R0 .text:0000B61C MOV R0, 0xFFFFFFFC .text:0000B620 BL mallopt .text:0000B624 .text:0000B624 loc_B624 ; CODE XREF: ptmalloc_init+144j .text:0000B624 ; ptmalloc_init+1D8j .text:0000B624 LDR R0, =aMalloc_check_ ; "MALLOC_CHECK_" .text:0000B628 BL getenv .text:0000B62C CMP R0, #0 .text:0000B630 BEQ loc_B654 .text:0000B634 LDRB R3, [R0] .text:0000B638 CMP R3, #0 .text:0000B63C BEQ loc_B650 .text:0000B640 MOV R1, R3 .text:0000B644 MOV R0, 0xFFFFFFFB .text:0000B648 SUB R1, R1, #0x30 .text:0000B64C BL mallopt .text:0000B650 .text:0000B650 loc_B650 ; CODE XREF: ptmalloc_init+210j .text:0000B650 BL __malloc_check_init .text:0000B654 .text:0000B654 loc_B654 ; CODE XREF: ptmalloc_init+204j .text:0000B654 LDR R3, =__malloc_initialize_hook .text:0000B658 LDR R3, [R3] .text:0000B65C CMP R3, #0 .text:0000B660 BEQ loc_B66C .text:0000B664 MOV LR, PC .text:0000B668 MOV PC, R3 .text:0000B66C .text:0000B66C loc_B66C ; CODE XREF: ptmalloc_init+234j .text:0000B66C MOV R3, #1 .text:0000B670 STR R3, [R9] .text:0000B674 LDMDB R11, {R4-R11,SP,PC} .text:0000B674 ; End of function ptmalloc_init .text:0000B674 .text:0000B674 ; --------------------------------------------------------------------------- .text:0000B678 off_B678 DCD __libc_malloc_initialized ; DATA XREF: ptmalloc_init+8r .text:0000B67C off_B67C DCD __libc_pagesize ; DATA XREF: ptmalloc_init+28r .text:0000B680 off_B680 DCD __malloc_hook ; DATA XREF: ptmalloc_init+34r .text:0000B684 off_B684 DCD malloc_starter ; DATA XREF: ptmalloc_init+38r .text:0000B688 off_B688 DCD __free_hook ; DATA XREF: ptmalloc_init+44r .text:0000B68C off_B68C DCD free_starter ; DATA XREF: ptmalloc_init+48r .text:0000B690 off_B690 DCD save_malloc_hook ; DATA XREF: ptmalloc_init+54r .text:0000B694 off_B694 DCD 0 ; DATA XREF: ptmalloc_init+64r .text:0000B698 off_B698 DCD save_free_hook ; DATA XREF: ptmalloc_init+6Cr .text:0000B69C off_B69C DCD 0 ; DATA XREF: ptmalloc_init:loc_B4B4r .text:0000B6A0 off_B6A0 DCD main_arena+0x410 ; DATA XREF: ptmalloc_init+98r .text:0000B6A0 ; ptmalloc_init:loc_B4D8r .text:0000B6A4 off_B6A4 DCD list_lock ; DATA XREF: ptmalloc_init+BCr .text:0000B6A4 ; ptmalloc_init:loc_B4FCr .text:0000B6A8 off_B6A8 DCD __libc_internal_tsd_set .text:0000B6A8 ; DATA XREF: ptmalloc_init:loc_B504r .text:0000B6AC off_B6AC DCD main_arena ; DATA XREF: ptmalloc_init+E8r .text:0000B6AC ; ptmalloc_init+100r .text:0000B6B0 off_B6B0 DCD __libc_tsd_MALLOC_data .text:0000B6B0 ; DATA XREF: ptmalloc_init:loc_B528r .text:0000B6B4 off_B6B4 DCD 0 ; DATA XREF: ptmalloc_init:loc_B534r .text:0000B6B8 off_B6B8 DCD ptmalloc_lock_all ; DATA XREF: ptmalloc_init+114r .text:0000B6BC off_B6BC DCD ptmalloc_unlock_all ; DATA XREF: ptmalloc_init+118r .text:0000B6C0 off_B6C0 DCD ptmalloc_init_all ; DATA XREF: ptmalloc_init+11Cr .text:0000B6C4 off_B6C4 DCD __libc_enable_secure ; DATA XREF: ptmalloc_init+130r .text:0000B6C8 off_B6C8 DCD aMalloc_trim_th ; DATA XREF: ptmalloc_init+148r .text:0000B6C8 ; "MALLOC_TRIM_THRESHOLD_" .text:0000B6CC off_B6CC DCD aMalloc_top_pad ; DATA XREF: ptmalloc_init:loc_B5A0r .text:0000B6CC ; "MALLOC_TOP_PAD_" .text:0000B6D0 off_B6D0 DCD aMalloc_mmap_th ; DATA XREF: ptmalloc_init:loc_B5CCr .text:0000B6D0 ; "MALLOC_MMAP_THRESHOLD_" .text:0000B6D4 off_B6D4 DCD aMalloc_mmap_ma ; DATA XREF: ptmalloc_init:loc_B5F8r .text:0000B6D4 ; "MALLOC_MMAP_MAX_" .text:0000B6D8 off_B6D8 DCD aMalloc_check_ ; DATA XREF: ptmalloc_init:loc_B624r .text:0000B6D8 ; "MALLOC_CHECK_" .text:0000B6DC off_B6DC DCD __malloc_initialize_hook .text:0000B6DC ; DATA XREF: ptmalloc_init:loc_B654r .text:0000B6E0 .text:0000B6E0 ; =============== S U B R O U T I N E ======================================= .text:0000B6E0 .text:0000B6E0 ; Attributes: bp-based frame .text:0000B6E0 .text:0000B6E0 malloc_hook_ini .text:0000B6E0 MOV R12, SP .text:0000B6E4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000B6E8 LDR R3, =__malloc_hook .text:0000B6EC MOV R2, #0 .text:0000B6F0 STR R2, [R3] .text:0000B6F4 SUB R11, R12, #4 .text:0000B6F8 MOV R4, R0 .text:0000B6FC BL ptmalloc_init .text:0000B700 MOV R0, R4 .text:0000B704 BL malloc .text:0000B708 LDMDB R11, {R4,R11,SP,PC} .text:0000B708 ; End of function malloc_hook_ini .text:0000B708 .text:0000B708 ; --------------------------------------------------------------------------- .text:0000B70C off_B70C DCD __malloc_hook ; DATA XREF: malloc_hook_ini+8r .text:0000B710 .text:0000B710 ; =============== S U B R O U T I N E ======================================= .text:0000B710 .text:0000B710 ; Attributes: bp-based frame .text:0000B710 .text:0000B710 realloc_hook_ini .text:0000B710 MOV R12, SP .text:0000B714 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000B718 SUB R11, R12, #4 .text:0000B71C LDR R2, =__malloc_hook .text:0000B720 MOV R12, #0 .text:0000B724 STR R12, [R2] .text:0000B728 LDR R3, =__realloc_hook .text:0000B72C STR R12, [R3] .text:0000B730 MOV R4, R0 .text:0000B734 MOV R5, R1 .text:0000B738 BL ptmalloc_init .text:0000B73C MOV R0, R4 .text:0000B740 MOV R1, R5 .text:0000B744 BL realloc .text:0000B748 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000B748 ; End of function realloc_hook_ini .text:0000B748 .text:0000B748 ; --------------------------------------------------------------------------- .text:0000B74C off_B74C DCD __malloc_hook ; DATA XREF: realloc_hook_ini+Cr .text:0000B750 off_B750 DCD __realloc_hook ; DATA XREF: realloc_hook_ini+18r .text:0000B754 .text:0000B754 ; =============== S U B R O U T I N E ======================================= .text:0000B754 .text:0000B754 ; Attributes: bp-based frame .text:0000B754 .text:0000B754 memalign_hook_ini .text:0000B754 MOV R12, SP .text:0000B758 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000B75C LDR R2, =__memalign_hook .text:0000B760 MOV R3, #0 .text:0000B764 STR R3, [R2] .text:0000B768 SUB R11, R12, #4 .text:0000B76C MOV R4, R0 .text:0000B770 MOV R5, R1 .text:0000B774 BL ptmalloc_init .text:0000B778 MOV R0, R4 .text:0000B77C MOV R1, R5 .text:0000B780 BL memalign .text:0000B784 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000B784 ; End of function memalign_hook_ini .text:0000B784 .text:0000B784 ; --------------------------------------------------------------------------- .text:0000B788 off_B788 DCD __memalign_hook ; DATA XREF: memalign_hook_ini+8r .text:0000B78C .text:0000B78C ; =============== S U B R O U T I N E ======================================= .text:0000B78C .text:0000B78C ; Attributes: bp-based frame .text:0000B78C .text:0000B78C EXPORT __malloc_check_init .text:0000B78C __malloc_check_init ; CODE XREF: ptmalloc_init:loc_B650p .text:0000B78C ; malloc_set_state+1BCp .text:0000B78C MOV R12, SP .text:0000B790 STMFD SP!, {R11,R12,LR,PC} .text:0000B794 LDR R2, =disallow_malloc_check .text:0000B798 LDR R3, [R2] .text:0000B79C SUB R11, R12, #4 .text:0000B7A0 CMP R3, #0 .text:0000B7A4 MOVNE R3, #0 .text:0000B7A8 STRNE R3, [R2] .text:0000B7AC LDMNEDB R11, {R11,SP,PC} .text:0000B7B0 LDR R2, =using_malloc_checking .text:0000B7B4 MOV R3, #1 .text:0000B7B8 STR R3, [R2] .text:0000B7BC LDR R1, =__malloc_hook .text:0000B7C0 LDR R3, =malloc_check .text:0000B7C4 STR R3, [R1] .text:0000B7C8 LDR R2, =__free_hook .text:0000B7CC LDR R3, =free_check .text:0000B7D0 STR R3, [R2] .text:0000B7D4 LDR R1, =__realloc_hook .text:0000B7D8 LDR R3, =realloc_check .text:0000B7DC STR R3, [R1] .text:0000B7E0 LDR R0, =__memalign_hook .text:0000B7E4 LDR R2, =memalign_check .text:0000B7E8 LDR R3, =check_action .text:0000B7EC LDR R1, [R3] .text:0000B7F0 STR R2, [R0] .text:0000B7F4 TST R1, #1 .text:0000B7F8 LDMEQDB R11, {R11,SP,PC} .text:0000B7FC LDR R3, =stderr .text:0000B800 LDR R1, =aMallocUsingDeb ; "malloc: using debugging hooks\n" .text:0000B804 LDR R0, [R3] .text:0000B808 BL fprintf .text:0000B80C LDMDB R11, {R11,SP,PC} .text:0000B80C ; End of function __malloc_check_init .text:0000B80C .text:0000B80C ; --------------------------------------------------------------------------- .text:0000B810 off_B810 DCD disallow_malloc_check ; DATA XREF: __malloc_check_init+8r .text:0000B814 off_B814 DCD using_malloc_checking .text:0000B814 ; DATA XREF: __malloc_check_init+24r .text:0000B818 off_B818 DCD __malloc_hook ; DATA XREF: __malloc_check_init+30r .text:0000B81C off_B81C DCD malloc_check ; DATA XREF: __malloc_check_init+34r .text:0000B820 off_B820 DCD __free_hook ; DATA XREF: __malloc_check_init+3Cr .text:0000B824 off_B824 DCD free_check ; DATA XREF: __malloc_check_init+40r .text:0000B828 off_B828 DCD __realloc_hook ; DATA XREF: __malloc_check_init+48r .text:0000B82C off_B82C DCD realloc_check ; DATA XREF: __malloc_check_init+4Cr .text:0000B830 off_B830 DCD __memalign_hook ; DATA XREF: __malloc_check_init+54r .text:0000B834 off_B834 DCD memalign_check ; DATA XREF: __malloc_check_init+58r .text:0000B838 off_B838 DCD check_action ; DATA XREF: __malloc_check_init+5Cr .text:0000B83C off_B83C DCD stderr ; DATA XREF: __malloc_check_init+70r .text:0000B840 off_B840 DCD aMallocUsingDeb ; DATA XREF: __malloc_check_init+74r .text:0000B840 ; "malloc: using debugging hooks\n" .text:0000B844 .text:0000B844 ; =============== S U B R O U T I N E ======================================= .text:0000B844 .text:0000B844 ; Attributes: bp-based frame .text:0000B844 .text:0000B844 munmap_chunk ; CODE XREF: free+48p .text:0000B844 ; realloc+190p ... .text:0000B844 MOV R12, SP .text:0000B848 STMFD SP!, {R11,R12,LR,PC} .text:0000B84C LDR R2, =n_mmaps .text:0000B850 LDR R3, [R2] .text:0000B854 LDR R1, [R0,#4] .text:0000B858 SUB R3, R3, #1 .text:0000B85C STR R3, [R2] .text:0000B860 SUB R11, R12, #4 .text:0000B864 LDR R12, =mmapped_mem .text:0000B868 LDR R2, [R0] .text:0000B86C BIC R1, R1, #3 .text:0000B870 LDR R3, [R12] .text:0000B874 ADD R1, R1, R2 .text:0000B878 RSB R3, R1, R3 .text:0000B87C STR R3, [R12] .text:0000B880 RSB R0, R2, R0 .text:0000B884 BL munmap .text:0000B888 LDMDB R11, {R11,SP,PC} .text:0000B888 ; End of function munmap_chunk .text:0000B888 .text:0000B888 ; --------------------------------------------------------------------------- .text:0000B88C off_B88C DCD n_mmaps ; DATA XREF: munmap_chunk+8r .text:0000B890 off_B890 DCD mmapped_mem ; DATA XREF: munmap_chunk+20r .text:0000B894 .text:0000B894 ; =============== S U B R O U T I N E ======================================= .text:0000B894 .text:0000B894 ; Attributes: bp-based frame .text:0000B894 .text:0000B894 mremap_chunk ; CODE XREF: realloc+C8p .text:0000B894 ; realloc_check+14Cp .text:0000B894 MOV R12, SP .text:0000B898 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000B89C LDR R4, [R0] .text:0000B8A0 SUB R11, R12, #4 .text:0000B8A4 LDR R12, [R0,#4] .text:0000B8A8 LDR R2, =__libc_pagesize .text:0000B8AC RSB R0, R4, R0 .text:0000B8B0 BIC R12, R12, #3 .text:0000B8B4 ADD R1, R1, R4 .text:0000B8B8 LDR R3, [R2] .text:0000B8BC ADD R6, R12, R4 .text:0000B8C0 ADD R2, R3, #3 .text:0000B8C4 ADD R1, R1, R2 .text:0000B8C8 RSB R3, R3, #0 .text:0000B8CC AND R5, R1, R3 .text:0000B8D0 MOV R1, R6 .text:0000B8D4 MOV R2, R5 .text:0000B8D8 MOV R3, #1 .text:0000B8DC BL mremap .text:0000B8E0 CMN R0, #1 .text:0000B8E4 MOVEQ R0, #0 .text:0000B8E8 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000B8EC ADD R0, R0, R4 .text:0000B8F0 RSB R3, R4, R5 .text:0000B8F4 ORR R3, R3, #2 .text:0000B8F8 STR R3, [R0,#4] .text:0000B8FC LDR R1, =mmapped_mem .text:0000B900 LDR R12, =max_mmapped_mem .text:0000B904 LDR R3, [R1] .text:0000B908 LDR R2, [R12] .text:0000B90C RSB R3, R6, R3 .text:0000B910 ADD R3, R3, R5 .text:0000B914 CMP R3, R2 .text:0000B918 STR R3, [R1] .text:0000B91C LDMLSDB R11, {R4-R6,R11,SP,PC} .text:0000B920 STR R3, [R12] .text:0000B924 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000B924 ; End of function mremap_chunk .text:0000B924 .text:0000B924 ; --------------------------------------------------------------------------- .text:0000B928 off_B928 DCD __libc_pagesize ; DATA XREF: mremap_chunk+14r .text:0000B92C off_B92C DCD mmapped_mem ; DATA XREF: mremap_chunk+68r .text:0000B930 off_B930 DCD max_mmapped_mem ; DATA XREF: mremap_chunk+6Cr .text:0000B934 .text:0000B934 ; =============== S U B R O U T I N E ======================================= .text:0000B934 .text:0000B934 ; Attributes: bp-based frame .text:0000B934 .text:0000B934 new_heap ; CODE XREF: arena_get2+14Cp .text:0000B934 ; arena_get2+15Cp ... .text:0000B934 .text:0000B934 var_24 = -0x24 .text:0000B934 var_20 = -0x20 .text:0000B934 .text:0000B934 MOV R12, SP .text:0000B938 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000B93C SUB R11, R12, #4 .text:0000B940 LDR R3, =top_pad .text:0000B944 SUB SP, SP, #8 .text:0000B948 LDR R1, [R3] .text:0000B94C MOV R7, R0 .text:0000B950 LDR R3, =__libc_pagesize .text:0000B954 ADD R1, R7, R1 .text:0000B958 LDR R2, [R3] .text:0000B95C CMP R1, #0x8000 .text:0000B960 SUB R2, R2, #1 .text:0000B964 MOVCC R7, #0x8000 .text:0000B968 BCC loc_B984 .text:0000B96C CMP R1, #0x100000 .text:0000B970 MOVLS R7, R1 .text:0000B974 BLS loc_B984 .text:0000B978 CMP R7, #0x100000 .text:0000B97C BHI loc_BA5C .text:0000B980 MOV R7, #0x100000 .text:0000B984 .text:0000B984 loc_B984 ; CODE XREF: new_heap+34j .text:0000B984 ; new_heap+40j .text:0000B984 ADD R3, R7, R2 .text:0000B988 BIC R7, R3, R2 .text:0000B98C MOV R4, #0x4000 .text:0000B990 MOV R3, 0xFFFFFFFF .text:0000B994 STR R3, [SP,#0x24+var_24] .text:0000B998 ADD R4, R4, #0x22 .text:0000B99C MOV R6, #0 .text:0000B9A0 STR R6, [SP,#0x24+var_20] .text:0000B9A4 MOV R0, R6 .text:0000B9A8 MOV R1, #0x200000 .text:0000B9AC MOV R2, R6 .text:0000B9B0 MOV R3, R4 .text:0000B9B4 BL mmap .text:0000B9B8 MOV R2, R0 .text:0000B9BC CMN R2, #1 .text:0000B9C0 BEQ loc_B9F0 .text:0000B9C4 SUB R3, R2, #0xFC000001 .text:0000B9C8 SUB R3, R3, #0x3F00000 .text:0000B9CC MOV R5, R3,LSR#20 .text:0000B9D0 MOV R5, R5,LSL#20 .text:0000B9D4 RSB R4, R2, R5 .text:0000B9D8 MOV R1, R4 .text:0000B9DC BL munmap .text:0000B9E0 ADD R0, R5, #0x100000 .text:0000B9E4 RSB R1, R4, #0x100000 .text:0000B9E8 BL munmap .text:0000B9EC B loc_BA24 .text:0000B9F0 ; --------------------------------------------------------------------------- .text:0000B9F0 .text:0000B9F0 loc_B9F0 ; CODE XREF: new_heap+8Cj .text:0000B9F0 STMEA SP, {R2,R6} .text:0000B9F4 MOV R0, R6 .text:0000B9F8 MOV R1, #0x100000 .text:0000B9FC MOV R2, R6 .text:0000BA00 MOV R3, R4 .text:0000BA04 BL mmap .text:0000BA08 MOV R5, R0 .text:0000BA0C CMN R5, #1 .text:0000BA10 BEQ loc_BA5C .text:0000BA14 BIC R3, R5, #0xFF000000 .text:0000BA18 BIC R3, R3, #0xF00000 .text:0000BA1C CMP R3, #0 .text:0000BA20 BNE loc_BA50 .text:0000BA24 .text:0000BA24 loc_BA24 ; CODE XREF: new_heap+B8j .text:0000BA24 MOV R0, R5 .text:0000BA28 MOV R1, R7 .text:0000BA2C MOV R2, #3 .text:0000BA30 BL mprotect .text:0000BA34 CMP R0, #0 .text:0000BA38 BNE loc_BA50 .text:0000BA3C MOV R0, R5 .text:0000BA40 STR R7, [R5,#8] .text:0000BA44 B locret_BA60 .text:0000BA44 ; --------------------------------------------------------------------------- .text:0000BA48 off_BA48 DCD top_pad ; DATA XREF: new_heap+Cr .text:0000BA4C off_BA4C DCD __libc_pagesize ; DATA XREF: new_heap+1Cr .text:0000BA50 ; --------------------------------------------------------------------------- .text:0000BA50 .text:0000BA50 loc_BA50 ; CODE XREF: new_heap+ECj .text:0000BA50 ; new_heap+104j .text:0000BA50 MOV R0, R5 .text:0000BA54 MOV R1, #0x100000 .text:0000BA58 BL munmap .text:0000BA5C .text:0000BA5C loc_BA5C ; CODE XREF: new_heap+48j .text:0000BA5C ; new_heap+DCj .text:0000BA5C MOV R0, #0 .text:0000BA60 .text:0000BA60 locret_BA60 ; CODE XREF: new_heap+110j .text:0000BA60 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000BA60 ; End of function new_heap .text:0000BA60 .text:0000BA64 .text:0000BA64 ; =============== S U B R O U T I N E ======================================= .text:0000BA64 .text:0000BA64 ; Attributes: bp-based frame .text:0000BA64 .text:0000BA64 grow_heap ; CODE XREF: chunk_alloc+5C8p .text:0000BA64 ; heap_trim+134p .text:0000BA64 .text:0000BA64 var_1C = -0x1C .text:0000BA64 var_18 = -0x18 .text:0000BA64 .text:0000BA64 MOV R12, SP .text:0000BA68 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000BA6C SUB R11, R12, #4 .text:0000BA70 CMP R1, #0 .text:0000BA74 LDR R3, =__libc_pagesize .text:0000BA78 SUB SP, SP, #8 .text:0000BA7C LDR R2, [R3] .text:0000BA80 MOV R5, R0 .text:0000BA84 SUB R2, R2, #1 .text:0000BA88 BLT loc_BAC0 .text:0000BA8C ADD R3, R1, R2 .text:0000BA90 LDR R0, [R5,#8] .text:0000BA94 BIC R1, R3, R2 .text:0000BA98 ADD R4, R0, R1 .text:0000BA9C CMP R4, #0x100000 .text:0000BAA0 BGT loc_BAD0 .text:0000BAA4 ADD R0, R5, R0 .text:0000BAA8 MOV R2, #3 .text:0000BAAC BL mprotect .text:0000BAB0 CMP R0, #0 .text:0000BAB4 BEQ loc_BB08 .text:0000BAB8 MOV R0, 0xFFFFFFFE .text:0000BABC B locret_BB10 .text:0000BAC0 ; --------------------------------------------------------------------------- .text:0000BAC0 .text:0000BAC0 loc_BAC0 ; CODE XREF: grow_heap+24j .text:0000BAC0 LDR R3, [R5,#8] .text:0000BAC4 ADD R4, R3, R1 .text:0000BAC8 CMP R4, #0xF .text:0000BACC BGT loc_BADC .text:0000BAD0 .text:0000BAD0 loc_BAD0 ; CODE XREF: grow_heap+3Cj .text:0000BAD0 MOV R0, 0xFFFFFFFF .text:0000BAD4 B locret_BB10 .text:0000BAD4 ; --------------------------------------------------------------------------- .text:0000BAD8 off_BAD8 DCD __libc_pagesize ; DATA XREF: grow_heap+10r .text:0000BADC ; --------------------------------------------------------------------------- .text:0000BADC .text:0000BADC loc_BADC ; CODE XREF: grow_heap+68j .text:0000BADC MOV R3, 0xFFFFFFFF .text:0000BAE0 STR R3, [SP,#0x1C+var_1C] .text:0000BAE4 MOV R2, #0 .text:0000BAE8 STR R2, [SP,#0x1C+var_18] .text:0000BAEC ADD R0, R5, R4 .text:0000BAF0 RSB R1, R1, #0 .text:0000BAF4 ADD R3, R3, #0x33 .text:0000BAF8 BL mmap .text:0000BAFC CMN R0, #1 .text:0000BB00 MOV R0, 0xFFFFFFFE .text:0000BB04 BEQ locret_BB10 .text:0000BB08 .text:0000BB08 loc_BB08 ; CODE XREF: grow_heap+50j .text:0000BB08 MOV R0, #0 .text:0000BB0C STR R4, [R5,#8] .text:0000BB10 .text:0000BB10 locret_BB10 ; CODE XREF: grow_heap+58j .text:0000BB10 ; grow_heap+70j ... .text:0000BB10 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000BB10 ; End of function grow_heap .text:0000BB10 .text:0000BB14 .text:0000BB14 ; =============== S U B R O U T I N E ======================================= .text:0000BB14 .text:0000BB14 ; Attributes: bp-based frame .text:0000BB14 .text:0000BB14 arena_get2 ; CODE XREF: malloc+E0p .text:0000BB14 ; malloc+1A8p ... .text:0000BB14 MOV R12, SP .text:0000BB18 STMFD SP!, {R4-R12,LR,PC} .text:0000BB1C SUB R11, R12, #4 .text:0000BB20 SUBS R6, R0, #0 .text:0000BB24 MOV R8, R1 .text:0000BB28 LDREQ R4, =main_arena .text:0000BB2C MOVEQ R6, R4 .text:0000BB30 BEQ loc_BB70 .text:0000BB34 LDR R4, [R6,#0x408] .text:0000BB38 CMP R4, #0 .text:0000BB3C BNE loc_BB70 .text:0000BB40 LDR R3, =0 .text:0000BB44 CMP R3, #0 .text:0000BB48 BEQ loc_BB5C .text:0000BB4C LDR R0, =(main_arena+0x410) .text:0000BB50 MOV LR, PC .text:0000BB54 MOV PC, R3 .text:0000BB58 B loc_BB68 .text:0000BB5C ; --------------------------------------------------------------------------- .text:0000BB5C .text:0000BB5C loc_BB5C ; CODE XREF: arena_get2+34j .text:0000BB5C LDR R2, =(main_arena+0x410) .text:0000BB60 MOV R3, #1 .text:0000BB64 STR R3, [R2] .text:0000BB68 .text:0000BB68 loc_BB68 ; CODE XREF: arena_get2+44j .text:0000BB68 LDR R0, =main_arena .text:0000BB6C LDMDB R11, {R4-R11,SP,PC} .text:0000BB70 ; --------------------------------------------------------------------------- .text:0000BB70 .text:0000BB70 loc_BB70 ; CODE XREF: arena_get2+1Cj .text:0000BB70 ; arena_get2+28j ... .text:0000BB70 LDR R7, =0 .text:0000BB74 MOV R5, R7 .text:0000BB78 .text:0000BB78 loc_BB78 ; CODE XREF: arena_get2+D4j .text:0000BB78 CMP R5, #0 .text:0000BB7C BEQ loc_BB98 .text:0000BB80 ADD R0, R4, #0x410 .text:0000BB84 MOV LR, PC .text:0000BB88 MOV PC, R5 .text:0000BB8C CMP R0, #0 .text:0000BB90 BNE loc_BBE0 .text:0000BB94 B loc_BBAC .text:0000BB98 ; --------------------------------------------------------------------------- .text:0000BB98 .text:0000BB98 loc_BB98 ; CODE XREF: arena_get2+68j .text:0000BB98 LDR R3, [R4,#0x410] .text:0000BB9C CMP R3, #0 .text:0000BBA0 BNE loc_BBE0 .text:0000BBA4 MOV R3, #1 .text:0000BBA8 STR R3, [R4,#0x410] .text:0000BBAC .text:0000BBAC loc_BBAC ; CODE XREF: arena_get2+80j .text:0000BBAC LDR R3, =__libc_internal_tsd_set .text:0000BBB0 LDR R3, [R3] .text:0000BBB4 CMP R3, #0 .text:0000BBB8 BEQ loc_BBD0 .text:0000BBBC MOV R0, #0 .text:0000BBC0 MOV R1, R4 .text:0000BBC4 MOV LR, PC .text:0000BBC8 MOV PC, R3 .text:0000BBCC B loc_BBD8 .text:0000BBD0 ; --------------------------------------------------------------------------- .text:0000BBD0 .text:0000BBD0 loc_BBD0 ; CODE XREF: arena_get2+A4j .text:0000BBD0 LDR R3, =__libc_tsd_MALLOC_data .text:0000BBD4 STR R4, [R3] .text:0000BBD8 .text:0000BBD8 loc_BBD8 ; CODE XREF: arena_get2+B8j .text:0000BBD8 MOV R0, R4 .text:0000BBDC LDMDB R11, {R4-R11,SP,PC} .text:0000BBE0 ; --------------------------------------------------------------------------- .text:0000BBE0 .text:0000BBE0 loc_BBE0 ; CODE XREF: arena_get2+7Cj .text:0000BBE0 ; arena_get2+8Cj .text:0000BBE0 LDR R4, [R4,#0x408] .text:0000BBE4 CMP R4, R6 .text:0000BBE8 BNE loc_BB78 .text:0000BBEC CMP R7, #0 .text:0000BBF0 BEQ loc_BC14 .text:0000BBF4 LDR R4, =list_lock .text:0000BBF8 MOV R0, R4 .text:0000BBFC MOV LR, PC .text:0000BC00 MOV PC, R7 .text:0000BC04 CMP R0, #0 .text:0000BC08 MOV R10, R4 .text:0000BC0C BNE loc_BC30 .text:0000BC10 B loc_BC38 .text:0000BC14 ; --------------------------------------------------------------------------- .text:0000BC14 .text:0000BC14 loc_BC14 ; CODE XREF: arena_get2+DCj .text:0000BC14 LDR R3, =list_lock .text:0000BC18 LDR R2, [R3] .text:0000BC1C MOV R10, R3 .text:0000BC20 CMP R2, #0 .text:0000BC24 MOVEQ R3, #1 .text:0000BC28 STREQ R3, [R10] .text:0000BC2C BEQ loc_BC38 .text:0000BC30 .text:0000BC30 loc_BC30 ; CODE XREF: arena_get2+F8j .text:0000BC30 MOV R4, R6 .text:0000BC34 B loc_BB70 .text:0000BC38 ; --------------------------------------------------------------------------- .text:0000BC38 .text:0000BC38 loc_BC38 ; CODE XREF: arena_get2+FCj .text:0000BC38 ; arena_get2+118j .text:0000BC38 LDR R3, =0 .text:0000BC3C CMP R3, #0 .text:0000BC40 MOV R9, R3 .text:0000BC44 BEQ loc_BC58 .text:0000BC48 MOV R0, R10 .text:0000BC4C MOV LR, PC .text:0000BC50 MOV PC, R9 .text:0000BC54 B loc_BC5C .text:0000BC58 ; --------------------------------------------------------------------------- .text:0000BC58 .text:0000BC58 loc_BC58 ; CODE XREF: arena_get2+130j .text:0000BC58 STR R9, [R10] .text:0000BC5C .text:0000BC5C loc_BC5C ; CODE XREF: arena_get2+140j .text:0000BC5C ADD R0, R8, #0x440 .text:0000BC60 BL new_heap .text:0000BC64 SUBS R5, R0, #0 .text:0000BC68 BNE loc_BC80 .text:0000BC6C MOV R0, #0x440 .text:0000BC70 BL new_heap .text:0000BC74 SUBS R5, R0, #0 .text:0000BC78 MOVEQ R0, R5 .text:0000BC7C LDMEQDB R11, {R4-R11,SP,PC} .text:0000BC80 .text:0000BC80 loc_BC80 ; CODE XREF: arena_get2+154j .text:0000BC80 ADD R4, R5, #0x10 .text:0000BC84 STR R4, [R5] .text:0000BC88 LDR R8, =0 .text:0000BC8C MOV R3, R4 .text:0000BC90 LDR R12, =arena_mem .text:0000BC94 MOV R6, #0x7F .text:0000BC98 LDR R7, =0 .text:0000BC9C .text:0000BC9C loc_BC9C ; CODE XREF: arena_get2+198j .text:0000BC9C STR R3, [R3,#0xC] .text:0000BCA0 STR R3, [R3,#8] .text:0000BCA4 ADD R3, R3, #8 .text:0000BCA8 SUBS R6, R6, #1 .text:0000BCAC BPL loc_BC9C .text:0000BCB0 MOV R0, #0 .text:0000BCB4 STR R0, [R4,#0x408] .text:0000BCB8 LDR R3, [R5,#8] .text:0000BCBC STR R3, [R4,#0x40C] .text:0000BCC0 LDR R3, =__libc_internal_tsd_set .text:0000BCC4 LDR R2, [R12] .text:0000BCC8 LDR R3, [R3] .text:0000BCCC LDR R1, [R5,#8] .text:0000BCD0 CMP R3, R0 .text:0000BCD4 ADD R2, R2, R1 .text:0000BCD8 STR R2, [R12] .text:0000BCDC BEQ loc_BCF0 .text:0000BCE0 MOV R1, R4 .text:0000BCE4 MOV LR, PC .text:0000BCE8 MOV PC, R3 .text:0000BCEC B loc_BCF8 .text:0000BCF0 ; --------------------------------------------------------------------------- .text:0000BCF0 .text:0000BCF0 loc_BCF0 ; CODE XREF: arena_get2+1C8j .text:0000BCF0 LDR R3, =__libc_tsd_MALLOC_data .text:0000BCF4 STR R4, [R3] .text:0000BCF8 .text:0000BCF8 loc_BCF8 ; CODE XREF: arena_get2+1D8j .text:0000BCF8 CMP R7, #0 .text:0000BCFC BEQ loc_BD14 .text:0000BD00 ADD R0, R4, #0x410 .text:0000BD04 MOV R1, #0 .text:0000BD08 MOV LR, PC .text:0000BD0C MOV PC, R7 .text:0000BD10 B loc_BD18 .text:0000BD14 ; --------------------------------------------------------------------------- .text:0000BD14 .text:0000BD14 loc_BD14 ; CODE XREF: arena_get2+1E8j .text:0000BD14 STR R7, [R4,#0x410] .text:0000BD18 .text:0000BD18 loc_BD18 ; CODE XREF: arena_get2+1FCj .text:0000BD18 CMP R8, #0 .text:0000BD1C BEQ loc_BD34 .text:0000BD20 ADD R0, R4, #0x410 .text:0000BD24 MOV LR, PC .text:0000BD28 MOV PC, R8 .text:0000BD2C MOV R6, R0 .text:0000BD30 B loc_BD40 .text:0000BD34 ; --------------------------------------------------------------------------- .text:0000BD34 .text:0000BD34 loc_BD34 ; CODE XREF: arena_get2+208j .text:0000BD34 MOV R6, R8 .text:0000BD38 MOV R3, #1 .text:0000BD3C STR R3, [R4,#0x410] .text:0000BD40 .text:0000BD40 loc_BD40 ; CODE XREF: arena_get2+21Cj .text:0000BD40 ADD R2, R4, #0x420 .text:0000BD44 ADD R2, R2, #8 .text:0000BD48 ADD R3, R4, #0x430 .text:0000BD4C ANDS R1, R3, #7 .text:0000BD50 SUBNE R2, R3, R1 .text:0000BD54 STR R2, [R4,#8] .text:0000BD58 LDR R3, [R5,#8] .text:0000BD5C CMP R8, #0 .text:0000BD60 ADD R3, R5, R3 .text:0000BD64 RSB R3, R2, R3 .text:0000BD68 ORR R3, R3, #1 .text:0000BD6C STR R3, [R2,#4] .text:0000BD70 BEQ loc_BD84 .text:0000BD74 MOV R0, R10 .text:0000BD78 MOV LR, PC .text:0000BD7C MOV PC, R8 .text:0000BD80 B loc_BD8C .text:0000BD84 ; --------------------------------------------------------------------------- .text:0000BD84 .text:0000BD84 loc_BD84 ; CODE XREF: arena_get2+25Cj .text:0000BD84 MOV R3, #1 .text:0000BD88 STR R3, [R10] .text:0000BD8C .text:0000BD8C loc_BD8C ; CODE XREF: arena_get2+26Cj .text:0000BD8C LDR R2, =main_arena .text:0000BD90 LDR R3, [R2,#(main_arena+0x408 - 0x6B64C)] .text:0000BD94 STR R3, [R4,#0x408] .text:0000BD98 CMP R9, #0 .text:0000BD9C STR R4, [R2,#(main_arena+0x408 - 0x6B64C)] .text:0000BDA0 BEQ loc_BDB4 .text:0000BDA4 MOV R0, R10 .text:0000BDA8 MOV LR, PC .text:0000BDAC MOV PC, R9 .text:0000BDB0 B loc_BDB8 .text:0000BDB4 ; --------------------------------------------------------------------------- .text:0000BDB4 .text:0000BDB4 loc_BDB4 ; CODE XREF: arena_get2+28Cj .text:0000BDB4 STR R9, [R10] .text:0000BDB8 .text:0000BDB8 loc_BDB8 ; CODE XREF: arena_get2+29Cj .text:0000BDB8 CMP R6, #0 .text:0000BDBC MOVEQ R0, R4 .text:0000BDC0 MOVNE R0, #0 .text:0000BDC4 LDMDB R11, {R4-R11,SP,PC} .text:0000BDC4 ; End of function arena_get2 .text:0000BDC4 .text:0000BDC4 ; --------------------------------------------------------------------------- .text:0000BDC8 off_BDC8 DCD main_arena ; DATA XREF: arena_get2+14r .text:0000BDC8 ; arena_get2:loc_BB68r ... .text:0000BDCC off_BDCC DCD 0 ; DATA XREF: arena_get2+2Cr .text:0000BDCC ; arena_get2+174r .text:0000BDD0 off_BDD0 DCD main_arena+0x410 ; DATA XREF: arena_get2+38r .text:0000BDD0 ; arena_get2:loc_BB5Cr .text:0000BDD4 off_BDD4 DCD 0 ; DATA XREF: arena_get2:loc_BB70r .text:0000BDD8 off_BDD8 DCD __libc_internal_tsd_set ; DATA XREF: arena_get2:loc_BBACr .text:0000BDD8 ; arena_get2+1ACr .text:0000BDDC off_BDDC DCD __libc_tsd_MALLOC_data ; DATA XREF: arena_get2:loc_BBD0r .text:0000BDDC ; arena_get2:loc_BCF0r .text:0000BDE0 off_BDE0 DCD list_lock ; DATA XREF: arena_get2+E0r .text:0000BDE0 ; arena_get2:loc_BC14r .text:0000BDE4 off_BDE4 DCD 0 ; DATA XREF: arena_get2:loc_BC38r .text:0000BDE8 off_BDE8 DCD arena_mem ; DATA XREF: arena_get2+17Cr .text:0000BDEC dword_BDEC DCD 0 ; DATA XREF: arena_get2+184r .text:0000BDF0 .text:0000BDF0 ; =============== S U B R O U T I N E ======================================= .text:0000BDF0 .text:0000BDF0 ; Attributes: bp-based frame .text:0000BDF0 .text:0000BDF0 WEAK malloc .text:0000BDF0 malloc ; CODE XREF: __new_exitfn+A8p .text:0000BDF0 ; save_for_backup+44p ... .text:0000BDF0 .text:0000BDF0 var_4 = -4 .text:0000BDF0 .text:0000BDF0 MOV R12, SP ; Alternative name is '__malloc' .text:0000BDF4 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000BDF8 LDR R3, =__malloc_hook .text:0000BDFC LDR R3, [R3] .text:0000BE00 SUB R11, R12, #4 .text:0000BE04 CMP R3, #0 .text:0000BE08 BEQ loc_BE1C .text:0000BE0C LDR R1, [R11,#var_4] .text:0000BE10 MOV LR, PC .text:0000BE14 MOV PC, R3 .text:0000BE18 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000BE1C ; --------------------------------------------------------------------------- .text:0000BE1C .text:0000BE1C loc_BE1C ; CODE XREF: malloc+18j .text:0000BE1C ADD R6, R0, #0xB .text:0000BE20 CMP R6, R0 .text:0000BE24 MOVCS R3, #0 .text:0000BE28 MOVCC R3, #1 .text:0000BE2C CMP R6, #0 .text:0000BE30 MOVLE R3, #1 .text:0000BE34 CMP R3, #0 .text:0000BE38 BEQ loc_BE4C .text:0000BE3C BL __errno_location .text:0000BE40 MOV R3, #0xC .text:0000BE44 STR R3, [R0] .text:0000BE48 B loc_C000 .text:0000BE4C ; --------------------------------------------------------------------------- .text:0000BE4C .text:0000BE4C loc_BE4C ; CODE XREF: malloc+48j .text:0000BE4C CMP R6, #0x16 .text:0000BE50 BIC R6, R6, #7 .text:0000BE54 MOVLS R6, #0x10 .text:0000BE58 LDR R3, =__libc_internal_tsd_get .text:0000BE5C LDR R3, [R3] .text:0000BE60 MOV R5, #0 .text:0000BE64 CMP R3, R5 .text:0000BE68 BEQ loc_BE80 .text:0000BE6C MOV R0, R5 .text:0000BE70 MOV LR, PC .text:0000BE74 MOV PC, R3 .text:0000BE78 MOV R5, R0 .text:0000BE7C B loc_BE88 .text:0000BE80 ; --------------------------------------------------------------------------- .text:0000BE80 .text:0000BE80 loc_BE80 ; CODE XREF: malloc+78j .text:0000BE80 LDR R3, =__libc_tsd_MALLOC_data .text:0000BE84 LDR R5, [R3] .text:0000BE88 .text:0000BE88 loc_BE88 ; CODE XREF: malloc+8Cj .text:0000BE88 SUBS R4, R5, #0 .text:0000BE8C BEQ loc_BEC8 .text:0000BE90 LDR R3, =0 .text:0000BE94 CMP R3, #0 .text:0000BE98 BEQ loc_BEB4 .text:0000BE9C ADD R0, R4, #0x410 .text:0000BEA0 MOV LR, PC .text:0000BEA4 MOV PC, R3 .text:0000BEA8 CMP R0, #0 .text:0000BEAC BNE loc_BEC8 .text:0000BEB0 B loc_BED8 .text:0000BEB4 ; --------------------------------------------------------------------------- .text:0000BEB4 .text:0000BEB4 loc_BEB4 ; CODE XREF: malloc+A8j .text:0000BEB4 LDR R3, [R4,#0x410] .text:0000BEB8 CMP R3, #0 .text:0000BEBC MOVEQ R3, #1 .text:0000BEC0 STREQ R3, [R4,#0x410] .text:0000BEC4 BEQ loc_BED8 .text:0000BEC8 .text:0000BEC8 loc_BEC8 ; CODE XREF: malloc+9Cj .text:0000BEC8 ; malloc+BCj .text:0000BEC8 MOV R0, R5 .text:0000BECC MOV R1, R6 .text:0000BED0 BL arena_get2 .text:0000BED4 MOV R4, R0 .text:0000BED8 .text:0000BED8 loc_BED8 ; CODE XREF: malloc+C0j .text:0000BED8 ; malloc+D4j .text:0000BED8 CMP R4, #0 .text:0000BEDC MOV R0, #0 .text:0000BEE0 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:0000BEE4 MOV R0, R4 .text:0000BEE8 MOV R1, R6 .text:0000BEEC BL chunk_alloc .text:0000BEF0 SUBS R5, R0, #0 .text:0000BEF4 BNE loc_C008 .text:0000BEF8 LDR R7, =main_arena .text:0000BEFC CMP R4, R7 .text:0000BF00 MOV R10, R7 .text:0000BF04 BEQ loc_BF84 .text:0000BF08 LDR R3, =0 .text:0000BF0C CMP R3, #0 .text:0000BF10 MOV R8, R3 .text:0000BF14 BEQ loc_BF28 .text:0000BF18 ADD R0, R4, #0x410 .text:0000BF1C MOV LR, PC .text:0000BF20 MOV PC, R8 .text:0000BF24 B loc_BF2C .text:0000BF28 ; --------------------------------------------------------------------------- .text:0000BF28 .text:0000BF28 loc_BF28 ; CODE XREF: malloc+124j .text:0000BF28 STR R5, [R4,#0x410] .text:0000BF2C .text:0000BF2C loc_BF2C ; CODE XREF: malloc+134j .text:0000BF2C LDR R3, =0 .text:0000BF30 CMP R3, #0 .text:0000BF34 BEQ loc_BF48 .text:0000BF38 LDR R0, =(main_arena+0x410) .text:0000BF3C MOV LR, PC .text:0000BF40 MOV PC, R3 .text:0000BF44 B loc_BF54 .text:0000BF48 ; --------------------------------------------------------------------------- .text:0000BF48 .text:0000BF48 loc_BF48 ; CODE XREF: malloc+144j .text:0000BF48 LDR R2, =(main_arena+0x410) .text:0000BF4C MOV R3, #1 .text:0000BF50 STR R3, [R2] .text:0000BF54 .text:0000BF54 loc_BF54 ; CODE XREF: malloc+154j .text:0000BF54 MOV R0, R10 .text:0000BF58 MOV R1, R6 .text:0000BF5C BL chunk_alloc .text:0000BF60 MOV R5, R0 .text:0000BF64 CMP R8, #0 .text:0000BF68 BEQ loc_BF7C .text:0000BF6C ADD R0, R10, #0x410 .text:0000BF70 MOV LR, PC .text:0000BF74 MOV PC, R8 .text:0000BF78 B loc_BFF8 .text:0000BF7C ; --------------------------------------------------------------------------- .text:0000BF7C .text:0000BF7C loc_BF7C ; CODE XREF: malloc+178j .text:0000BF7C STR R8, [R10,#0x410] .text:0000BF80 B loc_BFF8 .text:0000BF84 ; --------------------------------------------------------------------------- .text:0000BF84 .text:0000BF84 loc_BF84 ; CODE XREF: malloc+114j .text:0000BF84 LDR R0, [R4,#0x408] .text:0000BF88 MOV R1, R6 .text:0000BF8C CMP R0, #0 .text:0000BF90 MOVNE R0, R4 .text:0000BF94 MOVEQ R0, #0 .text:0000BF98 BL arena_get2 .text:0000BF9C LDR R3, =0 .text:0000BFA0 MOV R4, R0 .text:0000BFA4 CMP R3, #0 .text:0000BFA8 MOV R8, R3 .text:0000BFAC BEQ loc_BFC0 .text:0000BFB0 ADD R0, R7, #0x410 .text:0000BFB4 MOV LR, PC .text:0000BFB8 MOV PC, R8 .text:0000BFBC B loc_BFC4 .text:0000BFC0 ; --------------------------------------------------------------------------- .text:0000BFC0 .text:0000BFC0 loc_BFC0 ; CODE XREF: malloc+1BCj .text:0000BFC0 STR R5, [R7,#(main_arena+0x410 - 0x6B64C)] .text:0000BFC4 .text:0000BFC4 loc_BFC4 ; CODE XREF: malloc+1CCj .text:0000BFC4 CMP R4, #0 .text:0000BFC8 BEQ loc_BFF8 .text:0000BFCC MOV R0, R4 .text:0000BFD0 MOV R1, R6 .text:0000BFD4 BL chunk_alloc .text:0000BFD8 MOV R5, R0 .text:0000BFDC CMP R8, #0 .text:0000BFE0 BEQ loc_BFF4 .text:0000BFE4 ADD R0, R4, #0x410 .text:0000BFE8 MOV LR, PC .text:0000BFEC MOV PC, R8 .text:0000BFF0 B loc_BFF8 .text:0000BFF4 ; --------------------------------------------------------------------------- .text:0000BFF4 .text:0000BFF4 loc_BFF4 ; CODE XREF: malloc+1F0j .text:0000BFF4 STR R8, [R4,#0x410] .text:0000BFF8 .text:0000BFF8 loc_BFF8 ; CODE XREF: malloc+188j .text:0000BFF8 ; malloc+190j ... .text:0000BFF8 CMP R5, #0 .text:0000BFFC BNE loc_C028 .text:0000C000 .text:0000C000 loc_C000 ; CODE XREF: malloc+58j .text:0000C000 MOV R0, #0 .text:0000C004 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000C008 ; --------------------------------------------------------------------------- .text:0000C008 .text:0000C008 loc_C008 ; CODE XREF: malloc+104j .text:0000C008 LDR R3, =0 .text:0000C00C CMP R3, #0 .text:0000C010 BEQ loc_C024 .text:0000C014 ADD R0, R4, #0x410 .text:0000C018 MOV LR, PC .text:0000C01C MOV PC, R3 .text:0000C020 B loc_C028 .text:0000C024 ; --------------------------------------------------------------------------- .text:0000C024 .text:0000C024 loc_C024 ; CODE XREF: malloc+220j .text:0000C024 STR R3, [R4,#0x410] .text:0000C028 .text:0000C028 loc_C028 ; CODE XREF: malloc+20Cj .text:0000C028 ; malloc+230j .text:0000C028 ADD R0, R5, #8 .text:0000C02C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000C02C ; End of function malloc .text:0000C02C .text:0000C02C ; --------------------------------------------------------------------------- .text:0000C030 off_C030 DCD __malloc_hook ; DATA XREF: malloc+8r .text:0000C034 off_C034 DCD __libc_internal_tsd_get ; DATA XREF: malloc+68r .text:0000C038 off_C038 DCD __libc_tsd_MALLOC_data ; DATA XREF: malloc:loc_BE80r .text:0000C03C off_C03C DCD 0 ; DATA XREF: malloc+A0r .text:0000C040 off_C040 DCD main_arena ; DATA XREF: malloc+108r .text:0000C044 off_C044 DCD 0 ; DATA XREF: malloc+118r .text:0000C044 ; malloc+1ACr ... .text:0000C048 off_C048 DCD 0 ; DATA XREF: malloc:loc_BF2Cr .text:0000C04C off_C04C DCD main_arena+0x410 ; DATA XREF: malloc+148r .text:0000C04C ; malloc:loc_BF48r .text:0000C050 .text:0000C050 ; =============== S U B R O U T I N E ======================================= .text:0000C050 .text:0000C050 ; Attributes: bp-based frame .text:0000C050 .text:0000C050 chunk_alloc ; CODE XREF: malloc+FCp .text:0000C050 ; malloc+16Cp ... .text:0000C050 .text:0000C050 var_38 = -0x38 .text:0000C050 var_34 = -0x34 .text:0000C050 var_30 = -0x30 .text:0000C050 var_2C = -0x2C .text:0000C050 .text:0000C050 MOV R12, SP .text:0000C054 STMFD SP!, {R4-R12,LR,PC} .text:0000C058 SUB R11, R12, #4 .text:0000C05C MOV R10, R1 .text:0000C060 CMP R10, #0x1F8 .text:0000C064 MOV R8, R0 .text:0000C068 SUB SP, SP, #0x10 .text:0000C06C BCS loc_C0C0 .text:0000C070 MOV R6, R10,LSR#3 .text:0000C074 MOV R3, R6,LSL#3 .text:0000C078 ADD R3, R3, #8 .text:0000C07C ADD R3, R8, R3 .text:0000C080 SUB R1, R3, #8 .text:0000C084 LDR R0, [R1,#0xC] .text:0000C088 CMP R0, R1 .text:0000C08C MOVEQ R1, R3 .text:0000C090 LDREQ R0, [R1,#0xC] .text:0000C094 CMP R0, R1 .text:0000C098 BEQ loc_C0B8 .text:0000C09C LDR R4, [R0,#0xC] .text:0000C0A0 LDMIB R0, {R3,LR} .text:0000C0A4 STR R4, [LR,#0xC] .text:0000C0A8 STR LR, [R4,#8] .text:0000C0AC MOV R1, #4 .text:0000C0B0 BIC R5, R3, #3 .text:0000C0B4 B loc_C858 .text:0000C0B8 ; --------------------------------------------------------------------------- .text:0000C0B8 .text:0000C0B8 loc_C0B8 ; CODE XREF: chunk_alloc+48j .text:0000C0B8 ADD R6, R6, #2 .text:0000C0BC B loc_C15C .text:0000C0C0 ; --------------------------------------------------------------------------- .text:0000C0C0 .text:0000C0C0 loc_C0C0 ; CODE XREF: chunk_alloc+1Cj .text:0000C0C0 MOVS R2, R10,LSR#9 .text:0000C0C4 MOVEQ R6, R10,LSR#3 .text:0000C0C8 BEQ loc_C120 .text:0000C0CC CMP R2, #4 .text:0000C0D0 MOVLS R3, R10,LSR#6 .text:0000C0D4 ADDLS R6, R3, #0x38 .text:0000C0D8 BLS loc_C120 .text:0000C0DC CMP R2, #0x14 .text:0000C0E0 ADDLS R6, R2, #0x5B .text:0000C0E4 BLS loc_C120 .text:0000C0E8 CMP R2, #0x54 .text:0000C0EC MOVLS R3, R10,LSR#12 .text:0000C0F0 ADDLS R6, R3, #0x6E .text:0000C0F4 BLS loc_C120 .text:0000C0F8 CMP R2, #0x154 .text:0000C0FC MOVLS R3, R10,LSR#15 .text:0000C100 ADDLS R6, R3, #0x77 .text:0000C104 BLS loc_C120 .text:0000C108 MOV R3, 0x554 .text:0000C110 CMP R2, R3 .text:0000C114 MOVLS R3, R10,LSR#18 .text:0000C118 ADDLS R6, R3, #0x7C .text:0000C11C MOVHI R6, #0x7E .text:0000C120 .text:0000C120 loc_C120 ; CODE XREF: chunk_alloc+78j .text:0000C120 ; chunk_alloc+88j ... .text:0000C120 ADD LR, R8, R6,LSL#3 .text:0000C124 LDR R0, [LR,#0xC] .text:0000C128 B loc_C138 .text:0000C12C ; --------------------------------------------------------------------------- .text:0000C12C .text:0000C12C loc_C12C ; CODE XREF: chunk_alloc+100j .text:0000C12C CMP R12, #0 .text:0000C130 BGE loc_C844 .text:0000C134 LDR R0, [R0,#0xC] .text:0000C138 .text:0000C138 loc_C138 ; CODE XREF: chunk_alloc+D8j .text:0000C138 CMP R0, LR .text:0000C13C BEQ loc_C158 .text:0000C140 LDR R3, [R0,#4] .text:0000C144 BIC R5, R3, #3 .text:0000C148 RSB R12, R10, R5 .text:0000C14C CMP R12, #0xF .text:0000C150 BLE loc_C12C .text:0000C154 SUB R6, R6, #1 .text:0000C158 .text:0000C158 loc_C158 ; CODE XREF: chunk_alloc+ECj .text:0000C158 ADD R6, R6, #1 .text:0000C15C .text:0000C15C loc_C15C ; CODE XREF: chunk_alloc+6Cj .text:0000C15C ADD R3, R8, #8 .text:0000C160 LDR R0, [R8,#0x10] .text:0000C164 MOV R7, R3 .text:0000C168 CMP R0, R3 .text:0000C16C BEQ loc_C280 .text:0000C170 LDR R3, [R0,#4] .text:0000C174 BIC R5, R3, #3 .text:0000C178 RSB R12, R10, R5 .text:0000C17C CMP R12, #0xF .text:0000C180 ORRGT R3, R10, #1 .text:0000C184 STRGT R3, [R0,#4] .text:0000C188 BGT loc_C884 .text:0000C18C STR R7, [R7,#0xC] .text:0000C190 CMP R12, #0 .text:0000C194 STR R7, [R8,#0x10] .text:0000C198 BGE loc_C854 .text:0000C19C CMP R5, #0x200 .text:0000C1A0 BCS loc_C1C8 .text:0000C1A4 MOV R12, R5,LSR#3 .text:0000C1A8 MOV R3, R12,LSR#2 .text:0000C1AC LDR R2, [R8,#4] .text:0000C1B0 MOV R1, #1 .text:0000C1B4 ORR R2, R2, R1,LSL R3 .text:0000C1B8 STR R2, [R8,#4] .text:0000C1BC ADD R4, R8, R12,LSL#3 .text:0000C1C0 LDR LR, [R4,#8] .text:0000C1C4 B loc_C270 .text:0000C1C8 ; --------------------------------------------------------------------------- .text:0000C1C8 .text:0000C1C8 loc_C1C8 ; CODE XREF: chunk_alloc+150j .text:0000C1C8 MOVS R2, R5,LSR#9 .text:0000C1CC MOVEQ R12, R5,LSR#3 .text:0000C1D0 BEQ loc_C228 .text:0000C1D4 CMP R2, #4 .text:0000C1D8 MOVLS R3, R5,LSR#6 .text:0000C1DC ADDLS R12, R3, #0x38 .text:0000C1E0 BLS loc_C228 .text:0000C1E4 CMP R2, #0x14 .text:0000C1E8 ADDLS R12, R2, #0x5B .text:0000C1EC BLS loc_C228 .text:0000C1F0 CMP R2, #0x54 .text:0000C1F4 MOVLS R3, R5,LSR#12 .text:0000C1F8 ADDLS R12, R3, #0x6E .text:0000C1FC BLS loc_C228 .text:0000C200 CMP R2, #0x154 .text:0000C204 MOVLS R3, R5,LSR#15 .text:0000C208 ADDLS R12, R3, #0x77 .text:0000C20C BLS loc_C228 .text:0000C210 MOV R3, 0x554 .text:0000C218 CMP R2, R3 .text:0000C21C MOVLS R3, R5,LSR#18 .text:0000C220 ADDLS R12, R3, #0x7C .text:0000C224 MOVHI R12, #0x7E .text:0000C228 .text:0000C228 loc_C228 ; CODE XREF: chunk_alloc+180j .text:0000C228 ; chunk_alloc+190j ... .text:0000C228 ADD R4, R8, R12,LSL#3 .text:0000C22C LDR LR, [R4,#8] .text:0000C230 CMP LR, R4 .text:0000C234 BNE loc_C25C .text:0000C238 MOV R3, R12,LSR#2 .text:0000C23C LDR R2, [R8,#4] .text:0000C240 MOV R1, #1 .text:0000C244 ORR R2, R2, R1,LSL R3 .text:0000C248 STR R2, [R8,#4] .text:0000C24C B loc_C270 .text:0000C250 ; --------------------------------------------------------------------------- .text:0000C250 .text:0000C250 loc_C250 ; CODE XREF: chunk_alloc+218j .text:0000C250 LDR LR, [LR,#8] .text:0000C254 CMP LR, R4 .text:0000C258 BEQ loc_C26C .text:0000C25C .text:0000C25C loc_C25C ; CODE XREF: chunk_alloc+1E4j .text:0000C25C LDR R3, [LR,#4] .text:0000C260 BIC R3, R3, #3 .text:0000C264 CMP R5, R3 .text:0000C268 BCC loc_C250 .text:0000C26C .text:0000C26C loc_C26C ; CODE XREF: chunk_alloc+208j .text:0000C26C LDR R4, [LR,#0xC] .text:0000C270 .text:0000C270 loc_C270 ; CODE XREF: chunk_alloc+174j .text:0000C270 ; chunk_alloc+1FCj .text:0000C270 STR R4, [R0,#0xC] .text:0000C274 STR LR, [R0,#8] .text:0000C278 STR R0, [R4,#8] .text:0000C27C STR R0, [LR,#0xC] .text:0000C280 .text:0000C280 loc_C280 ; CODE XREF: chunk_alloc+11Cj .text:0000C280 CMP R6, #0 .text:0000C284 ADDLT R3, R6, #3 .text:0000C288 MOVGE R3, R6 .text:0000C28C MOV R3, R3,ASR#2 .text:0000C290 MOV R2, #1 .text:0000C294 LDR R1, [R8,#4] .text:0000C298 MOV R2, R2,LSL R3 .text:0000C29C CMP R2, R1 .text:0000C2A0 BHI loc_C378 .text:0000C2A4 TST R2, R1 .text:0000C2A8 BNE loc_C2C8 .text:0000C2AC BIC R3, R6, #3 .text:0000C2B0 ADD R6, R3, #4 .text:0000C2B4 B loc_C2BC .text:0000C2B8 ; --------------------------------------------------------------------------- .text:0000C2B8 .text:0000C2B8 loc_C2B8 ; CODE XREF: chunk_alloc+274j .text:0000C2B8 ADD R6, R6, #4 .text:0000C2BC .text:0000C2BC loc_C2BC ; CODE XREF: chunk_alloc+264j .text:0000C2BC MOV R2, R2,LSL#1 .text:0000C2C0 TST R2, R1 .text:0000C2C4 BEQ loc_C2B8 .text:0000C2C8 .text:0000C2C8 loc_C2C8 ; CODE XREF: chunk_alloc+258j .text:0000C2C8 ; chunk_alloc+300j ... .text:0000C2C8 MOV R4, R6 .text:0000C2CC ADD R1, R8, R6,LSL#3 .text:0000C2D0 MOV LR, R1 .text:0000C2D4 .text:0000C2D4 loc_C2D4 ; CODE XREF: chunk_alloc+2C4j .text:0000C2D4 LDR R0, [LR,#0xC] .text:0000C2D8 CMP R0, LR .text:0000C2DC BEQ loc_C308 .text:0000C2E0 .text:0000C2E0 loc_C2E0 ; CODE XREF: chunk_alloc+2B4j .text:0000C2E0 LDR R3, [R0,#4] .text:0000C2E4 BIC R5, R3, #3 .text:0000C2E8 RSB R12, R10, R5 .text:0000C2EC CMP R12, #0xF .text:0000C2F0 BGT loc_C86C .text:0000C2F4 CMP R12, #0 .text:0000C2F8 BGE loc_C8A8 .text:0000C2FC LDR R0, [R0,#0xC] .text:0000C300 CMP R0, LR .text:0000C304 BNE loc_C2E0 .text:0000C308 .text:0000C308 loc_C308 ; CODE XREF: chunk_alloc+28Cj .text:0000C308 ADD LR, LR, #8 .text:0000C30C ADD R6, R6, #1 .text:0000C310 TST R6, #3 .text:0000C314 BNE loc_C2D4 .text:0000C318 .text:0000C318 loc_C318 ; CODE XREF: chunk_alloc+2E0j .text:0000C318 TST R4, #3 .text:0000C31C BEQ loc_C368 .text:0000C320 SUB R1, R1, #8 .text:0000C324 LDR R3, [R1,#8] .text:0000C328 SUB R4, R4, #1 .text:0000C32C CMP R3, R1 .text:0000C330 BEQ loc_C318 .text:0000C334 .text:0000C334 loc_C334 ; CODE XREF: chunk_alloc+324j .text:0000C334 LDR R3, [R8,#4] .text:0000C338 MOV R2, R2,LSL#1 .text:0000C33C CMP R2, R3 .text:0000C340 BHI loc_C378 .text:0000C344 CMP R2, #0 .text:0000C348 BEQ loc_C378 .text:0000C34C TST R2, R3 .text:0000C350 BNE loc_C2C8 .text:0000C354 .text:0000C354 loc_C354 ; CODE XREF: chunk_alloc+310j .text:0000C354 ADD R6, R6, #4 .text:0000C358 MOV R2, R2,LSL#1 .text:0000C35C TST R2, R3 .text:0000C360 BEQ loc_C354 .text:0000C364 B loc_C2C8 .text:0000C368 ; --------------------------------------------------------------------------- .text:0000C368 .text:0000C368 loc_C368 ; CODE XREF: chunk_alloc+2CCj .text:0000C368 LDR R3, [R8,#4] .text:0000C36C BIC R3, R3, R2 .text:0000C370 STR R3, [R8,#4] .text:0000C374 B loc_C334 .text:0000C378 ; --------------------------------------------------------------------------- .text:0000C378 .text:0000C378 loc_C378 ; CODE XREF: chunk_alloc+250j .text:0000C378 ; chunk_alloc+2F0j ... .text:0000C378 LDR R2, [R8,#8] .text:0000C37C LDR R3, [R2,#4] .text:0000C380 MOV R0, R2 .text:0000C384 BIC R3, R3, #3 .text:0000C388 RSB R12, R10, R3 .text:0000C38C CMP R12, #0xF .text:0000C390 BGT loc_C8EC .text:0000C394 LDR R3, =mmap_threshold .text:0000C398 LDR R2, [R3] .text:0000C39C CMP R10, R2 .text:0000C3A0 BCC loc_C454 .text:0000C3A4 LDR R6, =n_mmaps .text:0000C3A8 LDR R3, =n_mmaps_max .text:0000C3AC LDR R1, [R6] .text:0000C3B0 LDR R2, [R3] .text:0000C3B4 CMP R1, R2 .text:0000C3B8 BCS loc_C454 .text:0000C3BC MOV R5, #0 .text:0000C3C0 LDR R1, =__libc_pagesize .text:0000C3C4 MOV R0, R5 .text:0000C3C8 LDR R12, [R1] .text:0000C3CC MOV R3, 0xFFFFFFFF .text:0000C3D0 STR R3, [SP,#0x38+var_38] .text:0000C3D4 MOV R2, #3 .text:0000C3D8 ADD R3, R3, #0x23 .text:0000C3DC STR R5, [SP,#0x38+var_34] .text:0000C3E0 ADD R1, R12, R2 .text:0000C3E4 ADD R1, R10, R1 .text:0000C3E8 RSB R12, R12, #0 .text:0000C3EC AND R4, R1, R12 .text:0000C3F0 MOV R1, R4 .text:0000C3F4 BL mmap .text:0000C3F8 CMN R0, #1 .text:0000C3FC MOVEQ R0, R5 .text:0000C400 BEQ loc_C44C .text:0000C404 LDR R1, =max_n_mmaps .text:0000C408 LDR R3, [R6] .text:0000C40C LDR R2, [R1] .text:0000C410 ADD R3, R3, #1 .text:0000C414 STR R3, [R6] .text:0000C418 CMP R3, R2 .text:0000C41C STRHI R3, [R1] .text:0000C420 STR R5, [R0] .text:0000C424 ORR R3, R4, #2 .text:0000C428 STR R3, [R0,#4] .text:0000C42C LDR R1, =mmapped_mem .text:0000C430 LDR R12, =max_mmapped_mem .text:0000C434 LDR R3, [R1] .text:0000C438 LDR R2, [R12] .text:0000C43C ADD R3, R3, R4 .text:0000C440 CMP R3, R2 .text:0000C444 STR R3, [R1] .text:0000C448 STRHI R3, [R12] .text:0000C44C .text:0000C44C loc_C44C ; CODE XREF: chunk_alloc+3B0j .text:0000C44C CMP R0, #0 .text:0000C450 BNE locret_C904 .text:0000C454 .text:0000C454 loc_C454 ; CODE XREF: chunk_alloc+350j .text:0000C454 ; chunk_alloc+368j .text:0000C454 LDR R7, [R8,#8] .text:0000C458 LDR R3, [R7,#4] .text:0000C45C BIC R3, R3, #3 .text:0000C460 STR R3, [R11,#var_30] .text:0000C464 LDR R2, =main_arena .text:0000C468 CMP R8, R2 .text:0000C46C LDR R2, =__libc_pagesize .text:0000C470 LDR R2, [R2] .text:0000C474 STR R2, [R11,#var_2C] .text:0000C478 BNE loc_C5E8 .text:0000C47C LDR R3, =top_pad .text:0000C480 LDR R1, =sbrk_base .text:0000C484 LDR R2, [R3] .text:0000C488 LDR R3, [R1] .text:0000C48C ADD R2, R10, R2 .text:0000C490 CMN R3, #1 .text:0000C494 LDR R3, [R11,#var_30] .text:0000C498 ADD R9, R2, #0x10 .text:0000C49C ADD R5, R7, R3 .text:0000C4A0 BEQ loc_C4B8 .text:0000C4A4 LDR R1, [R11,#var_2C] .text:0000C4A8 ADD R3, R2, #0xF .text:0000C4AC ADD R3, R3, R1 .text:0000C4B0 RSB R2, R1, #0 .text:0000C4B4 AND R9, R3, R2 .text:0000C4B8 .text:0000C4B8 loc_C4B8 ; CODE XREF: chunk_alloc+450j .text:0000C4B8 LDR R4, =__morecore .text:0000C4BC MOV R0, R9 .text:0000C4C0 MOV LR, PC .text:0000C4C4 LDR PC, [R4] .text:0000C4C8 SUBS R6, R0, #0 .text:0000C4CC BEQ loc_C760 .text:0000C4D0 CMP R6, R5 .text:0000C4D4 BCS loc_C4E0 .text:0000C4D8 CMP R7, R8 .text:0000C4DC BNE loc_C760 .text:0000C4E0 .text:0000C4E0 loc_C4E0 ; CODE XREF: chunk_alloc+484j .text:0000C4E0 LDR R3, =__after_morecore_hook .text:0000C4E4 LDR R2, [R3] .text:0000C4E8 CMP R2, #0 .text:0000C4EC BEQ loc_C4F8 .text:0000C4F0 MOV LR, PC .text:0000C4F4 MOV PC, R2 .text:0000C4F8 .text:0000C4F8 loc_C4F8 ; CODE XREF: chunk_alloc+49Cj .text:0000C4F8 LDR R3, [R8,#0x40C] .text:0000C4FC CMP R6, R5 .text:0000C500 ADD R2, R3, R9 .text:0000C504 STR R2, [R8,#0x40C] .text:0000C508 BNE loc_C524 .text:0000C50C LDR R2, [R11,#var_30] .text:0000C510 ADD R1, R9, R2 .text:0000C514 ORR R3, R1, #1 .text:0000C518 STR R3, [R7,#4] .text:0000C51C MOV R7, #0 .text:0000C520 B loc_C5CC .text:0000C524 ; --------------------------------------------------------------------------- .text:0000C524 .text:0000C524 loc_C524 ; CODE XREF: chunk_alloc+4B8j .text:0000C524 LDR R1, =sbrk_base .text:0000C528 LDR R3, [R1] .text:0000C52C CMN R3, #1 .text:0000C530 STREQ R6, [R1] .text:0000C534 RSBNE R3, R5, R6 .text:0000C538 ADDNE R3, R2, R3 .text:0000C53C STRNE R3, [R8,#0x40C] .text:0000C540 ADD R3, R6, #8 .text:0000C544 ANDS R0, R3, #7 .text:0000C548 RSBNE R5, R0, #8 .text:0000C54C ADDNE R6, R6, R5 .text:0000C550 MOVEQ R5, R0 .text:0000C554 LDR R1, [R11,#var_2C] .text:0000C558 ADD R3, R6, R9 .text:0000C55C SUB R2, R1, #1 .text:0000C560 AND R3, R3, R2 .text:0000C564 RSB R3, R3, R1 .text:0000C568 ADD R5, R5, R3 .text:0000C56C MOV R0, R5 .text:0000C570 MOV LR, PC .text:0000C574 LDR PC, [R4] .text:0000C578 SUBS R4, R0, #0 .text:0000C57C BEQ loc_C760 .text:0000C580 LDR R2, =__after_morecore_hook .text:0000C584 LDR R3, [R2] .text:0000C588 CMP R3, #0 .text:0000C58C BEQ loc_C598 .text:0000C590 MOV LR, PC .text:0000C594 MOV PC, R3 .text:0000C598 .text:0000C598 loc_C598 ; CODE XREF: chunk_alloc+53Cj .text:0000C598 LDR R3, =main_arena .text:0000C59C STR R6, [R3,#(main_arena+8 - 0x6B64C)] .text:0000C5A0 LDR R1, =main_arena .text:0000C5A4 RSB R3, R6, R4 .text:0000C5A8 LDR R2, [R1,#(main_arena+0x40C - 0x6B64C)] .text:0000C5AC ADD R1, R3, R5 .text:0000C5B0 LDR R3, =main_arena .text:0000C5B4 ADD R2, R2, R5 .text:0000C5B8 CMP R7, R3 .text:0000C5BC STR R2, [R3,#(main_arena+0x40C - 0x6B64C)] .text:0000C5C0 MOVEQ R7, #0 .text:0000C5C4 ORR R3, R1, #1 .text:0000C5C8 STR R3, [R6,#4] .text:0000C5CC .text:0000C5CC loc_C5CC ; CODE XREF: chunk_alloc+4D0j .text:0000C5CC LDR R3, =main_arena .text:0000C5D0 LDR R1, =max_sbrked_mem .text:0000C5D4 LDR R2, [R3,#(main_arena+0x40C - 0x6B64C)] .text:0000C5D8 LDR R3, [R1] .text:0000C5DC CMP R2, R3 .text:0000C5E0 STRHI R2, [R1] .text:0000C5E4 B loc_C6B8 .text:0000C5E8 ; --------------------------------------------------------------------------- .text:0000C5E8 .text:0000C5E8 loc_C5E8 ; CODE XREF: chunk_alloc+428j .text:0000C5E8 LDR R1, [R11,#var_30] .text:0000C5EC CMP R1, #0xF .text:0000C5F0 BLS loc_C760 .text:0000C5F4 ADD R3, R10, #0x10 .text:0000C5F8 CMP R3, R1 .text:0000C5FC BLS loc_C760 .text:0000C600 MOV R4, R7,LSR#20 .text:0000C604 MOV R4, R4,LSL#20 .text:0000C608 MOV R0, R4 .text:0000C60C SUB R1, R1, #0x10 .text:0000C610 RSB R1, R1, R10 .text:0000C614 LDR R5, [R4,#8] .text:0000C618 BL grow_heap .text:0000C61C CMP R0, #0 .text:0000C620 BNE loc_C664 .text:0000C624 LDR R3, [R4,#8] .text:0000C628 LDR R2, [R8,#0x40C] .text:0000C62C RSB R3, R5, R3 .text:0000C630 ADD R2, R2, R3 .text:0000C634 STR R2, [R8,#0x40C] .text:0000C638 LDR R0, =arena_mem .text:0000C63C LDR R1, [R4,#8] .text:0000C640 LDR R3, [R0] .text:0000C644 RSB R2, R5, R1 .text:0000C648 ADD R3, R3, R2 .text:0000C64C ADD R1, R4, R1 .text:0000C650 STR R3, [R0] .text:0000C654 RSB R1, R7, R1 .text:0000C658 ORR R3, R1, #1 .text:0000C65C STR R3, [R7,#4] .text:0000C660 B loc_C760 .text:0000C664 ; --------------------------------------------------------------------------- .text:0000C664 .text:0000C664 loc_C664 ; CODE XREF: chunk_alloc+5D0j .text:0000C664 ADD R0, R10, #0x20 .text:0000C668 BL new_heap .text:0000C66C SUBS R12, R0, #0 .text:0000C670 BEQ loc_C760 .text:0000C674 STR R8, [R12] .text:0000C678 STR R4, [R12,#4] .text:0000C67C LDR R2, [R12,#8] .text:0000C680 LDR R3, [R8,#0x40C] .text:0000C684 ADD R3, R3, R2 .text:0000C688 STR R3, [R8,#0x40C] .text:0000C68C LDR R1, =arena_mem .text:0000C690 LDR R3, [R1] .text:0000C694 LDR R2, [R12,#8] .text:0000C698 ADD R3, R3, R2 .text:0000C69C STR R3, [R1] .text:0000C6A0 ADD R0, R12, #0x10 .text:0000C6A4 STR R0, [R8,#8] .text:0000C6A8 LDR R3, [R12,#8] .text:0000C6AC SUB R1, R3, #0x10 .text:0000C6B0 ORR R2, R1, #1 .text:0000C6B4 STR R2, [R0,#4] .text:0000C6B8 .text:0000C6B8 loc_C6B8 ; CODE XREF: chunk_alloc+594j .text:0000C6B8 CMP R7, #0 .text:0000C6BC BEQ loc_C760 .text:0000C6C0 LDR R2, [R11,#var_30] .text:0000C6C4 MOV R3, #1 .text:0000C6C8 SUB R2, R2, #0x10 .text:0000C6CC STR R2, [R11,#var_30] .text:0000C6D0 CMP R2, #0xF .text:0000C6D4 ADD R0, R2, R7 .text:0000C6D8 STR R3, [R0,#0xC] .text:0000C6DC BLS loc_C74C .text:0000C6E0 ADD R3, R3, #8 .text:0000C6E4 STR R3, [R0,#4] .text:0000C6E8 MOV R2, #8 .text:0000C6EC STR R2, [R0,#8] .text:0000C6F0 LDR R3, [R7,#4] .text:0000C6F4 LDR R1, [R11,#var_30] .text:0000C6F8 AND R3, R3, #1 .text:0000C6FC ORR R3, R3, R1 .text:0000C700 STR R3, [R7,#4] .text:0000C704 MOV R0, R8 .text:0000C708 MOV R1, R7 .text:0000C70C BL chunk_free .text:0000C710 B loc_C760 .text:0000C710 ; --------------------------------------------------------------------------- .text:0000C714 off_C714 DCD mmap_threshold ; DATA XREF: chunk_alloc+344r .text:0000C718 off_C718 DCD n_mmaps ; DATA XREF: chunk_alloc+354r .text:0000C71C off_C71C DCD n_mmaps_max ; DATA XREF: chunk_alloc+358r .text:0000C720 off_C720 DCD __libc_pagesize ; DATA XREF: chunk_alloc+370r .text:0000C720 ; chunk_alloc+41Cr .text:0000C724 off_C724 DCD max_n_mmaps ; DATA XREF: chunk_alloc+3B4r .text:0000C728 off_C728 DCD mmapped_mem ; DATA XREF: chunk_alloc+3DCr .text:0000C72C off_C72C DCD max_mmapped_mem ; DATA XREF: chunk_alloc+3E0r .text:0000C730 off_C730 DCD main_arena ; DATA XREF: chunk_alloc+414r .text:0000C730 ; chunk_alloc:loc_C598r ... .text:0000C734 off_C734 DCD top_pad ; DATA XREF: chunk_alloc+42Cr .text:0000C738 off_C738 DCD sbrk_base ; DATA XREF: chunk_alloc+430r .text:0000C738 ; chunk_alloc:loc_C524r .text:0000C73C off_C73C DCD __morecore ; DATA XREF: chunk_alloc:loc_C4B8r .text:0000C740 off_C740 DCD __after_morecore_hook ; DATA XREF: chunk_alloc:loc_C4E0r .text:0000C740 ; chunk_alloc+530r .text:0000C744 off_C744 DCD max_sbrked_mem ; DATA XREF: chunk_alloc+580r .text:0000C748 off_C748 DCD arena_mem ; DATA XREF: chunk_alloc+5E8r .text:0000C748 ; chunk_alloc+63Cr .text:0000C74C ; --------------------------------------------------------------------------- .text:0000C74C .text:0000C74C loc_C74C ; CODE XREF: chunk_alloc+68Cj .text:0000C74C LDR R3, [R11,#var_30] .text:0000C750 ADD R2, R3, #8 .text:0000C754 ORR R3, R2, #1 .text:0000C758 STR R3, [R7,#4] .text:0000C75C STR R2, [R0,#8] .text:0000C760 .text:0000C760 loc_C760 ; CODE XREF: chunk_alloc+47Cj .text:0000C760 ; chunk_alloc+48Cj ... .text:0000C760 LDR R2, [R8,#8] .text:0000C764 LDR R3, [R2,#4] .text:0000C768 MOV R0, R2 .text:0000C76C BIC R3, R3, #3 .text:0000C770 RSB R12, R10, R3 .text:0000C774 CMP R12, #0xF .text:0000C778 BGT loc_C8EC .text:0000C77C LDR R1, =main_arena .text:0000C780 CMP R8, R1 .text:0000C784 BEQ loc_C83C .text:0000C788 LDR R3, =n_mmaps_max .text:0000C78C LDR R2, [R3] .text:0000C790 CMP R2, #0 .text:0000C794 BEQ loc_C83C .text:0000C798 MOV R5, #0 .text:0000C79C LDR R2, =__libc_pagesize .text:0000C7A0 MOV R0, R5 .text:0000C7A4 LDR R12, [R2] .text:0000C7A8 MOV R3, 0xFFFFFFFF .text:0000C7AC STR R3, [SP,#0x38+var_38] .text:0000C7B0 MOV R2, #3 .text:0000C7B4 ADD R3, R3, #0x23 .text:0000C7B8 STR R5, [SP,#0x38+var_34] .text:0000C7BC ADD R1, R12, R2 .text:0000C7C0 ADD R1, R10, R1 .text:0000C7C4 RSB R12, R12, #0 .text:0000C7C8 AND R4, R1, R12 .text:0000C7CC MOV R1, R4 .text:0000C7D0 BL mmap .text:0000C7D4 MOV R12, R0 .text:0000C7D8 CMN R12, #1 .text:0000C7DC MOVEQ R0, R5 .text:0000C7E0 BEQ loc_C834 .text:0000C7E4 LDR R3, =n_mmaps .text:0000C7E8 LDR R0, =max_n_mmaps .text:0000C7EC LDR R2, [R3] .text:0000C7F0 LDR R1, [R0] .text:0000C7F4 ADD R2, R2, #1 .text:0000C7F8 CMP R2, R1 .text:0000C7FC STR R2, [R3] .text:0000C800 STRHI R2, [R0] .text:0000C804 STR R5, [R12] .text:0000C808 ORR R3, R4, #2 .text:0000C80C STR R3, [R12,#4] .text:0000C810 LDR R1, =mmapped_mem .text:0000C814 LDR LR, =max_mmapped_mem .text:0000C818 LDR R3, [R1] .text:0000C81C LDR R2, [LR] .text:0000C820 ADD R0, R3, R4 .text:0000C824 CMP R0, R2 .text:0000C828 STR R0, [R1] .text:0000C82C STRHI R0, [LR] .text:0000C830 MOV R0, R12 .text:0000C834 .text:0000C834 loc_C834 ; CODE XREF: chunk_alloc+790j .text:0000C834 CMP R0, #0 .text:0000C838 BNE locret_C904 .text:0000C83C .text:0000C83C loc_C83C ; CODE XREF: chunk_alloc+734j .text:0000C83C ; chunk_alloc+744j .text:0000C83C MOV R0, #0 .text:0000C840 B locret_C904 .text:0000C844 ; --------------------------------------------------------------------------- .text:0000C844 .text:0000C844 loc_C844 ; CODE XREF: chunk_alloc+E0j .text:0000C844 LDR R4, [R0,#0xC] .text:0000C848 LDR LR, [R0,#8] .text:0000C84C STR R4, [LR,#0xC] .text:0000C850 STR LR, [R4,#8] .text:0000C854 .text:0000C854 loc_C854 ; CODE XREF: chunk_alloc+148j .text:0000C854 MOV R1, #4 .text:0000C858 .text:0000C858 loc_C858 ; CODE XREF: chunk_alloc+64j .text:0000C858 ADD R2, R0, R5 .text:0000C85C LDR R3, [R2,R1] .text:0000C860 ORR R3, R3, #1 .text:0000C864 STR R3, [R2,R1] .text:0000C868 B locret_C904 .text:0000C86C ; --------------------------------------------------------------------------- .text:0000C86C .text:0000C86C loc_C86C ; CODE XREF: chunk_alloc+2A0j .text:0000C86C ORR R3, R10, #1 .text:0000C870 STR R3, [R0,#4] .text:0000C874 LDR R4, [R0,#0xC] .text:0000C878 LDR LR, [R0,#8] .text:0000C87C STR R4, [LR,#0xC] .text:0000C880 STR LR, [R4,#8] .text:0000C884 .text:0000C884 loc_C884 ; CODE XREF: chunk_alloc+138j .text:0000C884 ADD R1, R0, R10 .text:0000C888 STR R1, [R7,#0xC] .text:0000C88C STR R1, [R8,#0x10] .text:0000C890 STR R7, [R1,#0xC] .text:0000C894 STR R7, [R1,#8] .text:0000C898 ORR R3, R12, #1 .text:0000C89C STR R3, [R1,#4] .text:0000C8A0 STR R12, [R1,R12] .text:0000C8A4 B locret_C904 .text:0000C8A8 ; --------------------------------------------------------------------------- .text:0000C8A8 .text:0000C8A8 loc_C8A8 ; CODE XREF: chunk_alloc+2A8j .text:0000C8A8 MOV R1, #4 .text:0000C8AC ADD R2, R0, R5 .text:0000C8B0 LDR R3, [R2,R1] .text:0000C8B4 ORR R3, R3, #1 .text:0000C8B8 STR R3, [R2,R1] .text:0000C8BC LDR R4, [R0,#0xC] .text:0000C8C0 LDR LR, [R0,#8] .text:0000C8C4 STR R4, [LR,#0xC] .text:0000C8C8 STR LR, [R4,#8] .text:0000C8CC B locret_C904 .text:0000C8CC ; --------------------------------------------------------------------------- .text:0000C8D0 off_C8D0 DCD main_arena ; DATA XREF: chunk_alloc+72Cr .text:0000C8D4 off_C8D4 DCD n_mmaps_max ; DATA XREF: chunk_alloc+738r .text:0000C8D8 off_C8D8 DCD __libc_pagesize ; DATA XREF: chunk_alloc+74Cr .text:0000C8DC off_C8DC DCD n_mmaps ; DATA XREF: chunk_alloc+794r .text:0000C8E0 off_C8E0 DCD max_n_mmaps ; DATA XREF: chunk_alloc+798r .text:0000C8E4 off_C8E4 DCD mmapped_mem ; DATA XREF: chunk_alloc+7C0r .text:0000C8E8 off_C8E8 DCD max_mmapped_mem ; DATA XREF: chunk_alloc+7C4r .text:0000C8EC ; --------------------------------------------------------------------------- .text:0000C8EC .text:0000C8EC loc_C8EC ; CODE XREF: chunk_alloc+340j .text:0000C8EC ; chunk_alloc+728j .text:0000C8EC ORR R3, R10, #1 .text:0000C8F0 STR R3, [R0,#4] .text:0000C8F4 ADD R2, R0, R10 .text:0000C8F8 STR R2, [R8,#8] .text:0000C8FC ORR R3, R12, #1 .text:0000C900 STR R3, [R2,#4] .text:0000C904 .text:0000C904 locret_C904 ; CODE XREF: chunk_alloc+400j .text:0000C904 ; chunk_alloc+7E8j ... .text:0000C904 LDMDB R11, {R4-R11,SP,PC} .text:0000C904 ; End of function chunk_alloc .text:0000C904 .text:0000C908 .text:0000C908 ; =============== S U B R O U T I N E ======================================= .text:0000C908 .text:0000C908 ; Attributes: bp-based frame .text:0000C908 .text:0000C908 WEAK free .text:0000C908 free ; CODE XREF: exit+DCp .text:0000C908 ; _IO_free_backup_area+24p ... .text:0000C908 .text:0000C908 var_4 = -4 .text:0000C908 .text:0000C908 MOV R12, SP .text:0000C90C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000C910 LDR R3, =__free_hook .text:0000C914 LDR R3, [R3] .text:0000C918 SUB R11, R12, #4 .text:0000C91C CMP R3, #0 .text:0000C920 BEQ loc_C934 .text:0000C924 LDR R1, [R11,#var_4] .text:0000C928 MOV LR, PC .text:0000C92C MOV PC, R3 .text:0000C930 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000C934 ; --------------------------------------------------------------------------- .text:0000C934 .text:0000C934 loc_C934 ; CODE XREF: free+18j .text:0000C934 CMP R0, #0 .text:0000C938 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0000C93C SUB R5, R0, #8 .text:0000C940 LDR R3, [R5,#4] .text:0000C944 TST R3, #2 .text:0000C948 BEQ loc_C958 .text:0000C94C MOV R0, R5 .text:0000C950 BL munmap_chunk .text:0000C954 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000C958 ; --------------------------------------------------------------------------- .text:0000C958 .text:0000C958 loc_C958 ; CODE XREF: free+40j .text:0000C958 LDR R0, =main_arena .text:0000C95C LDR R3, [R0,#(main_arena+8 - 0x6B64C)] .text:0000C960 CMP R5, R3 .text:0000C964 BCS loc_C978 .text:0000C968 LDR R3, =sbrk_base .text:0000C96C LDR R2, [R3] .text:0000C970 CMP R5, R2 .text:0000C974 BCS loc_C988 .text:0000C978 .text:0000C978 loc_C978 ; CODE XREF: free+5Cj .text:0000C978 MOV R3, R5,LSR#20 .text:0000C97C MOV R3, R3,LSL#20 .text:0000C980 LDR R4, [R3] .text:0000C984 B loc_C98C .text:0000C988 ; --------------------------------------------------------------------------- .text:0000C988 .text:0000C988 loc_C988 ; CODE XREF: free+6Cj .text:0000C988 MOV R4, R0 .text:0000C98C .text:0000C98C loc_C98C ; CODE XREF: free+7Cj .text:0000C98C LDR R3, =0 .text:0000C990 CMP R3, #0 .text:0000C994 BEQ loc_C9A8 .text:0000C998 ADD R0, R4, #0x410 .text:0000C99C MOV LR, PC .text:0000C9A0 MOV PC, R3 .text:0000C9A4 B loc_C9B0 .text:0000C9A8 ; --------------------------------------------------------------------------- .text:0000C9A8 .text:0000C9A8 loc_C9A8 ; CODE XREF: free+8Cj .text:0000C9A8 MOV R3, #1 .text:0000C9AC STR R3, [R4,#0x410] .text:0000C9B0 .text:0000C9B0 loc_C9B0 ; CODE XREF: free+9Cj .text:0000C9B0 MOV R0, R4 .text:0000C9B4 MOV R1, R5 .text:0000C9B8 BL chunk_free .text:0000C9BC LDR R3, =0 .text:0000C9C0 CMP R3, #0 .text:0000C9C4 BEQ loc_C9D8 .text:0000C9C8 ADD R0, R4, #0x410 .text:0000C9CC MOV LR, PC .text:0000C9D0 MOV PC, R3 .text:0000C9D4 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000C9D8 ; --------------------------------------------------------------------------- .text:0000C9D8 .text:0000C9D8 loc_C9D8 ; CODE XREF: free+BCj .text:0000C9D8 STR R3, [R4,#0x410] .text:0000C9DC LDMDB R11, {R4,R5,R11,SP,PC} .text:0000C9DC ; End of function free .text:0000C9DC .text:0000C9DC ; --------------------------------------------------------------------------- .text:0000C9E0 off_C9E0 DCD __free_hook ; DATA XREF: free+8r .text:0000C9E4 off_C9E4 DCD main_arena ; DATA XREF: free:loc_C958r .text:0000C9E8 off_C9E8 DCD sbrk_base ; DATA XREF: free+60r .text:0000C9EC off_C9EC DCD 0 ; DATA XREF: free:loc_C98Cr .text:0000C9F0 off_C9F0 DCD 0 ; DATA XREF: free+B4r .text:0000C9F4 .text:0000C9F4 ; =============== S U B R O U T I N E ======================================= .text:0000C9F4 .text:0000C9F4 ; Attributes: bp-based frame .text:0000C9F4 .text:0000C9F4 chunk_free ; CODE XREF: chunk_alloc+6BCp .text:0000C9F4 ; free+B0p ... .text:0000C9F4 MOV R12, SP .text:0000C9F8 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000C9FC SUB R11, R12, #4 .text:0000CA00 MOV R4, R1 .text:0000CA04 LDR R1, [R4,#4] .text:0000CA08 MOV R6, R0 .text:0000CA0C LDR R2, [R6,#8] .text:0000CA10 BIC R5, R1, #1 .text:0000CA14 ADD R7, R4, R5 .text:0000CA18 LDR R3, [R7,#4] .text:0000CA1C CMP R7, R2 .text:0000CA20 BIC R0, R3, #3 .text:0000CA24 BNE loc_CABC .text:0000CA28 ADD R5, R5, R0 .text:0000CA2C TST R1, #1 .text:0000CA30 BNE loc_CA50 .text:0000CA34 LDR R3, [R4] .text:0000CA38 RSB R4, R3, R4 .text:0000CA3C ADD R12, R4, #8 .text:0000CA40 LDMIA R12, {R12,LR} .text:0000CA44 STR LR, [R12,#0xC] .text:0000CA48 ADD R5, R5, R3 .text:0000CA4C STR R12, [LR,#8] .text:0000CA50 .text:0000CA50 loc_CA50 ; CODE XREF: chunk_free+3Cj .text:0000CA50 ORR R3, R5, #1 .text:0000CA54 STR R3, [R4,#4] .text:0000CA58 LDR R2, =main_arena .text:0000CA5C STR R4, [R6,#8] .text:0000CA60 CMP R6, R2 .text:0000CA64 BNE loc_CA88 .text:0000CA68 LDR R3, =trim_threshold .text:0000CA6C LDR R2, [R3] .text:0000CA70 CMP R5, R2 .text:0000CA74 LDMCCDB R11, {R4-R8,R11,SP,PC} .text:0000CA78 LDR R3, =top_pad .text:0000CA7C LDR R0, [R3] .text:0000CA80 BL main_trim .text:0000CA84 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000CA88 ; --------------------------------------------------------------------------- .text:0000CA88 .text:0000CA88 loc_CA88 ; CODE XREF: chunk_free+70j .text:0000CA88 LDR R3, =trim_threshold .text:0000CA8C MOV R0, R4,LSR#20 .text:0000CA90 LDR R2, [R3] .text:0000CA94 MOV R0, R0,LSL#20 .text:0000CA98 CMP R5, R2 .text:0000CA9C BCS loc_CAAC .text:0000CAA0 ADD R3, R0, #0x10 .text:0000CAA4 CMP R4, R3 .text:0000CAA8 LDMNEDB R11, {R4-R8,R11,SP,PC} .text:0000CAAC .text:0000CAAC loc_CAAC ; CODE XREF: chunk_free+A8j .text:0000CAAC LDR R3, =top_pad .text:0000CAB0 LDR R1, [R3] .text:0000CAB4 BL heap_trim .text:0000CAB8 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000CABC ; --------------------------------------------------------------------------- .text:0000CABC .text:0000CABC loc_CABC ; CODE XREF: chunk_free+30j .text:0000CABC MOV R8, #0 .text:0000CAC0 TST R1, #1 .text:0000CAC4 BNE loc_CAF4 .text:0000CAC8 LDR R3, [R4] .text:0000CACC RSB R4, R3, R4 .text:0000CAD0 ADD R5, R5, R3 .text:0000CAD4 LDR R2, [R4,#8] .text:0000CAD8 ADD R3, R6, #8 .text:0000CADC CMP R2, R3 .text:0000CAE0 ADDEQ R8, R8, #1 .text:0000CAE4 LDRNE LR, [R4,#0xC] .text:0000CAE8 MOVNE R12, R2 .text:0000CAEC STRNE LR, [R12,#0xC] .text:0000CAF0 STRNE R12, [LR,#8] .text:0000CAF4 .text:0000CAF4 loc_CAF4 ; CODE XREF: chunk_free+D0j .text:0000CAF4 ADD R3, R7, R0 .text:0000CAF8 LDR R2, [R3,#4] .text:0000CAFC TST R2, #1 .text:0000CB00 BNE loc_CB50 .text:0000CB04 ADD R5, R5, R0 .text:0000CB08 CMP R8, #0 .text:0000CB0C LDR R2, [R7,#8] .text:0000CB10 BNE loc_CB38 .text:0000CB14 ADD R3, R6, #8 .text:0000CB18 CMP R2, R3 .text:0000CB1C BNE loc_CB38 .text:0000CB20 STR R4, [R2,#0xC] .text:0000CB24 STR R4, [R6,#0x10] .text:0000CB28 STR R2, [R4,#0xC] .text:0000CB2C MOV R8, #1 .text:0000CB30 STR R2, [R4,#8] .text:0000CB34 B loc_CB48 .text:0000CB38 ; --------------------------------------------------------------------------- .text:0000CB38 .text:0000CB38 loc_CB38 ; CODE XREF: chunk_free+11Cj .text:0000CB38 ; chunk_free+128j .text:0000CB38 LDR LR, [R7,#0xC] .text:0000CB3C MOV R12, R2 .text:0000CB40 STR LR, [R12,#0xC] .text:0000CB44 STR R12, [LR,#8] .text:0000CB48 .text:0000CB48 loc_CB48 ; CODE XREF: chunk_free+140j .text:0000CB48 ADD R7, R4, R5 .text:0000CB4C B loc_CB54 .text:0000CB50 ; --------------------------------------------------------------------------- .text:0000CB50 .text:0000CB50 loc_CB50 ; CODE XREF: chunk_free+10Cj .text:0000CB50 STR R0, [R7,#4] .text:0000CB54 .text:0000CB54 loc_CB54 ; CODE XREF: chunk_free+158j .text:0000CB54 ORR R3, R5, #1 .text:0000CB58 STR R3, [R4,#4] .text:0000CB5C CMP R8, #0 .text:0000CB60 STR R5, [R7] .text:0000CB64 BNE loc_CC4C .text:0000CB68 CMP R5, #0x200 .text:0000CB6C BCS loc_CB94 .text:0000CB70 MOV R0, R5,LSR#3 .text:0000CB74 MOV R3, R0,LSR#2 .text:0000CB78 LDR R2, [R6,#4] .text:0000CB7C MOV R1, #1 .text:0000CB80 ORR R2, R2, R1,LSL R3 .text:0000CB84 STR R2, [R6,#4] .text:0000CB88 ADD LR, R6, R0,LSL#3 .text:0000CB8C LDR R12, [LR,#8] .text:0000CB90 B loc_CC3C .text:0000CB94 ; --------------------------------------------------------------------------- .text:0000CB94 .text:0000CB94 loc_CB94 ; CODE XREF: chunk_free+178j .text:0000CB94 MOVS R2, R5,LSR#9 .text:0000CB98 MOVEQ R0, R5,LSR#3 .text:0000CB9C BEQ loc_CBF4 .text:0000CBA0 CMP R2, #4 .text:0000CBA4 MOVLS R3, R5,LSR#6 .text:0000CBA8 ADDLS R0, R3, #0x38 .text:0000CBAC BLS loc_CBF4 .text:0000CBB0 CMP R2, #0x14 .text:0000CBB4 ADDLS R0, R2, #0x5B .text:0000CBB8 BLS loc_CBF4 .text:0000CBBC CMP R2, #0x54 .text:0000CBC0 MOVLS R3, R5,LSR#12 .text:0000CBC4 ADDLS R0, R3, #0x6E .text:0000CBC8 BLS loc_CBF4 .text:0000CBCC CMP R2, #0x154 .text:0000CBD0 MOVLS R3, R5,LSR#15 .text:0000CBD4 ADDLS R0, R3, #0x77 .text:0000CBD8 BLS loc_CBF4 .text:0000CBDC MOV R3, 0x554 .text:0000CBE4 CMP R2, R3 .text:0000CBE8 MOVLS R3, R5,LSR#18 .text:0000CBEC ADDLS R0, R3, #0x7C .text:0000CBF0 MOVHI R0, #0x7E .text:0000CBF4 .text:0000CBF4 loc_CBF4 ; CODE XREF: chunk_free+1A8j .text:0000CBF4 ; chunk_free+1B8j ... .text:0000CBF4 ADD LR, R6, R0,LSL#3 .text:0000CBF8 LDR R12, [LR,#8] .text:0000CBFC CMP R12, LR .text:0000CC00 BNE loc_CC28 .text:0000CC04 MOV R3, R0,LSR#2 .text:0000CC08 LDR R2, [R6,#4] .text:0000CC0C MOV R1, #1 .text:0000CC10 ORR R2, R2, R1,LSL R3 .text:0000CC14 STR R2, [R6,#4] .text:0000CC18 B loc_CC3C .text:0000CC1C ; --------------------------------------------------------------------------- .text:0000CC1C .text:0000CC1C loc_CC1C ; CODE XREF: chunk_free+240j .text:0000CC1C LDR R12, [R12,#8] .text:0000CC20 CMP R12, LR .text:0000CC24 BEQ loc_CC38 .text:0000CC28 .text:0000CC28 loc_CC28 ; CODE XREF: chunk_free+20Cj .text:0000CC28 LDR R3, [R12,#4] .text:0000CC2C BIC R3, R3, #3 .text:0000CC30 CMP R5, R3 .text:0000CC34 BCC loc_CC1C .text:0000CC38 .text:0000CC38 loc_CC38 ; CODE XREF: chunk_free+230j .text:0000CC38 LDR LR, [R12,#0xC] .text:0000CC3C .text:0000CC3C loc_CC3C ; CODE XREF: chunk_free+19Cj .text:0000CC3C ; chunk_free+224j .text:0000CC3C STR LR, [R4,#0xC] .text:0000CC40 STR R12, [R4,#8] .text:0000CC44 STR R4, [LR,#8] .text:0000CC48 STR R4, [R12,#0xC] .text:0000CC4C .text:0000CC4C loc_CC4C ; CODE XREF: chunk_free+170j .text:0000CC4C LDR R3, [R7,#4] .text:0000CC50 CMP R3, #0xF .text:0000CC54 LDMHIDB R11, {R4-R8,R11,SP,PC} .text:0000CC58 LDR R3, =trim_threshold .text:0000CC5C LDR R2, [R3] .text:0000CC60 CMP R5, R2 .text:0000CC64 LDMLSDB R11, {R4-R8,R11,SP,PC} .text:0000CC68 LDR R3, =main_arena .text:0000CC6C CMP R6, R3 .text:0000CC70 LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0000CC74 MOV R1, #0x80000000 .text:0000CC78 LDR R2, [R6,#8] .text:0000CC7C MOV R1, R1,ASR#11 .text:0000CC80 AND R0, R2, R1 .text:0000CC84 ADD R3, R0, #0x10 .text:0000CC88 CMP R2, R3 .text:0000CC8C LDMNEDB R11, {R4-R8,R11,SP,PC} .text:0000CC90 LDR R2, [R0,#4] .text:0000CC94 AND R3, R4, R1 .text:0000CC98 CMP R2, R3 .text:0000CC9C LDMNEDB R11, {R4-R8,R11,SP,PC} .text:0000CCA0 LDR R3, =top_pad .text:0000CCA4 LDR R1, [R3] .text:0000CCA8 BL heap_trim .text:0000CCAC LDMDB R11, {R4-R8,R11,SP,PC} .text:0000CCAC ; End of function chunk_free .text:0000CCAC .text:0000CCAC ; --------------------------------------------------------------------------- .text:0000CCB0 off_CCB0 DCD main_arena ; DATA XREF: chunk_free+64r .text:0000CCB0 ; chunk_free+274r .text:0000CCB4 off_CCB4 DCD trim_threshold ; DATA XREF: chunk_free+74r .text:0000CCB4 ; chunk_free:loc_CA88r ... .text:0000CCB8 off_CCB8 DCD top_pad ; DATA XREF: chunk_free+84r .text:0000CCB8 ; chunk_free:loc_CAACr ... .text:0000CCBC .text:0000CCBC ; =============== S U B R O U T I N E ======================================= .text:0000CCBC .text:0000CCBC ; Attributes: bp-based frame .text:0000CCBC .text:0000CCBC WEAK realloc .text:0000CCBC realloc ; CODE XREF: realloc_hook_ini+34p .text:0000CCBC ; add_dependency+E0p ... .text:0000CCBC .text:0000CCBC var_4 = -4 .text:0000CCBC .text:0000CCBC MOV R12, SP ; Alternative name is '__realloc' .text:0000CCC0 STMFD SP!, {R4-R12,LR,PC} .text:0000CCC4 SUB R11, R12, #4 .text:0000CCC8 LDR R3, =__realloc_hook .text:0000CCCC MOV R6, R0 .text:0000CCD0 LDR R4, [R3] .text:0000CCD4 MOV R8, R1 .text:0000CCD8 CMP R4, #0 .text:0000CCDC BEQ loc_CCF0 .text:0000CCE0 LDR R2, [R11,#var_4] .text:0000CCE4 MOV LR, PC .text:0000CCE8 MOV PC, R4 .text:0000CCEC LDMDB R11, {R4-R11,SP,PC} .text:0000CCF0 ; --------------------------------------------------------------------------- .text:0000CCF0 .text:0000CCF0 loc_CCF0 ; CODE XREF: realloc+20j .text:0000CCF0 SUBS R3, R6, #0 .text:0000CCF4 MOVNE R3, #1 .text:0000CCF8 CMP R8, #0 .text:0000CCFC MOVNE R3, #0 .text:0000CD00 CMP R3, #0 .text:0000CD04 BEQ loc_CD14 .text:0000CD08 MOV R0, R6 .text:0000CD0C BL free .text:0000CD10 B loc_CDB4 .text:0000CD14 ; --------------------------------------------------------------------------- .text:0000CD14 .text:0000CD14 loc_CD14 ; CODE XREF: realloc+48j .text:0000CD14 CMP R6, #0 .text:0000CD18 BNE loc_CD28 .text:0000CD1C MOV R0, R8 .text:0000CD20 BL malloc .text:0000CD24 LDMDB R11, {R4-R11,SP,PC} .text:0000CD28 ; --------------------------------------------------------------------------- .text:0000CD28 .text:0000CD28 loc_CD28 ; CODE XREF: realloc+5Cj .text:0000CD28 ADD R7, R8, #0xB .text:0000CD2C SUB R10, R6, #8 .text:0000CD30 CMP R7, R8 .text:0000CD34 MOVCS R3, #0 .text:0000CD38 MOVCC R3, #1 .text:0000CD3C CMP R7, #0 .text:0000CD40 MOVLE R3, #1 .text:0000CD44 LDR R2, [R10,#4] .text:0000CD48 CMP R3, #0 .text:0000CD4C BIC R9, R2, #3 .text:0000CD50 BEQ loc_CD64 .text:0000CD54 BL __errno_location .text:0000CD58 MOV R3, #0xC .text:0000CD5C STR R3, [R0] .text:0000CD60 B loc_CDB4 .text:0000CD64 ; --------------------------------------------------------------------------- .text:0000CD64 .text:0000CD64 loc_CD64 ; CODE XREF: realloc+94j .text:0000CD64 CMP R7, #0x16 .text:0000CD68 BIC R7, R7, #7 .text:0000CD6C MOVLS R7, #0x10 .text:0000CD70 LDR R3, [R10,#4] .text:0000CD74 TST R3, #2 .text:0000CD78 BEQ loc_CE58 .text:0000CD7C MOV R0, R10 .text:0000CD80 MOV R1, R7 .text:0000CD84 BL mremap_chunk .text:0000CD88 SUBS R5, R0, #0 .text:0000CD8C ADDNE R0, R5, #8 .text:0000CD90 LDMNEDB R11, {R4-R11,SP,PC} .text:0000CD94 SUB R3, R9, #4 .text:0000CD98 CMP R3, R7 .text:0000CD9C MOV R0, R6 .text:0000CDA0 LDMCSDB R11, {R4-R11,SP,PC} .text:0000CDA4 MOV R0, R8 .text:0000CDA8 BL malloc .text:0000CDAC SUBS R5, R0, #0 .text:0000CDB0 BNE loc_CDBC .text:0000CDB4 .text:0000CDB4 loc_CDB4 ; CODE XREF: realloc+54j .text:0000CDB4 ; realloc+A4j .text:0000CDB4 MOV R0, #0 .text:0000CDB8 LDMDB R11, {R4-R11,SP,PC} .text:0000CDBC ; --------------------------------------------------------------------------- .text:0000CDBC .text:0000CDBC loc_CDBC ; CODE XREF: realloc+F4j .text:0000CDBC SUB R4, R9, #8 .text:0000CDC0 CMP R4, #0x24 .text:0000CDC4 BHI loc_CE38 .text:0000CDC8 MOV LR, R6 .text:0000CDCC MOV R12, R5 .text:0000CDD0 CMP R4, #0x13 .text:0000CDD4 BLS loc_CE1C .text:0000CDD8 LDR R3, [LR],#4 .text:0000CDDC STR R3, [R12],#4 .text:0000CDE0 CMP R4, #0x1B .text:0000CDE4 ADD LR, LR, #4 .text:0000CDE8 LDR R3, [R6,#4] .text:0000CDEC ADD R12, R12, #4 .text:0000CDF0 STR R3, [R5,#4] .text:0000CDF4 BLS loc_CE1C .text:0000CDF8 LDR R3, [LR],#4 .text:0000CDFC STR R3, [R12],#4 .text:0000CE00 LDR R2, [LR],#4 .text:0000CE04 CMP R4, #0x23 .text:0000CE08 STR R2, [R12],#4 .text:0000CE0C LDRHI R3, [LR],#4 .text:0000CE10 STRHI R3, [R12],#4 .text:0000CE14 LDRHI R2, [LR],#4 .text:0000CE18 STRHI R2, [R12],#4 .text:0000CE1C .text:0000CE1C loc_CE1C ; CODE XREF: realloc+118j .text:0000CE1C ; realloc+138j .text:0000CE1C LDR R3, [LR],#4 .text:0000CE20 STR R3, [R12],#4 .text:0000CE24 LDR R2, [LR],#4 .text:0000CE28 STR R2, [R12],#4 .text:0000CE2C LDR R3, [LR] .text:0000CE30 STR R3, [R12] .text:0000CE34 B loc_CE48 .text:0000CE38 ; --------------------------------------------------------------------------- .text:0000CE38 .text:0000CE38 loc_CE38 ; CODE XREF: realloc+108j .text:0000CE38 MOV R0, R5 .text:0000CE3C MOV R1, R6 .text:0000CE40 MOV R2, R4 .text:0000CE44 BL memcpy .text:0000CE48 .text:0000CE48 loc_CE48 ; CODE XREF: realloc+178j .text:0000CE48 MOV R0, R10 .text:0000CE4C BL munmap_chunk .text:0000CE50 MOV R0, R5 .text:0000CE54 LDMDB R11, {R4-R11,SP,PC} .text:0000CE58 ; --------------------------------------------------------------------------- .text:0000CE58 .text:0000CE58 loc_CE58 ; CODE XREF: realloc+BCj .text:0000CE58 LDR R0, =main_arena .text:0000CE5C LDR R3, [R0,#(main_arena+8 - 0x6B64C)] .text:0000CE60 CMP R10, R3 .text:0000CE64 BCS loc_CE78 .text:0000CE68 LDR R3, =sbrk_base .text:0000CE6C LDR R2, [R3] .text:0000CE70 CMP R10, R2 .text:0000CE74 BCS loc_CE88 .text:0000CE78 .text:0000CE78 loc_CE78 ; CODE XREF: realloc+1A8j .text:0000CE78 MOV R3, R10,LSR#20 .text:0000CE7C MOV R3, R3,LSL#20 .text:0000CE80 LDR R4, [R3] .text:0000CE84 B loc_CE8C .text:0000CE88 ; --------------------------------------------------------------------------- .text:0000CE88 .text:0000CE88 loc_CE88 ; CODE XREF: realloc+1B8j .text:0000CE88 MOV R4, R0 .text:0000CE8C .text:0000CE8C loc_CE8C ; CODE XREF: realloc+1C8j .text:0000CE8C LDR R3, =0 .text:0000CE90 CMP R3, #0 .text:0000CE94 BEQ loc_CEA8 .text:0000CE98 ADD R0, R4, #0x410 .text:0000CE9C MOV LR, PC .text:0000CEA0 MOV PC, R3 .text:0000CEA4 B loc_CEB0 .text:0000CEA8 ; --------------------------------------------------------------------------- .text:0000CEA8 .text:0000CEA8 loc_CEA8 ; CODE XREF: realloc+1D8j .text:0000CEA8 MOV R3, #1 .text:0000CEAC STR R3, [R4,#0x410] .text:0000CEB0 .text:0000CEB0 loc_CEB0 ; CODE XREF: realloc+1E8j .text:0000CEB0 LDR R3, =__libc_internal_tsd_set .text:0000CEB4 LDR R3, [R3] .text:0000CEB8 CMP R3, #0 .text:0000CEBC BEQ loc_CED4 .text:0000CEC0 MOV R0, #0 .text:0000CEC4 MOV R1, R4 .text:0000CEC8 MOV LR, PC .text:0000CECC MOV PC, R3 .text:0000CED0 B loc_CEDC .text:0000CED4 ; --------------------------------------------------------------------------- .text:0000CED4 .text:0000CED4 loc_CED4 ; CODE XREF: realloc+200j .text:0000CED4 LDR R3, =__libc_tsd_MALLOC_data .text:0000CED8 STR R4, [R3] .text:0000CEDC .text:0000CEDC loc_CEDC ; CODE XREF: realloc+214j .text:0000CEDC MOV R0, R4 .text:0000CEE0 MOV R1, R10 .text:0000CEE4 MOV R2, R9 .text:0000CEE8 MOV R3, R7 .text:0000CEEC BL chunk_realloc .text:0000CEF0 LDR R3, =0 .text:0000CEF4 MOV R5, R0 .text:0000CEF8 CMP R3, #0 .text:0000CEFC BEQ loc_CF10 .text:0000CF00 ADD R0, R4, #0x410 .text:0000CF04 MOV LR, PC .text:0000CF08 MOV PC, R3 .text:0000CF0C B loc_CF14 .text:0000CF10 ; --------------------------------------------------------------------------- .text:0000CF10 .text:0000CF10 loc_CF10 ; CODE XREF: realloc+240j .text:0000CF10 STR R3, [R4,#0x410] .text:0000CF14 .text:0000CF14 loc_CF14 ; CODE XREF: realloc+250j .text:0000CF14 CMP R5, #0 .text:0000CF18 ADDNE R0, R5, #8 .text:0000CF1C MOVEQ R0, #0 .text:0000CF20 LDMDB R11, {R4-R11,SP,PC} .text:0000CF20 ; End of function realloc .text:0000CF20 .text:0000CF20 ; --------------------------------------------------------------------------- .text:0000CF24 off_CF24 DCD __realloc_hook ; DATA XREF: realloc+Cr .text:0000CF28 off_CF28 DCD main_arena ; DATA XREF: realloc:loc_CE58r .text:0000CF2C off_CF2C DCD sbrk_base ; DATA XREF: realloc+1ACr .text:0000CF30 off_CF30 DCD 0 ; DATA XREF: realloc:loc_CE8Cr .text:0000CF34 off_CF34 DCD __libc_internal_tsd_set ; DATA XREF: realloc:loc_CEB0r .text:0000CF38 off_CF38 DCD __libc_tsd_MALLOC_data ; DATA XREF: realloc:loc_CED4r .text:0000CF3C off_CF3C DCD 0 ; DATA XREF: realloc+234r .text:0000CF40 .text:0000CF40 ; =============== S U B R O U T I N E ======================================= .text:0000CF40 .text:0000CF40 ; Attributes: bp-based frame .text:0000CF40 .text:0000CF40 chunk_realloc ; CODE XREF: realloc+230p .text:0000CF40 ; realloc_check+248p .text:0000CF40 .text:0000CF40 var_30 = -0x30 .text:0000CF40 var_2C = -0x2C .text:0000CF40 .text:0000CF40 MOV R12, SP .text:0000CF44 STMFD SP!, {R4-R12,LR,PC} .text:0000CF48 SUB R11, R12, #4 .text:0000CF4C MOV R5, R2 .text:0000CF50 MOV R9, R1 .text:0000CF54 MOV R4, R9 .text:0000CF58 MOV R8, R5 .text:0000CF5C MOV R10, R3 .text:0000CF60 CMP R8, R10 .text:0000CF64 SUB SP, SP, #8 .text:0000CF68 STR R0, [R11,#var_2C] .text:0000CF6C BGE loc_D3BC .text:0000CF70 ADD R12, R4, R8 .text:0000CF74 LDR R3, [R0,#8] .text:0000CF78 ADD R6, R4, #8 .text:0000CF7C CMP R12, R3 .text:0000CF80 MOV LR, R3 .text:0000CF84 BEQ loc_CFA0 .text:0000CF88 LDR R3, [R12,#4] .text:0000CF8C BIC R3, R3, #1 .text:0000CF90 ADD R3, R12, R3 .text:0000CF94 LDR R2, [R3,#4] .text:0000CF98 TST R2, #1 .text:0000CF9C BNE loc_D014 .text:0000CFA0 .text:0000CFA0 loc_CFA0 ; CODE XREF: chunk_realloc+44j .text:0000CFA0 LDR R3, [R12,#4] .text:0000CFA4 CMP R12, LR .text:0000CFA8 BIC R1, R3, #3 .text:0000CFAC BNE loc_CFF0 .text:0000CFB0 ADD R2, R1, R8 .text:0000CFB4 ADD R3, R10, #0x10 .text:0000CFB8 CMP R2, R3 .text:0000CFBC BLT loc_D01C .text:0000CFC0 LDR R1, [R11,#var_2C] .text:0000CFC4 ADD R3, R4, R10 .text:0000CFC8 STR R3, [R1,#8] .text:0000CFCC RSB R2, R10, R2 .text:0000CFD0 ORR R2, R2, #1 .text:0000CFD4 STR R2, [R3,#4] .text:0000CFD8 LDR R1, [R4,#4] .text:0000CFDC MOV R0, R4 .text:0000CFE0 AND R1, R1, #1 .text:0000CFE4 ORR R1, R1, R10 .text:0000CFE8 STR R1, [R4,#4] .text:0000CFEC B locret_D438 .text:0000CFF0 ; --------------------------------------------------------------------------- .text:0000CFF0 .text:0000CFF0 loc_CFF0 ; CODE XREF: chunk_realloc+6Cj .text:0000CFF0 ADD R2, R1, R8 .text:0000CFF4 CMP R2, R10 .text:0000CFF8 BLT loc_D01C .text:0000CFFC LDR R1, [R12,#0xC] .text:0000D000 LDR R3, [R12,#8] .text:0000D004 STR R1, [R3,#0xC] .text:0000D008 MOV R8, R2 .text:0000D00C STR R3, [R1,#8] .text:0000D010 B loc_D3BC .text:0000D014 ; --------------------------------------------------------------------------- .text:0000D014 .text:0000D014 loc_D014 ; CODE XREF: chunk_realloc+5Cj .text:0000D014 MOV R12, #0 .text:0000D018 MOV R1, R12 .text:0000D01C .text:0000D01C loc_D01C ; CODE XREF: chunk_realloc+7Cj .text:0000D01C ; chunk_realloc+B8j .text:0000D01C LDR R3, [R9,#4] .text:0000D020 SUB R5, R5, #4 .text:0000D024 TST R3, #1 .text:0000D028 BNE loc_D228 .text:0000D02C LDR R3, [R9] .text:0000D030 RSB R7, R3, R9 .text:0000D034 LDR R2, [R7,#4] .text:0000D038 CMP R12, #0 .text:0000D03C BIC R0, R2, #3 .text:0000D040 BEQ loc_D164 .text:0000D044 CMP R12, LR .text:0000D048 BNE loc_D140 .text:0000D04C ADD R3, R1, R0 .text:0000D050 ADD R3, R3, R8 .text:0000D054 ADD R2, R10, #0x10 .text:0000D058 CMP R3, R2 .text:0000D05C STR R3, [R11,#var_30] .text:0000D060 BLT loc_D164 .text:0000D064 LDR R1, [R7,#0xC] .text:0000D068 LDR R3, [R7,#8] .text:0000D06C STR R1, [R3,#0xC] .text:0000D070 MOV R4, R7 .text:0000D074 STR R3, [R1,#8] .text:0000D078 CMP R5, #0x24 .text:0000D07C BHI loc_D0FC .text:0000D080 MOV R0, R6 .text:0000D084 ADD R1, R4, #8 .text:0000D088 CMP R5, #0x13 .text:0000D08C BLS loc_D0E0 .text:0000D090 LDR R3, [R0],#4 .text:0000D094 STR R3, [R4,#8] .text:0000D098 ADD R1, R4, #0x10 .text:0000D09C CMP R5, #0x1B .text:0000D0A0 LDR R3, [R6,#4] .text:0000D0A4 ADD R0, R0, #4 .text:0000D0A8 STR R3, [R4,#0xC] .text:0000D0AC BLS loc_D0E0 .text:0000D0B0 LDR R3, [R0],#4 .text:0000D0B4 STR R3, [R4,#0x10] .text:0000D0B8 ADD R1, R4, #0x18 .text:0000D0BC LDR R3, [R0],#4 .text:0000D0C0 CMP R5, #0x23 .text:0000D0C4 STR R3, [R4,#0x14] .text:0000D0C8 BLS loc_D0E0 .text:0000D0CC LDR R3, [R0],#4 .text:0000D0D0 STR R3, [R4,#0x18] .text:0000D0D4 LDR R2, [R0],#4 .text:0000D0D8 ADD R1, R4, #0x20 .text:0000D0DC STR R2, [R4,#0x1C] .text:0000D0E0 .text:0000D0E0 loc_D0E0 ; CODE XREF: chunk_realloc+14Cj .text:0000D0E0 ; chunk_realloc+16Cj ... .text:0000D0E0 LDR R3, [R0],#4 .text:0000D0E4 STR R3, [R1],#4 .text:0000D0E8 LDR R2, [R0],#4 .text:0000D0EC STR R2, [R1],#4 .text:0000D0F0 LDR R3, [R0] .text:0000D0F4 STR R3, [R1] .text:0000D0F8 B loc_D10C .text:0000D0FC ; --------------------------------------------------------------------------- .text:0000D0FC .text:0000D0FC loc_D0FC ; CODE XREF: chunk_realloc+13Cj .text:0000D0FC ADD R0, R4, #8 .text:0000D100 MOV R1, R6 .text:0000D104 MOV R2, R5 .text:0000D108 BL memmove .text:0000D10C .text:0000D10C loc_D10C ; CODE XREF: chunk_realloc+1B8j .text:0000D10C LDR R2, [R11,#var_2C] .text:0000D110 ADD R3, R7, R10 .text:0000D114 STR R3, [R2,#8] .text:0000D118 LDR R1, [R11,#var_30] .text:0000D11C RSB R2, R10, R1 .text:0000D120 ORR R2, R2, #1 .text:0000D124 STR R2, [R3,#4] .text:0000D128 LDR R1, [R7,#4] .text:0000D12C MOV R0, R7 .text:0000D130 AND R1, R1, #1 .text:0000D134 ORR R1, R1, R10 .text:0000D138 STR R1, [R7,#4] .text:0000D13C B locret_D438 .text:0000D140 ; --------------------------------------------------------------------------- .text:0000D140 .text:0000D140 loc_D140 ; CODE XREF: chunk_realloc+108j .text:0000D140 ADD R3, R1, R0 .text:0000D144 ADD R2, R3, R8 .text:0000D148 CMP R2, R10 .text:0000D14C BLT loc_D164 .text:0000D150 LDR R1, [R12,#0xC] .text:0000D154 LDR R3, [R12,#8] .text:0000D158 STR R1, [R3,#0xC] .text:0000D15C STR R3, [R1,#8] .text:0000D160 B loc_D178 .text:0000D164 ; --------------------------------------------------------------------------- .text:0000D164 .text:0000D164 loc_D164 ; CODE XREF: chunk_realloc+100j .text:0000D164 ; chunk_realloc+120j ... .text:0000D164 CMP R7, #0 .text:0000D168 BEQ loc_D228 .text:0000D16C ADD R2, R0, R8 .text:0000D170 CMP R2, R10 .text:0000D174 BLT loc_D228 .text:0000D178 .text:0000D178 loc_D178 ; CODE XREF: chunk_realloc+220j .text:0000D178 LDR R1, [R7,#0xC] .text:0000D17C LDR R3, [R7,#8] .text:0000D180 STR R1, [R3,#0xC] .text:0000D184 MOV R4, R7 .text:0000D188 MOV R8, R2 .text:0000D18C STR R3, [R1,#8] .text:0000D190 CMP R5, #0x24 .text:0000D194 BHI loc_D214 .text:0000D198 MOV R0, R6 .text:0000D19C ADD R1, R4, #8 .text:0000D1A0 CMP R5, #0x13 .text:0000D1A4 BLS loc_D1F8 .text:0000D1A8 LDR R3, [R0],#4 .text:0000D1AC STR R3, [R4,#8] .text:0000D1B0 ADD R1, R4, #0x10 .text:0000D1B4 CMP R5, #0x1B .text:0000D1B8 LDR R3, [R6,#4] .text:0000D1BC ADD R0, R0, #4 .text:0000D1C0 STR R3, [R4,#0xC] .text:0000D1C4 BLS loc_D1F8 .text:0000D1C8 LDR R3, [R0],#4 .text:0000D1CC STR R3, [R4,#0x10] .text:0000D1D0 ADD R1, R4, #0x18 .text:0000D1D4 LDR R3, [R0],#4 .text:0000D1D8 CMP R5, #0x23 .text:0000D1DC STR R3, [R4,#0x14] .text:0000D1E0 BLS loc_D1F8 .text:0000D1E4 LDR R3, [R0],#4 .text:0000D1E8 STR R3, [R4,#0x18] .text:0000D1EC LDR R2, [R0],#4 .text:0000D1F0 ADD R1, R4, #0x20 .text:0000D1F4 STR R2, [R4,#0x1C] .text:0000D1F8 .text:0000D1F8 loc_D1F8 ; CODE XREF: chunk_realloc+264j .text:0000D1F8 ; chunk_realloc+284j ... .text:0000D1F8 LDR R3, [R0],#4 .text:0000D1FC STR R3, [R1],#4 .text:0000D200 LDR R2, [R0],#4 .text:0000D204 STR R2, [R1],#4 .text:0000D208 LDR R3, [R0] .text:0000D20C STR R3, [R1] .text:0000D210 B loc_D3BC .text:0000D214 ; --------------------------------------------------------------------------- .text:0000D214 .text:0000D214 loc_D214 ; CODE XREF: chunk_realloc+254j .text:0000D214 ADD R0, R4, #8 .text:0000D218 MOV R1, R6 .text:0000D21C MOV R2, R5 .text:0000D220 BL memmove .text:0000D224 B loc_D3BC .text:0000D228 ; --------------------------------------------------------------------------- .text:0000D228 .text:0000D228 loc_D228 ; CODE XREF: chunk_realloc+E8j .text:0000D228 ; chunk_realloc+228j ... .text:0000D228 LDR R0, [R11,#var_2C] .text:0000D22C MOV R1, R10 .text:0000D230 BL chunk_alloc .text:0000D234 SUBS R4, R0, #0 .text:0000D238 BNE loc_D2F0 .text:0000D23C LDR R3, =main_arena .text:0000D240 LDR R2, [R11,#var_2C] .text:0000D244 CMP R2, R3 .text:0000D248 MOV R7, R3 .text:0000D24C BEQ loc_D294 .text:0000D250 LDR R3, =0 .text:0000D254 CMP R3, #0 .text:0000D258 BEQ loc_D26C .text:0000D25C ADD R0, R7, #0x410 .text:0000D260 MOV LR, PC .text:0000D264 MOV PC, R3 .text:0000D268 B loc_D274 .text:0000D26C ; --------------------------------------------------------------------------- .text:0000D26C .text:0000D26C loc_D26C ; CODE XREF: chunk_realloc+318j .text:0000D26C MOV R3, #1 .text:0000D270 STR R3, [R7,#0x410] .text:0000D274 .text:0000D274 loc_D274 ; CODE XREF: chunk_realloc+328j .text:0000D274 MOV R0, R7 .text:0000D278 MOV R1, R10 .text:0000D27C BL chunk_alloc .text:0000D280 LDR R3, =0 .text:0000D284 MOV R4, R0 .text:0000D288 CMP R3, #0 .text:0000D28C BNE loc_D2D4 .text:0000D290 B loc_D2E4 .text:0000D294 ; --------------------------------------------------------------------------- .text:0000D294 .text:0000D294 loc_D294 ; CODE XREF: chunk_realloc+30Cj .text:0000D294 LDR R3, [R11,#var_2C] .text:0000D298 LDR R0, [R3,#0x408] .text:0000D29C MOV R1, R10 .text:0000D2A0 CMP R0, #0 .text:0000D2A4 MOVEQ R3, #0 .text:0000D2A8 MOV R0, R3 .text:0000D2AC BL arena_get2 .text:0000D2B0 SUBS R7, R0, #0 .text:0000D2B4 BEQ loc_D2E8 .text:0000D2B8 MOV R0, R7 .text:0000D2BC MOV R1, R10 .text:0000D2C0 BL chunk_alloc .text:0000D2C4 LDR R3, =0 .text:0000D2C8 MOV R4, R0 .text:0000D2CC CMP R3, #0 .text:0000D2D0 BEQ loc_D2E4 .text:0000D2D4 .text:0000D2D4 loc_D2D4 ; CODE XREF: chunk_realloc+34Cj .text:0000D2D4 ADD R0, R7, #0x410 .text:0000D2D8 MOV LR, PC .text:0000D2DC MOV PC, R3 .text:0000D2E0 B loc_D2E8 .text:0000D2E4 ; --------------------------------------------------------------------------- .text:0000D2E4 .text:0000D2E4 loc_D2E4 ; CODE XREF: chunk_realloc+350j .text:0000D2E4 ; chunk_realloc+390j .text:0000D2E4 STR R3, [R7,#0x410] .text:0000D2E8 .text:0000D2E8 loc_D2E8 ; CODE XREF: chunk_realloc+374j .text:0000D2E8 ; chunk_realloc+3A0j .text:0000D2E8 CMP R4, #0 .text:0000D2EC BEQ loc_D434 .text:0000D2F0 .text:0000D2F0 loc_D2F0 ; CODE XREF: chunk_realloc+2F8j .text:0000D2F0 LDR R3, [R9,#4] .text:0000D2F4 BIC R3, R3, #1 .text:0000D2F8 ADD R3, R9, R3 .text:0000D2FC CMP R4, R3 .text:0000D300 BNE loc_D318 .text:0000D304 LDR R3, [R4,#4] .text:0000D308 MOV R4, R9 .text:0000D30C BIC R3, R3, #3 .text:0000D310 ADD R8, R8, R3 .text:0000D314 B loc_D3BC .text:0000D318 ; --------------------------------------------------------------------------- .text:0000D318 .text:0000D318 loc_D318 ; CODE XREF: chunk_realloc+3C0j .text:0000D318 CMP R5, #0x24 .text:0000D31C BHI loc_D39C .text:0000D320 MOV R0, R6 .text:0000D324 ADD R1, R4, #8 .text:0000D328 CMP R5, #0x13 .text:0000D32C BLS loc_D380 .text:0000D330 LDR R3, [R0],#4 .text:0000D334 STR R3, [R4,#8] .text:0000D338 ADD R1, R4, #0x10 .text:0000D33C CMP R5, #0x1B .text:0000D340 LDR R3, [R6,#4] .text:0000D344 ADD R0, R0, #4 .text:0000D348 STR R3, [R4,#0xC] .text:0000D34C BLS loc_D380 .text:0000D350 LDR R3, [R0],#4 .text:0000D354 STR R3, [R4,#0x10] .text:0000D358 ADD R1, R4, #0x18 .text:0000D35C LDR R3, [R0],#4 .text:0000D360 CMP R5, #0x23 .text:0000D364 STR R3, [R4,#0x14] .text:0000D368 BLS loc_D380 .text:0000D36C LDR R3, [R0],#4 .text:0000D370 STR R3, [R4,#0x18] .text:0000D374 LDR R2, [R0],#4 .text:0000D378 ADD R1, R4, #0x20 .text:0000D37C STR R2, [R4,#0x1C] .text:0000D380 .text:0000D380 loc_D380 ; CODE XREF: chunk_realloc+3ECj .text:0000D380 ; chunk_realloc+40Cj ... .text:0000D380 LDR R3, [R0],#4 .text:0000D384 STR R3, [R1],#4 .text:0000D388 LDR R2, [R0],#4 .text:0000D38C STR R2, [R1],#4 .text:0000D390 LDR R3, [R0] .text:0000D394 STR R3, [R1] .text:0000D398 B loc_D3AC .text:0000D39C ; --------------------------------------------------------------------------- .text:0000D39C .text:0000D39C loc_D39C ; CODE XREF: chunk_realloc+3DCj .text:0000D39C ADD R0, R4, #8 .text:0000D3A0 MOV R1, R6 .text:0000D3A4 MOV R2, R5 .text:0000D3A8 BL memcpy .text:0000D3AC .text:0000D3AC loc_D3AC ; CODE XREF: chunk_realloc+458j .text:0000D3AC LDR R0, [R11,#var_2C] .text:0000D3B0 MOV R1, R9 .text:0000D3B4 BL chunk_free .text:0000D3B8 B loc_D434 .text:0000D3BC ; --------------------------------------------------------------------------- .text:0000D3BC .text:0000D3BC loc_D3BC ; CODE XREF: chunk_realloc+2Cj .text:0000D3BC ; chunk_realloc+D0j ... .text:0000D3BC RSB R2, R10, R8 .text:0000D3C0 CMP R2, #0xF .text:0000D3C4 BLS loc_D410 .text:0000D3C8 LDR R3, [R4,#4] .text:0000D3CC AND R3, R3, #1 .text:0000D3D0 ORR R3, R3, R10 .text:0000D3D4 STR R3, [R4,#4] .text:0000D3D8 ADD R1, R4, R10 .text:0000D3DC ORR R3, R2, #1 .text:0000D3E0 STR R3, [R1,#4] .text:0000D3E4 MOV R0, #4 .text:0000D3E8 ADD R2, R1, R2 .text:0000D3EC LDR R3, [R2,R0] .text:0000D3F0 ORR R3, R3, #1 .text:0000D3F4 STR R3, [R2,R0] .text:0000D3F8 LDR R0, [R11,#var_2C] .text:0000D3FC BL chunk_free .text:0000D400 B loc_D434 .text:0000D400 ; --------------------------------------------------------------------------- .text:0000D404 off_D404 DCD main_arena ; DATA XREF: chunk_realloc+2FCr .text:0000D408 off_D408 DCD 0 ; DATA XREF: chunk_realloc+310r .text:0000D40C dword_D40C DCD 0 ; DATA XREF: chunk_realloc+340r .text:0000D40C ; chunk_realloc+384r .text:0000D410 ; --------------------------------------------------------------------------- .text:0000D410 .text:0000D410 loc_D410 ; CODE XREF: chunk_realloc+484j .text:0000D410 LDR R3, [R4,#4] .text:0000D414 AND R3, R3, #1 .text:0000D418 ORR R3, R3, R8 .text:0000D41C STR R3, [R4,#4] .text:0000D420 MOV R1, #4 .text:0000D424 ADD R2, R4, R8 .text:0000D428 LDR R3, [R2,R1] .text:0000D42C ORR R3, R3, #1 .text:0000D430 STR R3, [R2,R1] .text:0000D434 .text:0000D434 loc_D434 ; CODE XREF: chunk_realloc+3ACj .text:0000D434 ; chunk_realloc+478j ... .text:0000D434 MOV R0, R4 .text:0000D438 .text:0000D438 locret_D438 ; CODE XREF: chunk_realloc+ACj .text:0000D438 ; chunk_realloc+1FCj .text:0000D438 LDMDB R11, {R4-R11,SP,PC} .text:0000D438 ; End of function chunk_realloc .text:0000D438 .text:0000D43C .text:0000D43C ; =============== S U B R O U T I N E ======================================= .text:0000D43C .text:0000D43C ; Attributes: bp-based frame .text:0000D43C .text:0000D43C WEAK memalign .text:0000D43C memalign ; CODE XREF: memalign_hook_ini+2Cp .text:0000D43C ; valloc+30p ... .text:0000D43C .text:0000D43C var_4 = -4 .text:0000D43C .text:0000D43C MOV R12, SP .text:0000D440 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000D444 LDR R3, =__memalign_hook .text:0000D448 SUB R11, R12, #4 .text:0000D44C LDR R3, [R3] .text:0000D450 MOV R7, R0 .text:0000D454 CMP R3, #0 .text:0000D458 BEQ loc_D46C .text:0000D45C LDR R2, [R11,#var_4] .text:0000D460 MOV LR, PC .text:0000D464 MOV PC, R3 .text:0000D468 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D46C ; --------------------------------------------------------------------------- .text:0000D46C .text:0000D46C loc_D46C ; CODE XREF: memalign+1Cj .text:0000D46C CMP R7, #8 .text:0000D470 BHI loc_D480 .text:0000D474 MOV R0, R1 .text:0000D478 BL malloc .text:0000D47C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D480 ; --------------------------------------------------------------------------- .text:0000D480 .text:0000D480 loc_D480 ; CODE XREF: memalign+34j .text:0000D480 CMP R7, #0xF .text:0000D484 MOVLS R7, #0x10 .text:0000D488 ADD R6, R1, #0xB .text:0000D48C CMP R6, R1 .text:0000D490 MOVCS R3, #0 .text:0000D494 MOVCC R3, #1 .text:0000D498 CMP R6, #0 .text:0000D49C MOVLE R3, #1 .text:0000D4A0 CMP R3, #0 .text:0000D4A4 BEQ loc_D4B8 .text:0000D4A8 BL __errno_location .text:0000D4AC MOV R3, #0xC .text:0000D4B0 STR R3, [R0] .text:0000D4B4 B loc_D654 .text:0000D4B8 ; --------------------------------------------------------------------------- .text:0000D4B8 .text:0000D4B8 loc_D4B8 ; CODE XREF: memalign+68j .text:0000D4B8 CMP R6, #0x16 .text:0000D4BC BIC R6, R6, #7 .text:0000D4C0 MOVLS R6, #0x10 .text:0000D4C4 LDR R3, =__libc_internal_tsd_get .text:0000D4C8 LDR R3, [R3] .text:0000D4CC MOV R5, #0 .text:0000D4D0 CMP R3, R5 .text:0000D4D4 BEQ loc_D4EC .text:0000D4D8 MOV R0, R5 .text:0000D4DC MOV LR, PC .text:0000D4E0 MOV PC, R3 .text:0000D4E4 MOV R5, R0 .text:0000D4E8 B loc_D4F4 .text:0000D4EC ; --------------------------------------------------------------------------- .text:0000D4EC .text:0000D4EC loc_D4EC ; CODE XREF: memalign+98j .text:0000D4EC LDR R3, =__libc_tsd_MALLOC_data .text:0000D4F0 LDR R5, [R3] .text:0000D4F4 .text:0000D4F4 loc_D4F4 ; CODE XREF: memalign+ACj .text:0000D4F4 SUBS R4, R5, #0 .text:0000D4F8 BEQ loc_D534 .text:0000D4FC LDR R3, =0 .text:0000D500 CMP R3, #0 .text:0000D504 BEQ loc_D520 .text:0000D508 ADD R0, R4, #0x410 .text:0000D50C MOV LR, PC .text:0000D510 MOV PC, R3 .text:0000D514 CMP R0, #0 .text:0000D518 BNE loc_D534 .text:0000D51C B loc_D548 .text:0000D520 ; --------------------------------------------------------------------------- .text:0000D520 .text:0000D520 loc_D520 ; CODE XREF: memalign+C8j .text:0000D520 LDR R3, [R4,#0x410] .text:0000D524 CMP R3, #0 .text:0000D528 MOVEQ R3, #1 .text:0000D52C STREQ R3, [R4,#0x410] .text:0000D530 BEQ loc_D548 .text:0000D534 .text:0000D534 loc_D534 ; CODE XREF: memalign+BCj .text:0000D534 ; memalign+DCj .text:0000D534 MOV R0, R5 .text:0000D538 ADD R1, R6, R7 .text:0000D53C ADD R1, R1, #0x10 .text:0000D540 BL arena_get2 .text:0000D544 MOV R4, R0 .text:0000D548 .text:0000D548 loc_D548 ; CODE XREF: memalign+E0j .text:0000D548 ; memalign+F4j .text:0000D548 CMP R4, #0 .text:0000D54C MOV R0, #0 .text:0000D550 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D554 MOV R0, R4 .text:0000D558 MOV R1, R6 .text:0000D55C MOV R2, R7 .text:0000D560 BL chunk_align .text:0000D564 LDR R3, =0 .text:0000D568 MOV R5, R0 .text:0000D56C CMP R3, #0 .text:0000D570 MOV R10, R3 .text:0000D574 BEQ loc_D588 .text:0000D578 ADD R0, R4, #0x410 .text:0000D57C MOV LR, PC .text:0000D580 MOV PC, R10 .text:0000D584 B loc_D58C .text:0000D588 ; --------------------------------------------------------------------------- .text:0000D588 .text:0000D588 loc_D588 ; CODE XREF: memalign+138j .text:0000D588 STR R10, [R4,#0x410] .text:0000D58C .text:0000D58C loc_D58C ; CODE XREF: memalign+148j .text:0000D58C CMP R5, #0 .text:0000D590 BNE loc_D65C .text:0000D594 LDR R3, =main_arena .text:0000D598 CMP R4, R3 .text:0000D59C MOV R8, R3 .text:0000D5A0 BEQ loc_D5FC .text:0000D5A4 LDR R3, =0 .text:0000D5A8 CMP R3, #0 .text:0000D5AC BEQ loc_D5C0 .text:0000D5B0 ADD R0, R8, #0x410 .text:0000D5B4 MOV LR, PC .text:0000D5B8 MOV PC, R3 .text:0000D5BC B loc_D5C8 .text:0000D5C0 ; --------------------------------------------------------------------------- .text:0000D5C0 .text:0000D5C0 loc_D5C0 ; CODE XREF: memalign+170j .text:0000D5C0 MOV R3, #1 .text:0000D5C4 STR R3, [R8,#0x410] .text:0000D5C8 .text:0000D5C8 loc_D5C8 ; CODE XREF: memalign+180j .text:0000D5C8 MOV R0, R8 .text:0000D5CC MOV R1, R6 .text:0000D5D0 MOV R2, R7 .text:0000D5D4 BL chunk_align .text:0000D5D8 MOV R5, R0 .text:0000D5DC CMP R10, #0 .text:0000D5E0 BEQ loc_D5F4 .text:0000D5E4 ADD R0, R8, #0x410 .text:0000D5E8 MOV LR, PC .text:0000D5EC MOV PC, R10 .text:0000D5F0 B loc_D64C .text:0000D5F4 ; --------------------------------------------------------------------------- .text:0000D5F4 .text:0000D5F4 loc_D5F4 ; CODE XREF: memalign+1A4j .text:0000D5F4 STR R10, [R8,#0x410] .text:0000D5F8 B loc_D64C .text:0000D5FC ; --------------------------------------------------------------------------- .text:0000D5FC .text:0000D5FC loc_D5FC ; CODE XREF: memalign+164j .text:0000D5FC LDR R0, [R4,#0x408] .text:0000D600 MOV R1, R6 .text:0000D604 CMP R0, #0 .text:0000D608 MOVNE R0, R4 .text:0000D60C MOVEQ R0, #0 .text:0000D610 BL arena_get2 .text:0000D614 SUBS R4, R0, #0 .text:0000D618 BEQ loc_D64C .text:0000D61C MOV R0, R4 .text:0000D620 MOV R1, R6 .text:0000D624 MOV R2, R7 .text:0000D628 BL chunk_align .text:0000D62C MOV R5, R0 .text:0000D630 CMP R10, #0 .text:0000D634 BEQ loc_D648 .text:0000D638 ADD R0, R4, #0x410 .text:0000D63C MOV LR, PC .text:0000D640 MOV PC, R10 .text:0000D644 B loc_D64C .text:0000D648 ; --------------------------------------------------------------------------- .text:0000D648 .text:0000D648 loc_D648 ; CODE XREF: memalign+1F8j .text:0000D648 STR R10, [R4,#0x410] .text:0000D64C .text:0000D64C loc_D64C ; CODE XREF: memalign+1B4j .text:0000D64C ; memalign+1BCj ... .text:0000D64C CMP R5, #0 .text:0000D650 BNE loc_D65C .text:0000D654 .text:0000D654 loc_D654 ; CODE XREF: memalign+78j .text:0000D654 MOV R0, #0 .text:0000D658 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D65C ; --------------------------------------------------------------------------- .text:0000D65C .text:0000D65C loc_D65C ; CODE XREF: memalign+154j .text:0000D65C ; memalign+214j .text:0000D65C ADD R0, R5, #8 .text:0000D660 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D660 ; End of function memalign .text:0000D660 .text:0000D660 ; --------------------------------------------------------------------------- .text:0000D664 off_D664 DCD __memalign_hook ; DATA XREF: memalign+8r .text:0000D668 off_D668 DCD __libc_internal_tsd_get ; DATA XREF: memalign+88r .text:0000D66C off_D66C DCD __libc_tsd_MALLOC_data ; DATA XREF: memalign:loc_D4ECr .text:0000D670 off_D670 DCD 0 ; DATA XREF: memalign+C0r .text:0000D674 off_D674 DCD 0 ; DATA XREF: memalign+128r .text:0000D678 off_D678 DCD main_arena ; DATA XREF: memalign+158r .text:0000D67C off_D67C DCD 0 ; DATA XREF: memalign+168r .text:0000D680 .text:0000D680 ; =============== S U B R O U T I N E ======================================= .text:0000D680 .text:0000D680 ; Attributes: bp-based frame .text:0000D680 .text:0000D680 chunk_align ; CODE XREF: memalign+124p .text:0000D680 ; memalign+198p ... .text:0000D680 MOV R12, SP .text:0000D684 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000D688 SUB R11, R12, #4 .text:0000D68C MOV R8, R0 .text:0000D690 MOV R7, R1 .text:0000D694 MOV R5, R2 .text:0000D698 ADD R1, R7, R5 .text:0000D69C ADD R1, R1, #0x10 .text:0000D6A0 BL chunk_alloc .text:0000D6A4 SUBS R4, R0, #0 .text:0000D6A8 BEQ loc_D6D0 .text:0000D6AC ADD R6, R4, #8 .text:0000D6B0 MOV R0, R6 .text:0000D6B4 MOV R1, R5 .text:0000D6B8 BL __umodsi3 .text:0000D6BC CMP R0, #0 .text:0000D6C0 BNE loc_D6D8 .text:0000D6C4 LDR R3, [R4,#4] .text:0000D6C8 TST R3, #2 .text:0000D6CC BEQ loc_D770 .text:0000D6D0 .text:0000D6D0 loc_D6D0 ; CODE XREF: chunk_align+28j .text:0000D6D0 MOV R0, R4 .text:0000D6D4 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000D6D8 ; --------------------------------------------------------------------------- .text:0000D6D8 .text:0000D6D8 loc_D6D8 ; CODE XREF: chunk_align+40j .text:0000D6D8 ADD R3, R6, R5 .text:0000D6DC SUB R3, R3, #1 .text:0000D6E0 RSB R2, R5, #0 .text:0000D6E4 AND R3, R3, R2 .text:0000D6E8 SUB R3, R3, #8 .text:0000D6EC RSB R0, R4, R3 .text:0000D6F0 ADD R1, R3, R5 .text:0000D6F4 CMP R0, #0xF .text:0000D6F8 MOVGT R5, R3 .text:0000D6FC MOVLE R5, R1 .text:0000D700 LDR R2, [R4,#4] .text:0000D704 RSB LR, R4, R5 .text:0000D708 TST R2, #2 .text:0000D70C BIC R2, R2, #3 .text:0000D710 RSB R12, LR, R2 .text:0000D714 BEQ loc_D734 .text:0000D718 LDR R2, [R4] .text:0000D71C ORR R3, R12, #2 .text:0000D720 STR R3, [R5,#4] .text:0000D724 MOV R0, R5 .text:0000D728 ADD R2, R2, LR .text:0000D72C STR R2, [R5] .text:0000D730 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000D734 ; --------------------------------------------------------------------------- .text:0000D734 .text:0000D734 loc_D734 ; CODE XREF: chunk_align+94j .text:0000D734 ORR R3, R12, #1 .text:0000D738 STR R3, [R5,#4] .text:0000D73C MOV R0, #4 .text:0000D740 ADD R1, R5, R12 .text:0000D744 LDR R3, [R1,R0] .text:0000D748 ORR R3, R3, #1 .text:0000D74C STR R3, [R1,R0] .text:0000D750 LDR R2, [R4,#4] .text:0000D754 AND R2, R2, #1 .text:0000D758 ORR R2, R2, LR .text:0000D75C STR R2, [R4,#4] .text:0000D760 MOV R0, R8 .text:0000D764 MOV R1, R4 .text:0000D768 MOV R4, R5 .text:0000D76C BL chunk_free .text:0000D770 .text:0000D770 loc_D770 ; CODE XREF: chunk_align+4Cj .text:0000D770 LDR R3, [R4,#4] .text:0000D774 BIC R3, R3, #3 .text:0000D778 RSB R2, R7, R3 .text:0000D77C CMP R2, #0xF .text:0000D780 BLE loc_D7A8 .text:0000D784 ADD R1, R4, R7 .text:0000D788 ORR R2, R2, #1 .text:0000D78C STR R2, [R1,#4] .text:0000D790 LDR R3, [R4,#4] .text:0000D794 AND R3, R3, #1 .text:0000D798 ORR R3, R3, R7 .text:0000D79C STR R3, [R4,#4] .text:0000D7A0 MOV R0, R8 .text:0000D7A4 BL chunk_free .text:0000D7A8 .text:0000D7A8 loc_D7A8 ; CODE XREF: chunk_align+100j .text:0000D7A8 MOV R0, R4 .text:0000D7AC LDMDB R11, {R4-R8,R11,SP,PC} .text:0000D7AC ; End of function chunk_align .text:0000D7AC .text:0000D7B0 .text:0000D7B0 ; =============== S U B R O U T I N E ======================================= .text:0000D7B0 .text:0000D7B0 ; Attributes: bp-based frame .text:0000D7B0 .text:0000D7B0 WEAK valloc .text:0000D7B0 valloc .text:0000D7B0 MOV R12, SP ; Alternative name is '__valloc' .text:0000D7B4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000D7B8 LDR R3, =__libc_malloc_initialized .text:0000D7BC SUB R11, R12, #4 .text:0000D7C0 LDR R2, [R3] .text:0000D7C4 MOV R4, R0 .text:0000D7C8 CMP R2, #0 .text:0000D7CC BGE loc_D7D4 .text:0000D7D0 BL ptmalloc_init .text:0000D7D4 .text:0000D7D4 loc_D7D4 ; CODE XREF: valloc+1Cj .text:0000D7D4 LDR R3, =__libc_pagesize .text:0000D7D8 LDR R0, [R3] .text:0000D7DC MOV R1, R4 .text:0000D7E0 BL memalign .text:0000D7E4 LDMDB R11, {R4,R11,SP,PC} .text:0000D7E4 ; End of function valloc .text:0000D7E4 .text:0000D7E4 ; --------------------------------------------------------------------------- .text:0000D7E8 off_D7E8 DCD __libc_malloc_initialized ; DATA XREF: valloc+8r .text:0000D7EC off_D7EC DCD __libc_pagesize ; DATA XREF: valloc:loc_D7D4r .text:0000D7F0 .text:0000D7F0 ; =============== S U B R O U T I N E ======================================= .text:0000D7F0 .text:0000D7F0 ; Attributes: bp-based frame .text:0000D7F0 .text:0000D7F0 WEAK pvalloc .text:0000D7F0 pvalloc .text:0000D7F0 MOV R12, SP ; Alternative name is '__libc_pvalloc' .text:0000D7F4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000D7F8 LDR R3, =__libc_malloc_initialized .text:0000D7FC SUB R11, R12, #4 .text:0000D800 LDR R2, [R3] .text:0000D804 MOV R4, R0 .text:0000D808 CMP R2, #0 .text:0000D80C BGE loc_D814 .text:0000D810 BL ptmalloc_init .text:0000D814 .text:0000D814 loc_D814 ; CODE XREF: pvalloc+1Cj .text:0000D814 LDR R3, =__libc_pagesize .text:0000D818 LDR R1, [R3] .text:0000D81C MOV R0, R1 .text:0000D820 ADD R3, R4, R1 .text:0000D824 SUB R3, R3, #1 .text:0000D828 RSB R1, R1, #0 .text:0000D82C AND R1, R3, R1 .text:0000D830 BL memalign .text:0000D834 LDMDB R11, {R4,R11,SP,PC} .text:0000D834 ; End of function pvalloc .text:0000D834 .text:0000D834 ; --------------------------------------------------------------------------- .text:0000D838 off_D838 DCD __libc_malloc_initialized ; DATA XREF: pvalloc+8r .text:0000D83C off_D83C DCD __libc_pagesize ; DATA XREF: pvalloc:loc_D814r .text:0000D840 .text:0000D840 ; =============== S U B R O U T I N E ======================================= .text:0000D840 .text:0000D840 ; Attributes: bp-based frame .text:0000D840 .text:0000D840 WEAK calloc .text:0000D840 calloc ; CODE XREF: _dl_new_object+34p .text:0000D840 ; _nl_find_msg+374p ... .text:0000D840 .text:0000D840 var_4 = -4 .text:0000D840 .text:0000D840 MOV R12, SP ; Alternative name is '__libc_calloc' .text:0000D844 STMFD SP!, {R4-R12,LR,PC} .text:0000D848 LDR R3, =__malloc_hook .text:0000D84C LDR R3, [R3] .text:0000D850 SUB R11, R12, #4 .text:0000D854 CMP R3, #0 .text:0000D858 BEQ loc_D8A0 .text:0000D85C MUL R6, R1, R0 .text:0000D860 LDR R1, [R11,#var_4] .text:0000D864 MOV R0, R6 .text:0000D868 MOV LR, PC .text:0000D86C MOV PC, R3 .text:0000D870 SUBS R4, R0, #0 .text:0000D874 BNE loc_D880 .text:0000D878 .text:0000D878 loc_D878 ; CODE XREF: calloc+44j .text:0000D878 ; calloc+5Cj ... .text:0000D878 MOV R0, R4 .text:0000D87C LDMDB R11, {R4-R11,SP,PC} .text:0000D880 ; --------------------------------------------------------------------------- .text:0000D880 .text:0000D880 loc_D880 ; CODE XREF: calloc+34j .text:0000D880 CMP R6, #0 .text:0000D884 BEQ loc_D878 .text:0000D888 MOV R3, #0 .text:0000D88C .text:0000D88C loc_D88C ; CODE XREF: calloc+58j .text:0000D88C SUB R6, R6, #1 .text:0000D890 CMP R6, #0 .text:0000D894 STRB R3, [R4,R6] .text:0000D898 BNE loc_D88C .text:0000D89C B loc_D878 .text:0000D8A0 ; --------------------------------------------------------------------------- .text:0000D8A0 .text:0000D8A0 loc_D8A0 ; CODE XREF: calloc+18j .text:0000D8A0 MUL R0, R1, R0 .text:0000D8A4 ADD R6, R0, #0xB .text:0000D8A8 CMP R6, #0 .text:0000D8AC BLE loc_D8B8 .text:0000D8B0 CMP R6, R0 .text:0000D8B4 BCS loc_D8C8 .text:0000D8B8 .text:0000D8B8 loc_D8B8 ; CODE XREF: calloc+6Cj .text:0000D8B8 BL __errno_location .text:0000D8BC MOV R3, #0xC .text:0000D8C0 STR R3, [R0] .text:0000D8C4 B loc_D95C .text:0000D8C8 ; --------------------------------------------------------------------------- .text:0000D8C8 .text:0000D8C8 loc_D8C8 ; CODE XREF: calloc+74j .text:0000D8C8 CMP R6, #0x16 .text:0000D8CC BIC R6, R6, #7 .text:0000D8D0 MOVLS R6, #0x10 .text:0000D8D4 LDR R3, =__libc_internal_tsd_get .text:0000D8D8 LDR R3, [R3] .text:0000D8DC MOV R5, #0 .text:0000D8E0 CMP R3, R5 .text:0000D8E4 BEQ loc_D8FC .text:0000D8E8 MOV R0, R5 .text:0000D8EC MOV LR, PC .text:0000D8F0 MOV PC, R3 .text:0000D8F4 MOV R5, R0 .text:0000D8F8 B loc_D904 .text:0000D8FC ; --------------------------------------------------------------------------- .text:0000D8FC .text:0000D8FC loc_D8FC ; CODE XREF: calloc+A4j .text:0000D8FC LDR R3, =__libc_tsd_MALLOC_data .text:0000D900 LDR R5, [R3] .text:0000D904 .text:0000D904 loc_D904 ; CODE XREF: calloc+B8j .text:0000D904 SUBS R4, R5, #0 .text:0000D908 BEQ loc_D944 .text:0000D90C LDR R3, =0 .text:0000D910 CMP R3, #0 .text:0000D914 BEQ loc_D930 .text:0000D918 ADD R0, R4, #0x410 .text:0000D91C MOV LR, PC .text:0000D920 MOV PC, R3 .text:0000D924 CMP R0, #0 .text:0000D928 BNE loc_D944 .text:0000D92C B loc_D954 .text:0000D930 ; --------------------------------------------------------------------------- .text:0000D930 .text:0000D930 loc_D930 ; CODE XREF: calloc+D4j .text:0000D930 LDR R3, [R4,#0x410] .text:0000D934 CMP R3, #0 .text:0000D938 MOVEQ R3, #1 .text:0000D93C STREQ R3, [R4,#0x410] .text:0000D940 BEQ loc_D954 .text:0000D944 .text:0000D944 loc_D944 ; CODE XREF: calloc+C8j .text:0000D944 ; calloc+E8j .text:0000D944 MOV R0, R5 .text:0000D948 MOV R1, R6 .text:0000D94C BL arena_get2 .text:0000D950 MOV R4, R0 .text:0000D954 .text:0000D954 loc_D954 ; CODE XREF: calloc+ECj .text:0000D954 ; calloc+100j .text:0000D954 CMP R4, #0 .text:0000D958 BNE loc_D964 .text:0000D95C .text:0000D95C loc_D95C ; CODE XREF: calloc+84j .text:0000D95C ; calloc+268j .text:0000D95C MOV R0, #0 .text:0000D960 LDMDB R11, {R4-R11,SP,PC} .text:0000D964 ; --------------------------------------------------------------------------- .text:0000D964 .text:0000D964 loc_D964 ; CODE XREF: calloc+118j .text:0000D964 LDR R9, [R4,#8] .text:0000D968 MOV R0, R4 .text:0000D96C LDR R3, [R9,#4] .text:0000D970 MOV R1, R6 .text:0000D974 BIC R10, R3, #3 .text:0000D978 BL chunk_alloc .text:0000D97C LDR R3, =0 .text:0000D980 MOV R5, R0 .text:0000D984 CMP R3, #0 .text:0000D988 MOV R8, R3 .text:0000D98C BEQ loc_D9A0 .text:0000D990 ADD R0, R4, #0x410 .text:0000D994 MOV LR, PC .text:0000D998 MOV PC, R8 .text:0000D99C B loc_D9A4 .text:0000D9A0 ; --------------------------------------------------------------------------- .text:0000D9A0 .text:0000D9A0 loc_D9A0 ; CODE XREF: calloc+14Cj .text:0000D9A0 STR R8, [R4,#0x410] .text:0000D9A4 .text:0000D9A4 loc_D9A4 ; CODE XREF: calloc+15Cj .text:0000D9A4 CMP R5, #0 .text:0000D9A8 BNE loc_DAAC .text:0000D9AC LDR R3, =main_arena .text:0000D9B0 CMP R4, R3 .text:0000D9B4 MOV R7, R3 .text:0000D9B8 BEQ loc_DA10 .text:0000D9BC LDR R3, =0 .text:0000D9C0 CMP R3, #0 .text:0000D9C4 BEQ loc_D9D8 .text:0000D9C8 ADD R0, R7, #0x410 .text:0000D9CC MOV LR, PC .text:0000D9D0 MOV PC, R3 .text:0000D9D4 B loc_D9E0 .text:0000D9D8 ; --------------------------------------------------------------------------- .text:0000D9D8 .text:0000D9D8 loc_D9D8 ; CODE XREF: calloc+184j .text:0000D9D8 MOV R3, #1 .text:0000D9DC STR R3, [R7,#0x410] .text:0000D9E0 .text:0000D9E0 loc_D9E0 ; CODE XREF: calloc+194j .text:0000D9E0 MOV R0, R7 .text:0000D9E4 MOV R1, R6 .text:0000D9E8 BL chunk_alloc .text:0000D9EC MOV R5, R0 .text:0000D9F0 CMP R8, #0 .text:0000D9F4 BEQ loc_DA08 .text:0000D9F8 ADD R0, R7, #0x410 .text:0000D9FC MOV LR, PC .text:0000DA00 MOV PC, R8 .text:0000DA04 B loc_DAA4 .text:0000DA08 ; --------------------------------------------------------------------------- .text:0000DA08 .text:0000DA08 loc_DA08 ; CODE XREF: calloc+1B4j .text:0000DA08 STR R8, [R7,#0x410] .text:0000DA0C B loc_DAA4 .text:0000DA10 ; --------------------------------------------------------------------------- .text:0000DA10 .text:0000DA10 loc_DA10 ; CODE XREF: calloc+178j .text:0000DA10 LDR R3, =0 .text:0000DA14 CMP R3, #0 .text:0000DA18 BEQ loc_DA2C .text:0000DA1C ADD R0, R4, #0x410 .text:0000DA20 MOV LR, PC .text:0000DA24 MOV PC, R3 .text:0000DA28 B loc_DA34 .text:0000DA2C ; --------------------------------------------------------------------------- .text:0000DA2C .text:0000DA2C loc_DA2C ; CODE XREF: calloc+1D8j .text:0000DA2C MOV R3, #1 .text:0000DA30 STR R3, [R4,#0x410] .text:0000DA34 .text:0000DA34 loc_DA34 ; CODE XREF: calloc+1E8j .text:0000DA34 LDR R0, [R4,#0x408] .text:0000DA38 MOV R1, R6 .text:0000DA3C CMP R0, #0 .text:0000DA40 MOVNE R0, R4 .text:0000DA44 MOVEQ R0, #0 .text:0000DA48 BL arena_get2 .text:0000DA4C MOV R4, R0 .text:0000DA50 CMP R8, #0 .text:0000DA54 BEQ loc_DA68 .text:0000DA58 LDR R0, =(main_arena+0x410) .text:0000DA5C MOV LR, PC .text:0000DA60 MOV PC, R8 .text:0000DA64 B loc_DA70 .text:0000DA68 ; --------------------------------------------------------------------------- .text:0000DA68 .text:0000DA68 loc_DA68 ; CODE XREF: calloc+214j .text:0000DA68 LDR R3, =(main_arena+0x410) .text:0000DA6C STR R8, [R3] .text:0000DA70 .text:0000DA70 loc_DA70 ; CODE XREF: calloc+224j .text:0000DA70 CMP R4, #0 .text:0000DA74 BEQ loc_DAA4 .text:0000DA78 MOV R0, R4 .text:0000DA7C MOV R1, R6 .text:0000DA80 BL chunk_alloc .text:0000DA84 MOV R5, R0 .text:0000DA88 CMP R8, #0 .text:0000DA8C BEQ loc_DAA0 .text:0000DA90 ADD R0, R4, #0x410 .text:0000DA94 MOV LR, PC .text:0000DA98 MOV PC, R8 .text:0000DA9C B loc_DAA4 .text:0000DAA0 ; --------------------------------------------------------------------------- .text:0000DAA0 .text:0000DAA0 loc_DAA0 ; CODE XREF: calloc+24Cj .text:0000DAA0 STR R8, [R4,#0x410] .text:0000DAA4 .text:0000DAA4 loc_DAA4 ; CODE XREF: calloc+1C4j .text:0000DAA4 ; calloc+1CCj ... .text:0000DAA4 CMP R5, #0 .text:0000DAA8 BEQ loc_D95C .text:0000DAAC .text:0000DAAC loc_DAAC ; CODE XREF: calloc+168j .text:0000DAAC LDR R2, [R5,#4] .text:0000DAB0 ADD R4, R5, #8 .text:0000DAB4 ANDS R1, R2, #2 .text:0000DAB8 BNE loc_D878 .text:0000DABC BIC R2, R2, #3 .text:0000DAC0 CMP R2, R10 .text:0000DAC4 MOVLS R3, #0 .text:0000DAC8 MOVHI R3, #1 .text:0000DACC CMP R5, R9 .text:0000DAD0 MOVNE R3, #0 .text:0000DAD4 CMP R3, #0 .text:0000DAD8 MOVNE R2, R10 .text:0000DADC SUB R2, R2, #4 .text:0000DAE0 CMP R2, #0x24 .text:0000DAE4 BHI loc_DB38 .text:0000DAE8 MOV R0, R4 .text:0000DAEC CMP R2, #0x13 .text:0000DAF0 BLS loc_DB24 .text:0000DAF4 STR R1, [R5,#8] .text:0000DAF8 ADD R0, R5, #0x10 .text:0000DAFC CMP R2, #0x1B .text:0000DB00 STR R1, [R5,#0xC] .text:0000DB04 BLS loc_DB24 .text:0000DB08 STR R1, [R5,#0x10] .text:0000DB0C ADD R0, R5, #0x18 .text:0000DB10 CMP R2, #0x23 .text:0000DB14 STR R1, [R5,#0x14] .text:0000DB18 STRHI R1, [R5,#0x18] .text:0000DB1C ADDHI R0, R5, #0x20 .text:0000DB20 STRHI R1, [R5,#0x1C] .text:0000DB24 .text:0000DB24 loc_DB24 ; CODE XREF: calloc+2B0j .text:0000DB24 ; calloc+2C4j .text:0000DB24 MOV R3, #0 .text:0000DB28 STR R3, [R0],#4 .text:0000DB2C STR R3, [R0],#4 .text:0000DB30 STR R3, [R0] .text:0000DB34 B loc_DB40 .text:0000DB38 ; --------------------------------------------------------------------------- .text:0000DB38 .text:0000DB38 loc_DB38 ; CODE XREF: calloc+2A4j .text:0000DB38 MOV R0, R4 .text:0000DB3C BL memset .text:0000DB40 .text:0000DB40 loc_DB40 ; CODE XREF: calloc+2F4j .text:0000DB40 MOV R0, R4 .text:0000DB44 LDMDB R11, {R4-R11,SP,PC} .text:0000DB44 ; End of function calloc .text:0000DB44 .text:0000DB44 ; --------------------------------------------------------------------------- .text:0000DB48 off_DB48 DCD __malloc_hook ; DATA XREF: calloc+8r .text:0000DB4C off_DB4C DCD __libc_internal_tsd_get ; DATA XREF: calloc+94r .text:0000DB50 off_DB50 DCD __libc_tsd_MALLOC_data ; DATA XREF: calloc:loc_D8FCr .text:0000DB54 off_DB54 DCD 0 ; DATA XREF: calloc+CCr .text:0000DB58 off_DB58 DCD 0 ; DATA XREF: calloc+13Cr .text:0000DB5C off_DB5C DCD main_arena ; DATA XREF: calloc+16Cr .text:0000DB60 off_DB60 DCD 0 ; DATA XREF: calloc+17Cr .text:0000DB60 ; calloc:loc_DA10r .text:0000DB64 off_DB64 DCD main_arena+0x410 ; DATA XREF: calloc+218r .text:0000DB64 ; calloc:loc_DA68r .text:0000DB68 .text:0000DB68 ; =============== S U B R O U T I N E ======================================= .text:0000DB68 .text:0000DB68 ; Attributes: bp-based frame .text:0000DB68 .text:0000DB68 WEAK malloc_trim .text:0000DB68 malloc_trim .text:0000DB68 MOV R12, SP .text:0000DB6C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000DB70 SUB R11, R12, #4 .text:0000DB74 LDR R2, =0 .text:0000DB78 MOV R4, R0 .text:0000DB7C CMP R2, #0 .text:0000DB80 BEQ loc_DB9C .text:0000DB84 LDR R3, =(main_arena+0x410) .text:0000DB88 MOV R0, R3 .text:0000DB8C MOV R5, R3 .text:0000DB90 MOV LR, PC .text:0000DB94 MOV PC, R2 .text:0000DB98 B loc_DBAC .text:0000DB9C ; --------------------------------------------------------------------------- .text:0000DB9C .text:0000DB9C loc_DB9C ; CODE XREF: malloc_trim+18j .text:0000DB9C LDR R2, =(main_arena+0x410) .text:0000DBA0 MOV R3, #1 .text:0000DBA4 MOV R5, R2 .text:0000DBA8 STR R3, [R2] .text:0000DBAC .text:0000DBAC loc_DBAC ; CODE XREF: malloc_trim+30j .text:0000DBAC MOV R0, R4 .text:0000DBB0 BL main_trim .text:0000DBB4 LDR R3, =0 .text:0000DBB8 MOV R4, R0 .text:0000DBBC CMP R3, #0 .text:0000DBC0 BEQ loc_DBD4 .text:0000DBC4 MOV R0, R5 .text:0000DBC8 MOV LR, PC .text:0000DBCC MOV PC, R3 .text:0000DBD0 B loc_DBD8 .text:0000DBD4 ; --------------------------------------------------------------------------- .text:0000DBD4 .text:0000DBD4 loc_DBD4 ; CODE XREF: malloc_trim+58j .text:0000DBD4 STR R3, [R5] .text:0000DBD8 .text:0000DBD8 loc_DBD8 ; CODE XREF: malloc_trim+68j .text:0000DBD8 MOV R0, R4 .text:0000DBDC LDMDB R11, {R4,R5,R11,SP,PC} .text:0000DBDC ; End of function malloc_trim .text:0000DBDC .text:0000DBDC ; --------------------------------------------------------------------------- .text:0000DBE0 off_DBE0 DCD 0 ; DATA XREF: malloc_trim+Cr .text:0000DBE4 off_DBE4 DCD main_arena+0x410 ; DATA XREF: malloc_trim+1Cr .text:0000DBE4 ; malloc_trim:loc_DB9Cr .text:0000DBE8 off_DBE8 DCD 0 ; DATA XREF: malloc_trim+4Cr .text:0000DBEC .text:0000DBEC ; =============== S U B R O U T I N E ======================================= .text:0000DBEC .text:0000DBEC ; Attributes: bp-based frame .text:0000DBEC .text:0000DBEC main_trim ; CODE XREF: chunk_free+8Cp .text:0000DBEC ; malloc_trim+48p .text:0000DBEC MOV R12, SP .text:0000DBF0 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000DBF4 LDR R10, =main_arena .text:0000DBF8 LDR R2, =__libc_pagesize .text:0000DBFC LDR R7, [R10,#(main_arena+8 - 0x6B64C)] .text:0000DC00 LDR R4, [R2] .text:0000DC04 SUB R11, R12, #4 .text:0000DC08 LDR R3, [R7,#4] .text:0000DC0C MOV R1, R4 .text:0000DC10 BIC R6, R3, #3 .text:0000DC14 RSB R3, R0, R6 .text:0000DC18 SUB R0, R4, #0x11 .text:0000DC1C ADD R0, R3, R0 .text:0000DC20 BL __udivsi3 .text:0000DC24 SUB R0, R0, #1 .text:0000DC28 MUL R5, R4, R0 .text:0000DC2C CMP R5, R4 .text:0000DC30 BGE loc_DC3C .text:0000DC34 .text:0000DC34 loc_DC34 ; CODE XREF: main_trim+B4j .text:0000DC34 ; main_trim+D0j .text:0000DC34 MOV R0, #0 .text:0000DC38 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000DC3C ; --------------------------------------------------------------------------- .text:0000DC3C .text:0000DC3C loc_DC3C ; CODE XREF: main_trim+44j .text:0000DC3C LDR R8, =__morecore .text:0000DC40 MOV R0, #0 .text:0000DC44 MOV LR, PC .text:0000DC48 LDR PC, [R8] .text:0000DC4C ADD R3, R7, R6 .text:0000DC50 CMP R0, R3 .text:0000DC54 MOV R0, #0 .text:0000DC58 LDMNEDB R11, {R4-R8,R10,R11,SP,PC} .text:0000DC5C RSB R0, R5, #0 .text:0000DC60 MOV LR, PC .text:0000DC64 LDR PC, [R8] .text:0000DC68 LDR R3, =__after_morecore_hook .text:0000DC6C LDR R3, [R3] .text:0000DC70 MOV R4, R0 .text:0000DC74 CMP R3, #0 .text:0000DC78 BEQ loc_DC84 .text:0000DC7C MOV LR, PC .text:0000DC80 MOV PC, R3 .text:0000DC84 .text:0000DC84 loc_DC84 ; CODE XREF: main_trim+8Cj .text:0000DC84 CMP R4, #0 .text:0000DC88 BNE loc_DCC0 .text:0000DC8C MOV R0, R4 .text:0000DC90 MOV LR, PC .text:0000DC94 LDR PC, [R8] .text:0000DC98 RSB R6, R7, R0 .text:0000DC9C CMP R6, #0xF .text:0000DCA0 BLE loc_DC34 .text:0000DCA4 LDR R3, =sbrk_base .text:0000DCA8 LDR R2, [R3] .text:0000DCAC RSB R2, R2, R0 .text:0000DCB0 STR R2, [R10,#0x40C] .text:0000DCB4 ORR R3, R6, #1 .text:0000DCB8 STR R3, [R7,#4] .text:0000DCBC B loc_DC34 .text:0000DCC0 ; --------------------------------------------------------------------------- .text:0000DCC0 .text:0000DCC0 loc_DCC0 ; CODE XREF: main_trim+9Cj .text:0000DCC0 LDR R2, [R10,#0x40C] .text:0000DCC4 MOV R0, #1 .text:0000DCC8 RSB R2, R5, R2 .text:0000DCCC STR R2, [R10,#0x40C] .text:0000DCD0 RSB R3, R5, R6 .text:0000DCD4 ORR R3, R3, R0 .text:0000DCD8 STR R3, [R7,#4] .text:0000DCDC LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000DCDC ; End of function main_trim .text:0000DCDC .text:0000DCDC ; --------------------------------------------------------------------------- .text:0000DCE0 off_DCE0 DCD main_arena ; DATA XREF: main_trim+8r .text:0000DCE4 off_DCE4 DCD __libc_pagesize ; DATA XREF: main_trim+Cr .text:0000DCE8 off_DCE8 DCD __morecore ; DATA XREF: main_trim:loc_DC3Cr .text:0000DCEC off_DCEC DCD __after_morecore_hook ; DATA XREF: main_trim+7Cr .text:0000DCF0 off_DCF0 DCD sbrk_base ; DATA XREF: main_trim+B8r .text:0000DCF4 .text:0000DCF4 ; =============== S U B R O U T I N E ======================================= .text:0000DCF4 .text:0000DCF4 ; Attributes: bp-based frame .text:0000DCF4 .text:0000DCF4 heap_trim ; CODE XREF: chunk_free+C0p .text:0000DCF4 ; chunk_free+2B4p .text:0000DCF4 .text:0000DCF4 var_34 = -0x34 .text:0000DCF4 var_30 = -0x30 .text:0000DCF4 var_2C = -0x2C .text:0000DCF4 .text:0000DCF4 MOV R12, SP .text:0000DCF8 STMFD SP!, {R4-R12,LR,PC} .text:0000DCFC MOV R7, R0 .text:0000DD00 LDR R3, =__libc_pagesize .text:0000DD04 SUB SP, SP, #0xC .text:0000DD08 LDR R10, [R7] .text:0000DD0C LDR R9, [R3] .text:0000DD10 LDR R8, [R10,#8] .text:0000DD14 SUB R11, R12, #4 .text:0000DD18 STR R1, [R11,#var_2C] .text:0000DD1C LDR R12, =arena_mem .text:0000DD20 ADD R3, R9, #0x10 .text:0000DD24 ADD R3, R1, R3 .text:0000DD28 STR R3, [R11,#var_30] .text:0000DD2C B loc_DD9C .text:0000DD30 ; --------------------------------------------------------------------------- .text:0000DD30 .text:0000DD30 loc_DD30 ; CODE XREF: heap_trim+F4j .text:0000DD30 LDR R3, [R10,#0x40C] .text:0000DD34 LDR R2, [R7,#8] .text:0000DD38 RSB R3, R2, R3 .text:0000DD3C STR R3, [R10,#0x40C] .text:0000DD40 LDR R2, [R12] .text:0000DD44 LDR R3, [R7,#8] .text:0000DD48 RSB R2, R3, R2 .text:0000DD4C STR R2, [R12] .text:0000DD50 STR R12, [R11,#var_34] .text:0000DD54 MOV R0, R7 .text:0000DD58 MOV R1, #0x100000 .text:0000DD5C BL munmap .text:0000DD60 LDR R3, [R4,#4] .text:0000DD64 MOV R7, R5 .text:0000DD68 LDR R12, [R11,#var_34] .text:0000DD6C TST R3, #1 .text:0000DD70 BNE loc_DD8C .text:0000DD74 LDR R3, [R4] .text:0000DD78 RSB R4, R3, R4 .text:0000DD7C LDR R2, [R4,#0xC] .text:0000DD80 LDR R3, [R4,#8] .text:0000DD84 STR R2, [R3,#0xC] .text:0000DD88 STR R3, [R2,#8] .text:0000DD8C .text:0000DD8C loc_DD8C ; CODE XREF: heap_trim+7Cj .text:0000DD8C MOV R8, R4 .text:0000DD90 STR R8, [R10,#8] .text:0000DD94 ORR R3, R6, #1 .text:0000DD98 STR R3, [R8,#4] .text:0000DD9C .text:0000DD9C loc_DD9C ; CODE XREF: heap_trim+38j .text:0000DD9C ADD R3, R7, #0x10 .text:0000DDA0 CMP R8, R3 .text:0000DDA4 BNE loc_DDEC .text:0000DDA8 LDR R5, [R7,#4] .text:0000DDAC LDR R0, [R5,#8] .text:0000DDB0 SUB R3, R0, #8 .text:0000DDB4 LDR R2, [R5,R3] .text:0000DDB8 ADD R4, R5, R3 .text:0000DDBC RSB R4, R2, R4 .text:0000DDC0 LDR R1, [R4,#4] .text:0000DDC4 BIC R3, R1, #3 .text:0000DDC8 ADD R6, R3, #8 .text:0000DDCC TST R1, #1 .text:0000DDD0 LDREQ R3, [R4] .text:0000DDD4 ADDEQ R6, R6, R3 .text:0000DDD8 ADD R3, R6, #0x100000 .text:0000DDDC LDR R2, [R11,#var_30] .text:0000DDE0 RSB R3, R0, R3 .text:0000DDE4 CMP R3, R2 .text:0000DDE8 BCS loc_DD30 .text:0000DDEC .text:0000DDEC loc_DDEC ; CODE XREF: heap_trim+B0j .text:0000DDEC LDR R3, [R8,#4] .text:0000DDF0 MOV R1, R9 .text:0000DDF4 BIC R5, R3, #3 .text:0000DDF8 LDR R3, [R11,#var_2C] .text:0000DDFC SUB R0, R9, #0x11 .text:0000DE00 RSB R2, R3, R5 .text:0000DE04 ADD R0, R2, R0 .text:0000DE08 BL __udivsi3 .text:0000DE0C SUB R0, R0, #1 .text:0000DE10 MUL R4, R9, R0 .text:0000DE14 CMP R4, R9 .text:0000DE18 MOV R0, #0 .text:0000DE1C BLT locret_DE70 .text:0000DE20 MOV R0, R7 .text:0000DE24 RSB R1, R4, #0 .text:0000DE28 BL grow_heap .text:0000DE2C CMP R0, #0 .text:0000DE30 BNE loc_DE6C .text:0000DE34 LDR R3, [R10,#0x40C] .text:0000DE38 RSB R3, R4, R3 .text:0000DE3C STR R3, [R10,#0x40C] .text:0000DE40 LDR R1, =arena_mem .text:0000DE44 LDR R2, [R1] .text:0000DE48 MOV R0, #1 .text:0000DE4C RSB R2, R4, R2 .text:0000DE50 STR R2, [R1] .text:0000DE54 RSB R3, R4, R5 .text:0000DE58 ORR R3, R3, R0 .text:0000DE5C STR R3, [R8,#4] .text:0000DE60 B locret_DE70 .text:0000DE60 ; --------------------------------------------------------------------------- .text:0000DE64 off_DE64 DCD __libc_pagesize ; DATA XREF: heap_trim+Cr .text:0000DE68 off_DE68 DCD arena_mem ; DATA XREF: heap_trim+28r .text:0000DE68 ; heap_trim+14Cr .text:0000DE6C ; --------------------------------------------------------------------------- .text:0000DE6C .text:0000DE6C loc_DE6C ; CODE XREF: heap_trim+13Cj .text:0000DE6C MOV R0, #0 .text:0000DE70 .text:0000DE70 locret_DE70 ; CODE XREF: heap_trim+128j .text:0000DE70 ; heap_trim+16Cj .text:0000DE70 LDMDB R11, {R4-R11,SP,PC} .text:0000DE70 ; End of function heap_trim .text:0000DE70 .text:0000DE74 .text:0000DE74 ; =============== S U B R O U T I N E ======================================= .text:0000DE74 .text:0000DE74 ; Attributes: bp-based frame .text:0000DE74 .text:0000DE74 WEAK malloc_usable_size .text:0000DE74 malloc_usable_size .text:0000DE74 MOV R12, SP ; Alternative name is '__malloc_usable_size' .text:0000DE78 STMFD SP!, {R11,R12,LR,PC} .text:0000DE7C SUB R11, R12, #4 .text:0000DE80 CMP R0, #0 .text:0000DE84 LDMEQDB R11, {R11,SP,PC} .text:0000DE88 SUB R2, R0, #8 .text:0000DE8C LDR R0, [R2,#4] .text:0000DE90 TST R0, #2 .text:0000DE94 BNE loc_DEB8 .text:0000DE98 BIC R3, R0, #1 .text:0000DE9C ADD R3, R2, R3 .text:0000DEA0 LDR R2, [R3,#4] .text:0000DEA4 ANDS R2, R2, #1 .text:0000DEA8 MOVEQ R0, R2 .text:0000DEAC BICNE R0, R0, #3 .text:0000DEB0 SUBNE R0, R0, #4 .text:0000DEB4 LDMDB R11, {R11,SP,PC} .text:0000DEB8 ; --------------------------------------------------------------------------- .text:0000DEB8 .text:0000DEB8 loc_DEB8 ; CODE XREF: malloc_usable_size+20j .text:0000DEB8 BIC R0, R0, #3 .text:0000DEBC SUB R0, R0, #8 .text:0000DEC0 LDMDB R11, {R11,SP,PC} .text:0000DEC0 ; End of function malloc_usable_size .text:0000DEC0 .text:0000DEC4 .text:0000DEC4 ; =============== S U B R O U T I N E ======================================= .text:0000DEC4 .text:0000DEC4 ; Attributes: bp-based frame .text:0000DEC4 .text:0000DEC4 malloc_update_mallinfo ; CODE XREF: malloc_stats+50p .text:0000DEC4 ; mallinfo+5Cp .text:0000DEC4 MOV R12, SP .text:0000DEC8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000DECC SUB R11, R12, #4 .text:0000DED0 MOV R5, R0 .text:0000DED4 LDR R3, =0 .text:0000DED8 MOV R4, R1 .text:0000DEDC CMP R3, #0 .text:0000DEE0 BEQ loc_DEF4 .text:0000DEE4 ADD R0, R5, #0x410 .text:0000DEE8 MOV LR, PC .text:0000DEEC MOV PC, R3 .text:0000DEF0 B loc_DEFC .text:0000DEF4 ; --------------------------------------------------------------------------- .text:0000DEF4 .text:0000DEF4 loc_DEF4 ; CODE XREF: malloc_update_mallinfo+1Cj .text:0000DEF4 MOV R3, #1 .text:0000DEF8 STR R3, [R5,#0x410] .text:0000DEFC .text:0000DEFC loc_DEFC ; CODE XREF: malloc_update_mallinfo+2Cj .text:0000DEFC LDR R7, [R5,#0x40C] .text:0000DF00 LDR R3, [R5,#8] .text:0000DF04 LDR R6, =0 .text:0000DF08 LDR R2, [R3,#4] .text:0000DF0C MOV R3, #1 .text:0000DF10 BIC R12, R2, #3 .text:0000DF14 CMP R12, #0xF .text:0000DF18 MOVLE R0, #0 .text:0000DF1C MOVGT R0, #1 .text:0000DF20 .text:0000DF20 loc_DF20 ; CODE XREF: malloc_update_mallinfo+94j .text:0000DF20 ADD R1, R5, R3,LSL#3 .text:0000DF24 LDR R2, [R1,#0xC] .text:0000DF28 ADD LR, R3, #1 .text:0000DF2C CMP R2, R1 .text:0000DF30 BEQ loc_DF50 .text:0000DF34 .text:0000DF34 loc_DF34 ; CODE XREF: malloc_update_mallinfo+88j .text:0000DF34 LDR R3, [R2,#4] .text:0000DF38 ADD R0, R0, #1 .text:0000DF3C LDR R2, [R2,#0xC] .text:0000DF40 BIC R3, R3, #3 .text:0000DF44 ADD R12, R12, R3 .text:0000DF48 CMP R2, R1 .text:0000DF4C BNE loc_DF34 .text:0000DF50 .text:0000DF50 loc_DF50 ; CODE XREF: malloc_update_mallinfo+6Cj .text:0000DF50 MOV R3, LR .text:0000DF54 CMP R3, #0x7F .text:0000DF58 BLE loc_DF20 .text:0000DF5C STR R7, [R4] .text:0000DF60 STR R0, [R4,#4] .text:0000DF64 MOV R3, #0 .text:0000DF68 STR R3, [R4,#0x18] .text:0000DF6C STR R3, [R4,#0x14] .text:0000DF70 STR R3, [R4,#8] .text:0000DF74 LDR R2, [R5,#0x40C] .text:0000DF78 STR R12, [R4,#0x20] .text:0000DF7C RSB R2, R12, R2 .text:0000DF80 STR R2, [R4,#0x1C] .text:0000DF84 LDR R3, =n_mmaps .text:0000DF88 LDR R2, [R3] .text:0000DF8C STR R2, [R4,#0xC] .text:0000DF90 LDR R3, =mmapped_mem .text:0000DF94 LDR R2, [R3] .text:0000DF98 STR R2, [R4,#0x10] .text:0000DF9C LDR R1, [R5,#8] .text:0000DFA0 LDR R3, [R1,#4] .text:0000DFA4 CMP R6, #0 .text:0000DFA8 BIC R3, R3, #3 .text:0000DFAC STR R3, [R4,#0x24] .text:0000DFB0 BEQ loc_DFC4 .text:0000DFB4 ADD R0, R5, #0x410 .text:0000DFB8 MOV LR, PC .text:0000DFBC MOV PC, R6 .text:0000DFC0 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000DFC4 ; --------------------------------------------------------------------------- .text:0000DFC4 .text:0000DFC4 loc_DFC4 ; CODE XREF: malloc_update_mallinfo+ECj .text:0000DFC4 STR R6, [R5,#0x410] .text:0000DFC8 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000DFC8 ; End of function malloc_update_mallinfo .text:0000DFC8 .text:0000DFC8 ; --------------------------------------------------------------------------- .text:0000DFCC off_DFCC DCD 0 ; DATA XREF: malloc_update_mallinfo+10r .text:0000DFD0 dword_DFD0 DCD 0 ; DATA XREF: malloc_update_mallinfo+40r .text:0000DFD4 off_DFD4 DCD n_mmaps ; DATA XREF: malloc_update_mallinfo+C0r .text:0000DFD8 off_DFD8 DCD mmapped_mem ; DATA XREF: malloc_update_mallinfo+CCr .text:0000DFDC .text:0000DFDC ; =============== S U B R O U T I N E ======================================= .text:0000DFDC .text:0000DFDC ; Attributes: bp-based frame .text:0000DFDC .text:0000DFDC WEAK malloc_stats .text:0000DFDC malloc_stats .text:0000DFDC .text:0000DFDC var_50 = -0x50 .text:0000DFDC var_34 = -0x34 .text:0000DFDC .text:0000DFDC MOV R12, SP ; Alternative name is '__malloc_stats' .text:0000DFE0 STMFD SP!, {R4-R12,LR,PC} .text:0000DFE4 SUB R11, R12, #4 .text:0000DFE8 LDR R3, =mmapped_mem .text:0000DFEC SUB SP, SP, #0x28 .text:0000DFF0 LDR R7, [R3] .text:0000DFF4 MOV R10, #0 .text:0000DFF8 LDR R4, =main_arena .text:0000DFFC MOV R8, R7 .text:0000E000 LDR R5, =stderr .text:0000E004 LDR R9, =aSystemBytes10u ; "system bytes = %10u\n" .text:0000E008 SUB R6, R11, #-var_50 .text:0000E00C B loc_E024 .text:0000E00C ; --------------------------------------------------------------------------- .text:0000E010 off_E010 DCD mmapped_mem ; DATA XREF: malloc_stats+Cr .text:0000E014 off_E014 DCD main_arena ; DATA XREF: malloc_stats+1Cr .text:0000E018 off_E018 DCD stderr ; DATA XREF: malloc_stats+24r .text:0000E01C off_E01C DCD aSystemBytes10u ; DATA XREF: malloc_stats+28r .text:0000E01C ; "system bytes = %10u\n" .text:0000E020 ; --------------------------------------------------------------------------- .text:0000E020 .text:0000E020 loc_E020 ; CODE XREF: malloc_stats+A0j .text:0000E020 ADD R10, R10, #1 .text:0000E024 .text:0000E024 loc_E024 ; CODE XREF: malloc_stats+30j .text:0000E024 MOV R0, R4 .text:0000E028 MOV R1, R6 .text:0000E02C BL malloc_update_mallinfo .text:0000E030 LDR R1, =aArenaD ; "Arena %d:\n" .text:0000E034 LDR R0, [R5] .text:0000E038 MOV R2, R10 .text:0000E03C BL fprintf .text:0000E040 LDR R0, [R5] .text:0000E044 LDR R2, [R11,#var_50] .text:0000E048 MOV R1, R9 .text:0000E04C BL fprintf .text:0000E050 LDR R0, [R5] .text:0000E054 LDR R2, [R11,#var_34] .text:0000E058 LDR R1, =aInUseBytes10u ; "in use bytes = %10u\n" .text:0000E05C BL fprintf .text:0000E060 LDR R4, [R4,#(main_arena+0x408 - 0x6B64C)] .text:0000E064 LDR R3, [R11,#var_50] .text:0000E068 LDR R2, [R11,#var_34] .text:0000E06C ADD R8, R8, R3 .text:0000E070 LDR R3, =main_arena .text:0000E074 ADD R7, R7, R2 .text:0000E078 CMP R4, R3 .text:0000E07C BNE loc_E020 .text:0000E080 LDR R0, [R5] .text:0000E084 LDR R1, =aTotalIncl_Mmap ; "Total (incl. mmap):\n" .text:0000E088 BL fprintf .text:0000E08C MOV R1, R9 .text:0000E090 LDR R0, [R5] .text:0000E094 MOV R2, R8 .text:0000E098 BL fprintf .text:0000E09C LDR R1, =aInUseBytes10u ; "in use bytes = %10u\n" .text:0000E0A0 LDR R0, [R5] .text:0000E0A4 MOV R2, R7 .text:0000E0A8 BL fprintf .text:0000E0AC LDR R0, [R5] .text:0000E0B0 LDR R3, =max_n_mmaps .text:0000E0B4 LDR R1, =aMaxMmapRegions ; "max mmap regions = %10u\n" .text:0000E0B8 LDR R2, [R3] .text:0000E0BC BL fprintf .text:0000E0C0 LDR R0, [R5] .text:0000E0C4 LDR R3, =max_mmapped_mem .text:0000E0C8 LDR R1, =aMaxMmapBytes10 ; "max mmap bytes = %10lu\n" .text:0000E0CC LDR R2, [R3] .text:0000E0D0 BL fprintf .text:0000E0D4 B locret_E0F8 .text:0000E0D4 ; --------------------------------------------------------------------------- .text:0000E0D8 off_E0D8 DCD aArenaD ; DATA XREF: malloc_stats+54r .text:0000E0D8 ; "Arena %d:\n" .text:0000E0DC off_E0DC DCD aInUseBytes10u ; DATA XREF: malloc_stats+7Cr .text:0000E0DC ; malloc_stats+C0r .text:0000E0DC ; "in use bytes = %10u\n" .text:0000E0E0 off_E0E0 DCD main_arena ; DATA XREF: malloc_stats+94r .text:0000E0E4 off_E0E4 DCD aTotalIncl_Mmap ; DATA XREF: malloc_stats+A8r .text:0000E0E4 ; "Total (incl. mmap):\n" .text:0000E0E8 off_E0E8 DCD max_n_mmaps ; DATA XREF: malloc_stats+D4r .text:0000E0EC off_E0EC DCD aMaxMmapRegions ; DATA XREF: malloc_stats+D8r .text:0000E0EC ; "max mmap regions = %10u\n" .text:0000E0F0 off_E0F0 DCD max_mmapped_mem ; DATA XREF: malloc_stats+E8r .text:0000E0F4 off_E0F4 DCD aMaxMmapBytes10 ; DATA XREF: malloc_stats+ECr .text:0000E0F4 ; "max mmap bytes = %10lu\n" .text:0000E0F8 ; --------------------------------------------------------------------------- .text:0000E0F8 .text:0000E0F8 locret_E0F8 ; CODE XREF: malloc_stats+F8j .text:0000E0F8 LDMDB R11, {R4-R11,SP,PC} .text:0000E0F8 ; End of function malloc_stats .text:0000E0F8 .text:0000E0FC .text:0000E0FC ; =============== S U B R O U T I N E ======================================= .text:0000E0FC .text:0000E0FC ; Attributes: bp-based frame .text:0000E0FC .text:0000E0FC WEAK mallinfo .text:0000E0FC mallinfo .text:0000E0FC .text:0000E0FC var_3C = -0x3C .text:0000E0FC .text:0000E0FC MOV R12, SP ; Alternative name is '__libc_mallinfo' .text:0000E100 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000E104 SUB R11, R12, #4 .text:0000E108 MOV R2, #0 .text:0000E10C LDR R3, =__libc_internal_tsd_get .text:0000E110 SUB SP, SP, #0x28 .text:0000E114 LDR R3, [R3] .text:0000E118 MOV R5, R0 .text:0000E11C CMP R3, R2 .text:0000E120 BEQ loc_E13C .text:0000E124 MOV R0, R2 .text:0000E128 MOV LR, PC .text:0000E12C MOV PC, R3 .text:0000E130 MOV R2, R0 .text:0000E134 B loc_E144 .text:0000E134 ; --------------------------------------------------------------------------- .text:0000E138 off_E138 DCD __libc_internal_tsd_get ; DATA XREF: mallinfo+10r .text:0000E13C ; --------------------------------------------------------------------------- .text:0000E13C .text:0000E13C loc_E13C ; CODE XREF: mallinfo+24j .text:0000E13C LDR R3, =__libc_tsd_MALLOC_data .text:0000E140 LDR R2, [R3] .text:0000E144 .text:0000E144 loc_E144 ; CODE XREF: mallinfo+38j .text:0000E144 SUB R4, R11, #-var_3C .text:0000E148 MOV R1, R4 .text:0000E14C LDR R0, =main_arena .text:0000E150 CMP R2, #0 .text:0000E154 MOVNE R0, R2 .text:0000E158 BL malloc_update_mallinfo .text:0000E15C LDMIA R4!, {R0-R3} .text:0000E160 MOV R12, R5 .text:0000E164 STMIA R12!, {R0-R3} .text:0000E168 LDMIA R4!, {R0-R3} .text:0000E16C STMIA R12!, {R0-R3} .text:0000E170 LDMIA R4, {R0,R1} .text:0000E174 STMIA R12, {R0,R1} .text:0000E178 MOV R0, R5 .text:0000E17C B locret_E188 .text:0000E17C ; --------------------------------------------------------------------------- .text:0000E180 off_E180 DCD __libc_tsd_MALLOC_data ; DATA XREF: mallinfo:loc_E13Cr .text:0000E184 off_E184 DCD main_arena ; DATA XREF: mallinfo+50r .text:0000E188 ; --------------------------------------------------------------------------- .text:0000E188 .text:0000E188 locret_E188 ; CODE XREF: mallinfo+80j .text:0000E188 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000E188 ; End of function mallinfo .text:0000E188 .text:0000E18C .text:0000E18C ; =============== S U B R O U T I N E ======================================= .text:0000E18C .text:0000E18C ; Attributes: bp-based frame .text:0000E18C .text:0000E18C WEAK mallopt .text:0000E18C mallopt ; CODE XREF: ptmalloc_init+170p .text:0000E18C ; ptmalloc_init+19Cp ... .text:0000E18C MOV R12, SP ; Alternative name is '__mallopt' .text:0000E190 STMFD SP!, {R11,R12,LR,PC} .text:0000E194 SUB R11, R12, #4 .text:0000E198 ADD R0, R0, #5 .text:0000E19C CMP R0, #4 ; switch 5 cases .text:0000E1A0 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:0000E1A4 B loc_E1F8 ; jumptable 0000E1A0 default case .text:0000E1A4 ; --------------------------------------------------------------------------- .text:0000E1A8 DCD loc_E1F0 ; jump table for switch statement .text:0000E1A8 DCD loc_E1E8 .text:0000E1A8 DCD loc_E1D4 .text:0000E1A8 DCD loc_E1CC .text:0000E1A8 DCD loc_E1BC .text:0000E1BC ; --------------------------------------------------------------------------- .text:0000E1BC .text:0000E1BC loc_E1BC ; CODE XREF: mallopt+14j .text:0000E1BC ; DATA XREF: mallopt+1Co .text:0000E1BC LDR R3, =trim_threshold ; jumptable 0000E1A0 case 4 .text:0000E1C0 .text:0000E1C0 loc_E1C0 ; CODE XREF: mallopt+44j .text:0000E1C0 ; mallopt+58j ... .text:0000E1C0 MOV R0, #1 .text:0000E1C4 STR R1, [R3] .text:0000E1C8 LDMDB R11, {R11,SP,PC} .text:0000E1CC ; --------------------------------------------------------------------------- .text:0000E1CC .text:0000E1CC loc_E1CC ; CODE XREF: mallopt+14j .text:0000E1CC ; DATA XREF: mallopt+1Co .text:0000E1CC LDR R3, =top_pad ; jumptable 0000E1A0 case 3 .text:0000E1D0 B loc_E1C0 .text:0000E1D4 ; --------------------------------------------------------------------------- .text:0000E1D4 .text:0000E1D4 loc_E1D4 ; CODE XREF: mallopt+14j .text:0000E1D4 ; DATA XREF: mallopt+1Co .text:0000E1D4 CMP R1, #0x80000 ; jumptable 0000E1A0 case 2 .text:0000E1D8 MOVHI R0, #0 .text:0000E1DC LDMHIDB R11, {R11,SP,PC} .text:0000E1E0 LDR R3, =mmap_threshold .text:0000E1E4 B loc_E1C0 .text:0000E1E8 ; --------------------------------------------------------------------------- .text:0000E1E8 .text:0000E1E8 loc_E1E8 ; CODE XREF: mallopt+14j .text:0000E1E8 ; DATA XREF: mallopt+1Co .text:0000E1E8 LDR R3, =n_mmaps_max ; jumptable 0000E1A0 case 1 .text:0000E1EC B loc_E1C0 .text:0000E1F0 ; --------------------------------------------------------------------------- .text:0000E1F0 .text:0000E1F0 loc_E1F0 ; CODE XREF: mallopt+14j .text:0000E1F0 ; DATA XREF: mallopt+1Co .text:0000E1F0 LDR R3, =check_action ; jumptable 0000E1A0 case 0 .text:0000E1F4 B loc_E1C0 .text:0000E1F8 ; --------------------------------------------------------------------------- .text:0000E1F8 .text:0000E1F8 loc_E1F8 ; CODE XREF: mallopt+18j .text:0000E1F8 MOV R0, #0 ; jumptable 0000E1A0 default case .text:0000E1FC LDMDB R11, {R11,SP,PC} .text:0000E1FC ; End of function mallopt .text:0000E1FC .text:0000E1FC ; --------------------------------------------------------------------------- .text:0000E200 off_E200 DCD trim_threshold ; DATA XREF: mallopt:loc_E1BCr .text:0000E204 off_E204 DCD top_pad ; DATA XREF: mallopt:loc_E1CCr .text:0000E208 off_E208 DCD mmap_threshold ; DATA XREF: mallopt+54r .text:0000E20C off_E20C DCD n_mmaps_max ; DATA XREF: mallopt:loc_E1E8r .text:0000E210 off_E210 DCD check_action ; DATA XREF: mallopt:loc_E1F0r .text:0000E214 .text:0000E214 ; =============== S U B R O U T I N E ======================================= .text:0000E214 .text:0000E214 ; Attributes: bp-based frame .text:0000E214 .text:0000E214 WEAK malloc_get_state .text:0000E214 malloc_get_state .text:0000E214 MOV R12, SP ; Alternative name is '__malloc_get_state' .text:0000E218 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000E21C SUB R11, R12, #4 .text:0000E220 MOV R0, 0x448 .text:0000E228 BL malloc .text:0000E22C SUBS R4, R0, #0 .text:0000E230 MOVEQ R0, R4 .text:0000E234 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000E238 LDR R3, =0 .text:0000E23C CMP R3, #0 .text:0000E240 BEQ loc_E254 .text:0000E244 LDR R0, =(main_arena+0x410) .text:0000E248 MOV LR, PC .text:0000E24C MOV PC, R3 .text:0000E250 B loc_E260 .text:0000E254 ; --------------------------------------------------------------------------- .text:0000E254 .text:0000E254 loc_E254 ; CODE XREF: malloc_get_state+2Cj .text:0000E254 LDR R2, =(main_arena+0x410) .text:0000E258 MOV R3, #1 .text:0000E25C STR R3, [R2] .text:0000E260 .text:0000E260 loc_E260 ; CODE XREF: malloc_get_state+3Cj .text:0000E260 MOV R3, #1 .text:0000E264 STR R3, [R4,#4] .text:0000E268 LDR R2, =0x444C4541 .text:0000E26C STR R2, [R4] .text:0000E270 LDR R1, =main_arena .text:0000E274 LDR R3, [R1] .text:0000E278 STR R3, [R4,#8] .text:0000E27C MOV LR, #0 .text:0000E280 MOV R0, LR .text:0000E284 LDR R6, =0 .text:0000E288 ADD R12, R4, #0x14 .text:0000E28C LDR R3, [R1,#(main_arena+4 - 0x6B64C)] .text:0000E290 MOV R5, R1 .text:0000E294 STR R3, [R4,#0xC] .text:0000E298 .text:0000E298 loc_E298 ; CODE XREF: malloc_get_state+B0j .text:0000E298 ADD R3, R1, LR,LSL#3 .text:0000E29C LDR R2, [R3,#8] .text:0000E2A0 CMP R2, R3 .text:0000E2A4 STREQ R0, [R12] .text:0000E2A8 STREQ R0, [R12,#-4] .text:0000E2AC STRNE R2, [R12,#-4] .text:0000E2B0 LDRNE R3, [R3,#0xC] .text:0000E2B4 STRNE R3, [R12] .text:0000E2B8 ADD R12, R12, #8 .text:0000E2BC ADD LR, LR, #1 .text:0000E2C0 CMP LR, #0x7F .text:0000E2C4 BLE loc_E298 .text:0000E2C8 LDR R3, =sbrk_base .text:0000E2CC LDR R2, [R3] .text:0000E2D0 STR R2, [R4,#0x410] .text:0000E2D4 LDR R3, [R5,#0x40C] .text:0000E2D8 STR R3, [R4,#0x414] .text:0000E2DC LDR R2, =trim_threshold .text:0000E2E0 LDR R3, [R2] .text:0000E2E4 STR R3, [R4,#0x418] .text:0000E2E8 LDR R2, =top_pad .text:0000E2EC LDR R3, [R2] .text:0000E2F0 STR R3, [R4,#0x41C] .text:0000E2F4 LDR R2, =n_mmaps_max .text:0000E2F8 LDR R3, [R2] .text:0000E2FC STR R3, [R4,#0x420] .text:0000E300 LDR R2, =mmap_threshold .text:0000E304 LDR R3, [R2] .text:0000E308 STR R3, [R4,#0x424] .text:0000E30C LDR R2, =check_action .text:0000E310 LDR R3, [R2] .text:0000E314 STR R3, [R4,#0x428] .text:0000E318 LDR R2, =max_sbrked_mem .text:0000E31C LDR R1, [R2] .text:0000E320 MOV R3, #0 .text:0000E324 STR R3, [R4,#0x430] .text:0000E328 STR R1, [R4,#0x42C] .text:0000E32C LDR R3, =n_mmaps .text:0000E330 LDR R2, [R3] .text:0000E334 STR R2, [R4,#0x434] .text:0000E338 LDR R3, =max_n_mmaps .text:0000E33C LDR R2, [R3] .text:0000E340 STR R2, [R4,#0x438] .text:0000E344 LDR R3, =mmapped_mem .text:0000E348 LDR R2, [R3] .text:0000E34C STR R2, [R4,#0x43C] .text:0000E350 LDR R3, =max_mmapped_mem .text:0000E354 LDR R2, [R3] .text:0000E358 STR R2, [R4,#0x440] .text:0000E35C LDR R3, =using_malloc_checking .text:0000E360 LDR R2, [R3] .text:0000E364 CMP R6, #0 .text:0000E368 STR R2, [R4,#0x444] .text:0000E36C BEQ loc_E380 .text:0000E370 ADD R0, R5, #0x410 .text:0000E374 MOV LR, PC .text:0000E378 MOV PC, R6 .text:0000E37C B loc_E384 .text:0000E380 ; --------------------------------------------------------------------------- .text:0000E380 .text:0000E380 loc_E380 ; CODE XREF: malloc_get_state+158j .text:0000E380 STR R6, [R5,#0x410] .text:0000E384 .text:0000E384 loc_E384 ; CODE XREF: malloc_get_state+168j .text:0000E384 MOV R0, R4 .text:0000E388 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000E388 ; End of function malloc_get_state .text:0000E388 .text:0000E388 ; --------------------------------------------------------------------------- .text:0000E38C off_E38C DCD 0 ; DATA XREF: malloc_get_state+24r .text:0000E390 off_E390 DCD main_arena+0x410 ; DATA XREF: malloc_get_state+30r .text:0000E390 ; malloc_get_state:loc_E254r .text:0000E394 dword_E394 DCD 0x444C4541 ; DATA XREF: malloc_get_state+54r .text:0000E398 off_E398 DCD main_arena ; DATA XREF: malloc_get_state+5Cr .text:0000E39C off_E39C DCD 0 ; DATA XREF: malloc_get_state+70r .text:0000E3A0 off_E3A0 DCD sbrk_base ; DATA XREF: malloc_get_state+B4r .text:0000E3A4 off_E3A4 DCD trim_threshold ; DATA XREF: malloc_get_state+C8r .text:0000E3A8 off_E3A8 DCD top_pad ; DATA XREF: malloc_get_state+D4r .text:0000E3AC off_E3AC DCD n_mmaps_max ; DATA XREF: malloc_get_state+E0r .text:0000E3B0 off_E3B0 DCD mmap_threshold ; DATA XREF: malloc_get_state+ECr .text:0000E3B4 off_E3B4 DCD check_action ; DATA XREF: malloc_get_state+F8r .text:0000E3B8 off_E3B8 DCD max_sbrked_mem ; DATA XREF: malloc_get_state+104r .text:0000E3BC off_E3BC DCD n_mmaps ; DATA XREF: malloc_get_state+118r .text:0000E3C0 off_E3C0 DCD max_n_mmaps ; DATA XREF: malloc_get_state+124r .text:0000E3C4 off_E3C4 DCD mmapped_mem ; DATA XREF: malloc_get_state+130r .text:0000E3C8 off_E3C8 DCD max_mmapped_mem ; DATA XREF: malloc_get_state+13Cr .text:0000E3CC off_E3CC DCD using_malloc_checking ; DATA XREF: malloc_get_state+148r .text:0000E3D0 .text:0000E3D0 ; =============== S U B R O U T I N E ======================================= .text:0000E3D0 .text:0000E3D0 ; Attributes: bp-based frame .text:0000E3D0 .text:0000E3D0 WEAK malloc_set_state .text:0000E3D0 malloc_set_state .text:0000E3D0 MOV R12, SP ; Alternative name is '__malloc_set_state' .text:0000E3D4 STMFD SP!, {R4-R12,LR,PC} .text:0000E3D8 LDR R4, =disallow_malloc_check .text:0000E3DC MOV R6, #1 .text:0000E3E0 STR R6, [R4] .text:0000E3E4 SUB R11, R12, #4 .text:0000E3E8 MOV R5, R0 .text:0000E3EC BL ptmalloc_init .text:0000E3F0 LDR R2, [R5] .text:0000E3F4 LDR R3, =0x444C4541 .text:0000E3F8 CMP R2, R3 .text:0000E3FC MOVNE R0, 0xFFFFFFFF .text:0000E400 LDMNEDB R11, {R4-R11,SP,PC} .text:0000E404 LDR R3, [R5,#4] .text:0000E408 BIC R3, R3, #0xFF .text:0000E40C CMP R3, #0 .text:0000E410 MOVGT R0, 0xFFFFFFFE .text:0000E414 LDMGTDB R11, {R4-R11,SP,PC} .text:0000E418 LDR R2, =0 .text:0000E41C CMP R2, #0 .text:0000E420 BEQ loc_E43C .text:0000E424 LDR R3, =(main_arena+0x410) .text:0000E428 MOV R0, R3 .text:0000E42C MOV R9, R3 .text:0000E430 MOV LR, PC .text:0000E434 MOV PC, R2 .text:0000E438 B loc_E448 .text:0000E43C ; --------------------------------------------------------------------------- .text:0000E43C .text:0000E43C loc_E43C ; CODE XREF: malloc_set_state+50j .text:0000E43C LDR R3, =(main_arena+0x410) .text:0000E440 MOV R9, R3 .text:0000E444 STR R6, [R3] .text:0000E448 .text:0000E448 loc_E448 ; CODE XREF: malloc_set_state+68j .text:0000E448 LDR R3, =main_arena .text:0000E44C LDR R2, [R5,#8] .text:0000E450 MOV R0, #0 .text:0000E454 STR R2, [R3] .text:0000E458 ADD LR, R5, #8 .text:0000E45C MOV R6, LR .text:0000E460 MOV R4, #0xC .text:0000E464 MOV R12, #8 .text:0000E468 LDR R10, =0 .text:0000E46C MOV R8, R3 .text:0000E470 LDR R2, [R5,#0xC] .text:0000E474 MOV R7, R8 .text:0000E478 STR R2, [R3,#(main_arena+4 - 0x6B64C)] .text:0000E47C .text:0000E47C loc_E47C ; CODE XREF: malloc_set_state+F0j .text:0000E47C LDR R1, [R6,R12] .text:0000E480 ADD R2, R7, R0,LSL#3 .text:0000E484 CMP R1, #0 .text:0000E488 STREQ R2, [R2,#0xC] .text:0000E48C STREQ R2, [R2,#8] .text:0000E490 BEQ loc_E4B0 .text:0000E494 STR R1, [R2,#8] .text:0000E498 LDR R3, [LR,R4] .text:0000E49C CMP R0, #0 .text:0000E4A0 STR R3, [R2,#0xC] .text:0000E4A4 STRGT R2, [R1,#0xC] .text:0000E4A8 LDRGT R3, [R2,#0xC] .text:0000E4AC STRGT R2, [R3,#8] .text:0000E4B0 .text:0000E4B0 loc_E4B0 ; CODE XREF: malloc_set_state+C0j .text:0000E4B0 ADD R4, R4, #8 .text:0000E4B4 ADD R12, R12, #8 .text:0000E4B8 ADD R0, R0, #1 .text:0000E4BC CMP R0, #0x7F .text:0000E4C0 BLE loc_E47C .text:0000E4C4 LDR R1, [R5,#0x410] .text:0000E4C8 LDR R3, =sbrk_base .text:0000E4CC STR R1, [R3] .text:0000E4D0 LDR R2, [R5,#0x414] .text:0000E4D4 STR R2, [R8,#0x40C] .text:0000E4D8 LDR R3, =trim_threshold .text:0000E4DC LDR R1, [R5,#0x418] .text:0000E4E0 STR R1, [R3] .text:0000E4E4 LDR R3, =top_pad .text:0000E4E8 LDR R2, [R5,#0x41C] .text:0000E4EC STR R2, [R3] .text:0000E4F0 LDR R3, =n_mmaps_max .text:0000E4F4 LDR R1, [R5,#0x420] .text:0000E4F8 STR R1, [R3] .text:0000E4FC LDR R3, =mmap_threshold .text:0000E500 LDR R2, [R5,#0x424] .text:0000E504 STR R2, [R3] .text:0000E508 LDR R3, =check_action .text:0000E50C LDR R1, [R5,#0x428] .text:0000E510 STR R1, [R3] .text:0000E514 LDR R3, =max_sbrked_mem .text:0000E518 LDR R2, [R5,#0x42C] .text:0000E51C STR R2, [R3] .text:0000E520 LDR R3, =n_mmaps .text:0000E524 LDR R1, [R5,#0x434] .text:0000E528 STR R1, [R3] .text:0000E52C LDR R3, =max_n_mmaps .text:0000E530 LDR R2, [R5,#0x438] .text:0000E534 STR R2, [R3] .text:0000E538 LDR R3, =mmapped_mem .text:0000E53C LDR R1, [R5,#0x43C] .text:0000E540 STR R1, [R3] .text:0000E544 LDR R3, =max_mmapped_mem .text:0000E548 LDR R0, [R5,#0x440] .text:0000E54C STR R0, [R3] .text:0000E550 LDR R2, [R5,#4] .text:0000E554 CMP R2, #0 .text:0000E558 BLE loc_E5D0 .text:0000E55C LDR R3, [R5,#0x444] .text:0000E560 CMP R3, #0 .text:0000E564 MOV R0, R3 .text:0000E568 BEQ loc_E594 .text:0000E56C LDR R3, =using_malloc_checking .text:0000E570 LDR R2, [R3] .text:0000E574 CMP R2, #0 .text:0000E578 BNE loc_E594 .text:0000E57C LDR R2, =disallow_malloc_check .text:0000E580 LDR R3, [R2] .text:0000E584 CMP R3, #0 .text:0000E588 BNE loc_E594 .text:0000E58C BL __malloc_check_init .text:0000E590 B loc_E5D0 .text:0000E594 ; --------------------------------------------------------------------------- .text:0000E594 .text:0000E594 loc_E594 ; CODE XREF: malloc_set_state+198j .text:0000E594 ; malloc_set_state+1A8j ... .text:0000E594 CMP R0, #0 .text:0000E598 BNE loc_E5D0 .text:0000E59C LDR R2, =using_malloc_checking .text:0000E5A0 LDR R3, [R2] .text:0000E5A4 CMP R3, #0 .text:0000E5A8 BEQ loc_E5D0 .text:0000E5AC STR R0, [R2] .text:0000E5B0 LDR R3, =__malloc_hook .text:0000E5B4 STR R0, [R3] .text:0000E5B8 LDR R2, =__free_hook .text:0000E5BC STR R0, [R2] .text:0000E5C0 LDR R3, =__realloc_hook .text:0000E5C4 STR R0, [R3] .text:0000E5C8 LDR R2, =__memalign_hook .text:0000E5CC STR R0, [R2] .text:0000E5D0 .text:0000E5D0 loc_E5D0 ; CODE XREF: malloc_set_state+188j .text:0000E5D0 ; malloc_set_state+1C0j ... .text:0000E5D0 CMP R10, #0 .text:0000E5D4 BEQ loc_E5E8 .text:0000E5D8 MOV R0, R9 .text:0000E5DC MOV LR, PC .text:0000E5E0 MOV PC, R10 .text:0000E5E4 B loc_E5EC .text:0000E5E8 ; --------------------------------------------------------------------------- .text:0000E5E8 .text:0000E5E8 loc_E5E8 ; CODE XREF: malloc_set_state+204j .text:0000E5E8 STR R10, [R9] .text:0000E5EC .text:0000E5EC loc_E5EC ; CODE XREF: malloc_set_state+214j .text:0000E5EC MOV R0, #0 .text:0000E5F0 LDMDB R11, {R4-R11,SP,PC} .text:0000E5F0 ; End of function malloc_set_state .text:0000E5F0 .text:0000E5F0 ; --------------------------------------------------------------------------- .text:0000E5F4 off_E5F4 DCD disallow_malloc_check ; DATA XREF: malloc_set_state+8r .text:0000E5F4 ; malloc_set_state+1ACr .text:0000E5F8 dword_E5F8 DCD 0x444C4541 ; DATA XREF: malloc_set_state+24r .text:0000E5FC off_E5FC DCD 0 ; DATA XREF: malloc_set_state+48r .text:0000E600 off_E600 DCD main_arena+0x410 ; DATA XREF: malloc_set_state+54r .text:0000E600 ; malloc_set_state:loc_E43Cr .text:0000E604 off_E604 DCD main_arena ; DATA XREF: malloc_set_state:loc_E448r .text:0000E608 dword_E608 DCD 0 ; DATA XREF: malloc_set_state+98r .text:0000E60C off_E60C DCD sbrk_base ; DATA XREF: malloc_set_state+F8r .text:0000E610 off_E610 DCD trim_threshold ; DATA XREF: malloc_set_state+108r .text:0000E614 off_E614 DCD top_pad ; DATA XREF: malloc_set_state+114r .text:0000E618 off_E618 DCD n_mmaps_max ; DATA XREF: malloc_set_state+120r .text:0000E61C off_E61C DCD mmap_threshold ; DATA XREF: malloc_set_state+12Cr .text:0000E620 off_E620 DCD check_action ; DATA XREF: malloc_set_state+138r .text:0000E624 off_E624 DCD max_sbrked_mem ; DATA XREF: malloc_set_state+144r .text:0000E628 off_E628 DCD n_mmaps ; DATA XREF: malloc_set_state+150r .text:0000E62C off_E62C DCD max_n_mmaps ; DATA XREF: malloc_set_state+15Cr .text:0000E630 off_E630 DCD mmapped_mem ; DATA XREF: malloc_set_state+168r .text:0000E634 off_E634 DCD max_mmapped_mem ; DATA XREF: malloc_set_state+174r .text:0000E638 off_E638 DCD using_malloc_checking ; DATA XREF: malloc_set_state+19Cr .text:0000E638 ; malloc_set_state+1CCr .text:0000E63C off_E63C DCD __malloc_hook ; DATA XREF: malloc_set_state+1E0r .text:0000E640 off_E640 DCD __free_hook ; DATA XREF: malloc_set_state+1E8r .text:0000E644 off_E644 DCD __realloc_hook ; DATA XREF: malloc_set_state+1F0r .text:0000E648 off_E648 DCD __memalign_hook ; DATA XREF: malloc_set_state+1F8r .text:0000E64C .text:0000E64C ; =============== S U B R O U T I N E ======================================= .text:0000E64C .text:0000E64C ; Attributes: bp-based frame .text:0000E64C .text:0000E64C chunk2mem_check ; CODE XREF: malloc_check+E0p .text:0000E64C ; realloc_check+284p ... .text:0000E64C MOV R12, SP .text:0000E650 STMFD SP!, {R11,R12,LR,PC} .text:0000E654 SUB R11, R12, #4 .text:0000E658 MOV R12, R0 .text:0000E65C LDR R3, [R12,#4] .text:0000E660 ADD R0, R12, #8 .text:0000E664 TST R3, #2 .text:0000E668 BIC R3, R3, #3 .text:0000E66C SUB R2, R3, #9 .text:0000E670 SUBEQ R2, R3, #5 .text:0000E674 B loc_E684 .text:0000E678 ; --------------------------------------------------------------------------- .text:0000E678 .text:0000E678 loc_E678 ; CODE XREF: chunk2mem_check+48j .text:0000E678 MOV R3, #0xFF .text:0000E67C STRB R3, [R0,R2] .text:0000E680 SUB R2, R2, #0xFF .text:0000E684 .text:0000E684 loc_E684 ; CODE XREF: chunk2mem_check+28j .text:0000E684 CMP R2, R1 .text:0000E688 BLS loc_E69C .text:0000E68C RSB R3, R1, R2 .text:0000E690 CMP R3, #0xFF .text:0000E694 BHI loc_E678 .text:0000E698 STRB R3, [R0,R2] .text:0000E69C .text:0000E69C loc_E69C ; CODE XREF: chunk2mem_check+3Cj .text:0000E69C MOV R3, R12,LSR#11 .text:0000E6A0 EOR R3, R3, R12,LSR#3 .text:0000E6A4 STRB R3, [R0,R1] .text:0000E6A8 LDMDB R11, {R11,SP,PC} .text:0000E6A8 ; End of function chunk2mem_check .text:0000E6A8 .text:0000E6AC .text:0000E6AC ; =============== S U B R O U T I N E ======================================= .text:0000E6AC .text:0000E6AC ; Attributes: bp-based frame .text:0000E6AC .text:0000E6AC mem2chunk_check ; CODE XREF: free_check+4Cp .text:0000E6AC ; realloc_check+60p .text:0000E6AC MOV R12, SP .text:0000E6B0 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000E6B4 SUB R11, R12, #4 .text:0000E6B8 SUB LR, R0, #8 .text:0000E6BC TST LR, #7 .text:0000E6C0 BEQ loc_E6CC .text:0000E6C4 .text:0000E6C4 loc_E6C4 ; CODE XREF: mem2chunk_check+4Cj .text:0000E6C4 ; mem2chunk_check+5Cj ... .text:0000E6C4 MOV R0, #0 .text:0000E6C8 LDMDB R11, {R4,R11,SP,PC} .text:0000E6CC ; --------------------------------------------------------------------------- .text:0000E6CC .text:0000E6CC loc_E6CC ; CODE XREF: mem2chunk_check+14j .text:0000E6CC LDR R3, =sbrk_base .text:0000E6D0 LDR R4, [R3] .text:0000E6D4 CMP LR, R4 .text:0000E6D8 BCC loc_E7A8 .text:0000E6DC LDR R3, =main_arena .text:0000E6E0 LDR R2, [R3,#(main_arena+0x40C - 0x6B64C)] .text:0000E6E4 ADD R2, R4, R2 .text:0000E6E8 CMP LR, R2 .text:0000E6EC BCS loc_E7A8 .text:0000E6F0 LDR R12, [LR,#4] .text:0000E6F4 TST R12, #2 .text:0000E6F8 BNE loc_E6C4 .text:0000E6FC BIC R1, R12, #3 .text:0000E700 ADD R3, LR, R1 .text:0000E704 CMP R3, R2 .text:0000E708 BCS loc_E6C4 .text:0000E70C CMP R1, #0xF .text:0000E710 BLS loc_E6C4 .text:0000E714 TST R12, #4 .text:0000E718 BNE loc_E6C4 .text:0000E71C BIC R3, R12, #1 .text:0000E720 ADD R3, LR, R3 .text:0000E724 LDR R2, [R3,#4] .text:0000E728 TST R2, #1 .text:0000E72C BEQ loc_E6C4 .text:0000E730 TST R12, #1 .text:0000E734 BNE loc_E764 .text:0000E738 LDR R0, [R0,#-8] .text:0000E73C TST R0, #7 .text:0000E740 BNE loc_E6C4 .text:0000E744 RSB R0, R0, LR .text:0000E748 CMP R0, R4 .text:0000E74C BLT loc_E6C4 .text:0000E750 LDR R3, [R0,#4] .text:0000E754 BIC R3, R3, #1 .text:0000E758 ADD R3, R0, R3 .text:0000E75C CMP R3, LR .text:0000E760 BNE loc_E6C4 .text:0000E764 .text:0000E764 loc_E764 ; CODE XREF: mem2chunk_check+88j .text:0000E764 ADD R1, R1, #3 .text:0000E768 MOV R3, LR,LSR#11 .text:0000E76C EOR R3, R3, LR,LSR#3 .text:0000E770 LDRB R2, [LR,R1] .text:0000E774 AND R12, R3, #0xFF .text:0000E778 CMP R2, R12 .text:0000E77C BEQ loc_E870 .text:0000E780 .text:0000E780 loc_E780 ; CODE XREF: mem2chunk_check+F4j .text:0000E780 CMP R2, #0 .text:0000E784 BEQ loc_E6C4 .text:0000E788 ADD R3, R2, #8 .text:0000E78C CMP R1, R3 .text:0000E790 BCC loc_E6C4 .text:0000E794 RSB R1, R2, R1 .text:0000E798 LDRB R2, [LR,R1] .text:0000E79C CMP R2, R12 .text:0000E7A0 BNE loc_E780 .text:0000E7A4 B loc_E870 .text:0000E7A8 ; --------------------------------------------------------------------------- .text:0000E7A8 .text:0000E7A8 loc_E7A8 ; CODE XREF: mem2chunk_check+2Cj .text:0000E7A8 ; mem2chunk_check+40j .text:0000E7A8 LDR R3, =__libc_pagesize .text:0000E7AC LDR R2, [R3] .text:0000E7B0 SUB R2, R2, #1 .text:0000E7B4 AND R0, R0, R2 .text:0000E7B8 CMP R0, #8 .text:0000E7BC CMPNE R0, #0 .text:0000E7C0 BEQ loc_E800 .text:0000E7C4 CMP R0, #0x10 .text:0000E7C8 CMPNE R0, #0x20 .text:0000E7CC BEQ loc_E800 .text:0000E7D0 CMP R0, #0x40 .text:0000E7D4 CMPNE R0, #0x80 .text:0000E7D8 BEQ loc_E800 .text:0000E7DC CMP R0, #0x100 .text:0000E7E0 CMPNE R0, #0x200 .text:0000E7E4 BEQ loc_E800 .text:0000E7E8 CMP R0, #0x400 .text:0000E7EC CMPNE R0, #0x800 .text:0000E7F0 BEQ loc_E800 .text:0000E7F4 CMP R0, #0x1000 .text:0000E7F8 CMPNE R0, #0x2000 .text:0000E7FC BCC loc_E6C4 .text:0000E800 .text:0000E800 loc_E800 ; CODE XREF: mem2chunk_check+114j .text:0000E800 ; mem2chunk_check+120j ... .text:0000E800 LDR R1, [LR,#4] .text:0000E804 AND R3, R1, #3 .text:0000E808 CMP R3, #2 .text:0000E80C BNE loc_E6C4 .text:0000E810 LDR R0, [LR] .text:0000E814 RSB R3, R0, LR .text:0000E818 TST R3, R2 .text:0000E81C BNE loc_E6C4 .text:0000E820 BIC R1, R1, #3 .text:0000E824 ADD R3, R0, R1 .text:0000E828 TST R3, R2 .text:0000E82C BNE loc_E6C4 .text:0000E830 SUB R1, R1, #1 .text:0000E834 MOV R3, LR,LSR#11 .text:0000E838 EOR R3, R3, LR,LSR#3 .text:0000E83C LDRB R2, [LR,R1] .text:0000E840 AND R12, R3, #0xFF .text:0000E844 CMP R2, R12 .text:0000E848 BEQ loc_E870 .text:0000E84C .text:0000E84C loc_E84C ; CODE XREF: mem2chunk_check+1C0j .text:0000E84C CMP R2, #0 .text:0000E850 BEQ loc_E6C4 .text:0000E854 ADD R3, R2, #8 .text:0000E858 CMP R1, R3 .text:0000E85C BCC loc_E6C4 .text:0000E860 RSB R1, R2, R1 .text:0000E864 LDRB R2, [LR,R1] .text:0000E868 CMP R2, R12 .text:0000E86C BNE loc_E84C .text:0000E870 .text:0000E870 loc_E870 ; CODE XREF: mem2chunk_check+D0j .text:0000E870 ; mem2chunk_check+F8j ... .text:0000E870 LDRB R3, [LR,R1] .text:0000E874 MVN R3, R3 .text:0000E878 STRB R3, [LR,R1] .text:0000E87C MOV R0, LR .text:0000E880 LDMDB R11, {R4,R11,SP,PC} .text:0000E880 ; End of function mem2chunk_check .text:0000E880 .text:0000E880 ; --------------------------------------------------------------------------- .text:0000E884 off_E884 DCD sbrk_base ; DATA XREF: mem2chunk_check:loc_E6CCr .text:0000E888 off_E888 DCD main_arena ; DATA XREF: mem2chunk_check+30r .text:0000E88C off_E88C DCD __libc_pagesize ; DATA XREF: mem2chunk_check:loc_E7A8r .text:0000E890 .text:0000E890 ; =============== S U B R O U T I N E ======================================= .text:0000E890 .text:0000E890 ; Attributes: bp-based frame .text:0000E890 .text:0000E890 top_check ; CODE XREF: malloc_check:loc_EA4Cp .text:0000E890 ; realloc_check+168p ... .text:0000E890 MOV R12, SP .text:0000E894 STMFD SP!, {R4-R12,LR,PC} .text:0000E898 LDR R10, =main_arena .text:0000E89C LDR R1, =sbrk_base .text:0000E8A0 LDR R0, =__libc_pagesize .text:0000E8A4 SUB R11, R12, #4 .text:0000E8A8 LDR R12, [R10,#(main_arena+8 - 0x6B64C)] .text:0000E8AC LDR R9, [R0] .text:0000E8B0 LDR R3, [R12,#4] .text:0000E8B4 LDR R2, [R1] .text:0000E8B8 LDR R1, [R10,#(main_arena+0x40C - 0x6B64C)] .text:0000E8BC BIC R3, R3, #3 .text:0000E8C0 ADD R3, R12, R3 .text:0000E8C4 ADD R2, R2, R1 .text:0000E8C8 CMP R3, R2 .text:0000E8CC BEQ loc_E8D8 .text:0000E8D0 CMP R12, R10 .text:0000E8D4 BNE loc_E8E0 .text:0000E8D8 .text:0000E8D8 loc_E8D8 ; CODE XREF: top_check+3Cj .text:0000E8D8 MOV R0, #0 .text:0000E8DC LDMDB R11, {R4-R11,SP,PC} .text:0000E8E0 ; --------------------------------------------------------------------------- .text:0000E8E0 .text:0000E8E0 loc_E8E0 ; CODE XREF: top_check+44j .text:0000E8E0 LDR R4, =check_action .text:0000E8E4 LDR R3, [R4] .text:0000E8E8 TST R3, #1 .text:0000E8EC BEQ loc_E900 .text:0000E8F0 LDR R3, =stderr .text:0000E8F4 LDR R1, =aMallocTopChunk ; "malloc: top chunk is corrupt\n" .text:0000E8F8 LDR R0, [R3] .text:0000E8FC BL fprintf .text:0000E900 .text:0000E900 loc_E900 ; CODE XREF: top_check+5Cj .text:0000E900 LDR R3, [R4] .text:0000E904 ANDS R8, R3, #2 .text:0000E908 BEQ loc_E910 .text:0000E90C BL abort .text:0000E910 ; --------------------------------------------------------------------------- .text:0000E910 .text:0000E910 loc_E910 ; CODE XREF: top_check+78j .text:0000E910 LDR R4, =__morecore .text:0000E914 MOV R0, R8 .text:0000E918 MOV LR, PC .text:0000E91C LDR PC, [R4] .text:0000E920 MOV R7, R0 .text:0000E924 ADD R3, R7, #8 .text:0000E928 ANDS R6, R3, #7 .text:0000E92C LDR R1, =top_pad .text:0000E930 RSB R3, R6, #8 .text:0000E934 LDR R2, [R1] .text:0000E938 MOVNE R6, R3 .text:0000E93C ADD R2, R6, R2 .text:0000E940 ADD R5, R2, #0x10 .text:0000E944 ADD R3, R7, R5 .text:0000E948 SUB R2, R9, #1 .text:0000E94C AND R3, R3, R2 .text:0000E950 RSB R3, R3, R9 .text:0000E954 ADD R5, R5, R3 .text:0000E958 MOV R0, R5 .text:0000E95C MOV LR, PC .text:0000E960 LDR PC, [R4] .text:0000E964 SUBS R2, R0, #0 .text:0000E968 BEQ loc_E99C .text:0000E96C LDR R1, =sbrk_base .text:0000E970 MOV R0, R8 .text:0000E974 LDR R3, [R1] .text:0000E978 ADD R1, R7, R6 .text:0000E97C STR R1, [R10,#8] .text:0000E980 RSB R3, R3, R2 .text:0000E984 ADD R3, R3, R5 .text:0000E988 STR R3, [R10,#0x40C] .text:0000E98C RSB R2, R6, R5 .text:0000E990 ORR R2, R2, #1 .text:0000E994 STR R2, [R1,#4] .text:0000E998 LDMDB R11, {R4-R11,SP,PC} .text:0000E99C ; --------------------------------------------------------------------------- .text:0000E99C .text:0000E99C loc_E99C ; CODE XREF: top_check+D8j .text:0000E99C MOV R0, 0xFFFFFFFF .text:0000E9A0 LDMDB R11, {R4-R11,SP,PC} .text:0000E9A0 ; End of function top_check .text:0000E9A0 .text:0000E9A0 ; --------------------------------------------------------------------------- .text:0000E9A4 off_E9A4 DCD main_arena ; DATA XREF: top_check+8r .text:0000E9A8 off_E9A8 DCD sbrk_base ; DATA XREF: top_check+Cr .text:0000E9A8 ; top_check+DCr .text:0000E9AC off_E9AC DCD __libc_pagesize ; DATA XREF: top_check+10r .text:0000E9B0 off_E9B0 DCD check_action ; DATA XREF: top_check:loc_E8E0r .text:0000E9B4 off_E9B4 DCD stderr ; DATA XREF: top_check+60r .text:0000E9B8 off_E9B8 DCD aMallocTopChunk ; DATA XREF: top_check+64r .text:0000E9B8 ; "malloc: top chunk is corrupt\n" .text:0000E9BC off_E9BC DCD __morecore ; DATA XREF: top_check:loc_E910r .text:0000E9C0 off_E9C0 DCD top_pad ; DATA XREF: top_check+9Cr .text:0000E9C4 .text:0000E9C4 ; =============== S U B R O U T I N E ======================================= .text:0000E9C4 .text:0000E9C4 ; Attributes: bp-based frame .text:0000E9C4 .text:0000E9C4 malloc_check ; CODE XREF: realloc_check+20p .text:0000E9C4 ; realloc_check+C4p ... .text:0000E9C4 MOV R12, SP .text:0000E9C8 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000E9CC SUB R11, R12, #4 .text:0000E9D0 MOV R5, R0 .text:0000E9D4 ADD R4, R5, #0xC .text:0000E9D8 CMP R4, #0 .text:0000E9DC BLE loc_E9EC .text:0000E9E0 ADD R3, R5, #1 .text:0000E9E4 CMP R4, R3 .text:0000E9E8 BCS loc_E9FC .text:0000E9EC .text:0000E9EC loc_E9EC ; CODE XREF: malloc_check+18j .text:0000E9EC BL __errno_location .text:0000E9F0 MOV R3, #0xC .text:0000E9F4 STR R3, [R0] .text:0000E9F8 B loc_EA10 .text:0000E9FC ; --------------------------------------------------------------------------- .text:0000E9FC .text:0000E9FC loc_E9FC ; CODE XREF: malloc_check+24j .text:0000E9FC CMP R4, #0x16 .text:0000EA00 MOVLS R4, #0x10 .text:0000EA04 BLS loc_EA18 .text:0000EA08 BIC R4, R4, #7 .text:0000EA0C B loc_EA18 .text:0000EA10 ; --------------------------------------------------------------------------- .text:0000EA10 .text:0000EA10 loc_EA10 ; CODE XREF: malloc_check+34j .text:0000EA10 MOV R0, #0 .text:0000EA14 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000EA18 ; --------------------------------------------------------------------------- .text:0000EA18 .text:0000EA18 loc_EA18 ; CODE XREF: malloc_check+40j .text:0000EA18 ; malloc_check+48j .text:0000EA18 LDR R2, =0 .text:0000EA1C CMP R2, #0 .text:0000EA20 BEQ loc_EA3C .text:0000EA24 LDR R3, =(main_arena+0x410) .text:0000EA28 MOV R0, R3 .text:0000EA2C MOV R6, R3 .text:0000EA30 MOV LR, PC .text:0000EA34 MOV PC, R2 .text:0000EA38 B loc_EA4C .text:0000EA3C ; --------------------------------------------------------------------------- .text:0000EA3C .text:0000EA3C loc_EA3C ; CODE XREF: malloc_check+5Cj .text:0000EA3C LDR R2, =(main_arena+0x410) .text:0000EA40 MOV R3, #1 .text:0000EA44 MOV R6, R2 .text:0000EA48 STR R3, [R2] .text:0000EA4C .text:0000EA4C loc_EA4C ; CODE XREF: malloc_check+74j .text:0000EA4C BL top_check .text:0000EA50 CMP R0, #0 .text:0000EA54 BLT loc_EA6C .text:0000EA58 LDR R0, =main_arena .text:0000EA5C MOV R1, R4 .text:0000EA60 BL chunk_alloc .text:0000EA64 MOV R4, R0 .text:0000EA68 B loc_EA70 .text:0000EA6C ; --------------------------------------------------------------------------- .text:0000EA6C .text:0000EA6C loc_EA6C ; CODE XREF: malloc_check+90j .text:0000EA6C MOV R4, #0 .text:0000EA70 .text:0000EA70 loc_EA70 ; CODE XREF: malloc_check+A4j .text:0000EA70 LDR R3, =0 .text:0000EA74 CMP R3, #0 .text:0000EA78 BEQ loc_EA8C .text:0000EA7C MOV R0, R6 .text:0000EA80 MOV LR, PC .text:0000EA84 MOV PC, R3 .text:0000EA88 B loc_EA90 .text:0000EA8C ; --------------------------------------------------------------------------- .text:0000EA8C .text:0000EA8C loc_EA8C ; CODE XREF: malloc_check+B4j .text:0000EA8C STR R3, [R6] .text:0000EA90 .text:0000EA90 loc_EA90 ; CODE XREF: malloc_check+C4j .text:0000EA90 CMP R4, #0 .text:0000EA94 MOV R0, #0 .text:0000EA98 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000EA9C MOV R0, R4 .text:0000EAA0 MOV R1, R5 .text:0000EAA4 BL chunk2mem_check .text:0000EAA8 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000EAA8 ; End of function malloc_check .text:0000EAA8 .text:0000EAA8 ; --------------------------------------------------------------------------- .text:0000EAAC off_EAAC DCD 0 ; DATA XREF: malloc_check:loc_EA18r .text:0000EAB0 off_EAB0 DCD main_arena+0x410 ; DATA XREF: malloc_check+60r .text:0000EAB0 ; malloc_check:loc_EA3Cr .text:0000EAB4 off_EAB4 DCD main_arena ; DATA XREF: malloc_check+94r .text:0000EAB8 off_EAB8 DCD 0 ; DATA XREF: malloc_check:loc_EA70r .text:0000EABC .text:0000EABC ; =============== S U B R O U T I N E ======================================= .text:0000EABC .text:0000EABC ; Attributes: bp-based frame .text:0000EABC .text:0000EABC free_check ; DATA XREF: __malloc_check_init+40o .text:0000EABC ; .text:off_B824o .text:0000EABC MOV R12, SP .text:0000EAC0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000EAC4 SUB R11, R12, #4 .text:0000EAC8 SUBS R6, R0, #0 .text:0000EACC LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000EAD0 LDR R2, =0 .text:0000EAD4 CMP R2, #0 .text:0000EAD8 BEQ loc_EAF4 .text:0000EADC LDR R3, =(main_arena+0x410) .text:0000EAE0 MOV R0, R3 .text:0000EAE4 MOV R5, R3 .text:0000EAE8 MOV LR, PC .text:0000EAEC MOV PC, R2 .text:0000EAF0 B loc_EB04 .text:0000EAF4 ; --------------------------------------------------------------------------- .text:0000EAF4 .text:0000EAF4 loc_EAF4 ; CODE XREF: free_check+1Cj .text:0000EAF4 LDR R2, =(main_arena+0x410) .text:0000EAF8 MOV R3, #1 .text:0000EAFC MOV R5, R2 .text:0000EB00 STR R3, [R2] .text:0000EB04 .text:0000EB04 loc_EB04 ; CODE XREF: free_check+34j .text:0000EB04 MOV R0, R6 .text:0000EB08 BL mem2chunk_check .text:0000EB0C SUBS R4, R0, #0 .text:0000EB10 BNE loc_EB68 .text:0000EB14 LDR R3, =0 .text:0000EB18 CMP R3, #0 .text:0000EB1C BEQ loc_EB30 .text:0000EB20 MOV R0, R5 .text:0000EB24 MOV LR, PC .text:0000EB28 MOV PC, R3 .text:0000EB2C B loc_EB34 .text:0000EB30 ; --------------------------------------------------------------------------- .text:0000EB30 .text:0000EB30 loc_EB30 ; CODE XREF: free_check+60j .text:0000EB30 STR R4, [R5] .text:0000EB34 .text:0000EB34 loc_EB34 ; CODE XREF: free_check+70j .text:0000EB34 LDR R4, =check_action .text:0000EB38 LDR R3, [R4] .text:0000EB3C TST R3, #1 .text:0000EB40 BEQ loc_EB58 .text:0000EB44 LDR R3, =stderr .text:0000EB48 LDR R1, =aFreeInvalidPoi ; "free(): invalid pointer %p!\n" .text:0000EB4C LDR R0, [R3] .text:0000EB50 MOV R2, R6 .text:0000EB54 BL fprintf .text:0000EB58 .text:0000EB58 loc_EB58 ; CODE XREF: free_check+84j .text:0000EB58 LDR R3, [R4] .text:0000EB5C TST R3, #2 .text:0000EB60 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000EB64 BL abort .text:0000EB68 ; --------------------------------------------------------------------------- .text:0000EB68 .text:0000EB68 loc_EB68 ; CODE XREF: free_check+54j .text:0000EB68 LDR R3, [R4,#4] .text:0000EB6C TST R3, #2 .text:0000EB70 BEQ loc_EBA0 .text:0000EB74 LDR R3, =0 .text:0000EB78 CMP R3, #0 .text:0000EB7C BEQ loc_EB90 .text:0000EB80 MOV R0, R5 .text:0000EB84 MOV LR, PC .text:0000EB88 MOV PC, R3 .text:0000EB8C B loc_EB94 .text:0000EB90 ; --------------------------------------------------------------------------- .text:0000EB90 .text:0000EB90 loc_EB90 ; CODE XREF: free_check+C0j .text:0000EB90 STR R3, [R5] .text:0000EB94 .text:0000EB94 loc_EB94 ; CODE XREF: free_check+D0j .text:0000EB94 MOV R0, R4 .text:0000EB98 BL munmap_chunk .text:0000EB9C LDMDB R11, {R4-R6,R11,SP,PC} .text:0000EBA0 ; --------------------------------------------------------------------------- .text:0000EBA0 .text:0000EBA0 loc_EBA0 ; CODE XREF: free_check+B4j .text:0000EBA0 LDR R5, =main_arena .text:0000EBA4 MOV R1, R4 .text:0000EBA8 MOV R0, R5 .text:0000EBAC BL chunk_free .text:0000EBB0 LDR R3, =0 .text:0000EBB4 CMP R3, #0 .text:0000EBB8 BEQ loc_EBCC .text:0000EBBC ADD R0, R5, #0x410 .text:0000EBC0 MOV LR, PC .text:0000EBC4 MOV PC, R3 .text:0000EBC8 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000EBCC ; --------------------------------------------------------------------------- .text:0000EBCC .text:0000EBCC loc_EBCC ; CODE XREF: free_check+FCj .text:0000EBCC STR R3, [R5,#(main_arena+0x410 - 0x6B64C)] .text:0000EBD0 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000EBD0 ; End of function free_check .text:0000EBD0 .text:0000EBD0 ; --------------------------------------------------------------------------- .text:0000EBD4 off_EBD4 DCD 0 ; DATA XREF: free_check+14r .text:0000EBD8 off_EBD8 DCD main_arena+0x410 ; DATA XREF: free_check+20r .text:0000EBD8 ; free_check:loc_EAF4r .text:0000EBDC off_EBDC DCD 0 ; DATA XREF: free_check+58r .text:0000EBDC ; free_check+B8r ... .text:0000EBE0 off_EBE0 DCD check_action ; DATA XREF: free_check:loc_EB34r .text:0000EBE4 off_EBE4 DCD stderr ; DATA XREF: free_check+88r .text:0000EBE8 off_EBE8 DCD aFreeInvalidPoi ; DATA XREF: free_check+8Cr .text:0000EBE8 ; "free(): invalid pointer %p!\n" .text:0000EBEC off_EBEC DCD main_arena ; DATA XREF: free_check:loc_EBA0r .text:0000EBF0 .text:0000EBF0 ; =============== S U B R O U T I N E ======================================= .text:0000EBF0 .text:0000EBF0 ; Attributes: bp-based frame .text:0000EBF0 .text:0000EBF0 realloc_check ; DATA XREF: __malloc_check_init+4Co .text:0000EBF0 ; .text:off_B82Co .text:0000EBF0 MOV R12, SP .text:0000EBF4 STMFD SP!, {R4-R12,LR,PC} .text:0000EBF8 SUB R11, R12, #4 .text:0000EBFC MOV R10, R1 .text:0000EC00 SUBS R6, R0, #0 .text:0000EC04 BNE loc_EC18 .text:0000EC08 MOV R0, R10 .text:0000EC0C MOV R1, R6 .text:0000EC10 BL malloc_check .text:0000EC14 LDMDB R11, {R4-R11,SP,PC} .text:0000EC18 ; --------------------------------------------------------------------------- .text:0000EC18 .text:0000EC18 loc_EC18 ; CODE XREF: realloc_check+14j .text:0000EC18 LDR R2, =0 .text:0000EC1C CMP R2, #0 .text:0000EC20 BEQ loc_EC3C .text:0000EC24 LDR R3, =(main_arena+0x410) .text:0000EC28 MOV R0, R3 .text:0000EC2C MOV R9, R3 .text:0000EC30 MOV LR, PC .text:0000EC34 MOV PC, R2 .text:0000EC38 B loc_EC4C .text:0000EC3C ; --------------------------------------------------------------------------- .text:0000EC3C .text:0000EC3C loc_EC3C ; CODE XREF: realloc_check+30j .text:0000EC3C LDR R2, =(main_arena+0x410) .text:0000EC40 MOV R3, #1 .text:0000EC44 MOV R9, R2 .text:0000EC48 STR R3, [R2] .text:0000EC4C .text:0000EC4C loc_EC4C ; CODE XREF: realloc_check+48j .text:0000EC4C MOV R0, R6 .text:0000EC50 BL mem2chunk_check .text:0000EC54 SUBS R8, R0, #0 .text:0000EC58 BNE loc_ECBC .text:0000EC5C LDR R3, =0 .text:0000EC60 CMP R3, #0 .text:0000EC64 BEQ loc_EC78 .text:0000EC68 MOV R0, R9 .text:0000EC6C MOV LR, PC .text:0000EC70 MOV PC, R3 .text:0000EC74 B loc_EC7C .text:0000EC78 ; --------------------------------------------------------------------------- .text:0000EC78 .text:0000EC78 loc_EC78 ; CODE XREF: realloc_check+74j .text:0000EC78 STR R8, [R9] .text:0000EC7C .text:0000EC7C loc_EC7C ; CODE XREF: realloc_check+84j .text:0000EC7C LDR R4, =check_action .text:0000EC80 LDR R3, [R4] .text:0000EC84 TST R3, #1 .text:0000EC88 BEQ loc_ECA0 .text:0000EC8C LDR R3, =stderr .text:0000EC90 LDR R1, =aReallocInvalid ; "realloc(): invalid pointer %p!\n" .text:0000EC94 LDR R0, [R3] .text:0000EC98 MOV R2, R6 .text:0000EC9C BL fprintf .text:0000ECA0 .text:0000ECA0 loc_ECA0 ; CODE XREF: realloc_check+98j .text:0000ECA0 LDR R3, [R4] .text:0000ECA4 ANDS R1, R3, #2 .text:0000ECA8 BEQ loc_ECB0 .text:0000ECAC BL abort .text:0000ECB0 ; --------------------------------------------------------------------------- .text:0000ECB0 .text:0000ECB0 loc_ECB0 ; CODE XREF: realloc_check+B8j .text:0000ECB0 MOV R0, R10 .text:0000ECB4 BL malloc_check .text:0000ECB8 LDMDB R11, {R4-R11,SP,PC} .text:0000ECBC ; --------------------------------------------------------------------------- .text:0000ECBC .text:0000ECBC loc_ECBC ; CODE XREF: realloc_check+68j .text:0000ECBC ADD R5, R10, #0xC .text:0000ECC0 LDR R3, [R8,#4] .text:0000ECC4 CMP R5, #0 .text:0000ECC8 BIC R7, R3, #3 .text:0000ECCC MOV R2, R3 .text:0000ECD0 BLE loc_ECE0 .text:0000ECD4 ADD R3, R10, #1 .text:0000ECD8 CMP R5, R3 .text:0000ECDC BCS loc_ECF0 .text:0000ECE0 .text:0000ECE0 loc_ECE0 ; CODE XREF: realloc_check+E0j .text:0000ECE0 BL __errno_location .text:0000ECE4 MOV R3, #0xC .text:0000ECE8 STR R3, [R0] .text:0000ECEC B loc_ED04 .text:0000ECF0 ; --------------------------------------------------------------------------- .text:0000ECF0 .text:0000ECF0 loc_ECF0 ; CODE XREF: realloc_check+ECj .text:0000ECF0 CMP R5, #0x16 .text:0000ECF4 MOVLS R5, #0x10 .text:0000ECF8 BLS loc_ED2C .text:0000ECFC BIC R5, R5, #7 .text:0000ED00 B loc_ED2C .text:0000ED04 ; --------------------------------------------------------------------------- .text:0000ED04 .text:0000ED04 loc_ED04 ; CODE XREF: realloc_check+FCj .text:0000ED04 LDR R3, =0 .text:0000ED08 CMP R3, #0 .text:0000ED0C BEQ loc_ED20 .text:0000ED10 MOV R0, R9 .text:0000ED14 MOV LR, PC .text:0000ED18 MOV PC, R3 .text:0000ED1C B loc_ED24 .text:0000ED20 ; --------------------------------------------------------------------------- .text:0000ED20 .text:0000ED20 loc_ED20 ; CODE XREF: realloc_check+11Cj .text:0000ED20 STR R3, [R9] .text:0000ED24 .text:0000ED24 loc_ED24 ; CODE XREF: realloc_check+12Cj .text:0000ED24 MOV R0, #0 .text:0000ED28 LDMDB R11, {R4-R11,SP,PC} .text:0000ED2C ; --------------------------------------------------------------------------- .text:0000ED2C .text:0000ED2C loc_ED2C ; CODE XREF: realloc_check+108j .text:0000ED2C ; realloc_check+110j .text:0000ED2C ANDS R4, R2, #2 .text:0000ED30 BEQ loc_EE1C .text:0000ED34 MOV R0, R8 .text:0000ED38 MOV R1, R5 .text:0000ED3C BL mremap_chunk .text:0000ED40 SUBS R4, R0, #0 .text:0000ED44 BNE loc_EE40 .text:0000ED48 SUB R3, R7, #4 .text:0000ED4C CMP R3, R5 .text:0000ED50 MOVCS R4, R8 .text:0000ED54 BCS loc_EE40 .text:0000ED58 BL top_check .text:0000ED5C CMP R0, #0 .text:0000ED60 BLT loc_ED74 .text:0000ED64 LDR R0, =main_arena .text:0000ED68 MOV R1, R5 .text:0000ED6C BL chunk_alloc .text:0000ED70 MOV R4, R0 .text:0000ED74 .text:0000ED74 loc_ED74 ; CODE XREF: realloc_check+170j .text:0000ED74 CMP R4, #0 .text:0000ED78 BEQ loc_EE40 .text:0000ED7C SUB R2, R7, #8 .text:0000ED80 CMP R2, #0x24 .text:0000ED84 BHI loc_EE04 .text:0000ED88 MOV R12, R6 .text:0000ED8C ADD R1, R4, #8 .text:0000ED90 CMP R2, #0x13 .text:0000ED94 BLS loc_EDE8 .text:0000ED98 LDR R3, [R12],#4 .text:0000ED9C STR R3, [R4,#8] .text:0000EDA0 ADD R1, R4, #0x10 .text:0000EDA4 CMP R2, #0x1B .text:0000EDA8 LDR R3, [R6,#4] .text:0000EDAC ADD R12, R12, #4 .text:0000EDB0 STR R3, [R4,#0xC] .text:0000EDB4 BLS loc_EDE8 .text:0000EDB8 LDR R3, [R12],#4 .text:0000EDBC STR R3, [R4,#0x10] .text:0000EDC0 ADD R1, R4, #0x18 .text:0000EDC4 LDR R3, [R12],#4 .text:0000EDC8 CMP R2, #0x23 .text:0000EDCC STR R3, [R4,#0x14] .text:0000EDD0 BLS loc_EDE8 .text:0000EDD4 LDR R3, [R12],#4 .text:0000EDD8 STR R3, [R4,#0x18] .text:0000EDDC LDR R2, [R12],#4 .text:0000EDE0 ADD R1, R4, #0x20 .text:0000EDE4 STR R2, [R4,#0x1C] .text:0000EDE8 .text:0000EDE8 loc_EDE8 ; CODE XREF: realloc_check+1A4j .text:0000EDE8 ; realloc_check+1C4j ... .text:0000EDE8 LDR R3, [R12],#4 .text:0000EDEC STR R3, [R1],#4 .text:0000EDF0 LDR R2, [R12],#4 .text:0000EDF4 STR R2, [R1],#4 .text:0000EDF8 LDR R3, [R12] .text:0000EDFC STR R3, [R1] .text:0000EE00 B loc_EE10 .text:0000EE04 ; --------------------------------------------------------------------------- .text:0000EE04 .text:0000EE04 loc_EE04 ; CODE XREF: realloc_check+194j .text:0000EE04 ADD R0, R4, #8 .text:0000EE08 MOV R1, R6 .text:0000EE0C BL memcpy .text:0000EE10 .text:0000EE10 loc_EE10 ; CODE XREF: realloc_check+210j .text:0000EE10 MOV R0, R8 .text:0000EE14 BL munmap_chunk .text:0000EE18 B loc_EE40 .text:0000EE1C ; --------------------------------------------------------------------------- .text:0000EE1C .text:0000EE1C loc_EE1C ; CODE XREF: realloc_check+140j .text:0000EE1C BL top_check .text:0000EE20 CMP R0, #0 .text:0000EE24 BLT loc_EE40 .text:0000EE28 MOV R1, R8 .text:0000EE2C MOV R2, R7 .text:0000EE30 LDR R0, =main_arena .text:0000EE34 MOV R3, R5 .text:0000EE38 BL chunk_realloc .text:0000EE3C MOV R4, R0 .text:0000EE40 .text:0000EE40 loc_EE40 ; CODE XREF: realloc_check+154j .text:0000EE40 ; realloc_check+164j ... .text:0000EE40 LDR R3, =0 .text:0000EE44 CMP R3, #0 .text:0000EE48 BEQ loc_EE5C .text:0000EE4C MOV R0, R9 .text:0000EE50 MOV LR, PC .text:0000EE54 MOV PC, R3 .text:0000EE58 B loc_EE60 .text:0000EE5C ; --------------------------------------------------------------------------- .text:0000EE5C .text:0000EE5C loc_EE5C ; CODE XREF: realloc_check+258j .text:0000EE5C STR R3, [R9] .text:0000EE60 .text:0000EE60 loc_EE60 ; CODE XREF: realloc_check+268j .text:0000EE60 CMP R4, #0 .text:0000EE64 MOV R0, #0 .text:0000EE68 LDMEQDB R11, {R4-R11,SP,PC} .text:0000EE6C MOV R0, R4 .text:0000EE70 MOV R1, R10 .text:0000EE74 BL chunk2mem_check .text:0000EE78 LDMDB R11, {R4-R11,SP,PC} .text:0000EE78 ; End of function realloc_check .text:0000EE78 .text:0000EE78 ; --------------------------------------------------------------------------- .text:0000EE7C off_EE7C DCD 0 ; DATA XREF: realloc_check:loc_EC18r .text:0000EE80 off_EE80 DCD main_arena+0x410 ; DATA XREF: realloc_check+34r .text:0000EE80 ; realloc_check:loc_EC3Cr .text:0000EE84 off_EE84 DCD 0 ; DATA XREF: realloc_check+6Cr .text:0000EE84 ; realloc_check:loc_ED04r ... .text:0000EE88 off_EE88 DCD check_action ; DATA XREF: realloc_check:loc_EC7Cr .text:0000EE8C off_EE8C DCD stderr ; DATA XREF: realloc_check+9Cr .text:0000EE90 off_EE90 DCD aReallocInvalid ; DATA XREF: realloc_check+A0r .text:0000EE90 ; "realloc(): invalid pointer %p!\n" .text:0000EE94 off_EE94 DCD main_arena ; DATA XREF: realloc_check+174r .text:0000EE94 ; realloc_check+240r .text:0000EE98 .text:0000EE98 ; =============== S U B R O U T I N E ======================================= .text:0000EE98 .text:0000EE98 ; Attributes: bp-based frame .text:0000EE98 .text:0000EE98 memalign_check ; DATA XREF: __malloc_check_init+58o .text:0000EE98 ; .text:off_B834o .text:0000EE98 MOV R12, SP .text:0000EE9C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000EEA0 SUB R11, R12, #4 .text:0000EEA4 MOV R5, R0 .text:0000EEA8 CMP R5, #8 .text:0000EEAC MOV R6, R1 .text:0000EEB0 BHI loc_EEC4 .text:0000EEB4 MOV R0, R6 .text:0000EEB8 MOV R1, #0 .text:0000EEBC BL malloc_check .text:0000EEC0 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000EEC4 ; --------------------------------------------------------------------------- .text:0000EEC4 .text:0000EEC4 loc_EEC4 ; CODE XREF: memalign_check+18j .text:0000EEC4 CMP R5, #0xF .text:0000EEC8 MOVLS R5, #0x10 .text:0000EECC ADD R4, R6, #0xC .text:0000EED0 CMP R4, #0 .text:0000EED4 BLE loc_EEE4 .text:0000EED8 ADD R3, R6, #1 .text:0000EEDC CMP R4, R3 .text:0000EEE0 BCS loc_EEF4 .text:0000EEE4 .text:0000EEE4 loc_EEE4 ; CODE XREF: memalign_check+3Cj .text:0000EEE4 BL __errno_location .text:0000EEE8 MOV R3, #0xC .text:0000EEEC STR R3, [R0] .text:0000EEF0 B loc_EF08 .text:0000EEF4 ; --------------------------------------------------------------------------- .text:0000EEF4 .text:0000EEF4 loc_EEF4 ; CODE XREF: memalign_check+48j .text:0000EEF4 CMP R4, #0x16 .text:0000EEF8 MOVLS R4, #0x10 .text:0000EEFC BLS loc_EF10 .text:0000EF00 BIC R4, R4, #7 .text:0000EF04 B loc_EF10 .text:0000EF08 ; --------------------------------------------------------------------------- .text:0000EF08 .text:0000EF08 loc_EF08 ; CODE XREF: memalign_check+58j .text:0000EF08 MOV R0, #0 .text:0000EF0C LDMDB R11, {R4-R7,R11,SP,PC} .text:0000EF10 ; --------------------------------------------------------------------------- .text:0000EF10 .text:0000EF10 loc_EF10 ; CODE XREF: memalign_check+64j .text:0000EF10 ; memalign_check+6Cj .text:0000EF10 LDR R2, =0 .text:0000EF14 CMP R2, #0 .text:0000EF18 BEQ loc_EF34 .text:0000EF1C LDR R3, =(main_arena+0x410) .text:0000EF20 MOV R0, R3 .text:0000EF24 MOV R7, R3 .text:0000EF28 MOV LR, PC .text:0000EF2C MOV PC, R2 .text:0000EF30 B loc_EF44 .text:0000EF34 ; --------------------------------------------------------------------------- .text:0000EF34 .text:0000EF34 loc_EF34 ; CODE XREF: memalign_check+80j .text:0000EF34 LDR R2, =(main_arena+0x410) .text:0000EF38 MOV R3, #1 .text:0000EF3C MOV R7, R2 .text:0000EF40 STR R3, [R2] .text:0000EF44 .text:0000EF44 loc_EF44 ; CODE XREF: memalign_check+98j .text:0000EF44 BL top_check .text:0000EF48 CMP R0, #0 .text:0000EF4C BLT loc_EF68 .text:0000EF50 MOV R1, R4 .text:0000EF54 LDR R0, =main_arena .text:0000EF58 MOV R2, R5 .text:0000EF5C BL chunk_align .text:0000EF60 MOV R4, R0 .text:0000EF64 B loc_EF6C .text:0000EF68 ; --------------------------------------------------------------------------- .text:0000EF68 .text:0000EF68 loc_EF68 ; CODE XREF: memalign_check+B4j .text:0000EF68 MOV R4, #0 .text:0000EF6C .text:0000EF6C loc_EF6C ; CODE XREF: memalign_check+CCj .text:0000EF6C LDR R3, =0 .text:0000EF70 CMP R3, #0 .text:0000EF74 BEQ loc_EF88 .text:0000EF78 MOV R0, R7 .text:0000EF7C MOV LR, PC .text:0000EF80 MOV PC, R3 .text:0000EF84 B loc_EF8C .text:0000EF88 ; --------------------------------------------------------------------------- .text:0000EF88 .text:0000EF88 loc_EF88 ; CODE XREF: memalign_check+DCj .text:0000EF88 STR R3, [R7] .text:0000EF8C .text:0000EF8C loc_EF8C ; CODE XREF: memalign_check+ECj .text:0000EF8C CMP R4, #0 .text:0000EF90 MOV R0, #0 .text:0000EF94 LDMEQDB R11, {R4-R7,R11,SP,PC} .text:0000EF98 MOV R0, R4 .text:0000EF9C MOV R1, R6 .text:0000EFA0 BL chunk2mem_check .text:0000EFA4 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000EFA4 ; End of function memalign_check .text:0000EFA4 .text:0000EFA4 ; --------------------------------------------------------------------------- .text:0000EFA8 off_EFA8 DCD 0 ; DATA XREF: memalign_check:loc_EF10r .text:0000EFAC off_EFAC DCD main_arena+0x410 ; DATA XREF: memalign_check+84r .text:0000EFAC ; memalign_check:loc_EF34r .text:0000EFB0 off_EFB0 DCD main_arena ; DATA XREF: memalign_check+BCr .text:0000EFB4 off_EFB4 DCD 0 ; DATA XREF: memalign_check:loc_EF6Cr .text:0000EFB8 .text:0000EFB8 ; =============== S U B R O U T I N E ======================================= .text:0000EFB8 .text:0000EFB8 ; Attributes: bp-based frame .text:0000EFB8 .text:0000EFB8 malloc_starter ; DATA XREF: ptmalloc_init+38o .text:0000EFB8 ; .text:off_B684o .text:0000EFB8 MOV R12, SP .text:0000EFBC STMFD SP!, {R11,R12,LR,PC} .text:0000EFC0 SUB R11, R12, #4 .text:0000EFC4 ADD R1, R0, #0xB .text:0000EFC8 CMP R1, R0 .text:0000EFCC MOVCS R0, #0 .text:0000EFD0 MOVCC R0, #1 .text:0000EFD4 CMP R1, #0 .text:0000EFD8 MOVLE R0, #1 .text:0000EFDC CMP R0, #0 .text:0000EFE0 BEQ loc_EFF4 .text:0000EFE4 BL __errno_location .text:0000EFE8 MOV R3, #0xC .text:0000EFEC STR R3, [R0] .text:0000EFF0 B loc_F008 .text:0000EFF4 ; --------------------------------------------------------------------------- .text:0000EFF4 .text:0000EFF4 loc_EFF4 ; CODE XREF: malloc_starter+28j .text:0000EFF4 CMP R1, #0x16 .text:0000EFF8 MOVLS R1, #0x10 .text:0000EFFC BLS loc_F010 .text:0000F000 BIC R1, R1, #7 .text:0000F004 B loc_F010 .text:0000F008 ; --------------------------------------------------------------------------- .text:0000F008 .text:0000F008 loc_F008 ; CODE XREF: malloc_starter+38j .text:0000F008 MOV R0, #0 .text:0000F00C LDMDB R11, {R11,SP,PC} .text:0000F010 ; --------------------------------------------------------------------------- .text:0000F010 .text:0000F010 loc_F010 ; CODE XREF: malloc_starter+44j .text:0000F010 ; malloc_starter+4Cj .text:0000F010 LDR R0, =main_arena .text:0000F014 BL chunk_alloc .text:0000F018 CMP R0, #0 .text:0000F01C ADDNE R0, R0, #8 .text:0000F020 MOVEQ R0, #0 .text:0000F024 LDMDB R11, {R11,SP,PC} .text:0000F024 ; End of function malloc_starter .text:0000F024 .text:0000F024 ; --------------------------------------------------------------------------- .text:0000F028 off_F028 DCD main_arena ; DATA XREF: malloc_starter:loc_F010r .text:0000F02C .text:0000F02C ; =============== S U B R O U T I N E ======================================= .text:0000F02C .text:0000F02C ; Attributes: bp-based frame .text:0000F02C .text:0000F02C free_starter ; DATA XREF: ptmalloc_init+48o .text:0000F02C ; .text:off_B68Co .text:0000F02C MOV R12, SP .text:0000F030 STMFD SP!, {R11,R12,LR,PC} .text:0000F034 SUB R11, R12, #4 .text:0000F038 CMP R0, #0 .text:0000F03C LDMEQDB R11, {R11,SP,PC} .text:0000F040 SUB R1, R0, #8 .text:0000F044 LDR R3, [R1,#4] .text:0000F048 TST R3, #2 .text:0000F04C BEQ loc_F05C .text:0000F050 MOV R0, R1 .text:0000F054 BL munmap_chunk .text:0000F058 LDMDB R11, {R11,SP,PC} .text:0000F05C ; --------------------------------------------------------------------------- .text:0000F05C .text:0000F05C loc_F05C ; CODE XREF: free_starter+20j .text:0000F05C LDR R0, =main_arena .text:0000F060 BL chunk_free .text:0000F064 LDMDB R11, {R11,SP,PC} .text:0000F064 ; End of function free_starter .text:0000F064 .text:0000F064 ; --------------------------------------------------------------------------- .text:0000F068 off_F068 DCD main_arena ; DATA XREF: free_starter:loc_F05Cr .text:0000F06C .text:0000F06C ; =============== S U B R O U T I N E ======================================= .text:0000F06C .text:0000F06C ; Attributes: bp-based frame .text:0000F06C .text:0000F06C malloc_atfork ; DATA XREF: ptmalloc_lock_all+74o .text:0000F06C ; .text:off_B234o .text:0000F06C MOV R12, SP .text:0000F070 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000F074 SUB R11, R12, #4 .text:0000F078 LDR R3, =__libc_internal_tsd_get .text:0000F07C MOV R5, R0 .text:0000F080 LDR R2, [R3] .text:0000F084 MOV R3, #0 .text:0000F088 CMP R2, R3 .text:0000F08C BEQ loc_F0A4 .text:0000F090 MOV R0, R3 .text:0000F094 MOV LR, PC .text:0000F098 MOV PC, R2 .text:0000F09C MOV R3, R0 .text:0000F0A0 B loc_F0AC .text:0000F0A4 ; --------------------------------------------------------------------------- .text:0000F0A4 .text:0000F0A4 loc_F0A4 ; CODE XREF: malloc_atfork+20j .text:0000F0A4 LDR R3, =__libc_tsd_MALLOC_data .text:0000F0A8 LDR R3, [R3] .text:0000F0AC .text:0000F0AC loc_F0AC ; CODE XREF: malloc_atfork+34j .text:0000F0AC CMP R3, #0 .text:0000F0B0 BNE loc_F178 .text:0000F0B4 LDR R3, =save_malloc_hook .text:0000F0B8 LDR R2, =malloc_check .text:0000F0BC LDR R1, [R3] .text:0000F0C0 CMP R1, R2 .text:0000F0C4 BEQ loc_F12C .text:0000F0C8 ADD R1, R5, #0xB .text:0000F0CC CMP R1, R5 .text:0000F0D0 MOVCS R3, #0 .text:0000F0D4 MOVCC R3, #1 .text:0000F0D8 CMP R1, #0 .text:0000F0DC MOVLE R3, #1 .text:0000F0E0 CMP R3, #0 .text:0000F0E4 BEQ loc_F0F8 .text:0000F0E8 .text:0000F0E8 loc_F0E8 ; CODE XREF: malloc_atfork+D4j .text:0000F0E8 ; malloc_atfork+E0j .text:0000F0E8 BL __errno_location .text:0000F0EC MOV R3, #0xC .text:0000F0F0 STR R3, [R0] .text:0000F0F4 B loc_F10C .text:0000F0F8 ; --------------------------------------------------------------------------- .text:0000F0F8 .text:0000F0F8 loc_F0F8 ; CODE XREF: malloc_atfork+78j .text:0000F0F8 CMP R1, #0x16 .text:0000F0FC MOVLS R1, #0x10 .text:0000F100 BLS loc_F114 .text:0000F104 BIC R1, R1, #7 .text:0000F108 B loc_F114 .text:0000F10C ; --------------------------------------------------------------------------- .text:0000F10C .text:0000F10C loc_F10C ; CODE XREF: malloc_atfork+88j .text:0000F10C ; malloc_atfork+C8j .text:0000F10C MOV R0, #0 .text:0000F110 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000F114 ; --------------------------------------------------------------------------- .text:0000F114 .text:0000F114 loc_F114 ; CODE XREF: malloc_atfork+94j .text:0000F114 ; malloc_atfork+9Cj .text:0000F114 LDR R0, =main_arena .text:0000F118 BL chunk_alloc .text:0000F11C CMP R0, #0 .text:0000F120 ADDNE R0, R0, #8 .text:0000F124 MOVEQ R0, #0 .text:0000F128 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000F12C ; --------------------------------------------------------------------------- .text:0000F12C .text:0000F12C loc_F12C ; CODE XREF: malloc_atfork+58j .text:0000F12C BL top_check .text:0000F130 CMP R0, #0 .text:0000F134 BLT loc_F10C .text:0000F138 ADD R1, R5, #0xC .text:0000F13C CMP R1, #0 .text:0000F140 BLE loc_F0E8 .text:0000F144 ADD R3, R5, #1 .text:0000F148 CMP R1, R3 .text:0000F14C BCC loc_F0E8 .text:0000F150 CMP R1, #0x16 .text:0000F154 BIC R1, R1, #7 .text:0000F158 MOVLS R1, #0x10 .text:0000F15C LDR R0, =main_arena .text:0000F160 BL chunk_alloc .text:0000F164 CMP R0, #0 .text:0000F168 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0000F16C MOV R1, R5 .text:0000F170 BL chunk2mem_check .text:0000F174 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000F178 ; --------------------------------------------------------------------------- .text:0000F178 .text:0000F178 loc_F178 ; CODE XREF: malloc_atfork+44j .text:0000F178 LDR R3, =0 .text:0000F17C CMP R3, #0 .text:0000F180 BEQ loc_F19C .text:0000F184 LDR R4, =list_lock .text:0000F188 MOV R0, R4 .text:0000F18C MOV LR, PC .text:0000F190 MOV PC, R3 .text:0000F194 MOV R0, R4 .text:0000F198 B loc_F1AC .text:0000F19C ; --------------------------------------------------------------------------- .text:0000F19C .text:0000F19C loc_F19C ; CODE XREF: malloc_atfork+114j .text:0000F19C LDR R2, =list_lock .text:0000F1A0 MOV R3, #1 .text:0000F1A4 MOV R0, R2 .text:0000F1A8 STR R3, [R2] .text:0000F1AC .text:0000F1AC loc_F1AC ; CODE XREF: malloc_atfork+12Cj .text:0000F1AC LDR R3, =0 .text:0000F1B0 CMP R3, #0 .text:0000F1B4 BEQ loc_F1C4 .text:0000F1B8 MOV LR, PC .text:0000F1BC MOV PC, R3 .text:0000F1C0 B loc_F1C8 .text:0000F1C4 ; --------------------------------------------------------------------------- .text:0000F1C4 .text:0000F1C4 loc_F1C4 ; CODE XREF: malloc_atfork+148j .text:0000F1C4 STR R3, [R0] .text:0000F1C8 .text:0000F1C8 loc_F1C8 ; CODE XREF: malloc_atfork+154j .text:0000F1C8 MOV R0, R5 .text:0000F1CC BL malloc .text:0000F1D0 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000F1D0 ; End of function malloc_atfork .text:0000F1D0 .text:0000F1D0 ; --------------------------------------------------------------------------- .text:0000F1D4 off_F1D4 DCD __libc_internal_tsd_get ; DATA XREF: malloc_atfork+Cr .text:0000F1D8 off_F1D8 DCD __libc_tsd_MALLOC_data .text:0000F1D8 ; DATA XREF: malloc_atfork:loc_F0A4r .text:0000F1DC off_F1DC DCD save_malloc_hook ; DATA XREF: malloc_atfork+48r .text:0000F1E0 off_F1E0 DCD malloc_check ; DATA XREF: malloc_atfork+4Cr .text:0000F1E4 off_F1E4 DCD main_arena ; DATA XREF: malloc_atfork:loc_F114r .text:0000F1E4 ; malloc_atfork+F0r .text:0000F1E8 off_F1E8 DCD 0 ; DATA XREF: malloc_atfork:loc_F178r .text:0000F1EC off_F1EC DCD list_lock ; DATA XREF: malloc_atfork+118r .text:0000F1EC ; malloc_atfork:loc_F19Cr .text:0000F1F0 off_F1F0 DCD 0 ; DATA XREF: malloc_atfork:loc_F1ACr .text:0000F1F4 .text:0000F1F4 ; =============== S U B R O U T I N E ======================================= .text:0000F1F4 .text:0000F1F4 ; Attributes: bp-based frame .text:0000F1F4 .text:0000F1F4 free_atfork ; DATA XREF: ptmalloc_lock_all+84o .text:0000F1F4 ; .text:off_B238o .text:0000F1F4 MOV R12, SP .text:0000F1F8 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000F1FC SUB R11, R12, #4 .text:0000F200 CMP R0, #0 .text:0000F204 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000F208 SUB R6, R0, #8 .text:0000F20C LDR R3, [R6,#4] .text:0000F210 TST R3, #2 .text:0000F214 BEQ loc_F224 .text:0000F218 MOV R0, R6 .text:0000F21C BL munmap_chunk .text:0000F220 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000F224 ; --------------------------------------------------------------------------- .text:0000F224 .text:0000F224 loc_F224 ; CODE XREF: free_atfork+20j .text:0000F224 LDR R0, =main_arena .text:0000F228 LDR R3, [R0,#(main_arena+8 - 0x6B64C)] .text:0000F22C CMP R6, R3 .text:0000F230 BCS loc_F244 .text:0000F234 LDR R3, =sbrk_base .text:0000F238 LDR R2, [R3] .text:0000F23C CMP R6, R2 .text:0000F240 BCS loc_F254 .text:0000F244 .text:0000F244 loc_F244 ; CODE XREF: free_atfork+3Cj .text:0000F244 MOV R3, R6,LSR#20 .text:0000F248 MOV R3, R3,LSL#20 .text:0000F24C LDR R5, [R3] .text:0000F250 B loc_F258 .text:0000F254 ; --------------------------------------------------------------------------- .text:0000F254 .text:0000F254 loc_F254 ; CODE XREF: free_atfork+4Cj .text:0000F254 MOV R5, R0 .text:0000F258 .text:0000F258 loc_F258 ; CODE XREF: free_atfork+5Cj .text:0000F258 LDR R3, =__libc_internal_tsd_get .text:0000F25C LDR R3, [R3] .text:0000F260 CMP R3, #0 .text:0000F264 BEQ loc_F27C .text:0000F268 MOV R0, #0 .text:0000F26C MOV LR, PC .text:0000F270 MOV PC, R3 .text:0000F274 MOV R4, R0 .text:0000F278 B loc_F284 .text:0000F27C ; --------------------------------------------------------------------------- .text:0000F27C .text:0000F27C loc_F27C ; CODE XREF: free_atfork+70j .text:0000F27C LDR R3, =__libc_tsd_MALLOC_data .text:0000F280 LDR R4, [R3] .text:0000F284 .text:0000F284 loc_F284 ; CODE XREF: free_atfork+84j .text:0000F284 CMP R4, #0 .text:0000F288 BEQ loc_F2B0 .text:0000F28C LDR R3, =0 .text:0000F290 CMP R3, #0 .text:0000F294 BEQ loc_F2A8 .text:0000F298 ADD R0, R5, #0x410 .text:0000F29C MOV LR, PC .text:0000F2A0 MOV PC, R3 .text:0000F2A4 B loc_F2B0 .text:0000F2A8 ; --------------------------------------------------------------------------- .text:0000F2A8 .text:0000F2A8 loc_F2A8 ; CODE XREF: free_atfork+A0j .text:0000F2A8 MOV R3, #1 .text:0000F2AC STR R3, [R5,#0x410] .text:0000F2B0 .text:0000F2B0 loc_F2B0 ; CODE XREF: free_atfork+94j .text:0000F2B0 ; free_atfork+B0j .text:0000F2B0 MOV R0, R5 .text:0000F2B4 MOV R1, R6 .text:0000F2B8 BL chunk_free .text:0000F2BC CMP R4, #0 .text:0000F2C0 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000F2C4 LDR R3, =0 .text:0000F2C8 CMP R3, #0 .text:0000F2CC BEQ loc_F2E0 .text:0000F2D0 ADD R0, R5, #0x410 .text:0000F2D4 MOV LR, PC .text:0000F2D8 MOV PC, R3 .text:0000F2DC LDMDB R11, {R4-R6,R11,SP,PC} .text:0000F2E0 ; --------------------------------------------------------------------------- .text:0000F2E0 .text:0000F2E0 loc_F2E0 ; CODE XREF: free_atfork+D8j .text:0000F2E0 STR R3, [R5,#0x410] .text:0000F2E4 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000F2E4 ; End of function free_atfork .text:0000F2E4 .text:0000F2E4 ; --------------------------------------------------------------------------- .text:0000F2E8 off_F2E8 DCD main_arena ; DATA XREF: free_atfork:loc_F224r .text:0000F2EC off_F2EC DCD sbrk_base ; DATA XREF: free_atfork+40r .text:0000F2F0 off_F2F0 DCD __libc_internal_tsd_get .text:0000F2F0 ; DATA XREF: free_atfork:loc_F258r .text:0000F2F4 off_F2F4 DCD __libc_tsd_MALLOC_data ; DATA XREF: free_atfork:loc_F27Cr .text:0000F2F8 off_F2F8 DCD 0 ; DATA XREF: free_atfork+98r .text:0000F2FC off_F2FC DCD 0 ; DATA XREF: free_atfork+D0r .text:0000F300 .text:0000F300 ; =============== S U B R O U T I N E ======================================= .text:0000F300 .text:0000F300 ; Attributes: bp-based frame .text:0000F300 .text:0000F300 WEAK posix_memalign .text:0000F300 posix_memalign .text:0000F300 MOV R12, SP .text:0000F304 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000F308 SUB R11, R12, #4 .text:0000F30C TST R2, #3 .text:0000F310 MOV R5, R0 .text:0000F314 MOV R0, R1 .text:0000F318 BNE loc_F328 .text:0000F31C SUB R3, R2, #1 .text:0000F320 ANDS R4, R2, R3 .text:0000F324 BEQ loc_F330 .text:0000F328 .text:0000F328 loc_F328 ; CODE XREF: posix_memalign+18j .text:0000F328 MOV R0, #0x16 .text:0000F32C LDMDB R11, {R4,R5,R11,SP,PC} .text:0000F330 ; --------------------------------------------------------------------------- .text:0000F330 .text:0000F330 loc_F330 ; CODE XREF: posix_memalign+24j .text:0000F330 MOV R1, R2 .text:0000F334 BL memalign .text:0000F338 SUBS R3, R0, #0 .text:0000F33C MOV R0, #0xC .text:0000F340 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0000F344 MOV R0, R4 .text:0000F348 STR R3, [R5] .text:0000F34C LDMDB R11, {R4,R5,R11,SP,PC} .text:0000F34C ; End of function posix_memalign .text:0000F34C .text:0000F350 .text:0000F350 ; =============== S U B R O U T I N E ======================================= .text:0000F350 .text:0000F350 ; Attributes: bp-based frame .text:0000F350 .text:0000F350 EXPORT __default_morecore .text:0000F350 __default_morecore .text:0000F350 MOV R12, SP .text:0000F354 STMFD SP!, {R11,R12,LR,PC} .text:0000F358 SUB R11, R12, #4 .text:0000F35C BL sbrk .text:0000F360 CMN R0, #1 .text:0000F364 MOVEQ R0, #0 .text:0000F368 LDMDB R11, {R11,SP,PC} .text:0000F368 ; End of function __default_morecore .text:0000F368 .text:0000F36C .text:0000F36C ; =============== S U B R O U T I N E ======================================= .text:0000F36C .text:0000F36C ; Attributes: bp-based frame .text:0000F36C .text:0000F36C WEAK strerror_r .text:0000F36C strerror_r ; CODE XREF: perror+50p .text:0000F36C ; _dl_signal_error+E4p ... .text:0000F36C .text:0000F36C var_2C = -0x2C .text:0000F36C var_28 = -0x28 .text:0000F36C .text:0000F36C MOV R12, SP .text:0000F370 STMFD SP!, {R4-R12,LR,PC} .text:0000F374 SUB R11, R12, #4 .text:0000F378 MOV R10, R1 .text:0000F37C MOV R7, R2 .text:0000F380 SUBS R4, R0, #0 .text:0000F384 SUB SP, SP, #0x18 .text:0000F388 BLT loc_F3AC .text:0000F38C LDR R3, =sys_nerr .text:0000F390 LDR R2, [R3] .text:0000F394 CMP R4, R2 .text:0000F398 BGE loc_F3AC .text:0000F39C LDR R3, =sys_errlist .text:0000F3A0 LDR R1, [R3,R4,LSL#2] .text:0000F3A4 CMP R1, #0 .text:0000F3A8 BNE loc_F468 .text:0000F3AC .text:0000F3AC loc_F3AC ; CODE XREF: strerror_r+1Cj .text:0000F3AC ; strerror_r+2Cj .text:0000F3AC LDR R0, =_libc_intl_domainname ; "libc" .text:0000F3B0 LDR R1, =aUnknownError ; "Unknown error " .text:0000F3B4 MOV R2, #5 .text:0000F3B8 LDR R9, =_itoa_lower_digits .text:0000F3BC BL dcgettext .text:0000F3C0 MOV R8, R0 .text:0000F3C4 BL strlen .text:0000F3C8 MOV R6, R0 .text:0000F3CC SUB R5, R11, #-var_2C .text:0000F3D0 MOV R3, #0 .text:0000F3D4 STRB R3, [R11,#var_2C] .text:0000F3D8 .text:0000F3D8 loc_F3D8 ; CODE XREF: strerror_r+90j .text:0000F3D8 MOV R0, R4 .text:0000F3DC MOV R1, #0xA .text:0000F3E0 BL __umodsi3 .text:0000F3E4 LDRB R3, [R9,R0] .text:0000F3E8 STRB R3, [R5,#-1]! .text:0000F3EC MOV R0, R4 .text:0000F3F0 MOV R1, #0xA .text:0000F3F4 BL __udivsi3 .text:0000F3F8 SUBS R4, R0, #0 .text:0000F3FC BNE loc_F3D8 .text:0000F400 MOV R0, R10 .text:0000F404 MOV R1, R8 .text:0000F408 CMP R7, R6 .text:0000F40C MOVCC R2, R7 .text:0000F410 MOVCS R2, R6 .text:0000F414 BL mempcpy .text:0000F418 CMP R6, R7 .text:0000F41C BCS loc_F440 .text:0000F420 MOV R1, R5 .text:0000F424 SUB R2, R11, #-var_28 .text:0000F428 RSB R3, R5, R2 .text:0000F42C SUB R3, R3, #3 .text:0000F430 RSB R2, R6, R7 .text:0000F434 CMP R3, R2 .text:0000F438 MOVCC R2, R3 .text:0000F43C BL memcpy .text:0000F440 .text:0000F440 loc_F440 ; CODE XREF: strerror_r+B0j .text:0000F440 CMP R7, #0 .text:0000F444 ADDNE R3, R7, R10 .text:0000F448 STRNEB R4, [R3,#-1] .text:0000F44C MOV R0, R10 .text:0000F450 B loc_F474 .text:0000F450 ; --------------------------------------------------------------------------- .text:0000F454 off_F454 DCD sys_nerr ; DATA XREF: strerror_r+20r .text:0000F458 off_F458 DCD sys_errlist ; DATA XREF: strerror_r+30r .text:0000F45C off_F45C DCD _libc_intl_domainname ; DATA XREF: strerror_r:loc_F3ACr .text:0000F45C ; "libc" .text:0000F460 off_F460 DCD aUnknownError ; DATA XREF: strerror_r+44r .text:0000F460 ; "Unknown error " .text:0000F464 off_F464 DCD _itoa_lower_digits ; DATA XREF: strerror_r+4Cr .text:0000F468 ; --------------------------------------------------------------------------- .text:0000F468 .text:0000F468 loc_F468 ; CODE XREF: strerror_r+3Cj .text:0000F468 LDR R0, =_libc_intl_domainname ; "libc" .text:0000F46C MOV R2, #5 .text:0000F470 BL dcgettext .text:0000F474 .text:0000F474 loc_F474 ; CODE XREF: strerror_r+E4j .text:0000F474 B locret_F47C .text:0000F474 ; --------------------------------------------------------------------------- .text:0000F478 off_F478 DCD _libc_intl_domainname ; DATA XREF: strerror_r:loc_F468r .text:0000F478 ; "libc" .text:0000F47C ; --------------------------------------------------------------------------- .text:0000F47C .text:0000F47C locret_F47C ; CODE XREF: strerror_r:loc_F474j .text:0000F47C LDMDB R11, {R4-R11,SP,PC} .text:0000F47C ; End of function strerror_r .text:0000F47C .text:0000F480 .text:0000F480 ; =============== S U B R O U T I N E ======================================= .text:0000F480 .text:0000F480 .text:0000F480 EXPORT strlen .text:0000F480 strlen ; CODE XREF: _IO_str_init_static+24p .text:0000F480 ; strerror_r+58p ... .text:0000F480 BIC R1, R0, #3 .text:0000F484 LDR R2, [R1],#4 .text:0000F488 ANDS R3, R0, #3 .text:0000F48C RSB R0, R3, #0 .text:0000F490 BEQ Laligned .text:0000F494 ORR R2, R2, #0xFF .text:0000F498 SUBS R3, R3, #1 .text:0000F49C ORRGT R2, R2, #0xFF00 .text:0000F4A0 SUBS R3, R3, #1 .text:0000F4A4 ORRGT R2, R2, #0xFF0000 .text:0000F4A8 .text:0000F4A8 Laligned ; CODE XREF: strlen+10j .text:0000F4A8 ; strlen+40j .text:0000F4A8 TST R2, #0xFF .text:0000F4AC TSTNE R2, #0xFF00 .text:0000F4B0 TSTNE R2, #0xFF0000 .text:0000F4B4 TSTNE R2, #0xFF000000 .text:0000F4B8 ADDNE R0, R0, #4 .text:0000F4BC LDRNE R2, [R1],#4 .text:0000F4C0 BNE Laligned .text:0000F4C4 .text:0000F4C4 Llastword .text:0000F4C4 TST R2, #0xFF .text:0000F4C8 ADDNE R0, R0, #1 .text:0000F4CC TSTNE R2, #0xFF00 .text:0000F4D0 ADDNE R0, R0, #1 .text:0000F4D4 TSTNE R2, #0xFF0000 .text:0000F4D8 ADDNE R0, R0, #1 .text:0000F4DC RET .text:0000F4DC ; End of function strlen .text:0000F4DC .text:0000F4E0 .text:0000F4E0 ; =============== S U B R O U T I N E ======================================= .text:0000F4E0 .text:0000F4E0 ; Attributes: bp-based frame .text:0000F4E0 .text:0000F4E0 EXPORT memmove .text:0000F4E0 memmove ; CODE XREF: save_for_backup+DCp .text:0000F4E0 ; chunk_realloc+1C8p ... .text:0000F4E0 MOV R12, SP .text:0000F4E4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000F4E8 SUB R11, R12, #4 .text:0000F4EC MOV R4, R2 .text:0000F4F0 MOV R7, R0 .text:0000F4F4 MOV R6, R7 .text:0000F4F8 MOV R5, R1 .text:0000F4FC RSB R3, R5, R7 .text:0000F500 CMP R3, R4 .text:0000F504 BCC loc_F590 .text:0000F508 CMP R4, #0xF .text:0000F50C BLS loc_F570 .text:0000F510 RSB R3, R7, #0 .text:0000F514 AND R3, R3, #3 .text:0000F518 RSB R4, R3, R4 .text:0000F51C SUBS R2, R3, #0 .text:0000F520 BEQ loc_F534 .text:0000F524 .text:0000F524 loc_F524 ; CODE XREF: memmove+50j .text:0000F524 LDRB R3, [R5],#1 .text:0000F528 SUBS R2, R2, #1 .text:0000F52C STRB R3, [R6],#1 .text:0000F530 BNE loc_F524 .text:0000F534 .text:0000F534 loc_F534 ; CODE XREF: memmove+40j .text:0000F534 TST R5, #3 .text:0000F538 BNE loc_F550 .text:0000F53C MOV R0, R6 .text:0000F540 MOV R1, R5 .text:0000F544 MOV R2, R4,LSR#2 .text:0000F548 BL _wordcopy_fwd_aligned .text:0000F54C B loc_F560 .text:0000F550 ; --------------------------------------------------------------------------- .text:0000F550 .text:0000F550 loc_F550 ; CODE XREF: memmove+58j .text:0000F550 MOV R0, R6 .text:0000F554 MOV R1, R5 .text:0000F558 MOV R2, R4,LSR#2 .text:0000F55C BL _wordcopy_fwd_dest_aligned .text:0000F560 .text:0000F560 loc_F560 ; CODE XREF: memmove+6Cj .text:0000F560 BIC R3, R4, #3 .text:0000F564 ADD R5, R5, R3 .text:0000F568 ADD R6, R6, R3 .text:0000F56C AND R4, R4, #3 .text:0000F570 .text:0000F570 loc_F570 ; CODE XREF: memmove+2Cj .text:0000F570 MOV R2, R4 .text:0000F574 CMP R2, #0 .text:0000F578 BEQ loc_F614 .text:0000F57C .text:0000F57C loc_F57C ; CODE XREF: memmove+A8j .text:0000F57C LDRB R3, [R5],#1 .text:0000F580 SUBS R2, R2, #1 .text:0000F584 STRB R3, [R6],#1 .text:0000F588 BNE loc_F57C .text:0000F58C B loc_F614 .text:0000F590 ; --------------------------------------------------------------------------- .text:0000F590 .text:0000F590 loc_F590 ; CODE XREF: memmove+24j .text:0000F590 ADD R5, R5, R4 .text:0000F594 ADD R6, R7, R4 .text:0000F598 CMP R4, #0xF .text:0000F59C BLS loc_F5FC .text:0000F5A0 AND R3, R6, #3 .text:0000F5A4 RSB R4, R3, R4 .text:0000F5A8 SUBS R2, R3, #0 .text:0000F5AC BEQ loc_F5C0 .text:0000F5B0 .text:0000F5B0 loc_F5B0 ; CODE XREF: memmove+DCj .text:0000F5B0 LDRB R3, [R5,#-1]! .text:0000F5B4 SUBS R2, R2, #1 .text:0000F5B8 STRB R3, [R6,#-1]! .text:0000F5BC BNE loc_F5B0 .text:0000F5C0 .text:0000F5C0 loc_F5C0 ; CODE XREF: memmove+CCj .text:0000F5C0 TST R5, #3 .text:0000F5C4 BNE loc_F5DC .text:0000F5C8 MOV R0, R6 .text:0000F5CC MOV R1, R5 .text:0000F5D0 MOV R2, R4,LSR#2 .text:0000F5D4 BL _wordcopy_bwd_aligned .text:0000F5D8 B loc_F5EC .text:0000F5DC ; --------------------------------------------------------------------------- .text:0000F5DC .text:0000F5DC loc_F5DC ; CODE XREF: memmove+E4j .text:0000F5DC MOV R0, R6 .text:0000F5E0 MOV R1, R5 .text:0000F5E4 MOV R2, R4,LSR#2 .text:0000F5E8 BL _wordcopy_bwd_dest_aligned .text:0000F5EC .text:0000F5EC loc_F5EC ; CODE XREF: memmove+F8j .text:0000F5EC BIC R3, R4, #3 .text:0000F5F0 RSB R5, R3, R5 .text:0000F5F4 RSB R6, R3, R6 .text:0000F5F8 AND R4, R4, #3 .text:0000F5FC .text:0000F5FC loc_F5FC ; CODE XREF: memmove+BCj .text:0000F5FC SUBS R2, R4, #0 .text:0000F600 BEQ loc_F614 .text:0000F604 .text:0000F604 loc_F604 ; CODE XREF: memmove+130j .text:0000F604 LDRB R3, [R5,#-1]! .text:0000F608 SUBS R2, R2, #1 .text:0000F60C STRB R3, [R6,#-1]! .text:0000F610 BNE loc_F604 .text:0000F614 .text:0000F614 loc_F614 ; CODE XREF: memmove+98j .text:0000F614 ; memmove+ACj ... .text:0000F614 MOV R0, R7 .text:0000F618 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000F618 ; End of function memmove .text:0000F618 .text:0000F618 ; --------------------------------------------------------------------------- .text:0000F61C ALIGN 0x10 .text:0000F620 .text:0000F620 ; =============== S U B R O U T I N E ======================================= .text:0000F620 .text:0000F620 .text:0000F620 EXPORT memset .text:0000F620 memset ; CODE XREF: main+A4p .text:0000F620 ; main+B8p ... .text:0000F620 MOV R3, R0 .text:0000F624 CMP R2, #8 .text:0000F628 BLT loc_F688 .text:0000F62C ORR R1, R1, R1,LSL#8 .text:0000F630 ORR R1, R1, R1,LSL#16 .text:0000F634 .text:0000F634 loc_F634 ; CODE XREF: memset+20j .text:0000F634 TST R3, #3 .text:0000F638 STRNEB R1, [R3],#1 .text:0000F63C SUBNE R2, R2, #1 .text:0000F640 BNE loc_F634 .text:0000F644 MOV R12, R1 .text:0000F648 .text:0000F648 loc_F648 ; CODE XREF: memset+64j .text:0000F648 CMP R2, #8 .text:0000F64C BLT loc_F688 .text:0000F650 STMIA R3!, {R1,R12} .text:0000F654 SUB R2, R2, #8 .text:0000F658 CMP R2, #8 .text:0000F65C BLT loc_F688 .text:0000F660 STMIA R3!, {R1,R12} .text:0000F664 SUB R2, R2, #8 .text:0000F668 CMP R2, #8 .text:0000F66C BLT loc_F688 .text:0000F670 STMIA R3!, {R1,R12} .text:0000F674 SUB R2, R2, #8 .text:0000F678 CMP R2, #8 .text:0000F67C STMGEIA R3!, {R1,R12} .text:0000F680 SUBGE R2, R2, #8 .text:0000F684 BGE loc_F648 .text:0000F688 .text:0000F688 loc_F688 ; CODE XREF: memset+8j .text:0000F688 ; memset+2Cj ... .text:0000F688 MOVS R2, R2 .text:0000F68C MOVEQ PC, LR .text:0000F690 RSB R2, R2, #7 .text:0000F694 ADD PC, PC, R2,LSL#2 .text:0000F694 ; End of function memset .text:0000F694 .text:0000F698 ; --------------------------------------------------------------------------- .text:0000F698 NOP .text:0000F69C STRB R1, [R3],#1 .text:0000F6A0 STRB R1, [R3],#1 .text:0000F6A4 STRB R1, [R3],#1 .text:0000F6A8 STRB R1, [R3],#1 .text:0000F6AC STRB R1, [R3],#1 .text:0000F6B0 STRB R1, [R3],#1 .text:0000F6B4 STRB R1, [R3],#1 .text:0000F6B8 RET .text:0000F6B8 ; --------------------------------------------------------------------------- .text:0000F6BC ALIGN 0x10 .text:0000F6C0 .text:0000F6C0 ; =============== S U B R O U T I N E ======================================= .text:0000F6C0 .text:0000F6C0 ; Attributes: bp-based frame .text:0000F6C0 .text:0000F6C0 WEAK mempcpy .text:0000F6C0 mempcpy ; CODE XREF: save_for_backup+74p .text:0000F6C0 ; save_for_backup+80p ... .text:0000F6C0 MOV R12, SP ; Alternative name is '__mempcpy' .text:0000F6C4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000F6C8 SUB R11, R12, #4 .text:0000F6CC MOV R4, R2 .text:0000F6D0 MOV R6, R0 .text:0000F6D4 MOV R5, R1 .text:0000F6D8 CMP R4, #0xF .text:0000F6DC BLS loc_F740 .text:0000F6E0 RSB R3, R6, #0 .text:0000F6E4 AND R3, R3, #3 .text:0000F6E8 RSB R4, R3, R4 .text:0000F6EC SUBS R2, R3, #0 .text:0000F6F0 BEQ loc_F704 .text:0000F6F4 .text:0000F6F4 loc_F6F4 ; CODE XREF: mempcpy+40j .text:0000F6F4 LDRB R3, [R5],#1 .text:0000F6F8 SUBS R2, R2, #1 .text:0000F6FC STRB R3, [R6],#1 .text:0000F700 BNE loc_F6F4 .text:0000F704 .text:0000F704 loc_F704 ; CODE XREF: mempcpy+30j .text:0000F704 TST R5, #3 .text:0000F708 BNE loc_F720 .text:0000F70C MOV R0, R6 .text:0000F710 MOV R1, R5 .text:0000F714 MOV R2, R4,LSR#2 .text:0000F718 BL _wordcopy_fwd_aligned .text:0000F71C B loc_F730 .text:0000F720 ; --------------------------------------------------------------------------- .text:0000F720 .text:0000F720 loc_F720 ; CODE XREF: mempcpy+48j .text:0000F720 MOV R0, R6 .text:0000F724 MOV R1, R5 .text:0000F728 MOV R2, R4,LSR#2 .text:0000F72C BL _wordcopy_fwd_dest_aligned .text:0000F730 .text:0000F730 loc_F730 ; CODE XREF: mempcpy+5Cj .text:0000F730 BIC R3, R4, #3 .text:0000F734 ADD R5, R5, R3 .text:0000F738 ADD R6, R6, R3 .text:0000F73C AND R4, R4, #3 .text:0000F740 .text:0000F740 loc_F740 ; CODE XREF: mempcpy+1Cj .text:0000F740 SUBS R2, R4, #0 .text:0000F744 BEQ loc_F758 .text:0000F748 .text:0000F748 loc_F748 ; CODE XREF: mempcpy+94j .text:0000F748 LDRB R3, [R5],#1 .text:0000F74C SUBS R2, R2, #1 .text:0000F750 STRB R3, [R6],#1 .text:0000F754 BNE loc_F748 .text:0000F758 .text:0000F758 loc_F758 ; CODE XREF: mempcpy+84j .text:0000F758 MOV R0, R6 .text:0000F75C LDMDB R11, {R4-R6,R11,SP,PC} .text:0000F75C ; End of function mempcpy .text:0000F75C .text:0000F760 .text:0000F760 ; =============== S U B R O U T I N E ======================================= .text:0000F760 .text:0000F760 ; Attributes: bp-based frame .text:0000F760 .text:0000F760 EXPORT memcpy .text:0000F760 memcpy ; CODE XREF: read_data_from_usbd+98p .text:0000F760 ; check_usbd_data+24p ... .text:0000F760 MOV R12, SP .text:0000F764 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000F768 SUB R11, R12, #4 .text:0000F76C MOV R4, R2 .text:0000F770 MOV R7, R0 .text:0000F774 MOV R6, R7 .text:0000F778 MOV R5, R1 .text:0000F77C CMP R4, #0xF .text:0000F780 BLS loc_F7E4 .text:0000F784 RSB R3, R7, #0 .text:0000F788 AND R3, R3, #3 .text:0000F78C RSB R4, R3, R4 .text:0000F790 SUBS R2, R3, #0 .text:0000F794 BEQ loc_F7A8 .text:0000F798 .text:0000F798 loc_F798 ; CODE XREF: memcpy+44j .text:0000F798 LDRB R3, [R5],#1 .text:0000F79C SUBS R2, R2, #1 .text:0000F7A0 STRB R3, [R6],#1 .text:0000F7A4 BNE loc_F798 .text:0000F7A8 .text:0000F7A8 loc_F7A8 ; CODE XREF: memcpy+34j .text:0000F7A8 TST R5, #3 .text:0000F7AC BNE loc_F7C4 .text:0000F7B0 MOV R0, R6 .text:0000F7B4 MOV R1, R5 .text:0000F7B8 MOV R2, R4,LSR#2 .text:0000F7BC BL _wordcopy_fwd_aligned .text:0000F7C0 B loc_F7D4 .text:0000F7C4 ; --------------------------------------------------------------------------- .text:0000F7C4 .text:0000F7C4 loc_F7C4 ; CODE XREF: memcpy+4Cj .text:0000F7C4 MOV R0, R6 .text:0000F7C8 MOV R1, R5 .text:0000F7CC MOV R2, R4,LSR#2 .text:0000F7D0 BL _wordcopy_fwd_dest_aligned .text:0000F7D4 .text:0000F7D4 loc_F7D4 ; CODE XREF: memcpy+60j .text:0000F7D4 BIC R3, R4, #3 .text:0000F7D8 ADD R5, R5, R3 .text:0000F7DC ADD R6, R6, R3 .text:0000F7E0 AND R4, R4, #3 .text:0000F7E4 .text:0000F7E4 loc_F7E4 ; CODE XREF: memcpy+20j .text:0000F7E4 SUBS R2, R4, #0 .text:0000F7E8 BEQ loc_F7FC .text:0000F7EC .text:0000F7EC loc_F7EC ; CODE XREF: memcpy+98j .text:0000F7EC LDRB R3, [R5],#1 .text:0000F7F0 SUBS R2, R2, #1 .text:0000F7F4 STRB R3, [R6],#1 .text:0000F7F8 BNE loc_F7EC .text:0000F7FC .text:0000F7FC loc_F7FC ; CODE XREF: memcpy+88j .text:0000F7FC MOV R0, R7 .text:0000F800 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000F800 ; End of function memcpy .text:0000F800 .text:0000F804 .text:0000F804 ; =============== S U B R O U T I N E ======================================= .text:0000F804 .text:0000F804 ; Attributes: bp-based frame .text:0000F804 .text:0000F804 EXPORT _wordcopy_fwd_aligned .text:0000F804 _wordcopy_fwd_aligned ; CODE XREF: memmove+68p .text:0000F804 ; mempcpy+58p ... .text:0000F804 MOV R12, SP .text:0000F808 STMFD SP!, {R11,R12,LR,PC} .text:0000F80C SUB R11, R12, #4 .text:0000F810 AND R3, R2, #7 .text:0000F814 CMP R3, #7 ; switch 8 cases .text:0000F818 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0000F81C B loc_F8B4 ; jumptable 0000F818 default case .text:0000F81C ; --------------------------------------------------------------------------- .text:0000F820 DCD loc_F8A0 ; jump table for switch statement .text:0000F820 DCD loc_F8AC .text:0000F820 DCD loc_F840 .text:0000F820 DCD loc_F850 .text:0000F820 DCD loc_F860 .text:0000F820 DCD loc_F870 .text:0000F820 DCD loc_F880 .text:0000F820 DCD loc_F890 .text:0000F840 ; --------------------------------------------------------------------------- .text:0000F840 .text:0000F840 loc_F840 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F840 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F840 LDR R3, [R1],#-0x18 ; jumptable 0000F818 case 2 .text:0000F844 SUB R0, R0, #0x1C .text:0000F848 ADD R2, R2, #6 .text:0000F84C B loc_F8EC .text:0000F850 ; --------------------------------------------------------------------------- .text:0000F850 .text:0000F850 loc_F850 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F850 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F850 LDR R12, [R1],#-0x14 ; jumptable 0000F818 case 3 .text:0000F854 SUB R0, R0, #0x18 .text:0000F858 ADD R2, R2, #5 .text:0000F85C B loc_F8E4 .text:0000F860 ; --------------------------------------------------------------------------- .text:0000F860 .text:0000F860 loc_F860 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F860 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F860 LDR R3, [R1],#-0x10 ; jumptable 0000F818 case 4 .text:0000F864 SUB R0, R0, #0x14 .text:0000F868 ADD R2, R2, #4 .text:0000F86C B loc_F8DC .text:0000F870 ; --------------------------------------------------------------------------- .text:0000F870 .text:0000F870 loc_F870 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F870 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F870 LDR R12, [R1],#-0xC ; jumptable 0000F818 case 5 .text:0000F874 SUB R0, R0, #0x10 .text:0000F878 ADD R2, R2, #3 .text:0000F87C B loc_F8D4 .text:0000F880 ; --------------------------------------------------------------------------- .text:0000F880 .text:0000F880 loc_F880 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F880 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F880 LDR R3, [R1],#-8 ; jumptable 0000F818 case 6 .text:0000F884 SUB R0, R0, #0xC .text:0000F888 ADD R2, R2, #2 .text:0000F88C B loc_F8CC .text:0000F890 ; --------------------------------------------------------------------------- .text:0000F890 .text:0000F890 loc_F890 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F890 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F890 SUB R0, R0, #8 ; jumptable 0000F818 case 7 .text:0000F894 ADD R2, R2, #1 .text:0000F898 LDR R12, [R1],#-4 .text:0000F89C B loc_F8C4 .text:0000F8A0 ; --------------------------------------------------------------------------- .text:0000F8A0 .text:0000F8A0 loc_F8A0 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F8A0 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F8A0 SUB R0, R0, #4 ; jumptable 0000F818 case 0 .text:0000F8A4 LDR R3, [R1] .text:0000F8A8 B loc_F8BC .text:0000F8AC ; --------------------------------------------------------------------------- .text:0000F8AC .text:0000F8AC loc_F8AC ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F8AC ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F8AC SUB R2, R2, #1 ; jumptable 0000F818 case 1 .text:0000F8B0 LDR R12, [R1],#4 .text:0000F8B4 .text:0000F8B4 loc_F8B4 ; CODE XREF: _wordcopy_fwd_aligned+18j .text:0000F8B4 ; _wordcopy_fwd_aligned+FCj .text:0000F8B4 LDR R3, [R1] ; jumptable 0000F818 default case .text:0000F8B8 STR R12, [R0] .text:0000F8BC .text:0000F8BC loc_F8BC ; CODE XREF: _wordcopy_fwd_aligned+A4j .text:0000F8BC LDR R12, [R1,#4] .text:0000F8C0 STR R3, [R0,#4] .text:0000F8C4 .text:0000F8C4 loc_F8C4 ; CODE XREF: _wordcopy_fwd_aligned+98j .text:0000F8C4 LDR R3, [R1,#8] .text:0000F8C8 STR R12, [R0,#8] .text:0000F8CC .text:0000F8CC loc_F8CC ; CODE XREF: _wordcopy_fwd_aligned+88j .text:0000F8CC LDR R12, [R1,#0xC] .text:0000F8D0 STR R3, [R0,#0xC] .text:0000F8D4 .text:0000F8D4 loc_F8D4 ; CODE XREF: _wordcopy_fwd_aligned+78j .text:0000F8D4 LDR R3, [R1,#0x10] .text:0000F8D8 STR R12, [R0,#0x10] .text:0000F8DC .text:0000F8DC loc_F8DC ; CODE XREF: _wordcopy_fwd_aligned+68j .text:0000F8DC LDR R12, [R1,#0x14] .text:0000F8E0 STR R3, [R0,#0x14] .text:0000F8E4 .text:0000F8E4 loc_F8E4 ; CODE XREF: _wordcopy_fwd_aligned+58j .text:0000F8E4 LDR R3, [R1,#0x18] .text:0000F8E8 STR R12, [R0,#0x18] .text:0000F8EC .text:0000F8EC loc_F8EC ; CODE XREF: _wordcopy_fwd_aligned+48j .text:0000F8EC LDR R12, [R1,#0x1C] .text:0000F8F0 ADD R1, R1, #0x20 .text:0000F8F4 STR R3, [R0,#0x1C] .text:0000F8F8 ADD R0, R0, #0x20 .text:0000F8FC SUBS R2, R2, #8 .text:0000F900 BNE loc_F8B4 ; jumptable 0000F818 default case .text:0000F904 STR R12, [R0] .text:0000F908 LDMDB R11, {R11,SP,PC} .text:0000F908 ; End of function _wordcopy_fwd_aligned .text:0000F908 .text:0000F90C .text:0000F90C ; =============== S U B R O U T I N E ======================================= .text:0000F90C .text:0000F90C ; Attributes: bp-based frame .text:0000F90C .text:0000F90C EXPORT _wordcopy_fwd_dest_aligned .text:0000F90C _wordcopy_fwd_dest_aligned ; CODE XREF: memmove+7Cp .text:0000F90C ; mempcpy+6Cp ... .text:0000F90C MOV R12, SP .text:0000F910 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000F914 SUB R11, R12, #4 .text:0000F918 AND R3, R1, #3 .text:0000F91C BIC R1, R1, #3 .text:0000F920 MOV R6, R3,LSL#3 .text:0000F924 RSB R7, R6, #0x20 .text:0000F928 AND R3, R2, #3 .text:0000F92C CMP R3, #3 ; switch 4 cases .text:0000F930 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0000F934 B loc_F994 ; jumptable 0000F930 default case .text:0000F934 ; --------------------------------------------------------------------------- .text:0000F938 DCD loc_F974 ; jump table for switch statement .text:0000F938 DCD loc_F984 .text:0000F938 DCD loc_F948 .text:0000F938 DCD loc_F960 .text:0000F948 ; --------------------------------------------------------------------------- .text:0000F948 .text:0000F948 loc_F948 ; CODE XREF: _wordcopy_fwd_dest_aligned+24j .text:0000F948 ; DATA XREF: _wordcopy_fwd_dest_aligned+2Co .text:0000F948 LDR LR, [R1] ; jumptable 0000F930 case 2 .text:0000F94C LDR R5, [R1,#4] .text:0000F950 SUB R1, R1, #4 .text:0000F954 SUB R0, R0, #0xC .text:0000F958 ADD R2, R2, #2 .text:0000F95C B loc_F9C4 .text:0000F960 ; --------------------------------------------------------------------------- .text:0000F960 .text:0000F960 loc_F960 ; CODE XREF: _wordcopy_fwd_dest_aligned+24j .text:0000F960 ; DATA XREF: _wordcopy_fwd_dest_aligned+2Co .text:0000F960 SUB R0, R0, #8 ; jumptable 0000F930 case 3 .text:0000F964 LDR R12, [R1] .text:0000F968 ADD R2, R2, #1 .text:0000F96C LDR LR, [R1,#4] .text:0000F970 B loc_F9B4 .text:0000F974 ; --------------------------------------------------------------------------- .text:0000F974 .text:0000F974 loc_F974 ; CODE XREF: _wordcopy_fwd_dest_aligned+24j .text:0000F974 ; DATA XREF: _wordcopy_fwd_dest_aligned+2Co .text:0000F974 LDR R4, [R1] ; jumptable 0000F930 case 0 .text:0000F978 SUB R0, R0, #4 .text:0000F97C LDR R12, [R1,#4]! .text:0000F980 B loc_F9A4 .text:0000F984 ; --------------------------------------------------------------------------- .text:0000F984 .text:0000F984 loc_F984 ; CODE XREF: _wordcopy_fwd_dest_aligned+24j .text:0000F984 ; DATA XREF: _wordcopy_fwd_dest_aligned+2Co .text:0000F984 LDR R5, [R1] ; jumptable 0000F930 case 1 .text:0000F988 LDR R4, [R1,#4] .text:0000F98C ADD R1, R1, #8 .text:0000F990 SUB R2, R2, #1 .text:0000F994 .text:0000F994 loc_F994 ; CODE XREF: _wordcopy_fwd_dest_aligned+28j .text:0000F994 ; _wordcopy_fwd_dest_aligned+D4j .text:0000F994 MOV R3, R4,LSL R7 ; jumptable 0000F930 default case .text:0000F998 LDR R12, [R1] .text:0000F99C ORR R3, R3, R5,LSR R6 .text:0000F9A0 STR R3, [R0] .text:0000F9A4 .text:0000F9A4 loc_F9A4 ; CODE XREF: _wordcopy_fwd_dest_aligned+74j .text:0000F9A4 MOV R3, R12,LSL R7 .text:0000F9A8 LDR LR, [R1,#4] .text:0000F9AC ORR R3, R3, R4,LSR R6 .text:0000F9B0 STR R3, [R0,#4] .text:0000F9B4 .text:0000F9B4 loc_F9B4 ; CODE XREF: _wordcopy_fwd_dest_aligned+64j .text:0000F9B4 MOV R3, LR,LSL R7 .text:0000F9B8 LDR R5, [R1,#8] .text:0000F9BC ORR R3, R3, R12,LSR R6 .text:0000F9C0 STR R3, [R0,#8] .text:0000F9C4 .text:0000F9C4 loc_F9C4 ; CODE XREF: _wordcopy_fwd_dest_aligned+50j .text:0000F9C4 LDR R4, [R1,#0xC] .text:0000F9C8 ADD R1, R1, #0x10 .text:0000F9CC MOV R3, R5,LSL R7 .text:0000F9D0 ORR R3, R3, LR,LSR R6 .text:0000F9D4 STR R3, [R0,#0xC] .text:0000F9D8 ADD R0, R0, #0x10 .text:0000F9DC SUBS R2, R2, #4 .text:0000F9E0 BNE loc_F994 ; jumptable 0000F930 default case .text:0000F9E4 MOV R3, R4,LSL R7 .text:0000F9E8 ORR R3, R3, R5,LSR R6 .text:0000F9EC STR R3, [R0] .text:0000F9F0 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000F9F0 ; End of function _wordcopy_fwd_dest_aligned .text:0000F9F0 .text:0000F9F4 .text:0000F9F4 ; =============== S U B R O U T I N E ======================================= .text:0000F9F4 .text:0000F9F4 ; Attributes: bp-based frame .text:0000F9F4 .text:0000F9F4 EXPORT _wordcopy_bwd_aligned .text:0000F9F4 _wordcopy_bwd_aligned ; CODE XREF: memmove+F4p .text:0000F9F4 MOV R12, SP .text:0000F9F8 STMFD SP!, {R11,R12,LR,PC} .text:0000F9FC SUB R11, R12, #4 .text:0000FA00 AND R3, R2, #7 .text:0000FA04 CMP R3, #7 ; switch 8 cases .text:0000FA08 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0000FA0C B loc_FAC8 ; jumptable 0000FA08 default case .text:0000FA0C ; --------------------------------------------------------------------------- .text:0000FA10 DCD loc_FAA8 ; jump table for switch statement .text:0000FA10 DCD loc_FAB8 .text:0000FA10 DCD loc_FA30 .text:0000FA10 DCD loc_FA44 .text:0000FA10 DCD loc_FA58 .text:0000FA10 DCD loc_FA6C .text:0000FA10 DCD loc_FA80 .text:0000FA10 DCD loc_FA94 .text:0000FA30 ; --------------------------------------------------------------------------- .text:0000FA30 .text:0000FA30 loc_FA30 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000FA30 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000FA30 SUB R1, R1, #8 ; jumptable 0000FA08 case 2 .text:0000FA34 SUB R0, R0, #4 .text:0000FA38 ADD R2, R2, #6 .text:0000FA3C LDR R3, [R1,#4] .text:0000FA40 B loc_FB00 .text:0000FA44 ; --------------------------------------------------------------------------- .text:0000FA44 .text:0000FA44 loc_FA44 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000FA44 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000FA44 SUB R1, R1, #0xC ; jumptable 0000FA08 case 3 .text:0000FA48 SUB R0, R0, #8 .text:0000FA4C ADD R2, R2, #5 .text:0000FA50 LDR R12, [R1,#8] .text:0000FA54 B loc_FAF8 .text:0000FA58 ; --------------------------------------------------------------------------- .text:0000FA58 .text:0000FA58 loc_FA58 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000FA58 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000FA58 SUB R1, R1, #0x10 ; jumptable 0000FA08 case 4 .text:0000FA5C SUB R0, R0, #0xC .text:0000FA60 ADD R2, R2, #4 .text:0000FA64 LDR R3, [R1,#0xC] .text:0000FA68 B loc_FAF0 .text:0000FA6C ; --------------------------------------------------------------------------- .text:0000FA6C .text:0000FA6C loc_FA6C ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000FA6C ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000FA6C SUB R1, R1, #0x14 ; jumptable 0000FA08 case 5 .text:0000FA70 SUB R0, R0, #0x10 .text:0000FA74 ADD R2, R2, #3 .text:0000FA78 LDR R12, [R1,#0x10] .text:0000FA7C B loc_FAE8 .text:0000FA80 ; --------------------------------------------------------------------------- .text:0000FA80 .text:0000FA80 loc_FA80 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000FA80 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000FA80 SUB R1, R1, #0x18 ; jumptable 0000FA08 case 6 .text:0000FA84 SUB R0, R0, #0x14 .text:0000FA88 ADD R2, R2, #2 .text:0000FA8C LDR R3, [R1,#0x14] .text:0000FA90 B loc_FAE0 .text:0000FA94 ; --------------------------------------------------------------------------- .text:0000FA94 .text:0000FA94 loc_FA94 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000FA94 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000FA94 SUB R1, R1, #0x1C ; jumptable 0000FA08 case 7 .text:0000FA98 SUB R0, R0, #0x18 .text:0000FA9C ADD R2, R2, #1 .text:0000FAA0 LDR R12, [R1,#0x18] .text:0000FAA4 B loc_FAD8 .text:0000FAA8 ; --------------------------------------------------------------------------- .text:0000FAA8 .text:0000FAA8 loc_FAA8 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000FAA8 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000FAA8 SUB R1, R1, #0x20 ; jumptable 0000FA08 case 0 .text:0000FAAC SUB R0, R0, #0x1C .text:0000FAB0 LDR R3, [R1,#0x1C] .text:0000FAB4 B loc_FAD0 .text:0000FAB8 ; --------------------------------------------------------------------------- .text:0000FAB8 .text:0000FAB8 loc_FAB8 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000FAB8 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000FAB8 SUB R1, R1, #0x24 ; jumptable 0000FA08 case 1 .text:0000FABC SUB R0, R0, #0x20 .text:0000FAC0 SUB R2, R2, #1 .text:0000FAC4 LDR R12, [R1,#0x20] .text:0000FAC8 .text:0000FAC8 loc_FAC8 ; CODE XREF: _wordcopy_bwd_aligned+18j .text:0000FAC8 ; _wordcopy_bwd_aligned+118j .text:0000FAC8 LDR R3, [R1,#0x1C] ; jumptable 0000FA08 default case .text:0000FACC STR R12, [R0,#0x1C] .text:0000FAD0 .text:0000FAD0 loc_FAD0 ; CODE XREF: _wordcopy_bwd_aligned+C0j .text:0000FAD0 LDR R12, [R1,#0x18] .text:0000FAD4 STR R3, [R0,#0x18] .text:0000FAD8 .text:0000FAD8 loc_FAD8 ; CODE XREF: _wordcopy_bwd_aligned+B0j .text:0000FAD8 LDR R3, [R1,#0x14] .text:0000FADC STR R12, [R0,#0x14] .text:0000FAE0 .text:0000FAE0 loc_FAE0 ; CODE XREF: _wordcopy_bwd_aligned+9Cj .text:0000FAE0 LDR R12, [R1,#0x10] .text:0000FAE4 STR R3, [R0,#0x10] .text:0000FAE8 .text:0000FAE8 loc_FAE8 ; CODE XREF: _wordcopy_bwd_aligned+88j .text:0000FAE8 LDR R3, [R1,#0xC] .text:0000FAEC STR R12, [R0,#0xC] .text:0000FAF0 .text:0000FAF0 loc_FAF0 ; CODE XREF: _wordcopy_bwd_aligned+74j .text:0000FAF0 LDR R12, [R1,#8] .text:0000FAF4 STR R3, [R0,#8] .text:0000FAF8 .text:0000FAF8 loc_FAF8 ; CODE XREF: _wordcopy_bwd_aligned+60j .text:0000FAF8 LDR R3, [R1,#4] .text:0000FAFC STR R12, [R0,#4] .text:0000FB00 .text:0000FB00 loc_FB00 ; CODE XREF: _wordcopy_bwd_aligned+4Cj .text:0000FB00 LDR R12, [R1],#-0x20 .text:0000FB04 STR R3, [R0],#-0x20 .text:0000FB08 SUBS R2, R2, #8 .text:0000FB0C BNE loc_FAC8 ; jumptable 0000FA08 default case .text:0000FB10 STR R12, [R0,#0x1C] .text:0000FB14 LDMDB R11, {R11,SP,PC} .text:0000FB14 ; End of function _wordcopy_bwd_aligned .text:0000FB14 .text:0000FB18 .text:0000FB18 ; =============== S U B R O U T I N E ======================================= .text:0000FB18 .text:0000FB18 ; Attributes: bp-based frame .text:0000FB18 .text:0000FB18 EXPORT _wordcopy_bwd_dest_aligned .text:0000FB18 _wordcopy_bwd_dest_aligned ; CODE XREF: memmove+108p .text:0000FB18 MOV R12, SP .text:0000FB1C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000FB20 SUB R11, R12, #4 .text:0000FB24 AND R3, R1, #3 .text:0000FB28 BIC R1, R1, #3 .text:0000FB2C ADD R1, R1, #4 .text:0000FB30 MOV R6, R3,LSL#3 .text:0000FB34 RSB R7, R6, #0x20 .text:0000FB38 AND R3, R2, #3 .text:0000FB3C CMP R3, #3 ; switch 4 cases .text:0000FB40 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0000FB44 B loc_FBB0 ; jumptable 0000FB40 default case .text:0000FB44 ; --------------------------------------------------------------------------- .text:0000FB48 DCD loc_FB88 ; jump table for switch statement .text:0000FB48 DCD loc_FB9C .text:0000FB48 DCD loc_FB58 .text:0000FB48 DCD loc_FB70 .text:0000FB58 ; --------------------------------------------------------------------------- .text:0000FB58 .text:0000FB58 loc_FB58 ; CODE XREF: _wordcopy_bwd_dest_aligned+28j .text:0000FB58 ; DATA XREF: _wordcopy_bwd_dest_aligned+30o .text:0000FB58 SUB R1, R1, #0xC ; jumptable 0000FB40 case 2 .text:0000FB5C SUB R0, R0, #4 .text:0000FB60 LDR LR, [R1,#8] .text:0000FB64 ADD R2, R2, #2 .text:0000FB68 LDR R4, [R1,#4] .text:0000FB6C B loc_FBE0 .text:0000FB70 ; --------------------------------------------------------------------------- .text:0000FB70 .text:0000FB70 loc_FB70 ; CODE XREF: _wordcopy_bwd_dest_aligned+28j .text:0000FB70 ; DATA XREF: _wordcopy_bwd_dest_aligned+30o .text:0000FB70 SUB R1, R1, #0x10 ; jumptable 0000FB40 case 3 .text:0000FB74 SUB R0, R0, #8 .text:0000FB78 LDR R12, [R1,#0xC] .text:0000FB7C ADD R2, R2, #1 .text:0000FB80 LDR LR, [R1,#8] .text:0000FB84 B loc_FBD0 .text:0000FB88 ; --------------------------------------------------------------------------- .text:0000FB88 .text:0000FB88 loc_FB88 ; CODE XREF: _wordcopy_bwd_dest_aligned+28j .text:0000FB88 ; DATA XREF: _wordcopy_bwd_dest_aligned+30o .text:0000FB88 SUB R1, R1, #0x14 ; jumptable 0000FB40 case 0 .text:0000FB8C LDR R5, [R1,#0x10] .text:0000FB90 SUB R0, R0, #0xC .text:0000FB94 LDR R12, [R1,#0xC] .text:0000FB98 B loc_FBC0 .text:0000FB9C ; --------------------------------------------------------------------------- .text:0000FB9C .text:0000FB9C loc_FB9C ; CODE XREF: _wordcopy_bwd_dest_aligned+28j .text:0000FB9C ; DATA XREF: _wordcopy_bwd_dest_aligned+30o .text:0000FB9C SUB R1, R1, #0x18 ; jumptable 0000FB40 case 1 .text:0000FBA0 SUB R0, R0, #0x10 .text:0000FBA4 LDR R4, [R1,#0x14] .text:0000FBA8 SUB R2, R2, #1 .text:0000FBAC LDR R5, [R1,#0x10] .text:0000FBB0 .text:0000FBB0 loc_FBB0 ; CODE XREF: _wordcopy_bwd_dest_aligned+2Cj .text:0000FBB0 ; _wordcopy_bwd_dest_aligned+DCj .text:0000FBB0 MOV R3, R4,LSL R7 ; jumptable 0000FB40 default case .text:0000FBB4 LDR R12, [R1,#0xC] .text:0000FBB8 ORR R3, R3, R5,LSR R6 .text:0000FBBC STR R3, [R0,#0xC] .text:0000FBC0 .text:0000FBC0 loc_FBC0 ; CODE XREF: _wordcopy_bwd_dest_aligned+80j .text:0000FBC0 MOV R3, R5,LSL R7 .text:0000FBC4 LDR LR, [R1,#8] .text:0000FBC8 ORR R3, R3, R12,LSR R6 .text:0000FBCC STR R3, [R0,#8] .text:0000FBD0 .text:0000FBD0 loc_FBD0 ; CODE XREF: _wordcopy_bwd_dest_aligned+6Cj .text:0000FBD0 MOV R3, R12,LSL R7 .text:0000FBD4 LDR R4, [R1,#4] .text:0000FBD8 ORR R3, R3, LR,LSR R6 .text:0000FBDC STR R3, [R0,#4] .text:0000FBE0 .text:0000FBE0 loc_FBE0 ; CODE XREF: _wordcopy_bwd_dest_aligned+54j .text:0000FBE0 LDR R5, [R1],#-0x10 .text:0000FBE4 MOV R3, LR,LSL R7 .text:0000FBE8 ORR R3, R3, R4,LSR R6 .text:0000FBEC STR R3, [R0],#-0x10 .text:0000FBF0 SUBS R2, R2, #4 .text:0000FBF4 BNE loc_FBB0 ; jumptable 0000FB40 default case .text:0000FBF8 MOV R3, R4,LSL R7 .text:0000FBFC ORR R3, R3, R5,LSR R6 .text:0000FC00 STR R3, [R0,#0xC] .text:0000FC04 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000FC04 ; End of function _wordcopy_bwd_dest_aligned .text:0000FC04 .text:0000FC08 .text:0000FC08 ; =============== S U B R O U T I N E ======================================= .text:0000FC08 .text:0000FC08 ; Attributes: bp-based frame .text:0000FC08 .text:0000FC08 WEAK waitpid .text:0000FC08 waitpid ; CODE XREF: system+1E8p .text:0000FC08 MOV R12, SP ; Alternative name is '__libc_waitpid' .text:0000FC0C STMFD SP!, {R11,R12,LR,PC} .text:0000FC10 SUB R11, R12, #4 .text:0000FC14 MOV R3, #0 .text:0000FC18 BL wait4 .text:0000FC1C LDMDB R11, {R11,SP,PC} .text:0000FC1C ; End of function waitpid .text:0000FC1C .text:0000FC20 .text:0000FC20 ; =============== S U B R O U T I N E ======================================= .text:0000FC20 .text:0000FC20 .text:0000FC20 WEAK wait4 .text:0000FC20 wait4 ; CODE XREF: waitpid+10p .text:0000FC20 SVC 0x900072 .text:0000FC24 CMN R0, #0x1000 .text:0000FC28 MOVCC PC, LR .text:0000FC2C B __syscall_error .text:0000FC2C ; End of function wait4 .text:0000FC2C .text:0000FC30 .text:0000FC30 ; =============== S U B R O U T I N E ======================================= .text:0000FC30 .text:0000FC30 .text:0000FC30 WEAK fork .text:0000FC30 fork ; CODE XREF: system:loc_9358p .text:0000FC30 SVC 0x900002 ; Alternative name is '__libc_fork' .text:0000FC34 CMN R0, #0x1000 .text:0000FC38 MOVCC PC, LR .text:0000FC3C B __syscall_error .text:0000FC3C ; End of function fork .text:0000FC3C .text:0000FC40 .text:0000FC40 ; =============== S U B R O U T I N E ======================================= .text:0000FC40 .text:0000FC40 ; Attributes: noreturn .text:0000FC40 .text:0000FC40 ; void exit(int status) .text:0000FC40 WEAK _exit .text:0000FC40 _exit ; CODE XREF: abort+19Cp .text:0000FC40 ; exit+10Cp ... .text:0000FC40 SVC 0x900001 .text:0000FC44 CMN R0, #0x1000 .text:0000FC48 NOP .text:0000FC4C NOP .text:0000FC4C ; End of function _exit .text:0000FC4C .text:0000FC50 .text:0000FC50 ; =============== S U B R O U T I N E ======================================= .text:0000FC50 .text:0000FC50 ; Attributes: bp-based frame .text:0000FC50 .text:0000FC50 WEAK execve .text:0000FC50 execve ; CODE XREF: system+1C8p .text:0000FC50 MOV R12, SP ; Alternative name is '__execve' .text:0000FC54 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000FC58 SUB R11, R12, #4 .text:0000FC5C MOV R5, R0 .text:0000FC60 MOV R6, R1 .text:0000FC64 LDR R3, =0 .text:0000FC68 MOV R4, R2 .text:0000FC6C CMP R3, #0 .text:0000FC70 BEQ loc_FC7C .text:0000FC74 MOV LR, PC .text:0000FC78 MOV PC, R3 .text:0000FC7C .text:0000FC7C loc_FC7C ; CODE XREF: execve+20j .text:0000FC7C MOV R0, R5 .text:0000FC80 MOV R2, R4 .text:0000FC84 MOV R1, R6 .text:0000FC88 SVC 0x90000B .text:0000FC8C MOV R4, R0 .text:0000FC90 CMN R4, #0x1000 .text:0000FC94 BLS loc_FCA8 .text:0000FC98 BL __errno_location .text:0000FC9C RSB R3, R4, #0 .text:0000FCA0 MOV R4, 0xFFFFFFFF .text:0000FCA4 STR R3, [R0] .text:0000FCA8 .text:0000FCA8 loc_FCA8 ; CODE XREF: execve+44j .text:0000FCA8 MOV R0, R4 .text:0000FCAC LDMDB R11, {R4-R6,R11,SP,PC} .text:0000FCAC ; End of function execve .text:0000FCAC .text:0000FCAC ; --------------------------------------------------------------------------- .text:0000FCB0 off_FCB0 DCD 0 ; DATA XREF: execve+14r .text:0000FCB4 .text:0000FCB4 ; =============== S U B R O U T I N E ======================================= .text:0000FCB4 .text:0000FCB4 ; Attributes: bp-based frame .text:0000FCB4 .text:0000FCB4 WEAK __fxstat64 .text:0000FCB4 __fxstat64 ; CODE XREF: check_one_fd+54p .text:0000FCB4 ; _dl_map_object_from_fd+30p ... .text:0000FCB4 .text:0000FCB4 var_68 = -0x68 .text:0000FCB4 var_67 = -0x67 .text:0000FCB4 var_64 = -0x64 .text:0000FCB4 var_60 = -0x60 .text:0000FCB4 var_5F = -0x5F .text:0000FCB4 var_5E = -0x5E .text:0000FCB4 var_5D = -0x5D .text:0000FCB4 var_5C = -0x5C .text:0000FCB4 var_5B = -0x5B .text:0000FCB4 var_5A = -0x5A .text:0000FCB4 var_59 = -0x59 .text:0000FCB4 var_58 = -0x58 .text:0000FCB4 var_57 = -0x57 .text:0000FCB4 var_54 = -0x54 .text:0000FCB4 var_50 = -0x50 .text:0000FCB4 var_4C = -0x4C .text:0000FCB4 var_48 = -0x48 .text:0000FCB4 var_40 = -0x40 .text:0000FCB4 var_38 = -0x38 .text:0000FCB4 .text:0000FCB4 MOV R12, SP .text:0000FCB8 STMFD SP!, {R4-R12,LR,PC} .text:0000FCBC SUB R11, R12, #4 .text:0000FCC0 MOV R10, R0 .text:0000FCC4 LDR R9, =__have_no_stat64 .text:0000FCC8 MOV R4, R1 .text:0000FCCC LDR R3, [R9] .text:0000FCD0 MOV R5, R2 .text:0000FCD4 CMP R3, #0 .text:0000FCD8 SUB SP, SP, #0x40 .text:0000FCDC BNE loc_FD6C .text:0000FCE0 BL __errno_location .text:0000FCE4 MOV R1, R5 .text:0000FCE8 LDR R8, [R0] .text:0000FCEC MOV R0, R4 .text:0000FCF0 SVC 0x9000C5 .text:0000FCF4 MOV R7, R0 .text:0000FCF8 CMN R7, #0x1000 .text:0000FCFC BLS loc_FD10 .text:0000FD00 BL __errno_location .text:0000FD04 RSB R3, R7, #0 .text:0000FD08 MOV R7, 0xFFFFFFFF .text:0000FD0C STR R3, [R0] .text:0000FD10 .text:0000FD10 loc_FD10 ; CODE XREF: __fxstat64+48j .text:0000FD10 MOV R6, R7 .text:0000FD14 CMN R6, #1 .text:0000FD18 BNE loc_FD2C .text:0000FD1C BL __errno_location .text:0000FD20 LDR R3, [R0] .text:0000FD24 CMP R3, #0x26 .text:0000FD28 BEQ loc_FD5C .text:0000FD2C .text:0000FD2C loc_FD2C ; CODE XREF: __fxstat64+64j .text:0000FD2C CMP R6, #0 .text:0000FD30 BNE loc_FD54 .text:0000FD34 LDR R0, [R5,#0xC] .text:0000FD38 MOV R2, #0x58 .text:0000FD3C LDR R3, [R5,R2] .text:0000FD40 ADD R1, R5, R2 .text:0000FD44 CMP R0, R3 .text:0000FD48 MOVNE R3, R0 .text:0000FD4C MOVNE R4, #0 .text:0000FD50 STMNEIA R1, {R3,R4} .text:0000FD54 .text:0000FD54 loc_FD54 ; CODE XREF: __fxstat64+7Cj .text:0000FD54 MOV R0, R7 .text:0000FD58 B locret_FEA8 .text:0000FD5C ; --------------------------------------------------------------------------- .text:0000FD5C .text:0000FD5C loc_FD5C ; CODE XREF: __fxstat64+74j .text:0000FD5C BL __errno_location .text:0000FD60 STR R8, [R0] .text:0000FD64 MOV R3, #1 .text:0000FD68 STR R3, [R9] .text:0000FD6C .text:0000FD6C loc_FD6C ; CODE XREF: __fxstat64+28j .text:0000FD6C SUB R1, R11, #-var_68 .text:0000FD70 MOV R0, R4 .text:0000FD74 SVC 0x90006C .text:0000FD78 MOV R4, R0 .text:0000FD7C CMN R4, #0x1000 .text:0000FD80 BLS loc_FD94 .text:0000FD84 BL __errno_location .text:0000FD88 RSB R3, R4, #0 .text:0000FD8C MOV R4, 0xFFFFFFFF .text:0000FD90 STR R3, [R0] .text:0000FD94 .text:0000FD94 loc_FD94 ; CODE XREF: __fxstat64+CCj .text:0000FD94 SUBS R6, R4, #0 .text:0000FD98 BNE loc_FEA4 .text:0000FD9C CMP R10, #1 .text:0000FDA0 BEQ loc_FE88 .text:0000FDA4 CMP R10, #3 .text:0000FDA8 BNE loc_FE88 .text:0000FDAC LDRB R1, [R11,#var_68] .text:0000FDB0 LDRB R2, [R11,#var_67] .text:0000FDB4 ORR R3, R1, R2,LSL#8 .text:0000FDB8 MOV R4, #0 .text:0000FDBC STMIA R5, {R3,R4} .text:0000FDC0 STR R6, [R5,#8] .text:0000FDC4 LDR R1, [R11,#var_64] .text:0000FDC8 ADD R2, R5, #0x58 .text:0000FDCC MOV R3, R1 .text:0000FDD0 MOV R4, #0 .text:0000FDD4 STMIA R2, {R3,R4} .text:0000FDD8 STR R1, [R5,#0xC] .text:0000FDDC LDRB R3, [R11,#var_60] .text:0000FDE0 LDRB R2, [R11,#var_5F] .text:0000FDE4 ORR R3, R3, R2,LSL#8 .text:0000FDE8 STR R3, [R5,#0x10] .text:0000FDEC LDRB R3, [R11,#var_5D] .text:0000FDF0 LDRB R2, [R11,#var_5E] .text:0000FDF4 ORR R2, R2, R3,LSL#8 .text:0000FDF8 STR R2, [R5,#0x14] .text:0000FDFC LDRB R2, [R11,#var_5B] .text:0000FE00 LDRB R3, [R11,#var_5C] .text:0000FE04 ORR R3, R3, R2,LSL#8 .text:0000FE08 STR R3, [R5,#0x18] .text:0000FE0C LDRB R2, [R11,#var_5A] .text:0000FE10 LDRB R12, [R11,#var_58] .text:0000FE14 LDRB R0, [R11,#var_57] .text:0000FE18 LDRB R1, [R11,#var_59] .text:0000FE1C ORR R3, R12, R0,LSL#8 .text:0000FE20 ORR R2, R2, R1,LSL#8 .text:0000FE24 STR R2, [R5,#0x1C] .text:0000FE28 MOV R4, #0 .text:0000FE2C ADD R2, R5, #0x20 .text:0000FE30 STMIA R2, {R3,R4} .text:0000FE34 STR R6, [R5,#0x28] .text:0000FE38 LDR R3, [R11,#var_54] .text:0000FE3C ADD R1, R5, #0x2C .text:0000FE40 MOV R4, #0 .text:0000FE44 STMIA R1, {R3,R4} .text:0000FE48 LDR R2, [R11,#var_50] .text:0000FE4C STR R2, [R5,#0x34] .text:0000FE50 LDR R3, [R11,#var_4C] .text:0000FE54 ADD R1, R5, #0x38 .text:0000FE58 MOV R4, #0 .text:0000FE5C STMIA R1, {R3,R4} .text:0000FE60 LDR R2, [R11,#var_48] .text:0000FE64 STR R6, [R5,#0x44] .text:0000FE68 STR R2, [R5,#0x40] .text:0000FE6C LDR R3, [R11,#var_40] .text:0000FE70 STR R3, [R5,#0x48] .text:0000FE74 STR R6, [R5,#0x4C] .text:0000FE78 STR R6, [R5,#0x54] .text:0000FE7C LDR R3, [R11,#var_38] .text:0000FE80 STR R3, [R5,#0x50] .text:0000FE84 B loc_FEA0 .text:0000FE88 ; --------------------------------------------------------------------------- .text:0000FE88 .text:0000FE88 loc_FE88 ; CODE XREF: __fxstat64+ECj .text:0000FE88 ; __fxstat64+F4j .text:0000FE88 MOV R6, 0xFFFFFFFF .text:0000FE8C BL __errno_location .text:0000FE90 MOV R3, #0x16 .text:0000FE94 STR R3, [R0] .text:0000FE98 B loc_FEA4 .text:0000FE98 ; --------------------------------------------------------------------------- .text:0000FE9C off_FE9C DCD __have_no_stat64 ; DATA XREF: __fxstat64+10r .text:0000FEA0 ; --------------------------------------------------------------------------- .text:0000FEA0 .text:0000FEA0 loc_FEA0 ; CODE XREF: __fxstat64+1D0j .text:0000FEA0 MOV R6, #0 .text:0000FEA4 .text:0000FEA4 loc_FEA4 ; CODE XREF: __fxstat64+E4j .text:0000FEA4 ; __fxstat64+1E4j .text:0000FEA4 MOV R0, R6 .text:0000FEA8 .text:0000FEA8 locret_FEA8 ; CODE XREF: __fxstat64+A4j .text:0000FEA8 LDMDB R11, {R4-R11,SP,PC} .text:0000FEA8 ; End of function __fxstat64 .text:0000FEA8 .text:0000FEA8 ; --------------------------------------------------------------------------- .text:0000FEAC ALIGN 0x10 .text:0000FEB0 .text:0000FEB0 ; =============== S U B R O U T I N E ======================================= .text:0000FEB0 .text:0000FEB0 .text:0000FEB0 WEAK open .text:0000FEB0 open ; CODE XREF: open_usbd_interface+14p .text:0000FEB0 ; open_fpga_interface+18p ... .text:0000FEB0 SVC 0x900005 ; Alternative name is '__libc_open' .text:0000FEB4 CMN R0, #0x1000 .text:0000FEB8 MOVCC PC, LR .text:0000FEBC B __syscall_error .text:0000FEBC ; End of function open .text:0000FEBC .text:0000FEC0 .text:0000FEC0 ; =============== S U B R O U T I N E ======================================= .text:0000FEC0 .text:0000FEC0 .text:0000FEC0 WEAK close .text:0000FEC0 close ; CODE XREF: close_usbd_interface+1Cp .text:0000FEC0 ; close_fpga_interface+24p ... .text:0000FEC0 SVC 0x900006 ; Alternative name is '__close' .text:0000FEC4 CMN R0, #0x1000 .text:0000FEC8 MOVCC PC, LR .text:0000FECC B __syscall_error .text:0000FECC ; End of function close .text:0000FECC .text:0000FED0 .text:0000FED0 ; =============== S U B R O U T I N E ======================================= .text:0000FED0 .text:0000FED0 .text:0000FED0 WEAK read .text:0000FED0 read ; CODE XREF: read_data_from_usbd+30p .text:0000FED0 ; _dl_map_object_from_fd+1FCp ... .text:0000FED0 SVC 0x900003 ; Alternative name is '__libc_read' .text:0000FED4 CMN R0, #0x1000 .text:0000FED8 MOVCC PC, LR .text:0000FEDC B __syscall_error .text:0000FEDC ; End of function read .text:0000FEDC .text:0000FEE0 .text:0000FEE0 ; =============== S U B R O U T I N E ======================================= .text:0000FEE0 .text:0000FEE0 .text:0000FEE0 WEAK write .text:0000FEE0 write ; CODE XREF: write_data_to_usbd+30p .text:0000FEE0 ; _IO_new_file_write+3Cp ... .text:0000FEE0 SVC 0x900004 ; Alternative name is '__libc_write' .text:0000FEE4 CMN R0, #0x1000 .text:0000FEE8 MOVCC PC, LR .text:0000FEEC B __syscall_error .text:0000FEEC ; End of function write .text:0000FEEC .text:0000FEF0 .text:0000FEF0 ; =============== S U B R O U T I N E ======================================= .text:0000FEF0 .text:0000FEF0 ; Attributes: bp-based frame .text:0000FEF0 .text:0000FEF0 WEAK fcntl .text:0000FEF0 fcntl ; CODE XREF: check_one_fd+18p .text:0000FEF0 ; opendir+E4p .text:0000FEF0 .text:0000FEF0 var_40 = -0x40 .text:0000FEF0 var_3F = -0x3F .text:0000FEF0 var_3E = -0x3E .text:0000FEF0 var_3D = -0x3D .text:0000FEF0 var_3C = -0x3C .text:0000FEF0 var_38 = -0x38 .text:0000FEF0 var_34 = -0x34 .text:0000FEF0 var_30 = -0x30 .text:0000FEF0 var_2C = -0x2C .text:0000FEF0 var_28 = -0x28 .text:0000FEF0 var_24 = -0x24 .text:0000FEF0 varg_r1 = 4 .text:0000FEF0 varg_r2 = 8 .text:0000FEF0 varg_r3 = 0xC .text:0000FEF0 .text:0000FEF0 MOV R12, SP ; Alternative name is '__fcntl' .text:0000FEF4 STMFD SP!, {R1-R3} .text:0000FEF8 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000FEFC LDR R5, =__have_no_fcntl64 .text:0000FF00 SUB SP, SP, #0x20 .text:0000FF04 LDR R3, [R5] .text:0000FF08 SUB R11, R12, #0x10 .text:0000FF0C LDR R7, [R11,#varg_r1] .text:0000FF10 MOV R8, R0 .text:0000FF14 LDR R6, [R11,#varg_r2] .text:0000FF18 CMP R3, #0 .text:0000FF1C BNE loc_FF68 .text:0000FF20 MOV R2, R6 .text:0000FF24 MOV R1, R7 .text:0000FF28 SVC 0x9000DD .text:0000FF2C MOV R4, R0 .text:0000FF30 CMN R4, #0x1000 .text:0000FF34 BLS loc_FF48 .text:0000FF38 BL __errno_location .text:0000FF3C RSB R3, R4, #0 .text:0000FF40 MOV R4, 0xFFFFFFFF .text:0000FF44 STR R3, [R0] .text:0000FF48 .text:0000FF48 loc_FF48 ; CODE XREF: fcntl+44j .text:0000FF48 CMP R4, #0 .text:0000FF4C BGE loc_10160 .text:0000FF50 BL __errno_location .text:0000FF54 LDR R3, [R0] .text:0000FF58 CMP R3, #0x26 .text:0000FF5C BNE loc_10160 .text:0000FF60 MOV R3, #1 .text:0000FF64 STR R3, [R5] .text:0000FF68 .text:0000FF68 loc_FF68 ; CODE XREF: fcntl+2Cj .text:0000FF68 CMP R7, #0xC .text:0000FF6C BEQ loc_FF80 .text:0000FF70 BLT loc_10134 .text:0000FF74 CMP R7, #0xE .text:0000FF78 BGT loc_10134 .text:0000FF7C B loc_10084 .text:0000FF80 ; --------------------------------------------------------------------------- .text:0000FF80 .text:0000FF80 loc_FF80 ; CODE XREF: fcntl+7Cj .text:0000FF80 LDR R3, [R6,#4] .text:0000FF84 STR R3, [R11,#var_2C] .text:0000FF88 LDR R2, [R6,#4] .text:0000FF8C MOV R0, R3 .text:0000FF90 MOV R1, R0,ASR#31 .text:0000FF94 CMP R0, R2 .text:0000FF98 BNE loc_100DC .text:0000FF9C LDR R3, [R6,#8] .text:0000FFA0 CMP R1, R3 .text:0000FFA4 BNE loc_100DC .text:0000FFA8 LDR R3, [R6,R7] .text:0000FFAC STR R3, [R11,#var_28] .text:0000FFB0 MOV R0, R3 .text:0000FFB4 MOV R1, R0,ASR#31 .text:0000FFB8 LDR R2, [R6,R7] .text:0000FFBC ADD R7, R6, R7 .text:0000FFC0 CMP R0, R2 .text:0000FFC4 BNE loc_100DC .text:0000FFC8 LDR R3, [R7,#4] .text:0000FFCC CMP R1, R3 .text:0000FFD0 BNE loc_100DC .text:0000FFD4 LDR R3, [R6] .text:0000FFD8 STRB R3, [R11,#var_30] .text:0000FFDC MOV R3, R3,ASR#8 .text:0000FFE0 STRB R3, [R11,#var_30+1] .text:0000FFE4 LDR R2, [R6] .text:0000FFE8 MOV R2, R2,LSR#16 .text:0000FFEC STRB R2, [R11,#var_30+2] .text:0000FFF0 MOV R2, R2,ASR#8 .text:0000FFF4 STRB R2, [R11,#var_30+3] .text:0000FFF8 MOV R1, #5 .text:0000FFFC MOV R0, R8 .text:00010000 LDR R3, [R6,#0x14] .text:00010004 SUB R2, R11, #-var_30 .text:00010008 STR R3, [R11,#var_24] .text:0001000C SVC 0x900037 .text:00010010 MOV R5, R0 .text:00010014 CMN R5, #0x1000 .text:00010018 BLS loc_1002C .text:0001001C BL __errno_location .text:00010020 RSB R3, R5, #0 .text:00010024 MOV R5, 0xFFFFFFFF .text:00010028 STR R3, [R0] .text:0001002C .text:0001002C loc_1002C ; CODE XREF: fcntl+128j .text:0001002C CMP R5, #0 .text:00010030 MOVNE R0, R5 .text:00010034 BNE locret_10164 .text:00010038 LDR R3, [R11,#var_30] .text:0001003C STRB R3, [R6] .text:00010040 MOV R3, R3,ASR#8 .text:00010044 STRB R3, [R6,#1] .text:00010048 LDR R2, [R11,#var_30] .text:0001004C MOV R2, R2,LSR#16 .text:00010050 STRB R2, [R6,#2] .text:00010054 MOV R2, R2,ASR#8 .text:00010058 STRB R2, [R6,#3] .text:0001005C LDR R3, [R11,#var_2C] .text:00010060 MOV R4, R3,ASR#31 .text:00010064 STMIB R6, {R3,R4} .text:00010068 LDR R1, [R11,#var_28] .text:0001006C MOV R2, R1,ASR#31 .text:00010070 STMIA R7, {R1,R2} .text:00010074 LDR R3, [R11,#var_24] .text:00010078 MOV R0, R5 .text:0001007C STR R3, [R6,#0x14] .text:00010080 B locret_10164 .text:00010084 ; --------------------------------------------------------------------------- .text:00010084 .text:00010084 loc_10084 ; CODE XREF: fcntl+8Cj .text:00010084 LDR R3, [R6,#4] .text:00010088 STR R3, [R11,#var_3C] .text:0001008C LDR R2, [R6,#4] .text:00010090 MOV R0, R3 .text:00010094 MOV R1, R0,ASR#31 .text:00010098 CMP R0, R2 .text:0001009C BNE loc_100DC .text:000100A0 LDR R3, [R6,#8] .text:000100A4 CMP R1, R3 .text:000100A8 BNE loc_100DC .text:000100AC MOV R3, #0xC .text:000100B0 LDR R2, [R6,R3] .text:000100B4 STR R2, [R11,#var_38] .text:000100B8 MOV R4, R2 .text:000100BC MOV R5, R4,ASR#31 .text:000100C0 LDR R1, [R6,R3] .text:000100C4 ADD R3, R6, R3 .text:000100C8 CMP R4, R1 .text:000100CC BNE loc_100DC .text:000100D0 LDR R3, [R3,#4] .text:000100D4 CMP R5, R3 .text:000100D8 BEQ loc_100F0 .text:000100DC .text:000100DC loc_100DC ; CODE XREF: fcntl+A8j .text:000100DC ; fcntl+B4j ... .text:000100DC BL __errno_location .text:000100E0 MOV R3, #0x4B .text:000100E4 STR R3, [R0] .text:000100E8 MOV R0, 0xFFFFFFFF .text:000100EC B locret_10164 .text:000100F0 ; --------------------------------------------------------------------------- .text:000100F0 .text:000100F0 loc_100F0 ; CODE XREF: fcntl+1E8j .text:000100F0 LDR R3, [R6] .text:000100F4 STRB R3, [R11,#var_40] .text:000100F8 MOV R3, R3,ASR#8 .text:000100FC STRB R3, [R11,#var_3F] .text:00010100 LDR R2, [R6] .text:00010104 MOV R2, R2,LSR#16 .text:00010108 STRB R2, [R11,#var_3E] .text:0001010C MOV R2, R2,ASR#8 .text:00010110 STRB R2, [R11,#var_3D] .text:00010114 SUB R1, R7, #7 .text:00010118 MOV R0, R8 .text:0001011C LDR R3, [R6,#0x14] .text:00010120 SUB R2, R11, #-var_40 .text:00010124 STR R3, [R11,#var_34] .text:00010128 SVC 0x900037 .text:0001012C B loc_10144 .text:0001012C ; --------------------------------------------------------------------------- .text:00010130 off_10130 DCD __have_no_fcntl64 ; DATA XREF: fcntl+Cr .text:00010134 ; --------------------------------------------------------------------------- .text:00010134 .text:00010134 loc_10134 ; CODE XREF: fcntl+80j .text:00010134 ; fcntl+88j .text:00010134 MOV R2, R6 .text:00010138 MOV R1, R7 .text:0001013C MOV R0, R8 .text:00010140 SVC 0x900037 .text:00010144 .text:00010144 loc_10144 ; CODE XREF: fcntl+23Cj .text:00010144 MOV R4, R0 .text:00010148 CMN R4, #0x1000 .text:0001014C BLS loc_10160 .text:00010150 BL __errno_location .text:00010154 RSB R3, R4, #0 .text:00010158 MOV R4, 0xFFFFFFFF .text:0001015C STR R3, [R0] .text:00010160 .text:00010160 loc_10160 ; CODE XREF: fcntl+5Cj .text:00010160 ; fcntl+6Cj ... .text:00010160 MOV R0, R4 .text:00010164 .text:00010164 locret_10164 ; CODE XREF: fcntl+144j .text:00010164 ; fcntl+190j ... .text:00010164 LDMDB R11, {R4-R8,R11,SP,PC} .text:00010164 ; End of function fcntl .text:00010164 .text:00010168 .text:00010168 ; =============== S U B R O U T I N E ======================================= .text:00010168 .text:00010168 ; Attributes: bp-based frame .text:00010168 .text:00010168 WEAK sbrk .text:00010168 sbrk ; CODE XREF: __default_morecore+Cp .text:00010168 MOV R12, SP ; Alternative name is '__sbrk' .text:0001016C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00010170 SUB R11, R12, #4 .text:00010174 LDR R2, =__curbrk .text:00010178 MOV R5, R0 .text:0001017C LDR R3, [R2] .text:00010180 MOV R4, R2 .text:00010184 CMP R3, #0 .text:00010188 BEQ loc_1019C .text:0001018C LDR R3, =__libc_multiple_libcs .text:00010190 LDR R2, [R3] .text:00010194 CMP R2, #0 .text:00010198 BEQ loc_101B0 .text:0001019C .text:0001019C loc_1019C ; CODE XREF: sbrk+20j .text:0001019C MOV R0, #0 .text:000101A0 BL brk .text:000101A4 CMP R0, #0 .text:000101A8 MOVLT R0, 0xFFFFFFFF .text:000101AC LDMLTDB R11, {R4,R5,R11,SP,PC} .text:000101B0 .text:000101B0 loc_101B0 ; CODE XREF: sbrk+30j .text:000101B0 CMP R5, #0 .text:000101B4 BEQ loc_101D4 .text:000101B8 LDR R4, [R4] .text:000101BC ADD R0, R4, R5 .text:000101C0 BL brk .text:000101C4 CMP R0, #0 .text:000101C8 MOVGE R0, R4 .text:000101CC MOVLT R0, 0xFFFFFFFF .text:000101D0 LDMDB R11, {R4,R5,R11,SP,PC} .text:000101D4 ; --------------------------------------------------------------------------- .text:000101D4 .text:000101D4 loc_101D4 ; CODE XREF: sbrk+4Cj .text:000101D4 LDR R0, [R4] .text:000101D8 LDMDB R11, {R4,R5,R11,SP,PC} .text:000101D8 ; End of function sbrk .text:000101D8 .text:000101D8 ; --------------------------------------------------------------------------- .text:000101DC off_101DC DCD __curbrk ; DATA XREF: sbrk+Cr .text:000101E0 off_101E0 DCD __libc_multiple_libcs ; DATA XREF: sbrk+24r .text:000101E4 .text:000101E4 ; =============== S U B R O U T I N E ======================================= .text:000101E4 .text:000101E4 ; Attributes: bp-based frame .text:000101E4 .text:000101E4 WEAK getpagesize .text:000101E4 getpagesize ; CODE XREF: ptmalloc_init+2Cp .text:000101E4 ; non_dynamic_init+1Cp ... .text:000101E4 MOV R12, SP ; Alternative name is '__getpagesize' .text:000101E8 STMFD SP!, {R11,R12,LR,PC} .text:000101EC LDR R3, =_dl_pagesize .text:000101F0 LDR R0, [R3] .text:000101F4 SUB R11, R12, #4 .text:000101F8 CMP R0, #0 .text:000101FC MOVEQ R0, #0x1000 .text:00010200 LDMDB R11, {R11,SP,PC} .text:00010200 ; End of function getpagesize .text:00010200 .text:00010200 ; --------------------------------------------------------------------------- .text:00010204 off_10204 DCD _dl_pagesize ; DATA XREF: getpagesize+8r .text:00010208 ALIGN 0x10 .text:00010210 .text:00010210 ; =============== S U B R O U T I N E ======================================= .text:00010210 .text:00010210 .text:00010210 WEAK mmap .text:00010210 mmap ; CODE XREF: open_fpga_interface+58p .text:00010210 ; _IO_default_doallocate+30p ... .text:00010210 .text:00010210 varg_r0 = -0x10 .text:00010210 varg_r1 = -0xC .text:00010210 varg_r2 = -8 .text:00010210 varg_r3 = -4 .text:00010210 .text:00010210 STMFD SP!, {R0-R3} .text:00010214 MOV R0, SP .text:00010218 SVC 0x90005A .text:0001021C ADD SP, SP, #0x10 .text:00010220 CMN R0, #0x1000 .text:00010224 MOVCC PC, LR .text:00010228 B __syscall_error .text:00010228 ; End of function mmap .text:00010228 .text:00010228 ; --------------------------------------------------------------------------- .text:0001022C ALIGN 0x10 .text:00010230 .text:00010230 ; =============== S U B R O U T I N E ======================================= .text:00010230 .text:00010230 .text:00010230 WEAK munmap .text:00010230 munmap ; CODE XREF: close_fpga_interface+18p .text:00010230 ; _IO_setb+50p ... .text:00010230 SVC 0x90005B ; Alternative name is '__munmap' .text:00010234 CMN R0, #0x1000 .text:00010238 MOVCC PC, LR .text:0001023C B __syscall_error .text:0001023C ; End of function munmap .text:0001023C .text:00010240 .text:00010240 ; =============== S U B R O U T I N E ======================================= .text:00010240 .text:00010240 .text:00010240 WEAK mprotect .text:00010240 mprotect ; CODE XREF: new_heap+FCp .text:00010240 ; grow_heap+48p ... .text:00010240 SVC 0x90007D .text:00010244 CMN R0, #0x1000 .text:00010248 MOVCC PC, LR .text:0001024C B __syscall_error .text:0001024C ; End of function mprotect .text:0001024C .text:00010250 .text:00010250 ; =============== S U B R O U T I N E ======================================= .text:00010250 .text:00010250 .text:00010250 WEAK mremap .text:00010250 mremap ; CODE XREF: mremap_chunk+48p .text:00010250 SVC 0x9000A3 ; Alternative name is '__mremap' .text:00010254 CMN R0, #0x1000 .text:00010258 MOVCC PC, LR .text:0001025C B __syscall_error .text:0001025C ; End of function mremap .text:0001025C .text:00010260 .text:00010260 ; =============== S U B R O U T I N E ======================================= .text:00010260 .text:00010260 ; Attributes: bp-based frame .text:00010260 .text:00010260 EXPORT _dl_dst_count .text:00010260 _dl_dst_count ; CODE XREF: expand_dynamic_string_token+30p .text:00010260 ; dl_open_worker+120p ... .text:00010260 .text:00010260 var_2C = -0x2C .text:00010260 .text:00010260 MOV R12, SP .text:00010264 STMFD SP!, {R4-R12,LR,PC} .text:00010268 SUB R11, R12, #4 .text:0001026C MOV R5, R0 .text:00010270 MOV R10, R1 .text:00010274 MOV R8, #0 .text:00010278 LDR R9, =aOrigin ; "{ORIGIN}" .text:0001027C SUB SP, SP, #4 .text:00010280 STR R5, [R11,#var_2C] .text:00010284 .text:00010284 loc_10284 ; CODE XREF: _dl_dst_count+138j .text:00010284 MOV R7, #1 .text:00010288 ADD R4, R5, R7 .text:0001028C MOV R0, R4 .text:00010290 MOV R1, R9 .text:00010294 MOV R2, #8 .text:00010298 BL strncmp .text:0001029C CMP R0, #0 .text:000102A0 ADDEQ R7, R7, #8 .text:000102A4 BEQ loc_102E4 .text:000102A8 MOV R0, R4 .text:000102AC ADD R1, R9, #1 .text:000102B0 MOV R2, #6 .text:000102B4 BL strncmp .text:000102B8 CMP R0, #0 .text:000102BC BNE loc_10318 .text:000102C0 LDRB R3, [R5,#7] .text:000102C4 CMP R3, #0x2F .text:000102C8 CMPNE R3, #0 .text:000102CC BEQ loc_102E0 .text:000102D0 CMP R10, #0 .text:000102D4 BEQ loc_10318 .text:000102D8 CMP R3, #0x3A .text:000102DC BNE loc_10318 .text:000102E0 .text:000102E0 loc_102E0 ; CODE XREF: _dl_dst_count+6Cj .text:000102E0 MOV R7, #7 .text:000102E4 .text:000102E4 loc_102E4 ; CODE XREF: _dl_dst_count+44j .text:000102E4 LDR R3, =__libc_enable_secure .text:000102E8 LDR R2, [R3] .text:000102EC CMP R2, #0 .text:000102F0 BNE loc_10388 .text:000102F4 LDR R3, [R11,#var_2C] .text:000102F8 CMP R5, R3 .text:000102FC BEQ loc_10384 .text:00010300 CMP R10, #0 .text:00010304 BEQ loc_10388 .text:00010308 LDRB R3, [R5,#-1] .text:0001030C CMP R3, #0x3A .text:00010310 BNE loc_10388 .text:00010314 B loc_10384 .text:00010318 ; --------------------------------------------------------------------------- .text:00010318 .text:00010318 loc_10318 ; CODE XREF: _dl_dst_count+5Cj .text:00010318 ; _dl_dst_count+74j ... .text:00010318 MOV R0, R4 .text:0001031C LDR R6, =aPlatform ; "{PLATFORM}" .text:00010320 MOV R2, #0xA .text:00010324 MOV R1, R6 .text:00010328 BL strncmp .text:0001032C CMP R0, #0 .text:00010330 BNE loc_10348 .text:00010334 MOV R7, #0xB .text:00010338 B loc_10384 .text:00010338 ; --------------------------------------------------------------------------- .text:0001033C off_1033C DCD aOrigin ; DATA XREF: _dl_dst_count+18r .text:0001033C ; "{ORIGIN}" .text:00010340 off_10340 DCD __libc_enable_secure .text:00010340 ; DATA XREF: _dl_dst_count:loc_102E4r .text:00010344 off_10344 DCD aPlatform ; DATA XREF: _dl_dst_count+BCr .text:00010344 ; "{PLATFORM}" .text:00010348 ; --------------------------------------------------------------------------- .text:00010348 .text:00010348 loc_10348 ; CODE XREF: _dl_dst_count+D0j .text:00010348 MOV R0, R4 .text:0001034C ADD R1, R6, #1 .text:00010350 MOV R2, #8 .text:00010354 BL strncmp .text:00010358 CMP R0, #0 .text:0001035C BNE loc_10388 .text:00010360 LDRB R3, [R5,#9] .text:00010364 CMP R3, #0x2F .text:00010368 CMPNE R3, #0 .text:0001036C BEQ loc_10380 .text:00010370 CMP R10, #0 .text:00010374 BEQ loc_10388 .text:00010378 CMP R3, #0x3A .text:0001037C BNE loc_10388 .text:00010380 .text:00010380 loc_10380 ; CODE XREF: _dl_dst_count+10Cj .text:00010380 MOV R7, #9 .text:00010384 .text:00010384 loc_10384 ; CODE XREF: _dl_dst_count+9Cj .text:00010384 ; _dl_dst_count+B4j ... .text:00010384 ADD R8, R8, #1 .text:00010388 .text:00010388 loc_10388 ; CODE XREF: _dl_dst_count+90j .text:00010388 ; _dl_dst_count+A4j ... .text:00010388 ADD R0, R5, R7 .text:0001038C MOV R1, #0x24 .text:00010390 BL strchr .text:00010394 SUBS R5, R0, #0 .text:00010398 BNE loc_10284 .text:0001039C MOV R0, R8 .text:000103A0 LDMDB R11, {R4-R11,SP,PC} .text:000103A0 ; End of function _dl_dst_count .text:000103A0 .text:000103A4 .text:000103A4 ; =============== S U B R O U T I N E ======================================= .text:000103A4 .text:000103A4 ; Attributes: bp-based frame .text:000103A4 .text:000103A4 EXPORT _dl_dst_substitute .text:000103A4 _dl_dst_substitute ; CODE XREF: expand_dynamic_string_token+11Cp .text:000103A4 ; dl_open_worker+15Cp ... .text:000103A4 .text:000103A4 var_3C = -0x3C .text:000103A4 var_38 = -0x38 .text:000103A4 var_34 = -0x34 .text:000103A4 var_30 = -0x30 .text:000103A4 var_2C = -0x2C .text:000103A4 .text:000103A4 MOV R12, SP .text:000103A8 STMFD SP!, {R4-R12,LR,PC} .text:000103AC SUB R11, R12, #4 .text:000103B0 SUB SP, SP, #0x14 .text:000103B4 STR R0, [R11,#var_2C] .text:000103B8 STR R2, [R11,#var_30] .text:000103BC MOV R5, R1 .text:000103C0 STR R5, [R11,#var_34] .text:000103C4 MOV R9, R3 .text:000103C8 MOV R10, R2 .text:000103CC STR R10, [R11,#var_38] .text:000103D0 .text:000103D0 loc_103D0 ; CODE XREF: _dl_dst_substitute+20Cj .text:000103D0 LDRB R3, [R5] .text:000103D4 CMP R3, #0x24 .text:000103D8 BNE loc_10584 .text:000103DC MOV R2, #0 .text:000103E0 STR R2, [R11,#var_3C] .text:000103E4 MOV R7, #1 .text:000103E8 ADD R4, R5, R7 .text:000103EC MOV R0, R4 .text:000103F0 LDR R6, =aOrigin ; "{ORIGIN}" .text:000103F4 ADD R2, R2, #8 .text:000103F8 MOV R1, R6 .text:000103FC BL strncmp .text:00010400 CMP R0, #0 .text:00010404 MOV R8, R4 .text:00010408 ADDEQ R7, R7, #8 .text:0001040C BEQ loc_1044C .text:00010410 MOV R0, R8 .text:00010414 ADD R1, R6, #1 .text:00010418 MOV R2, #6 .text:0001041C BL strncmp .text:00010420 CMP R0, #0 .text:00010424 BNE loc_1048C .text:00010428 LDRB R3, [R5,#7] .text:0001042C CMP R3, #0x2F .text:00010430 CMPNE R3, #0 .text:00010434 BEQ loc_10448 .text:00010438 CMP R9, #0 .text:0001043C BEQ loc_1048C .text:00010440 CMP R3, #0x3A .text:00010444 BNE loc_1048C .text:00010448 .text:00010448 loc_10448 ; CODE XREF: _dl_dst_substitute+90j .text:00010448 MOV R7, #7 .text:0001044C .text:0001044C loc_1044C ; CODE XREF: _dl_dst_substitute+68j .text:0001044C LDR R3, =__libc_enable_secure .text:00010450 LDR R2, [R3] .text:00010454 CMP R2, #0 .text:00010458 BNE loc_104EC .text:0001045C LDR R3, [R11,#var_34] .text:00010460 CMP R5, R3 .text:00010464 BEQ loc_1047C .text:00010468 CMP R9, #0 .text:0001046C BEQ loc_104EC .text:00010470 LDRB R3, [R5,#-1] .text:00010474 CMP R3, #0x3A .text:00010478 BNE loc_104EC .text:0001047C .text:0001047C loc_1047C ; CODE XREF: _dl_dst_substitute+C0j .text:0001047C LDR R2, [R11,#var_2C] .text:00010480 LDR R2, [R2,#0x148] .text:00010484 STR R2, [R11,#var_3C] .text:00010488 B loc_104EC .text:0001048C ; --------------------------------------------------------------------------- .text:0001048C .text:0001048C loc_1048C ; CODE XREF: _dl_dst_substitute+80j .text:0001048C ; _dl_dst_substitute+98j ... .text:0001048C MOV R0, R8 .text:00010490 LDR R4, =aPlatform ; "{PLATFORM}" .text:00010494 MOV R2, #0xA .text:00010498 MOV R1, R4 .text:0001049C BL strncmp .text:000104A0 CMP R0, #0 .text:000104A4 MOVEQ R7, #0xB .text:000104A8 BEQ loc_104E0 .text:000104AC MOV R0, R8 .text:000104B0 ADD R1, R4, #1 .text:000104B4 MOV R2, #8 .text:000104B8 BL strncmp .text:000104BC CMP R0, #0 .text:000104C0 BNE loc_104EC .text:000104C4 LDRB R3, [R5,#9] .text:000104C8 CMP R3, #0x2F .text:000104CC CMPNE R3, #0 .text:000104D0 BEQ loc_104DC .text:000104D4 CMP R3, #0x3A .text:000104D8 BNE loc_104EC .text:000104DC .text:000104DC loc_104DC ; CODE XREF: _dl_dst_substitute+12Cj .text:000104DC MOV R7, #9 .text:000104E0 .text:000104E0 loc_104E0 ; CODE XREF: _dl_dst_substitute+104j .text:000104E0 LDR R3, =_dl_platform .text:000104E4 LDR R3, [R3] .text:000104E8 STR R3, [R11,#var_3C] .text:000104EC .text:000104EC loc_104EC ; CODE XREF: _dl_dst_substitute+B4j .text:000104EC ; _dl_dst_substitute+C8j ... .text:000104EC LDR R3, [R11,#var_3C] .text:000104F0 CMP R3, #0 .text:000104F4 CMNNE R3, #1 .text:000104F8 BEQ loc_10514 .text:000104FC MOV R0, R10 .text:00010500 MOV R1, R3 .text:00010504 BL stpcpy .text:00010508 MOV R10, R0 .text:0001050C ADD R5, R5, R7 .text:00010510 B loc_105A8 .text:00010514 ; --------------------------------------------------------------------------- .text:00010514 .text:00010514 loc_10514 ; CODE XREF: _dl_dst_substitute+154j .text:00010514 CMP R7, #1 .text:00010518 BLS loc_10564 .text:0001051C LDRB R3, [R5,R7]! .text:00010520 LDR R10, [R11,#var_38] .text:00010524 AND R3, R3, #0xFF .text:00010528 CMP R3, #0 .text:0001052C BEQ loc_105A8 .text:00010530 CMP R9, #0 .text:00010534 BEQ loc_10540 .text:00010538 CMP R3, #0x3A .text:0001053C BEQ loc_105A8 .text:00010540 .text:00010540 loc_10540 ; CODE XREF: _dl_dst_substitute+190j .text:00010540 ; _dl_dst_substitute+1B0j ... .text:00010540 LDRB R3, [R5,#1]! .text:00010544 AND R3, R3, #0xFF .text:00010548 CMP R3, #0 .text:0001054C BEQ loc_105A8 .text:00010550 CMP R9, #0 .text:00010554 BEQ loc_10540 .text:00010558 CMP R3, #0x3A .text:0001055C BNE loc_10540 .text:00010560 B loc_105A8 .text:00010564 ; --------------------------------------------------------------------------- .text:00010564 .text:00010564 loc_10564 ; CODE XREF: _dl_dst_substitute+174j .text:00010564 LDRB R3, [R5] .text:00010568 MOV R5, R8 .text:0001056C STRB R3, [R10],#1 .text:00010570 B loc_105A8 .text:00010570 ; --------------------------------------------------------------------------- .text:00010574 off_10574 DCD aOrigin ; DATA XREF: _dl_dst_substitute+4Cr .text:00010574 ; "{ORIGIN}" .text:00010578 off_10578 DCD __libc_enable_secure .text:00010578 ; DATA XREF: _dl_dst_substitute:loc_1044Cr .text:0001057C off_1057C DCD aPlatform ; DATA XREF: _dl_dst_substitute+ECr .text:0001057C ; "{PLATFORM}" .text:00010580 off_10580 DCD _dl_platform ; DATA XREF: _dl_dst_substitute:loc_104E0r .text:00010584 ; --------------------------------------------------------------------------- .text:00010584 .text:00010584 loc_10584 ; CODE XREF: _dl_dst_substitute+34j .text:00010584 ADD R5, R5, #1 .text:00010588 CMP R9, #0 .text:0001058C STRB R3, [R10],#1 .text:00010590 BEQ loc_105A8 .text:00010594 LDRB R3, [R5] .text:00010598 LDR R2, [R11,#var_38] .text:0001059C CMP R3, #0x3A .text:000105A0 MOVEQ R2, R10 .text:000105A4 STR R2, [R11,#var_38] .text:000105A8 .text:000105A8 loc_105A8 ; CODE XREF: _dl_dst_substitute+16Cj .text:000105A8 ; _dl_dst_substitute+188j ... .text:000105A8 LDRB R3, [R5] .text:000105AC CMP R3, #0 .text:000105B0 BNE loc_103D0 .text:000105B4 LDR R0, [R11,#var_30] .text:000105B8 STRB R3, [R10] .text:000105BC LDMDB R11, {R4-R11,SP,PC} .text:000105BC ; End of function _dl_dst_substitute .text:000105BC .text:000105C0 .text:000105C0 ; =============== S U B R O U T I N E ======================================= .text:000105C0 .text:000105C0 ; Attributes: bp-based frame .text:000105C0 .text:000105C0 expand_dynamic_string_token ; CODE XREF: decompose_rpath+BCp .text:000105C0 ; _dl_map_object+5D8p .text:000105C0 MOV R12, SP .text:000105C4 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:000105C8 SUB R11, R12, #4 .text:000105CC MOV R7, #0 .text:000105D0 MOV R6, R0 .text:000105D4 MOV R5, R1 .text:000105D8 MOV R0, R5 .text:000105DC MOV R1, #0x24 .text:000105E0 BL strchr .text:000105E4 CMP R0, #0 .text:000105E8 BEQ loc_105F8 .text:000105EC MOV R1, #1 .text:000105F0 BL _dl_dst_count .text:000105F4 MOV R7, R0 .text:000105F8 .text:000105F8 loc_105F8 ; CODE XREF: expand_dynamic_string_token+28j .text:000105F8 CMP R7, #0 .text:000105FC BNE loc_10630 .text:00010600 MOV R0, R5 .text:00010604 BL strlen .text:00010608 ADD R4, R0, #1 .text:0001060C MOV R0, R4 .text:00010610 BL malloc .text:00010614 CMP R0, #0 .text:00010618 MOVEQ R0, R7 .text:0001061C LDMEQDB R11, {R4-R8,R11,SP,PC} .text:00010620 MOV R1, R5 .text:00010624 MOV R2, R4 .text:00010628 BL memcpy .text:0001062C LDMDB R11, {R4-R8,R11,SP,PC} .text:00010630 ; --------------------------------------------------------------------------- .text:00010630 .text:00010630 loc_10630 ; CODE XREF: expand_dynamic_string_token+3Cj .text:00010630 MOV R0, R5 .text:00010634 BL strlen .text:00010638 LDR R4, [R6,#0x148] .text:0001063C MOV R8, R0 .text:00010640 CMP R4, #0 .text:00010644 BNE loc_1068C .text:00010648 LDR R3, [R6,#4] .text:0001064C LDRB R2, [R3] .text:00010650 CMP R2, #0 .text:00010654 BEQ loc_10670 .text:00010658 LDR R0, =aLL_name00 ; "(l)->l_name[0] == '\\0'" .text:0001065C LDR R1, =aDlLoad_c ; "dl-load.c" .text:00010660 MOV R2, #0x138 .text:00010664 LDR R3, =aExpand_dynamic ; "expand_dynamic_string_token" .text:00010668 ADD R2, R2, #1 .text:0001066C BL __assert_fail .text:00010670 ; --------------------------------------------------------------------------- .text:00010670 .text:00010670 loc_10670 ; CODE XREF: expand_dynamic_string_token+94j .text:00010670 BL _dl_get_origin .text:00010674 CMP R0, #0 .text:00010678 CMNNE R0, #1 .text:0001067C STR R0, [R6,#0x148] .text:00010680 BEQ loc_106A0 .text:00010684 BL strlen .text:00010688 B loc_106A4 .text:0001068C ; --------------------------------------------------------------------------- .text:0001068C .text:0001068C loc_1068C ; CODE XREF: expand_dynamic_string_token+84j .text:0001068C CMN R4, #1 .text:00010690 BEQ loc_106A0 .text:00010694 MOV R0, R4 .text:00010698 BL strlen .text:0001069C B loc_106A4 .text:000106A0 ; --------------------------------------------------------------------------- .text:000106A0 .text:000106A0 loc_106A0 ; CODE XREF: expand_dynamic_string_token+C0j .text:000106A0 ; expand_dynamic_string_token+D0j .text:000106A0 MOV R0, #0 .text:000106A4 .text:000106A4 loc_106A4 ; CODE XREF: expand_dynamic_string_token+C8j .text:000106A4 ; expand_dynamic_string_token+DCj .text:000106A4 LDR R3, =_dl_platformlen .text:000106A8 LDR R2, [R3] .text:000106AC CMP R2, R0 .text:000106B0 MOVCC R2, R0 .text:000106B4 SUB R2, R2, #7 .text:000106B8 MLA R0, R2, R7, R8 .text:000106BC ADD R0, R0, #1 .text:000106C0 BL malloc .text:000106C4 SUBS R2, R0, #0 .text:000106C8 MOV R0, #0 .text:000106CC LDMEQDB R11, {R4-R8,R11,SP,PC} .text:000106D0 MOV R0, R6 .text:000106D4 MOV R1, R5 .text:000106D8 MOV R3, #1 .text:000106DC BL _dl_dst_substitute .text:000106E0 LDMDB R11, {R4-R8,R11,SP,PC} .text:000106E0 ; End of function expand_dynamic_string_token .text:000106E0 .text:000106E0 ; --------------------------------------------------------------------------- .text:000106E4 off_106E4 DCD aLL_name00 ; DATA XREF: expand_dynamic_string_token+98r .text:000106E4 ; "(l)->l_name[0] == '\\0'" .text:000106E8 off_106E8 DCD aDlLoad_c ; DATA XREF: expand_dynamic_string_token+9Cr .text:000106E8 ; "dl-load.c" .text:000106EC off_106EC DCD aExpand_dynamic ; DATA XREF: expand_dynamic_string_token+A4r .text:000106EC ; "expand_dynamic_string_token" .text:000106F0 off_106F0 DCD _dl_platformlen ; DATA XREF: expand_dynamic_string_token:loc_106A4r .text:000106F4 .text:000106F4 ; =============== S U B R O U T I N E ======================================= .text:000106F4 .text:000106F4 ; Attributes: bp-based frame .text:000106F4 .text:000106F4 add_name_to_object ; CODE XREF: _dl_map_object_from_fd+BE0p .text:000106F4 ; _dl_map_object+E4p .text:000106F4 MOV R12, SP .text:000106F8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000106FC SUB R11, R12, #4 .text:00010700 MOV R6, #0 .text:00010704 LDR R4, [R0,#0x14] .text:00010708 MOV R5, R1 .text:0001070C CMP R4, R6 .text:00010710 BEQ loc_10738 .text:00010714 .text:00010714 loc_10714 ; CODE XREF: add_name_to_object+40j .text:00010714 LDR R1, [R4] .text:00010718 MOV R0, R5 .text:0001071C BL strcmp .text:00010720 CMP R0, #0 .text:00010724 LDMEQDB R11, {R4-R7,R11,SP,PC} .text:00010728 MOV R6, R4 .text:0001072C LDR R4, [R6,#4] .text:00010730 CMP R4, #0 .text:00010734 BNE loc_10714 .text:00010738 .text:00010738 loc_10738 ; CODE XREF: add_name_to_object+1Cj .text:00010738 MOV R0, R5 .text:0001073C BL strlen .text:00010740 MOV R3, R0 .text:00010744 ADD R0, R3, #0xD .text:00010748 ADD R7, R3, #1 .text:0001074C BL malloc .text:00010750 SUBS R4, R0, #0 .text:00010754 BNE loc_10768 .text:00010758 MOV R0, #0xC .text:0001075C LDR R2, =aCannotAllocate ; "cannot allocate name record" .text:00010760 MOV R1, R5 .text:00010764 BL _dl_signal_error .text:00010768 ; --------------------------------------------------------------------------- .text:00010768 .text:00010768 loc_10768 ; CODE XREF: add_name_to_object+60j .text:00010768 CMP R6, #0 .text:0001076C BNE loc_10788 .text:00010770 LDR R0, =aLastpVoid0 ; "lastp != ((void *)0)" .text:00010774 LDR R1, =aDlLoad_c ; "dl-load.c" .text:00010778 MOV R2, #0x15C .text:0001077C LDR R3, =aAdd_name_to_ob ; "add_name_to_object" .text:00010780 ADD R2, R2, #2 .text:00010784 BL __assert_fail .text:00010788 ; --------------------------------------------------------------------------- .text:00010788 .text:00010788 loc_10788 ; CODE XREF: add_name_to_object+78j .text:00010788 ADD R0, R4, #0xC .text:0001078C MOV R1, R5 .text:00010790 MOV R2, R7 .text:00010794 BL memcpy .text:00010798 STR R0, [R4] .text:0001079C MOV R3, #0 .text:000107A0 STR R3, [R4,#4] .text:000107A4 STR R3, [R4,#8] .text:000107A8 STR R4, [R6,#4] .text:000107AC LDMDB R11, {R4-R7,R11,SP,PC} .text:000107AC ; End of function add_name_to_object .text:000107AC .text:000107AC ; --------------------------------------------------------------------------- .text:000107B0 off_107B0 DCD aCannotAllocate ; DATA XREF: add_name_to_object+68r .text:000107B0 ; "cannot allocate name record" .text:000107B4 off_107B4 DCD aLastpVoid0 ; DATA XREF: add_name_to_object+7Cr .text:000107B4 ; "lastp != ((void *)0)" .text:000107B8 off_107B8 DCD aDlLoad_c ; DATA XREF: add_name_to_object+80r .text:000107B8 ; "dl-load.c" .text:000107BC off_107BC DCD aAdd_name_to_ob ; DATA XREF: add_name_to_object+88r .text:000107BC ; "add_name_to_object" .text:000107C0 .text:000107C0 ; =============== S U B R O U T I N E ======================================= .text:000107C0 .text:000107C0 ; Attributes: bp-based frame .text:000107C0 .text:000107C0 decompose_rpath ; CODE XREF: _dl_map_object+210p .text:000107C0 ; _dl_map_object+3C0p .text:000107C0 .text:000107C0 var_40 = -0x40 .text:000107C0 var_3C = -0x3C .text:000107C0 var_38 = -0x38 .text:000107C0 var_34 = -0x34 .text:000107C0 var_30 = -0x30 .text:000107C0 var_2C = -0x2C .text:000107C0 .text:000107C0 MOV R12, SP .text:000107C4 STMFD SP!, {R4-R12,LR,PC} .text:000107C8 SUB R11, R12, #4 .text:000107CC LDR R8, =_dl_inhibit_rpath .text:000107D0 SUB SP, SP, #0x18 .text:000107D4 LDR R12, [R8] .text:000107D8 STR R0, [R11,#var_30] .text:000107DC STR R3, [R11,#var_34] .text:000107E0 MOV R7, R1 .text:000107E4 MOV R6, R2 .text:000107E8 LDR R2, [R6,#4] .text:000107EC CMP R12, #0 .text:000107F0 STR R2, [R11,#var_38] .text:000107F4 BEQ loc_10874 .text:000107F8 LDR R3, =__libc_enable_secure .text:000107FC LDR R5, [R3] .text:00010800 CMP R5, #0 .text:00010804 BNE loc_10874 .text:00010808 MOV R0, R12 .text:0001080C MOV R1, R2 .text:00010810 BL strstr .text:00010814 SUBS R4, R0, #0 .text:00010818 BEQ loc_10874 .text:0001081C LDR R0, [R11,#var_38] .text:00010820 BL strlen .text:00010824 LDR R3, [R8] .text:00010828 CMP R4, R3 .text:0001082C BEQ loc_1083C .text:00010830 LDRB R3, [R4,#-1] .text:00010834 CMP R3, #0x3A .text:00010838 BNE loc_10874 .text:0001083C .text:0001083C loc_1083C ; CODE XREF: decompose_rpath+6Cj .text:0001083C LDRB R3, [R4,R0] .text:00010840 CMP R3, #0x3A .text:00010844 CMPNE R3, #0 .text:00010848 BNE loc_10874 .text:0001084C MOV R0, #4 .text:00010850 BL malloc .text:00010854 SUBS R10, R0, #0 .text:00010858 BNE loc_1086C .text:0001085C MOV R0, #0xC .text:00010860 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:00010864 MOV R1, R10 .text:00010868 BL _dl_signal_error .text:0001086C ; --------------------------------------------------------------------------- .text:0001086C .text:0001086C loc_1086C ; CODE XREF: decompose_rpath+98j .text:0001086C STR R5, [R10] .text:00010870 B loc_10B68 .text:00010874 ; --------------------------------------------------------------------------- .text:00010874 .text:00010874 loc_10874 ; CODE XREF: decompose_rpath+34j .text:00010874 ; decompose_rpath+44j ... .text:00010874 MOV R0, R6 .text:00010878 MOV R1, R7 .text:0001087C BL expand_dynamic_string_token .text:00010880 CMP R0, #0 .text:00010884 STR R0, [R11,#var_3C] .text:00010888 BNE loc_1089C .text:0001088C LDR R2, =aCannotCreateRu ; "cannot create RUNPATH/RPATH copy" .text:00010890 LDR R1, [R11,#var_3C] .text:00010894 MOV R0, #0xC .text:00010898 BL _dl_signal_error .text:0001089C ; --------------------------------------------------------------------------- .text:0001089C .text:0001089C loc_1089C ; CODE XREF: decompose_rpath+C8j .text:0001089C LDR R2, [R11,#var_3C] .text:000108A0 MOV R0, #0 .text:000108A4 LDRB R3, [R2] .text:000108A8 MOV R1, R2 .text:000108AC CMP R3, R0 .text:000108B0 SUB R3, R11, #-var_2C .text:000108B4 STR R3, [R11,#var_40] .text:000108B8 BEQ loc_108D4 .text:000108BC .text:000108BC loc_108BC ; CODE XREF: decompose_rpath+110j .text:000108BC LDRB R2, [R1] .text:000108C0 LDRB R3, [R1,#1]! .text:000108C4 CMP R2, #0x3A .text:000108C8 ADDEQ R0, R0, #1 .text:000108CC CMP R3, #0 .text:000108D0 BNE loc_108BC .text:000108D4 .text:000108D4 loc_108D4 ; CODE XREF: decompose_rpath+F8j .text:000108D4 ADD R0, R0, #2 .text:000108D8 MOV R0, R0,LSL#2 .text:000108DC BL malloc .text:000108E0 SUBS R10, R0, #0 .text:000108E4 BNE loc_108F8 .text:000108E8 MOV R0, #0xC .text:000108EC LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:000108F0 MOV R1, R10 .text:000108F4 BL _dl_signal_error .text:000108F8 ; --------------------------------------------------------------------------- .text:000108F8 .text:000108F8 loc_108F8 ; CODE XREF: decompose_rpath+124j .text:000108F8 LDR R2, [R11,#var_3C] .text:000108FC MOV R9, #0 .text:00010900 STR R2, [R11,#var_2C] .text:00010904 .text:00010904 loc_10904 ; CODE XREF: decompose_rpath+248j .text:00010904 ; decompose_rpath+370j .text:00010904 LDR R4, [R11,#var_2C] .text:00010908 CMP R4, #0 .text:0001090C BEQ loc_10938 .text:00010910 LDR R1, =asc_55DE8 ; ":" .text:00010914 MOV R0, R4 .text:00010918 BL strpbrk .text:0001091C LDR R3, [R11,#var_40] .text:00010920 CMP R0, #0 .text:00010924 STR R0, [R3] .text:00010928 MOVNE R3, #0 .text:0001092C STRNEB R3, [R0],#1 .text:00010930 LDRNE R2, [R11,#var_40] .text:00010934 STRNE R0, [R2] .text:00010938 .text:00010938 loc_10938 ; CODE XREF: decompose_rpath+14Cj .text:00010938 SUBS R7, R4, #0 .text:0001093C BEQ loc_10B58 .text:00010940 MOV R0, R7 .text:00010944 BL strlen .text:00010948 MOV R6, R0 .text:0001094C LDR R3, =curwd.159 ; "./" .text:00010950 CMP R6, #0 .text:00010954 MOVEQ R7, R3 .text:00010958 B loc_10960 .text:0001095C ; --------------------------------------------------------------------------- .text:0001095C .text:0001095C loc_1095C ; CODE XREF: decompose_rpath+1B4j .text:0001095C SUB R6, R6, #1 .text:00010960 .text:00010960 loc_10960 ; CODE XREF: decompose_rpath+198j .text:00010960 CMP R6, #1 .text:00010964 BLS loc_10978 .text:00010968 ADD R3, R6, R7 .text:0001096C LDRB R2, [R3,#-1] .text:00010970 CMP R2, #0x2F .text:00010974 BEQ loc_1095C .text:00010978 .text:00010978 loc_10978 ; CODE XREF: decompose_rpath+1A4j .text:00010978 CMP R6, #0 .text:0001097C BEQ loc_10998 .text:00010980 ADD R3, R6, R7 .text:00010984 LDRB R2, [R3,#-1] .text:00010988 CMP R2, #0x2F .text:0001098C MOVNE R3, #0x2F .text:00010990 STRNEB R3, [R6,R7] .text:00010994 ADDNE R6, R6, #1 .text:00010998 .text:00010998 loc_10998 ; CODE XREF: decompose_rpath+1BCj .text:00010998 LDR R3, =_dl_all_dirs .text:0001099C LDR R5, [R3] .text:000109A0 B loc_109A8 .text:000109A4 ; --------------------------------------------------------------------------- .text:000109A4 .text:000109A4 loc_109A4 ; CODE XREF: decompose_rpath+1F8j .text:000109A4 ; decompose_rpath+210j .text:000109A4 LDR R5, [R5] .text:000109A8 .text:000109A8 loc_109A8 ; CODE XREF: decompose_rpath+1E0j .text:000109A8 CMP R5, #0 .text:000109AC BEQ loc_109D4 .text:000109B0 LDR R3, [R5,#0x10] .text:000109B4 CMP R3, R6 .text:000109B8 BNE loc_109A4 .text:000109BC MOV R0, R7 .text:000109C0 LDR R1, [R5,#0xC] .text:000109C4 MOV R2, R6 .text:000109C8 BL memcmp .text:000109CC CMP R0, #0 .text:000109D0 BNE loc_109A4 .text:000109D4 .text:000109D4 loc_109D4 ; CODE XREF: decompose_rpath+1ECj .text:000109D4 CMP R5, #0 .text:000109D8 BEQ loc_10A0C .text:000109DC MOV R2, #0 .text:000109E0 B loc_109E8 .text:000109E4 ; --------------------------------------------------------------------------- .text:000109E4 .text:000109E4 loc_109E4 ; CODE XREF: decompose_rpath+238j .text:000109E4 ADD R2, R2, #1 .text:000109E8 .text:000109E8 loc_109E8 ; CODE XREF: decompose_rpath+220j .text:000109E8 CMP R2, R9 .text:000109EC BCS loc_109FC .text:000109F0 LDR R3, [R10,R2,LSL#2] .text:000109F4 CMP R3, R5 .text:000109F8 BNE loc_109E4 .text:000109FC .text:000109FC loc_109FC ; CODE XREF: decompose_rpath+22Cj .text:000109FC CMP R2, R9 .text:00010A00 STREQ R5, [R10,R9,LSL#2] .text:00010A04 ADDEQ R9, R9, #1 .text:00010A08 B loc_10904 .text:00010A0C ; --------------------------------------------------------------------------- .text:00010A0C .text:00010A0C loc_10A0C ; CODE XREF: decompose_rpath+218j .text:00010A0C LDR R2, [R11,#var_38] .text:00010A10 CMP R2, #0 .text:00010A14 BEQ loc_10A28 .text:00010A18 MOV R0, R2 .text:00010A1C BL strlen .text:00010A20 ADD R8, R0, #1 .text:00010A24 B loc_10A2C .text:00010A28 ; --------------------------------------------------------------------------- .text:00010A28 .text:00010A28 loc_10A28 ; CODE XREF: decompose_rpath+254j .text:00010A28 MOV R8, R5 .text:00010A2C .text:00010A2C loc_10A2C ; CODE XREF: decompose_rpath+264j .text:00010A2C LDR R4, =ncapstr .text:00010A30 LDR R3, [R4] .text:00010A34 ADD R0, R8, #0x14 .text:00010A38 ADD R0, R0, R3,LSL#2 .text:00010A3C ADD R0, R0, R6 .text:00010A40 ADD R0, R0, #1 .text:00010A44 BL malloc .text:00010A48 SUBS R5, R0, #0 .text:00010A4C BNE loc_10A60 .text:00010A50 MOV R0, #0xC .text:00010A54 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:00010A58 MOV R1, R5 .text:00010A5C BL _dl_signal_error .text:00010A60 ; --------------------------------------------------------------------------- .text:00010A60 .text:00010A60 loc_10A60 ; CODE XREF: decompose_rpath+28Cj .text:00010A60 LDR R0, [R4] .text:00010A64 MOV R0, R0,LSL#2 .text:00010A68 ADD R0, R0, #0x14 .text:00010A6C ADD R0, R5, R0 .text:00010A70 STR R0, [R5,#0xC] .text:00010A74 MOV R1, R7 .text:00010A78 MOV R2, R6 .text:00010A7C BL mempcpy .text:00010A80 MOV R1, #0 .text:00010A84 STRB R1, [R0] .text:00010A88 STR R6, [R5,#0x10] .text:00010A8C LDR R2, =max_dirnamelen .text:00010A90 LDR R3, [R2] .text:00010A94 CMP R6, R3 .text:00010A98 STRHI R6, [R2] .text:00010A9C LDRB R2, [R7] .text:00010AA0 MOV R12, R1 .text:00010AA4 CMP R2, #0x2F .text:00010AA8 MOVNE R0, #2 .text:00010AAC MOVEQ R0, #0 .text:00010AB0 LDR R3, [R4] .text:00010AB4 ADD R7, R9, #1 .text:00010AB8 CMP R12, R3 .text:00010ABC BCS loc_10AD8 .text:00010AC0 ADD R2, R5, #0x14 .text:00010AC4 .text:00010AC4 loc_10AC4 ; CODE XREF: decompose_rpath+314j .text:00010AC4 STR R0, [R2,R12,LSL#2] .text:00010AC8 LDR R3, [R4] .text:00010ACC ADD R12, R12, #1 .text:00010AD0 CMP R12, R3 .text:00010AD4 BCC loc_10AC4 .text:00010AD8 .text:00010AD8 loc_10AD8 ; CODE XREF: decompose_rpath+2FCj .text:00010AD8 LDR R3, [R11,#var_38] .text:00010ADC LDR R2, [R11,#var_34] .text:00010AE0 CMP R3, #0 .text:00010AE4 STR R2, [R5,#4] .text:00010AE8 BEQ loc_10B10 .text:00010AEC MOV R2, R8 .text:00010AF0 LDR R3, [R4] .text:00010AF4 ADD R0, R6, R5 .text:00010AF8 LDR R1, [R11,#var_38] .text:00010AFC ADD R0, R0, R3,LSL#2 .text:00010B00 ADD R0, R0, #0x15 .text:00010B04 BL memcpy .text:00010B08 STR R0, [R5,#8] .text:00010B0C B loc_10B18 .text:00010B10 ; --------------------------------------------------------------------------- .text:00010B10 .text:00010B10 loc_10B10 ; CODE XREF: decompose_rpath+328j .text:00010B10 LDR R3, [R11,#var_38] .text:00010B14 STR R3, [R5,#8] .text:00010B18 .text:00010B18 loc_10B18 ; CODE XREF: decompose_rpath+34Cj .text:00010B18 LDR R2, =_dl_all_dirs .text:00010B1C LDR R3, [R2] .text:00010B20 STR R3, [R5] .text:00010B24 STR R5, [R2] .text:00010B28 STR R5, [R10,R9,LSL#2] .text:00010B2C MOV R9, R7 .text:00010B30 B loc_10904 .text:00010B30 ; --------------------------------------------------------------------------- .text:00010B34 off_10B34 DCD _dl_inhibit_rpath ; DATA XREF: decompose_rpath+Cr .text:00010B38 off_10B38 DCD __libc_enable_secure ; DATA XREF: decompose_rpath+38r .text:00010B3C off_10B3C DCD aCannotCreateCa ; DATA XREF: decompose_rpath+A0r .text:00010B3C ; decompose_rpath+12Cr ... .text:00010B3C ; "cannot create cache for search path" .text:00010B40 off_10B40 DCD aCannotCreateRu ; DATA XREF: decompose_rpath+CCr .text:00010B40 ; "cannot create RUNPATH/RPATH copy" .text:00010B44 off_10B44 DCD asc_55DE8 ; DATA XREF: decompose_rpath+150r .text:00010B44 ; ":" .text:00010B48 off_10B48 DCD curwd.159 ; DATA XREF: decompose_rpath+18Cr .text:00010B48 ; "./" .text:00010B4C off_10B4C DCD _dl_all_dirs ; DATA XREF: decompose_rpath:loc_10998r .text:00010B4C ; decompose_rpath:loc_10B18r .text:00010B50 off_10B50 DCD ncapstr ; DATA XREF: decompose_rpath:loc_10A2Cr .text:00010B54 off_10B54 DCD max_dirnamelen ; DATA XREF: decompose_rpath+2CCr .text:00010B58 ; --------------------------------------------------------------------------- .text:00010B58 .text:00010B58 loc_10B58 ; CODE XREF: decompose_rpath+17Cj .text:00010B58 MOV R3, #0 .text:00010B5C STR R3, [R10,R9,LSL#2] .text:00010B60 LDR R0, [R11,#var_3C] .text:00010B64 BL free .text:00010B68 .text:00010B68 loc_10B68 ; CODE XREF: decompose_rpath+B0j .text:00010B68 LDR R3, [R11,#var_30] .text:00010B6C STR R10, [R3] .text:00010B70 LDR R2, [R11,#var_30] .text:00010B74 MOV R3, #1 .text:00010B78 STR R3, [R2,#4] .text:00010B7C LDMDB R11, {R4-R11,SP,PC} .text:00010B7C ; End of function decompose_rpath .text:00010B7C .text:00010B80 .text:00010B80 ; =============== S U B R O U T I N E ======================================= .text:00010B80 .text:00010B80 ; Attributes: bp-based frame .text:00010B80 .text:00010B80 EXPORT _dl_init_paths .text:00010B80 _dl_init_paths ; CODE XREF: non_dynamic_init+58p .text:00010B80 .text:00010B80 var_38 = -0x38 .text:00010B80 var_34 = -0x34 .text:00010B80 var_30 = -0x30 .text:00010B80 var_2C = -0x2C .text:00010B80 .text:00010B80 MOV R12, SP .text:00010B84 STMFD SP!, {R4-R12,LR,PC} .text:00010B88 LDR R3, =max_capstrlen .text:00010B8C LDR R2, =_dl_platform .text:00010B90 SUB R11, R12, #4 .text:00010B94 LDR R12, =_dl_platformlen .text:00010B98 MOV R10, R0 .text:00010B9C LDR R4, =ncapstr .text:00010BA0 SUB SP, SP, #0x10 .text:00010BA4 LDR R0, [R2] .text:00010BA8 LDR R1, [R12] .text:00010BAC MOV R2, R4 .text:00010BB0 BL _dl_important_hwcaps .text:00010BB4 LDR R3, =capstr .text:00010BB8 STR R0, [R3] .text:00010BBC MOV R0, #8 .text:00010BC0 BL malloc .text:00010BC4 LDR R6, =rtld_search_dirs .text:00010BC8 SUBS R8, R0, #0 .text:00010BCC STR R0, [R6] .text:00010BD0 BNE loc_10BE4 .text:00010BD4 MOV R0, #0xC .text:00010BD8 LDR R2, =aCannotCreateSe ; "cannot create search path array" .text:00010BDC MOV R1, R8 .text:00010BE0 BL _dl_signal_error .text:00010BE4 ; --------------------------------------------------------------------------- .text:00010BE4 .text:00010BE4 loc_10BE4 ; CODE XREF: _dl_init_paths+50j .text:00010BE4 LDR R1, =ncapstr .text:00010BE8 LDR R0, [R1] .text:00010BEC MOV R1, #5 .text:00010BF0 ADD R0, R0, #9 .text:00010BF4 BL __udivsi3 .text:00010BF8 MOV R5, R0 .text:00010BFC ADD R0, R5, R5,LSL#3 .text:00010C00 ADD R0, R5, R0,LSL#2 .text:00010C04 ADD R0, R0, R0,LSL#2 .text:00010C08 MOV R0, R0,LSL#2 .text:00010C0C BL malloc .text:00010C10 LDR R3, [R6] .text:00010C14 STR R0, [R3] .text:00010C18 LDR R12, [R6] .text:00010C1C LDR R1, [R12] .text:00010C20 CMP R1, #0 .text:00010C24 BNE loc_10C34 .text:00010C28 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:00010C2C MOV R0, #0xC .text:00010C30 BL _dl_signal_error .text:00010C34 ; --------------------------------------------------------------------------- .text:00010C34 .text:00010C34 loc_10C34 ; CODE XREF: _dl_init_paths+A4j .text:00010C34 MOV R3, #0 .text:00010C38 STR R3, [R6,#(dword_955A0 - 0x9559C)] .text:00010C3C LDR R7, =system_dirs ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:00010C40 MOV R6, R3 .text:00010C44 LDR R9, =aSystemSearchPa ; "system search path" .text:00010C48 ADD R3, R5, R5,LSL#2 .text:00010C4C LDR R4, =ncapstr .text:00010C50 MOV R0, R3,LSL#2 .text:00010C54 LDR R3, [R12] .text:00010C58 LDR R2, =_dl_all_dirs .text:00010C5C MOV R12, R3 .text:00010C60 STR R3, [R2] .text:00010C64 .text:00010C64 loc_10C64 ; CODE XREF: _dl_init_paths+188j .text:00010C64 STR R12, [R8],#4 .text:00010C68 STR R9, [R12,#4] .text:00010C6C MOV LR, #0 .text:00010C70 STR LR, [R12,#8] .text:00010C74 STR R7, [R12,#0xC] .text:00010C78 LDR R2, =system_dirs_len .text:00010C7C LDR R3, [R2,R6,LSL#2] .text:00010C80 STR R3, [R12,#0x10] .text:00010C84 ADD R3, R3, #1 .text:00010C88 MOV R2, R7 .text:00010C8C LDRB R1, [R2] .text:00010C90 ADD R7, R7, R3 .text:00010C94 CMP R1, #0x2F .text:00010C98 BEQ loc_10CB4 .text:00010C9C LDR R0, =aPelemDirname0 ; "pelem->dirname[0] == '/'" .text:00010CA0 LDR R1, =aDlLoad_c ; "dl-load.c" .text:00010CA4 MOV R2, #0x26C .text:00010CA8 LDR R3, =a_dl_init_paths ; "_dl_init_paths" .text:00010CAC ADD R2, R2, #1 .text:00010CB0 BL __assert_fail .text:00010CB4 ; --------------------------------------------------------------------------- .text:00010CB4 .text:00010CB4 loc_10CB4 ; CODE XREF: _dl_init_paths+118j .text:00010CB4 MOV R1, LR .text:00010CB8 LDR R3, [R4] .text:00010CBC ADD R6, R6, #1 .text:00010CC0 CMP R1, R3 .text:00010CC4 BCS loc_10CEC .text:00010CC8 ADD LR, R12, #0x14 .text:00010CCC MOV R5, R1 .text:00010CD0 .text:00010CD0 loc_10CD0 ; CODE XREF: _dl_init_paths+168j .text:00010CD0 MOV R3, R1,LSL#2 .text:00010CD4 STR R5, [LR,R3] .text:00010CD8 LDR R3, =ncapstr .text:00010CDC LDR R2, [R3] .text:00010CE0 ADD R1, R1, #1 .text:00010CE4 CMP R1, R2 .text:00010CE8 BCC loc_10CD0 .text:00010CEC .text:00010CEC loc_10CEC ; CODE XREF: _dl_init_paths+144j .text:00010CEC ADD R2, R12, R0 .text:00010CF0 CMP R6, #1 .text:00010CF4 MOVNE R3, R2 .text:00010CF8 MOVEQ R3, #0 .text:00010CFC STR R3, [R12] .text:00010D00 MOV R12, R2 .text:00010D04 CMP R6, #0 .text:00010D08 BEQ loc_10C64 .text:00010D0C LDR R1, =max_dirnamelen .text:00010D10 MOV R3, #0x24 .text:00010D14 STR R3, [R1] .text:00010D18 CMP R10, #0 .text:00010D1C SUB R3, R3, #0x24 .text:00010D20 STR R3, [R8] .text:00010D24 BEQ loc_110EC .text:00010D28 LDRB R3, [R10] .text:00010D2C CMP R3, #0 .text:00010D30 BEQ loc_110EC .text:00010D34 MOV R5, R10 .text:00010D38 MOV R0, R5 .text:00010D3C BL strlen .text:00010D40 MOV R2, R0 .text:00010D44 ADD R3, R2, #4 .text:00010D48 BIC R3, R3, #3 .text:00010D4C RSB SP, R3, SP .text:00010D50 MOV R0, SP .text:00010D54 MOV R1, R5 .text:00010D58 ADD R2, R2, #1 .text:00010D5C BL memcpy .text:00010D60 MOV R1, #1 .text:00010D64 MOV R6, R0 .text:00010D68 LDRB R2, [R5] .text:00010D6C SUB R3, R11, #-var_2C .text:00010D70 STR R3, [R11,#var_38] .text:00010D74 CMP R2, #0 .text:00010D78 BEQ loc_10D94 .text:00010D7C .text:00010D7C loc_10D7C ; CODE XREF: _dl_init_paths+210j .text:00010D7C SUB R3, R2, #0x3A .text:00010D80 LDRB R2, [R5,#1]! .text:00010D84 CMP R3, #1 .text:00010D88 ADDLS R1, R1, #1 .text:00010D8C CMP R2, #0 .text:00010D90 BNE loc_10D7C .text:00010D94 .text:00010D94 loc_10D94 ; CODE XREF: _dl_init_paths+1F8j .text:00010D94 ADD R0, R1, #1 .text:00010D98 MOV R0, R0,LSL#2 .text:00010D9C BL malloc .text:00010DA0 STR R0, [R11,#var_30] .text:00010DA4 LDR R1, =env_path_list .text:00010DA8 CMP R0, #0 .text:00010DAC STR R0, [R1] .text:00010DB0 BNE loc_10DC4 .text:00010DB4 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:00010DB8 LDR R1, [R11,#var_30] .text:00010DBC MOV R0, #0xC .text:00010DC0 BL _dl_signal_error .text:00010DC4 ; --------------------------------------------------------------------------- .text:00010DC4 .text:00010DC4 loc_10DC4 ; CODE XREF: _dl_init_paths+230j .text:00010DC4 LDR R3, =__libc_enable_secure .text:00010DC8 LDR R3, [R3] .text:00010DCC STR R6, [R11,#var_2C] .text:00010DD0 MOV R10, #0 .text:00010DD4 STR R3, [R11,#var_34] .text:00010DD8 .text:00010DD8 loc_10DD8 ; CODE XREF: _dl_init_paths+360j .text:00010DD8 ; _dl_init_paths+510j .text:00010DD8 LDR R5, [R11,#var_2C] .text:00010DDC CMP R5, #0 .text:00010DE0 BEQ loc_10E08 .text:00010DE4 LDR R1, =asc_55E4C ; ":;" .text:00010DE8 MOV R0, R5 .text:00010DEC BL strpbrk .text:00010DF0 LDR R2, [R11,#var_38] .text:00010DF4 CMP R0, #0 .text:00010DF8 STR R0, [R2] .text:00010DFC MOVNE R3, #0 .text:00010E00 STRNEB R3, [R0],#1 .text:00010E04 STRNE R0, [R2] .text:00010E08 .text:00010E08 loc_10E08 ; CODE XREF: _dl_init_paths+260j .text:00010E08 SUBS R7, R5, #0 .text:00010E0C BEQ loc_11094 .text:00010E10 MOV R0, R7 .text:00010E14 BL strlen .text:00010E18 MOV R4, R0 .text:00010E1C LDR R3, =curwd.159 ; "./" .text:00010E20 CMP R4, #0 .text:00010E24 MOVEQ R7, R3 .text:00010E28 B loc_10E30 .text:00010E2C ; --------------------------------------------------------------------------- .text:00010E2C .text:00010E2C loc_10E2C ; CODE XREF: _dl_init_paths+2C4j .text:00010E2C SUB R4, R4, #1 .text:00010E30 .text:00010E30 loc_10E30 ; CODE XREF: _dl_init_paths+2A8j .text:00010E30 CMP R4, #1 .text:00010E34 BLS loc_10E48 .text:00010E38 ADD R3, R4, R7 .text:00010E3C LDRB R2, [R3,#-1] .text:00010E40 CMP R2, #0x2F .text:00010E44 BEQ loc_10E2C .text:00010E48 .text:00010E48 loc_10E48 ; CODE XREF: _dl_init_paths+2B4j .text:00010E48 CMP R4, #0 .text:00010E4C BEQ loc_10E68 .text:00010E50 ADD R3, R4, R7 .text:00010E54 LDRB R2, [R3,#-1] .text:00010E58 CMP R2, #0x2F .text:00010E5C MOVNE R3, #0x2F .text:00010E60 STRNEB R3, [R4,R7] .text:00010E64 ADDNE R4, R4, #1 .text:00010E68 .text:00010E68 loc_10E68 ; CODE XREF: _dl_init_paths+2CCj .text:00010E68 LDR R3, =_dl_all_dirs .text:00010E6C LDR R5, [R3] .text:00010E70 B loc_10E78 .text:00010E74 ; --------------------------------------------------------------------------- .text:00010E74 .text:00010E74 loc_10E74 ; CODE XREF: _dl_init_paths+308j .text:00010E74 ; _dl_init_paths+320j .text:00010E74 LDR R5, [R5] .text:00010E78 .text:00010E78 loc_10E78 ; CODE XREF: _dl_init_paths+2F0j .text:00010E78 CMP R5, #0 .text:00010E7C BEQ loc_10EA4 .text:00010E80 LDR R3, [R5,#0x10] .text:00010E84 CMP R3, R4 .text:00010E88 BNE loc_10E74 .text:00010E8C MOV R0, R7 .text:00010E90 LDR R1, [R5,#0xC] .text:00010E94 MOV R2, R4 .text:00010E98 BL memcmp .text:00010E9C CMP R0, #0 .text:00010EA0 BNE loc_10E74 .text:00010EA4 .text:00010EA4 loc_10EA4 ; CODE XREF: _dl_init_paths+2FCj .text:00010EA4 CMP R5, #0 .text:00010EA8 BEQ loc_10EE4 .text:00010EAC MOV R2, #0 .text:00010EB0 B loc_10EB8 .text:00010EB4 ; --------------------------------------------------------------------------- .text:00010EB4 .text:00010EB4 loc_10EB4 ; CODE XREF: _dl_init_paths+34Cj .text:00010EB4 ADD R2, R2, #1 .text:00010EB8 .text:00010EB8 loc_10EB8 ; CODE XREF: _dl_init_paths+330j .text:00010EB8 CMP R2, R10 .text:00010EBC BCS loc_10ED0 .text:00010EC0 LDR R1, [R11,#var_30] .text:00010EC4 LDR R3, [R1,R2,LSL#2] .text:00010EC8 CMP R3, R5 .text:00010ECC BNE loc_10EB4 .text:00010ED0 .text:00010ED0 loc_10ED0 ; CODE XREF: _dl_init_paths+33Cj .text:00010ED0 CMP R2, R10 .text:00010ED4 LDREQ R2, [R11,#var_30] .text:00010ED8 STREQ R5, [R2,R10,LSL#2] .text:00010EDC ADDEQ R10, R10, #1 .text:00010EE0 B loc_10DD8 .text:00010EE4 ; --------------------------------------------------------------------------- .text:00010EE4 .text:00010EE4 loc_10EE4 ; CODE XREF: _dl_init_paths+328j .text:00010EE4 LDR R1, =ncapstr .text:00010EE8 MOV R6, R5 .text:00010EEC LDR R3, [R1] .text:00010EF0 ADD R0, R6, #0x14 .text:00010EF4 ADD R0, R0, R3,LSL#2 .text:00010EF8 ADD R0, R0, R4 .text:00010EFC ADD R0, R0, #1 .text:00010F00 BL malloc .text:00010F04 SUBS R5, R0, #0 .text:00010F08 BNE loc_10F6C .text:00010F0C MOV R0, #0xC .text:00010F10 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:00010F14 MOV R1, R5 .text:00010F18 BL _dl_signal_error .text:00010F18 ; --------------------------------------------------------------------------- .text:00010F1C off_10F1C DCD max_capstrlen ; DATA XREF: _dl_init_paths+8r .text:00010F20 off_10F20 DCD _dl_platform ; DATA XREF: _dl_init_paths+Cr .text:00010F24 off_10F24 DCD _dl_platformlen ; DATA XREF: _dl_init_paths+14r .text:00010F28 off_10F28 DCD ncapstr ; DATA XREF: _dl_init_paths+1Cr .text:00010F28 ; _dl_init_paths:loc_10BE4r ... .text:00010F2C off_10F2C DCD capstr ; DATA XREF: _dl_init_paths+34r .text:00010F30 off_10F30 DCD rtld_search_dirs ; DATA XREF: _dl_init_paths+44r .text:00010F34 off_10F34 DCD aCannotCreateSe ; DATA XREF: _dl_init_paths+58r .text:00010F34 ; "cannot create search path array" .text:00010F38 off_10F38 DCD aCannotCreateCa ; DATA XREF: _dl_init_paths+A8r .text:00010F38 ; _dl_init_paths+234r ... .text:00010F38 ; "cannot create cache for search path" .text:00010F3C off_10F3C DCD system_dirs ; DATA XREF: _dl_init_paths+BCr .text:00010F3C ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:00010F40 off_10F40 DCD aSystemSearchPa ; DATA XREF: _dl_init_paths+C4r .text:00010F40 ; "system search path" .text:00010F44 off_10F44 DCD _dl_all_dirs ; DATA XREF: _dl_init_paths+D8r .text:00010F44 ; _dl_init_paths:loc_10E68r .text:00010F48 off_10F48 DCD system_dirs_len ; DATA XREF: _dl_init_paths+F8r .text:00010F4C off_10F4C DCD aPelemDirname0 ; DATA XREF: _dl_init_paths+11Cr .text:00010F4C ; "pelem->dirname[0] == '/'" .text:00010F50 off_10F50 DCD aDlLoad_c ; DATA XREF: _dl_init_paths+120r .text:00010F50 ; "dl-load.c" .text:00010F54 off_10F54 DCD a_dl_init_paths ; DATA XREF: _dl_init_paths+128r .text:00010F54 ; "_dl_init_paths" .text:00010F58 off_10F58 DCD max_dirnamelen ; DATA XREF: _dl_init_paths+18Cr .text:00010F5C off_10F5C DCD env_path_list ; DATA XREF: _dl_init_paths+224r .text:00010F60 off_10F60 DCD __libc_enable_secure .text:00010F60 ; DATA XREF: _dl_init_paths:loc_10DC4r .text:00010F64 off_10F64 DCD asc_55E4C ; DATA XREF: _dl_init_paths+264r .text:00010F64 ; ":;" .text:00010F68 off_10F68 DCD curwd.159 ; DATA XREF: _dl_init_paths+29Cr .text:00010F68 ; "./" .text:00010F6C ; --------------------------------------------------------------------------- .text:00010F6C .text:00010F6C loc_10F6C ; CODE XREF: _dl_init_paths+388j .text:00010F6C LDR R2, =ncapstr .text:00010F70 LDR R0, [R2] .text:00010F74 MOV R0, R0,LSL#2 .text:00010F78 ADD R0, R0, #0x14 .text:00010F7C ADD R0, R5, R0 .text:00010F80 STR R0, [R5,#0xC] .text:00010F84 MOV R1, R7 .text:00010F88 MOV R2, R4 .text:00010F8C BL mempcpy .text:00010F90 STRB R6, [R0] .text:00010F94 STR R4, [R5,#0x10] .text:00010F98 LDR R1, =max_dirnamelen .text:00010F9C LDR R3, [R1] .text:00010FA0 CMP R4, R3 .text:00010FA4 STRHI R4, [R1] .text:00010FA8 LDR R2, [R11,#var_34] .text:00010FAC CMP R2, #0 .text:00010FB0 BEQ loc_11020 .text:00010FB4 MOV R0, #1 .text:00010FB8 LDRB R3, [R7] .text:00010FBC ADD R9, R10, R0 .text:00010FC0 LDR R8, =system_dirs ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:00010FC4 CMP R3, #0x2F .text:00010FC8 BNE loc_11034 .text:00010FCC B loc_10FE4 .text:00010FD0 ; --------------------------------------------------------------------------- .text:00010FD0 .text:00010FD0 loc_10FD0 ; CODE XREF: _dl_init_paths+478j .text:00010FD0 ; _dl_init_paths+490j .text:00010FD0 LDR R1, =system_dirs_len .text:00010FD4 LDR R3, [R1,R6,LSL#2] .text:00010FD8 ADD R6, R6, #1 .text:00010FDC ADD R3, R3, #1 .text:00010FE0 ADD R8, R8, R3 .text:00010FE4 .text:00010FE4 loc_10FE4 ; CODE XREF: _dl_init_paths+44Cj .text:00010FE4 CMP R6, #0 .text:00010FE8 BNE loc_11014 .text:00010FEC LDR R2, =system_dirs_len .text:00010FF0 LDR R3, [R2,R6] .text:00010FF4 CMP R4, R3 .text:00010FF8 BNE loc_10FD0 .text:00010FFC MOV R0, R8 .text:00011000 MOV R1, R7 .text:00011004 MOV R2, R4 .text:00011008 BL memcmp .text:0001100C CMP R0, #0 .text:00011010 BNE loc_10FD0 .text:00011014 .text:00011014 loc_11014 ; CODE XREF: _dl_init_paths+468j .text:00011014 SUBS R0, R6, #0 .text:00011018 MOVNE R0, #1 .text:0001101C B loc_11034 .text:00011020 ; --------------------------------------------------------------------------- .text:00011020 .text:00011020 loc_11020 ; CODE XREF: _dl_init_paths+430j .text:00011020 LDRB R3, [R7] .text:00011024 ADD R9, R10, #1 .text:00011028 CMP R3, #0x2F .text:0001102C MOVNE R0, #2 .text:00011030 MOVEQ R0, #0 .text:00011034 .text:00011034 loc_11034 ; CODE XREF: _dl_init_paths+448j .text:00011034 ; _dl_init_paths+49Cj .text:00011034 LDR R1, =ncapstr .text:00011038 LDR R3, [R1] .text:0001103C MOV R2, #0 .text:00011040 CMP R2, R3 .text:00011044 BCS loc_11064 .text:00011048 ADD R12, R5, #0x14 .text:0001104C .text:0001104C loc_1104C ; CODE XREF: _dl_init_paths+4E0j .text:0001104C STR R0, [R12,R2,LSL#2] .text:00011050 LDR R1, =ncapstr .text:00011054 LDR R3, [R1] .text:00011058 ADD R2, R2, #1 .text:0001105C CMP R2, R3 .text:00011060 BCC loc_1104C .text:00011064 .text:00011064 loc_11064 ; CODE XREF: _dl_init_paths+4C4j .text:00011064 MOV R3, #0 .text:00011068 STR R3, [R5,#8] .text:0001106C LDR R2, =aLd_library_pat ; "LD_LIBRARY_PATH" .text:00011070 STR R2, [R5,#4] .text:00011074 LDR R3, =_dl_all_dirs .text:00011078 LDR R2, [R3] .text:0001107C STR R2, [R5] .text:00011080 LDR R1, [R11,#var_30] .text:00011084 STR R5, [R1,R10,LSL#2] .text:00011088 MOV R10, R9 .text:0001108C STR R5, [R3] .text:00011090 B loc_10DD8 .text:00011094 ; --------------------------------------------------------------------------- .text:00011094 .text:00011094 loc_11094 ; CODE XREF: _dl_init_paths+28Cj .text:00011094 LDR R2, [R11,#var_30] .text:00011098 MOV R4, #0 .text:0001109C STR R4, [R2,R10,LSL#2] .text:000110A0 LDR R3, =env_path_list .text:000110A4 LDR R0, [R3] .text:000110A8 LDR R3, [R0] .text:000110AC CMP R3, R4 .text:000110B0 BNE loc_110C4 .text:000110B4 BL free .text:000110B8 LDR R1, =env_path_list .text:000110BC MOV R3, 0xFFFFFFFF .text:000110C0 STR R3, [R1] .text:000110C4 .text:000110C4 loc_110C4 ; CODE XREF: _dl_init_paths+530j .text:000110C4 LDR R2, =env_path_list .text:000110C8 STR R4, [R2,#(dword_9558C - 0x95588)] .text:000110CC B loc_110F8 .text:000110CC ; --------------------------------------------------------------------------- .text:000110D0 off_110D0 DCD ncapstr ; DATA XREF: _dl_init_paths:loc_10F6Cr .text:000110D0 ; _dl_init_paths:loc_11034r ... .text:000110D4 off_110D4 DCD max_dirnamelen ; DATA XREF: _dl_init_paths+418r .text:000110D8 off_110D8 DCD system_dirs ; DATA XREF: _dl_init_paths+440r .text:000110D8 ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:000110DC off_110DC DCD system_dirs_len ; DATA XREF: _dl_init_paths:loc_10FD0r .text:000110DC ; _dl_init_paths+46Cr .text:000110E0 off_110E0 DCD aLd_library_pat ; DATA XREF: _dl_init_paths+4ECr .text:000110E0 ; "LD_LIBRARY_PATH" .text:000110E4 off_110E4 DCD _dl_all_dirs ; DATA XREF: _dl_init_paths+4F4r .text:000110E8 off_110E8 DCD env_path_list ; DATA XREF: _dl_init_paths+520r .text:000110E8 ; _dl_init_paths+538r ... .text:000110EC ; --------------------------------------------------------------------------- .text:000110EC .text:000110EC loc_110EC ; CODE XREF: _dl_init_paths+1A4j .text:000110EC ; _dl_init_paths+1B0j .text:000110EC LDR R1, =env_path_list .text:000110F0 MOV R3, 0xFFFFFFFF .text:000110F4 STR R3, [R1] .text:000110F8 .text:000110F8 loc_110F8 ; CODE XREF: _dl_init_paths+54Cj .text:000110F8 LDR R3, =_dl_all_dirs .text:000110FC LDR R2, [R3] .text:00011100 LDR R3, =_dl_init_all_dirs .text:00011104 STR R2, [R3] .text:00011108 B locret_11118 .text:00011108 ; --------------------------------------------------------------------------- .text:0001110C off_1110C DCD env_path_list ; DATA XREF: _dl_init_paths:loc_110ECr .text:00011110 off_11110 DCD _dl_all_dirs ; DATA XREF: _dl_init_paths:loc_110F8r .text:00011114 off_11114 DCD _dl_init_all_dirs ; DATA XREF: _dl_init_paths+580r .text:00011118 ; --------------------------------------------------------------------------- .text:00011118 .text:00011118 locret_11118 ; CODE XREF: _dl_init_paths+588j .text:00011118 LDMDB R11, {R4-R11,SP,PC} .text:00011118 ; End of function _dl_init_paths .text:00011118 .text:0001111C .text:0001111C ; =============== S U B R O U T I N E ======================================= .text:0001111C .text:0001111C ; Attributes: noreturn bp-based frame .text:0001111C .text:0001111C lose ; CODE XREF: _dl_map_object_from_fd+60p .text:0001111C ; _dl_map_object_from_fd+170p ... .text:0001111C .text:0001111C var_10 = -0x10 .text:0001111C arg_0 = 4 .text:0001111C arg_4 = 8 .text:0001111C .text:0001111C MOV R12, SP .text:00011120 STMFD SP!, {R11,R12,LR,PC} .text:00011124 SUB R11, R12, #4 .text:00011128 SUB SP, SP, #4 .text:0001112C STR R1, [SP,#0x10+var_10] .text:00011130 MOV R7, R0 .text:00011134 MOV R0, R1 .text:00011138 MOV R6, R2 .text:0001113C MOV R5, R3 .text:00011140 LDR R4, [R11,#arg_0] .text:00011144 BL close .text:00011148 CMP R4, #0 .text:0001114C BEQ loc_11188 .text:00011150 LDR R2, [R4,#0x10] .text:00011154 CMP R2, #0 .text:00011158 LDRNE R3, [R4,#0xC] .text:0001115C STRNE R3, [R2,#0xC] .text:00011160 LDR R2, [R4,#0xC] .text:00011164 CMP R2, #0 .text:00011168 LDRNE R3, [R4,#0x10] .text:0001116C STRNE R3, [R2,#0x10] .text:00011170 LDR R2, =_dl_nloaded .text:00011174 LDR R3, [R2] .text:00011178 SUB R3, R3, #1 .text:0001117C STR R3, [R2] .text:00011180 MOV R0, R4 .text:00011184 BL free .text:00011188 .text:00011188 loc_11188 ; CODE XREF: lose+30j .text:00011188 MOV R0, R5 .text:0001118C BL free .text:00011190 MOV R0, R7 .text:00011194 LDR R2, [R11,#arg_4] .text:00011198 MOV R1, R6 .text:0001119C BL _dl_signal_error .text:0001119C ; End of function lose .text:0001119C .text:0001119C ; --------------------------------------------------------------------------- .text:000111A0 off_111A0 DCD _dl_nloaded ; DATA XREF: lose+54r .text:000111A4 ; --------------------------------------------------------------------------- .text:000111A4 LDMDB R11, {R4-R7,R11,SP,PC} .text:000111A8 .text:000111A8 ; =============== S U B R O U T I N E ======================================= .text:000111A8 .text:000111A8 ; Attributes: bp-based frame .text:000111A8 .text:000111A8 _dl_map_object_from_fd ; CODE XREF: _dl_map_object+748p .text:000111A8 .text:000111A8 var_D4 = -0xD4 .text:000111A8 var_D0 = -0xD0 .text:000111A8 var_C8 = -0xC8 .text:000111A8 var_C4 = -0xC4 .text:000111A8 var_C0 = -0xC0 .text:000111A8 var_BC = -0xBC .text:000111A8 var_B8 = -0xB8 .text:000111A8 var_B4 = -0xB4 .text:000111A8 var_B0 = -0xB0 .text:000111A8 var_AC = -0xAC .text:000111A8 var_A8 = -0xA8 .text:000111A8 var_A4 = -0xA4 .text:000111A8 var_A0 = -0xA0 .text:000111A8 var_9C = -0x9C .text:000111A8 var_98 = -0x98 .text:000111A8 var_40 = -0x40 .text:000111A8 var_38 = -0x38 .text:000111A8 var_34 = -0x34 .text:000111A8 var_30 = -0x30 .text:000111A8 var_2C = -0x2C .text:000111A8 var_28 = -0x28 .text:000111A8 arg_0 = 4 .text:000111A8 arg_4 = 8 .text:000111A8 arg_8 = 0xC .text:000111A8 .text:000111A8 MOV R12, SP .text:000111AC STMFD SP!, {R4-R12,LR,PC} .text:000111B0 SUB R11, R12, #4 .text:000111B4 SUB SP, SP, #0xAC .text:000111B8 STR R0, [R11,#var_30] .text:000111BC STR R1, [R11,#var_2C] .text:000111C0 STR R3, [R11,#var_34] .text:000111C4 MOV R3, #0 .text:000111C8 STR R3, [R11,#var_38] .text:000111CC MOV R4, R2 .text:000111D0 SUB R2, R11, #-var_98 .text:000111D4 MOV R0, #3 .text:000111D8 BL __fxstat64 .text:000111DC CMP R0, #0 .text:000111E0 BGE loc_1120C .text:000111E4 BL __errno_location .text:000111E8 LDR R0, [R0] .text:000111EC LDR R1, [R11,#var_2C] .text:000111F0 LDR R2, [R11,#var_30] .text:000111F4 LDR LR, [R11,#var_38] .text:000111F8 LDR R3, [R11,#var_34] .text:000111FC STR LR, [SP,#0xD4+var_D4] .text:00011200 LDR R12, =aCannotStatShar ; "cannot stat shared object" .text:00011204 STR R12, [SP,#0xD4+var_D0] .text:00011208 BL lose .text:0001120C ; --------------------------------------------------------------------------- .text:0001120C .text:0001120C loc_1120C ; CODE XREF: _dl_map_object_from_fd+38j .text:0001120C LDR R3, =_dl_loaded .text:00011210 LDR R2, [R3] .text:00011214 CMP R2, #0 .text:00011218 STR R2, [R11,#var_38] .text:0001121C BEQ loc_112A8 .text:00011220 MOV R5, #0x174 .text:00011224 MOV R3, 0xFFFFFFE8 .text:00011228 ADD R0, R11, R3 .text:0001122C SUB R7, R0, #0x28 .text:00011230 MOV LR, #0x16C .text:00011234 MOV R12, 0xFFFFFF90 .text:00011238 SUB R1, R11, #-var_28 .text:0001123C LDR R6, [R1,R3] .text:00011240 .text:00011240 loc_11240 ; CODE XREF: _dl_map_object_from_fd+FCj .text:00011240 LDR R2, [R11,#var_38] .text:00011244 LDR R3, [R2,R5] .text:00011248 MOV R0, R2 .text:0001124C CMP R3, R6 .text:00011250 ADD R3, R2, R5 .text:00011254 BNE loc_11298 .text:00011258 LDR R2, [R3,#4] .text:0001125C LDR R3, [R7,#4] .text:00011260 CMP R2, R3 .text:00011264 BNE loc_11298 .text:00011268 LDR R2, [R0,LR] .text:0001126C SUB R1, R11, #-var_28 .text:00011270 LDR R3, [R1,R12] .text:00011274 CMP R2, R3 .text:00011278 ADD R3, R0, LR .text:0001127C ADD R2, R11, R12 .text:00011280 SUB R1, R2, #0x28 .text:00011284 BNE loc_11298 .text:00011288 LDR R2, [R3,#4] .text:0001128C LDR R3, [R1,#4] .text:00011290 CMP R2, R3 .text:00011294 BEQ loc_11D70 .text:00011298 .text:00011298 loc_11298 ; CODE XREF: _dl_map_object_from_fd+ACj .text:00011298 ; _dl_map_object_from_fd+BCj ... .text:00011298 LDR R3, [R0,#0xC] .text:0001129C CMP R3, #0 .text:000112A0 STR R3, [R11,#var_38] .text:000112A4 BNE loc_11240 .text:000112A8 .text:000112A8 loc_112A8 ; CODE XREF: _dl_map_object_from_fd+74j .text:000112A8 LDR R3, [R11,#arg_8] .text:000112AC ANDS R5, R3, #4 .text:000112B0 MOVNE R0, #0 .text:000112B4 BNE loc_11E40 .text:000112B8 LDR R2, =_dl_debug_mask .text:000112BC LDR R3, [R2] .text:000112C0 TST R3, #0x40 .text:000112C4 BEQ loc_112D4 .text:000112C8 LDR R0, =aFileSGeneratin ; "file=%s; generating link map\n" .text:000112CC LDR R1, [R11,#var_30] .text:000112D0 BL _dl_debug_printf .text:000112D4 .text:000112D4 loc_112D4 ; CODE XREF: _dl_map_object_from_fd+11Cj .text:000112D4 LDR R0, [R11,#var_34] .text:000112D8 LDR R2, [R11,#arg_4] .text:000112DC LDR R1, [R11,#var_30] .text:000112E0 LDR R3, [R11,#arg_0] .text:000112E4 BL _dl_new_object .text:000112E8 MOV R2, R0 .text:000112EC CMP R2, #0 .text:000112F0 ADD R9, R4, #4 .text:000112F4 STR R2, [R11,#var_38] .text:000112F8 BNE loc_1131C .text:000112FC LDR R1, [R11,#var_2C] .text:00011300 LDR R2, [R11,#var_30] .text:00011304 LDR R3, [R11,#var_34] .text:00011308 STR R5, [SP,#0xD4+var_D4] .text:0001130C LDR R0, =aCannotCreateSh ; "cannot create shared object descriptor" .text:00011310 STR R0, [SP,#0xD4+var_D0] .text:00011314 MOV R0, #0xC .text:00011318 BL lose .text:0001131C ; --------------------------------------------------------------------------- .text:0001131C .text:0001131C loc_1131C ; CODE XREF: _dl_map_object_from_fd+150j .text:0001131C LDR R3, [R9,#0x18] .text:00011320 STR R3, [R2,#0xF0] .text:00011324 LDRB R12, [R4,#0x14] .text:00011328 LDR R3, [R9,#0x2C] .text:0001132C LDRB R0, [R4,#0x15] .text:00011330 STRB R3, [R2,#0xF4] .text:00011334 MOV R3, R3,ASR#8 .text:00011338 STRB R3, [R2,#0xF5] .text:0001133C LDRB R2, [R4,#0x30] .text:00011340 LDRB R3, [R4,#0x31] .text:00011344 LDR LR, [R9,#0x1C] .text:00011348 LDR R1, [R4] .text:0001134C ORR R0, R12, R0,LSL#8 .text:00011350 STR R0, [R11,#var_A0] .text:00011354 ORR R2, R2, R3,LSL#8 .text:00011358 MOV R10, R2,LSL#5 .text:0001135C ADD R3, LR, R10 .text:00011360 CMP R3, R1 .text:00011364 ADDLS R3, LR, #4 .text:00011368 ADDLS R4, R4, R3 .text:0001136C STRLS R4, [R11,#var_9C] .text:00011370 BLS loc_113D8 .text:00011374 ADD R3, R10, #3 .text:00011378 BIC R3, R3, #3 .text:0001137C RSB SP, R3, SP .text:00011380 ADD R0, SP, #0xD4+var_B0 .text:00011384 STR R0, [R11,#var_9C] .text:00011388 MOV R1, R5 .text:0001138C LDR R0, [R11,#var_2C] .text:00011390 MOV R2, LR .text:00011394 BL lseek .text:00011398 LDR R1, [R11,#var_9C] .text:0001139C LDR R0, [R11,#var_2C] .text:000113A0 MOV R2, R10 .text:000113A4 BL read .text:000113A8 CMP R0, R10 .text:000113AC BEQ loc_113D8 .text:000113B0 BL __errno_location .text:000113B4 LDR R0, [R0] .text:000113B8 LDR R1, [R11,#var_2C] .text:000113BC LDR R2, [R11,#var_30] .text:000113C0 LDR LR, [R11,#var_38] .text:000113C4 LDR R3, [R11,#var_34] .text:000113C8 STR LR, [SP,#0xD4+var_D4] .text:000113CC LDR R12, =aCannotReadFile ; "cannot read file data" .text:000113D0 STR R12, [SP,#0xD4+var_D0] .text:000113D4 BL lose .text:000113D8 ; --------------------------------------------------------------------------- .text:000113D8 .text:000113D8 loc_113D8 ; CODE XREF: _dl_map_object_from_fd+1C8j .text:000113D8 ; _dl_map_object_from_fd+204j .text:000113D8 MOV R1, #0 .text:000113DC STR R1, [R11,#var_AC] .text:000113E0 LDR R2, [R11,#var_38] .text:000113E4 LDR R4, [R11,#var_9C] .text:000113E8 LDRB R1, [R2,#0xF5] .text:000113EC LDRB R3, [R2,#0xF4] .text:000113F0 STR SP, [R11,#var_A4] .text:000113F4 ORR R3, R3, R1,LSL#8 .text:000113F8 ADD R2, R3, R3,LSL#1 .text:000113FC SUB SP, SP, R2,LSL#3 .text:00011400 ADD R3, R4, R3,LSL#5 .text:00011404 CMP R4, R3 .text:00011408 ADD R2, SP, #0xD4+var_B0 .text:0001140C STR R2, [R11,#var_A8] .text:00011410 BCS loc_115C8 .text:00011414 MOV R7, R2 .text:00011418 .text:00011418 loc_11418 ; CODE XREF: _dl_map_object_from_fd+41Cj .text:00011418 LDR R3, [R4] .text:0001141C CMP R3, #2 .text:00011420 BEQ loc_11440 .text:00011424 BHI loc_11434 .text:00011428 CMP R3, #1 .text:0001142C BEQ loc_11474 .text:00011430 B loc_115A4 .text:00011434 ; --------------------------------------------------------------------------- .text:00011434 .text:00011434 loc_11434 ; CODE XREF: _dl_map_object_from_fd+27Cj .text:00011434 CMP R3, #6 .text:00011438 BEQ loc_11464 .text:0001143C B loc_115A4 .text:00011440 ; --------------------------------------------------------------------------- .text:00011440 .text:00011440 loc_11440 ; CODE XREF: _dl_map_object_from_fd+278j .text:00011440 LDR R1, [R11,#var_38] .text:00011444 LDR R2, [R4,#8] .text:00011448 STR R2, [R1,#8] .text:0001144C LDR R3, [R4,#0x14] .text:00011450 MOV R3, R3,LSR#3 .text:00011454 STRB R3, [R1,#0xF6] .text:00011458 MOV R3, R3,ASR#8 .text:0001145C STRB R3, [R1,#0xF7] .text:00011460 B loc_115A4 .text:00011464 ; --------------------------------------------------------------------------- .text:00011464 .text:00011464 loc_11464 ; CODE XREF: _dl_map_object_from_fd+290j .text:00011464 LDR R2, [R11,#var_38] .text:00011468 LDR R3, [R4,#8] .text:0001146C STR R3, [R2,#0xEC] .text:00011470 B loc_115A4 .text:00011474 ; --------------------------------------------------------------------------- .text:00011474 .text:00011474 loc_11474 ; CODE XREF: _dl_map_object_from_fd+284j .text:00011474 LDR R10, =_dl_pagesize .text:00011478 LDR R5, [R4,#0x1C] .text:0001147C LDR R1, [R10] .text:00011480 MOV R0, R5 .text:00011484 BL __umodsi3 .text:00011488 SUBS R8, R0, #0 .text:0001148C MOV R1, R5 .text:00011490 BEQ loc_114B8 .text:00011494 LDR R1, [R11,#var_2C] .text:00011498 LDR R2, [R11,#var_30] .text:0001149C LDR R12, [R11,#var_38] .text:000114A0 LDR R3, [R11,#var_34] .text:000114A4 STR R12, [SP,#0xD4+var_D4] .text:000114A8 LDR R0, =aElfLoadCommand ; "ELF load command alignment not page-ali"... .text:000114AC STR R0, [SP,#0xD4+var_D0] .text:000114B0 MOV R0, #0 .text:000114B4 BL lose .text:000114B8 ; --------------------------------------------------------------------------- .text:000114B8 .text:000114B8 loc_114B8 ; CODE XREF: _dl_map_object_from_fd+2E8j .text:000114B8 ADD R3, R4, #8 .text:000114BC LDMDA R3, {R0,R3} .text:000114C0 SUB R0, R3, R0 .text:000114C4 BL __umodsi3 .text:000114C8 CMP R0, #0 .text:000114CC LDR R6, [R4,#8] .text:000114D0 BEQ loc_1151C .text:000114D4 LDR R1, [R11,#var_2C] .text:000114D8 LDR R2, [R11,#var_30] .text:000114DC LDR R12, [R11,#var_38] .text:000114E0 LDR R3, [R11,#var_34] .text:000114E4 STR R12, [SP,#0xD4+var_D4] .text:000114E8 LDR R0, =aElfLoadComma_0 ; "ELF load command address/offset not pro"... .text:000114EC STR R0, [SP,#0xD4+var_D0] .text:000114F0 MOV R0, R8 .text:000114F4 BL lose .text:000114F4 ; --------------------------------------------------------------------------- .text:000114F8 off_114F8 DCD aCannotStatShar ; DATA XREF: _dl_map_object_from_fd+58r .text:000114F8 ; "cannot stat shared object" .text:000114FC off_114FC DCD _dl_loaded ; DATA XREF: _dl_map_object_from_fd:loc_1120Cr .text:00011500 off_11500 DCD _dl_debug_mask ; DATA XREF: _dl_map_object_from_fd+110r .text:00011504 off_11504 DCD aFileSGeneratin ; DATA XREF: _dl_map_object_from_fd+120r .text:00011504 ; "file=%s; generating link map\n" .text:00011508 off_11508 DCD aCannotCreateSh ; DATA XREF: _dl_map_object_from_fd+164r .text:00011508 ; "cannot create shared object descriptor" .text:0001150C off_1150C DCD aCannotReadFile ; DATA XREF: _dl_map_object_from_fd+224r .text:0001150C ; "cannot read file data" .text:00011510 off_11510 DCD _dl_pagesize ; DATA XREF: _dl_map_object_from_fd:loc_11474r .text:00011514 off_11514 DCD aElfLoadCommand ; DATA XREF: _dl_map_object_from_fd+300r .text:00011514 ; "ELF load command alignment not page-ali"... .text:00011518 off_11518 DCD aElfLoadComma_0 ; DATA XREF: _dl_map_object_from_fd+340r .text:00011518 ; "ELF load command address/offset not pro"... .text:0001151C ; --------------------------------------------------------------------------- .text:0001151C .text:0001151C loc_1151C ; CODE XREF: _dl_map_object_from_fd+328j .text:0001151C ADD R7, R7, #0x18 .text:00011520 RSB R3, R5, #0 .text:00011524 AND R3, R6, R3 .text:00011528 STR R3, [R7,#-0x18] .text:0001152C LDR R2, [R4,#8] .text:00011530 LDR R1, [R4,#0x10] .text:00011534 LDR R3, [R10] .text:00011538 ADD R2, R2, R1 .text:0001153C ADD R2, R2, R3 .text:00011540 SUB R2, R2, #1 .text:00011544 RSB R3, R3, #0 .text:00011548 AND R2, R2, R3 .text:0001154C STR R2, [R7,#-0x14] .text:00011550 LDR R3, [R4,#8] .text:00011554 LDR R2, [R4,#0x10] .text:00011558 ADD R3, R3, R2 .text:0001155C STR R3, [R7,#-0x10] .text:00011560 LDR R2, [R4,#8] .text:00011564 LDR R3, [R4,#0x14] .text:00011568 ADD R2, R2, R3 .text:0001156C STR R2, [R7,#-0xC] .text:00011570 LDR R3, [R4,#0x1C] .text:00011574 LDR R2, [R4,#4] .text:00011578 RSB R3, R3, #0 .text:0001157C AND R2, R2, R3 .text:00011580 STR R2, [R7,#-8] .text:00011584 LDR R0, [R11,#var_AC] .text:00011588 LDR R3, [R4,#0x18] .text:0001158C ADD R0, R0, #1 .text:00011590 STR R0, [R11,#var_AC] .text:00011594 LDR R2, =_dl_pf_to_prot .text:00011598 AND R3, R3, #7 .text:0001159C LDRB R1, [R2,R3] .text:000115A0 STR R1, [R7,#-4] .text:000115A4 .text:000115A4 loc_115A4 ; CODE XREF: _dl_map_object_from_fd+288j .text:000115A4 ; _dl_map_object_from_fd+294j ... .text:000115A4 LDR R3, [R11,#var_38] .text:000115A8 LDRB R2, [R3,#0xF4] .text:000115AC LDRB R1, [R3,#0xF5] .text:000115B0 ORR R2, R2, R1,LSL#8 .text:000115B4 LDR R1, [R11,#var_9C] .text:000115B8 ADD R4, R4, #0x20 .text:000115BC ADD R2, R1, R2,LSL#5 .text:000115C0 CMP R4, R2 .text:000115C4 BCC loc_11418 .text:000115C8 .text:000115C8 loc_115C8 ; CODE XREF: _dl_map_object_from_fd+268j .text:000115C8 SUB R2, R11, #-var_AC .text:000115CC LDMIA R2, {R2,R5} .text:000115D0 LDR R0, [R11,#var_A0] .text:000115D4 SUB R3, R2, #1 .text:000115D8 ADD R3, R3, R3,LSL#1 .text:000115DC MOV R6, R3,LSL#3 .text:000115E0 ADD R4, R5, #0xC .text:000115E4 LDR R3, [R4,R6] .text:000115E8 LDR R12, [R5] .text:000115EC CMP R0, #3 .text:000115F0 RSB R10, R12, R3 .text:000115F4 BNE loc_11694 .text:000115F8 LDR R2, [R5,#0x14] .text:000115FC LDR R3, [R11,#var_2C] .text:00011600 LDR R1, [R5,#0x10] .text:00011604 STR R3, [SP,#0xD4+var_D4] .text:00011608 STR R1, [SP,#0xD4+var_D0] .text:0001160C MOV R0, R12 .text:00011610 MOV R1, R10 .text:00011614 MOV R3, #2 .text:00011618 BL mmap .text:0001161C MOV R1, R0 .text:00011620 CMN R1, #1 .text:00011624 BNE loc_11650 .text:00011628 BL __errno_location .text:0001162C LDR R0, [R0] .text:00011630 LDR R1, [R11,#var_2C] .text:00011634 LDR R2, [R11,#var_30] .text:00011638 LDR LR, [R11,#var_38] .text:0001163C LDR R3, [R11,#var_34] .text:00011640 STR LR, [SP,#0xD4+var_D4] .text:00011644 LDR R12, =aFailedToMapSeg ; "failed to map segment from shared objec"... .text:00011648 STR R12, [SP,#0xD4+var_D0] .text:0001164C BL lose .text:00011650 ; --------------------------------------------------------------------------- .text:00011650 .text:00011650 loc_11650 ; CODE XREF: _dl_map_object_from_fd+47Cj .text:00011650 LDR R2, [R11,#var_38] .text:00011654 STR R1, [R2,#0x14C] .text:00011658 ADD R3, R1, R10 .text:0001165C STR R3, [R2,#0x150] .text:00011660 LDR R0, [R5] .text:00011664 RSB R0, R0, R1 .text:00011668 STR R0, [R2] .text:0001166C LDR R1, [R11,#var_AC] .text:00011670 LDR R3, [R5,#4] .text:00011674 MOV R1, R1,LSL#1 .text:00011678 STR R1, [R11,#var_B0] .text:0001167C MOV R2, #0 .text:00011680 LDR R1, [R4,R6] .text:00011684 ADD R0, R0, R3 .text:00011688 RSB R1, R3, R1 .text:0001168C BL mprotect .text:00011690 B loc_11760 .text:00011694 ; --------------------------------------------------------------------------- .text:00011694 .text:00011694 loc_11694 ; CODE XREF: _dl_map_object_from_fd+44Cj .text:00011694 LDR R2, [R11,#arg_8] .text:00011698 CMP R2, #0 .text:0001169C BGE loc_116C4 .text:000116A0 LDR R1, [R11,#var_2C] .text:000116A4 LDR R2, [R11,#var_30] .text:000116A8 LDR R12, [R11,#var_38] .text:000116AC LDR R3, [R11,#var_34] .text:000116B0 STR R12, [SP,#0xD4+var_D4] .text:000116B4 LDR R0, =aCannotDynamica ; "cannot dynamically load executable" .text:000116B8 STR R0, [SP,#0xD4+var_D0] .text:000116BC MOV R0, #0 .text:000116C0 BL lose .text:000116C4 ; --------------------------------------------------------------------------- .text:000116C4 .text:000116C4 loc_116C4 ; CODE XREF: _dl_map_object_from_fd+4F4j .text:000116C4 LDR R3, [R11,#var_AC] .text:000116C8 LDR R1, [R11,#var_38] .text:000116CC MOV R0, R3,LSL#1 .text:000116D0 ADD R2, R0, R3 .text:000116D4 LDR R3, [R1] .text:000116D8 ADD R3, R12, R3 .text:000116DC STR R3, [R1,#0x14C] .text:000116E0 ADD R2, R5, R2,LSL#3 .text:000116E4 STR R0, [R11,#var_B0] .text:000116E8 CMP R5, R2 .text:000116EC ADD R3, R3, R10 .text:000116F0 STR R3, [R1,#0x150] .text:000116F4 BCS loc_118F0 .text:000116F8 .text:000116F8 loc_116F8 ; CODE XREF: _dl_map_object_from_fd+744j .text:000116F8 LDMIA R5, {R12,LR} .text:000116FC CMP LR, R12 .text:00011700 BLS loc_11760 .text:00011704 LDR R3, [R11,#var_38] .text:00011708 ADD R1, R5, #0x10 .text:0001170C LDMIA R1, {R1,R2} .text:00011710 LDR R0, [R3] .text:00011714 LDR R3, [R11,#var_2C] .text:00011718 STR R1, [SP,#0xD4+var_D0] .text:0001171C STR R3, [SP,#0xD4+var_D4] .text:00011720 RSB R1, R12, LR .text:00011724 MOV R3, #0x12 .text:00011728 ADD R0, R0, R12 .text:0001172C BL mmap .text:00011730 CMN R0, #1 .text:00011734 BNE loc_11760 .text:00011738 BL __errno_location .text:0001173C LDR R0, [R0] .text:00011740 LDR R1, [R11,#var_2C] .text:00011744 LDR R2, [R11,#var_30] .text:00011748 LDR LR, [R11,#var_38] .text:0001174C LDR R3, [R11,#var_34] .text:00011750 STR LR, [SP,#0xD4+var_D4] .text:00011754 LDR R12, =aFailedToMapSeg ; "failed to map segment from shared objec"... .text:00011758 STR R12, [SP,#0xD4+var_D0] .text:0001175C BL lose .text:00011760 ; --------------------------------------------------------------------------- .text:00011760 .text:00011760 loc_11760 ; CODE XREF: _dl_map_object_from_fd+4E8j .text:00011760 ; _dl_map_object_from_fd+558j ... .text:00011760 LDR LR, [R11,#var_38] .text:00011764 LDR R3, [LR,#0xEC] .text:00011768 CMP R3, #0 .text:0001176C BNE loc_117B0 .text:00011770 LDR R12, [R5,#0x10] .text:00011774 LDR R0, [R9,#0x1C] .text:00011778 CMP R12, R0 .text:0001177C BHI loc_117B0 .text:00011780 LDMIA R5, {R1,R3} .text:00011784 SUB R3, R3, R1 .text:00011788 LDRB R2, [R9,#0x2C] .text:0001178C LDRB R1, [R9,#0x2D] .text:00011790 ADD R3, R3, R12 .text:00011794 ORR R2, R2, R1,LSL#8 .text:00011798 ADD R2, R0, R2,LSL#5 .text:0001179C CMP R3, R2 .text:000117A0 LDR R3, [R5] .text:000117A4 ADDCS R3, R3, R0 .text:000117A8 RSBCS R3, R12, R3 .text:000117AC STRCS R3, [LR,#0xEC] .text:000117B0 .text:000117B0 loc_117B0 ; CODE XREF: _dl_map_object_from_fd+5C4j .text:000117B0 ; _dl_map_object_from_fd+5D4j .text:000117B0 ADD R0, R5, #8 .text:000117B4 LDMIA R0, {R0,LR} .text:000117B8 CMP LR, R0 .text:000117BC BLS loc_118D0 .text:000117C0 LDR R3, [R11,#var_38] .text:000117C4 LDR R1, =_dl_pagesize .text:000117C8 LDR R2, [R3] .text:000117CC MOV R8, R1 .text:000117D0 LDR R12, [R1] .text:000117D4 ADD R4, R2, R0 .text:000117D8 ADD R3, R4, R12 .text:000117DC SUB R3, R3, #1 .text:000117E0 RSB R0, R12, #0 .text:000117E4 AND R6, R3, R0 .text:000117E8 ADD R7, R2, LR .text:000117EC CMP R7, R6 .text:000117F0 MOVCC R6, R7 .text:000117F4 CMP R6, R4 .text:000117F8 BLS loc_11874 .text:000117FC LDR R2, [R5,#0x14] .text:00011800 TST R2, #2 .text:00011804 BNE loc_11848 .text:00011808 AND R0, R4, R0 .text:0001180C MOV R1, R12 .text:00011810 ORR R2, R2, #2 .text:00011814 BL mprotect .text:00011818 CMP R0, #0 .text:0001181C BGE loc_11848 .text:00011820 BL __errno_location .text:00011824 LDR R0, [R0] .text:00011828 LDR R1, [R11,#var_2C] .text:0001182C LDR R2, [R11,#var_30] .text:00011830 LDR LR, [R11,#var_38] .text:00011834 LDR R3, [R11,#var_34] .text:00011838 STR LR, [SP,#0xD4+var_D4] .text:0001183C LDR R12, =aCannotChangeMe ; "cannot change memory protections" .text:00011840 STR R12, [SP,#0xD4+var_D0] .text:00011844 BL lose .text:00011848 ; --------------------------------------------------------------------------- .text:00011848 .text:00011848 loc_11848 ; CODE XREF: _dl_map_object_from_fd+65Cj .text:00011848 ; _dl_map_object_from_fd+674j .text:00011848 MOV R0, R4 .text:0001184C MOV R1, #0 .text:00011850 RSB R2, R4, R6 .text:00011854 BL memset .text:00011858 LDR R2, [R5,#0x14] .text:0001185C TST R2, #2 .text:00011860 BNE loc_11874 .text:00011864 LDR R1, [R8] .text:00011868 RSB R0, R1, #0 .text:0001186C AND R0, R4, R0 .text:00011870 BL mprotect .text:00011874 .text:00011874 loc_11874 ; CODE XREF: _dl_map_object_from_fd+650j .text:00011874 ; _dl_map_object_from_fd+6B8j .text:00011874 CMP R7, R6 .text:00011878 BLS loc_118D0 .text:0001187C LDR R2, [R5,#0x14] .text:00011880 MOV R3, 0xFFFFFFFF .text:00011884 STR R3, [SP,#0xD4+var_D4] .text:00011888 MOV R1, #0 .text:0001188C STR R1, [SP,#0xD4+var_D0] .text:00011890 MOV R0, R6 .text:00011894 RSB R1, R0, R7 .text:00011898 ADD R3, R3, #0x33 .text:0001189C BL mmap .text:000118A0 CMN R0, #1 .text:000118A4 BNE loc_118D0 .text:000118A8 BL __errno_location .text:000118AC LDR R0, [R0] .text:000118B0 LDR R1, [R11,#var_2C] .text:000118B4 LDR R2, [R11,#var_30] .text:000118B8 LDR LR, [R11,#var_38] .text:000118BC LDR R3, [R11,#var_34] .text:000118C0 STR LR, [SP,#0xD4+var_D4] .text:000118C4 LDR R12, =aCannotMapZeroF ; "cannot map zero-fill pages" .text:000118C8 STR R12, [SP,#0xD4+var_D0] .text:000118CC BL lose .text:000118D0 ; --------------------------------------------------------------------------- .text:000118D0 .text:000118D0 loc_118D0 ; CODE XREF: _dl_map_object_from_fd+614j .text:000118D0 ; _dl_map_object_from_fd+6D0j ... .text:000118D0 LDR R2, [R11,#var_B0] .text:000118D4 LDR R0, [R11,#var_AC] .text:000118D8 ADD R5, R5, #0x18 .text:000118DC LDR R1, [R11,#var_A8] .text:000118E0 ADD R3, R2, R0 .text:000118E4 ADD R3, R1, R3,LSL#3 .text:000118E8 CMP R5, R3 .text:000118EC BCC loc_116F8 .text:000118F0 .text:000118F0 loc_118F0 ; CODE XREF: _dl_map_object_from_fd+54Cj .text:000118F0 LDR R2, [R11,#var_38] .text:000118F4 LDR R1, [R2,#0xEC] .text:000118F8 CMP R1, #0 .text:000118FC BNE loc_11994 .text:00011900 LDRB R0, [R9,#0x2C] .text:00011904 ADD R4, R9, #0x2C .text:00011908 LDRB R3, [R4,#1] .text:0001190C ORR R0, R0, R3,LSL#8 .text:00011910 MOV R0, R0,LSL#5 .text:00011914 BL malloc .text:00011918 CMP R0, #0 .text:0001191C BNE loc_11960 .text:00011920 LDR R1, [R11,#var_2C] .text:00011924 LDR R2, [R11,#var_30] .text:00011928 LDR R12, [R11,#var_38] .text:0001192C LDR R3, [R11,#var_34] .text:00011930 STR R12, [SP,#0xD4+var_D4] .text:00011934 LDR R0, =aCannotAlloca_0 ; "cannot allocate memory for program head"... .text:00011938 STR R0, [SP,#0xD4+var_D0] .text:0001193C MOV R0, #0xC .text:00011940 BL lose .text:00011940 ; --------------------------------------------------------------------------- .text:00011944 off_11944 DCD _dl_pf_to_prot ; DATA XREF: _dl_map_object_from_fd+3ECr .text:00011948 off_11948 DCD aFailedToMapSeg ; DATA XREF: _dl_map_object_from_fd+49Cr .text:00011948 ; _dl_map_object_from_fd+5ACr .text:00011948 ; "failed to map segment from shared objec"... .text:0001194C off_1194C DCD aCannotDynamica ; DATA XREF: _dl_map_object_from_fd+50Cr .text:0001194C ; "cannot dynamically load executable" .text:00011950 off_11950 DCD _dl_pagesize ; DATA XREF: _dl_map_object_from_fd+61Cr .text:00011954 off_11954 DCD aCannotChangeMe ; DATA XREF: _dl_map_object_from_fd+694r .text:00011954 ; "cannot change memory protections" .text:00011958 off_11958 DCD aCannotMapZeroF ; DATA XREF: _dl_map_object_from_fd+71Cr .text:00011958 ; "cannot map zero-fill pages" .text:0001195C off_1195C DCD aCannotAlloca_0 ; DATA XREF: _dl_map_object_from_fd+78Cr .text:0001195C ; "cannot allocate memory for program head"... .text:00011960 ; --------------------------------------------------------------------------- .text:00011960 .text:00011960 loc_11960 ; CODE XREF: _dl_map_object_from_fd+774j .text:00011960 LDRB R2, [R9,#0x2C] .text:00011964 LDRB R3, [R4,#1] .text:00011968 LDR R1, [R11,#var_9C] .text:0001196C LDR R4, [R11,#var_38] .text:00011970 ORR R2, R2, R3,LSL#8 .text:00011974 MOV R2, R2,LSL#5 .text:00011978 BL memcpy .text:0001197C STR R0, [R4,#0xEC] .text:00011980 LDR R2, [R11,#var_38] .text:00011984 LDRB R3, [R2,#0x12C] .text:00011988 ORR R3, R3, #0x80 .text:0001198C STRB R3, [R2,#0x12C] .text:00011990 B loc_119A0 .text:00011994 ; --------------------------------------------------------------------------- .text:00011994 .text:00011994 loc_11994 ; CODE XREF: _dl_map_object_from_fd+754j .text:00011994 LDR R3, [R2] .text:00011998 ADD R3, R1, R3 .text:0001199C STR R3, [R2,#0xEC] .text:000119A0 .text:000119A0 loc_119A0 ; CODE XREF: _dl_map_object_from_fd+7E8j .text:000119A0 LDR R0, [R11,#var_2C] .text:000119A4 LDR SP, [R11,#var_A4] .text:000119A8 BL close .text:000119AC LDR R1, [R11,#var_38] .text:000119B0 LDRB R2, [R1,#0x12C] .text:000119B4 LDR R0, [R11,#var_A0] .text:000119B8 AND R3, R2, #3 .text:000119BC CMP R3, #1 .text:000119C0 CMPEQ R0, #2 .text:000119C4 BICEQ R3, R2, #3 .text:000119C8 STREQB R3, [R1,#0x12C] .text:000119CC LDR R12, [R11,#var_38] .text:000119D0 LDR LR, [R12,#8] .text:000119D4 CMP LR, #0 .text:000119D8 BNE loc_11A08 .text:000119DC LDR R1, [R11,#var_A0] .text:000119E0 CMP R1, #3 .text:000119E4 BNE loc_11A14 .text:000119E8 LDR R1, [R11,#var_2C] .text:000119EC LDR R2, [R11,#var_30] .text:000119F0 LDR R3, [R11,#var_34] .text:000119F4 STR R12, [SP,#0xD4+var_D4] .text:000119F8 LDR R0, =aObjectFileHasN ; "object file has no dynamic section" .text:000119FC STR R0, [SP,#0xD4+var_D0] .text:00011A00 MOV R0, LR .text:00011A04 BL lose .text:00011A08 ; --------------------------------------------------------------------------- .text:00011A08 .text:00011A08 loc_11A08 ; CODE XREF: _dl_map_object_from_fd+830j .text:00011A08 LDR R3, [R12] .text:00011A0C ADD R3, LR, R3 .text:00011A10 STR R3, [R12,#8] .text:00011A14 .text:00011A14 loc_11A14 ; CODE XREF: _dl_map_object_from_fd+83Cj .text:00011A14 LDR R1, [R11,#var_38] .text:00011A18 LDR R3, [R1,#0xF0] .text:00011A1C LDR R0, [R1] .text:00011A20 ADD R3, R3, R0 .text:00011A24 STR R3, [R1,#0xF0] .text:00011A28 LDR R3, =_dl_debug_mask .text:00011A2C LDR R2, [R3] .text:00011A30 TST R2, #0x40 .text:00011A34 BEQ loc_11A8C .text:00011A38 LDR R2, [R1,#8] .text:00011A3C STR R0, [SP,#0xD4+var_D4] .text:00011A40 MOV R1, #8 .text:00011A44 STMFA SP, {R1,R10} .text:00011A48 STR R1, [SP,#0xD4+var_C8] .text:00011A4C LDR R3, [R11,#var_38] .text:00011A50 LDR R0, [R3,#0xF0] .text:00011A54 STR R1, [SP,#0xD4+var_C0] .text:00011A58 STR R0, [SP,#0xD4+var_C4] .text:00011A5C LDR R3, [R11,#var_38] .text:00011A60 LDR R0, [R3,#0xEC] .text:00011A64 STR R1, [SP,#0xD4+var_B8] .text:00011A68 STR R0, [SP,#0xD4+var_BC] .text:00011A6C LDR R12, [R11,#var_38] .text:00011A70 LDRB R3, [R12,#0xF4] .text:00011A74 LDRB R0, [R12,#0xF5] .text:00011A78 ORR R3, R3, R0,LSL R1 .text:00011A7C STR R3, [SP,#0xD4+var_B4] .text:00011A80 LDR R0, =aDynamic0x0LxBa ; " dynamic: 0x%0*lx base: 0x%0*lx siz"... .text:00011A84 MOV R3, R1 .text:00011A88 BL _dl_debug_printf .text:00011A8C .text:00011A8C loc_11A8C ; CODE XREF: _dl_map_object_from_fd+88Cj .text:00011A8C LDR LR, [R11,#var_38] .text:00011A90 LDR R1, [LR,#8] .text:00011A94 CMP R1, #0 .text:00011A98 BEQ loc_11C4C .text:00011A9C LDR R3, [R1] .text:00011AA0 ADD R0, LR, #0x18 .text:00011AA4 LDR R12, [LR] .text:00011AA8 CMP R3, #0 .text:00011AAC BEQ loc_11B30 .text:00011AB0 .text:00011AB0 loc_11AB0 ; CODE XREF: _dl_map_object_from_fd+984j .text:00011AB0 LDR R2, [R1] .text:00011AB4 CMP R2, #0x21 .text:00011AB8 STRLE R1, [R0,R2,LSL#2] .text:00011ABC BLE loc_11B24 .text:00011AC0 RSB R3, R2, #0x6F000000 .text:00011AC4 ADD R3, R3, #0xFF0000 .text:00011AC8 ADD R3, R3, #0xFF00 .text:00011ACC ADD R3, R3, #0xFF .text:00011AD0 CMP R3, #0xF .text:00011AD4 RSBLS R3, R2, #0x40000021 .text:00011AD8 ADDLS R3, R3, #0x30000000 .text:00011ADC STRLS R1, [R0,R3,LSL#2] .text:00011AE0 BLS loc_11B24 .text:00011AE4 MOV R3, R2,LSL#1 .text:00011AE8 MOV R3, R3,ASR#1 .text:00011AEC RSB R3, R3, #0 .text:00011AF0 SUB R2, R3, #1 .text:00011AF4 CMP R2, #2 .text:00011AF8 ADDLS R3, R0, R3,LSL#2 .text:00011AFC STRLS R1, [R3,#0xC4] .text:00011B00 BLS loc_11B24 .text:00011B04 LDR R3, =aBadDynamicTag ; "bad dynamic tag" .text:00011B08 CMP R3, #0 .text:00011B0C BEQ loc_11B24 .text:00011B10 LDR R0, =aBadDynamicTa_0 ; "! \"bad dynamic tag\"" .text:00011B14 LDR R1, =aDynamicLink_h ; "dynamic-link.h" .text:00011B18 LDR R3, =aElf_get_dynami ; "elf_get_dynamic_info" .text:00011B1C MOV R2, #0x3E .text:00011B20 BL __assert_fail .text:00011B24 ; --------------------------------------------------------------------------- .text:00011B24 .text:00011B24 loc_11B24 ; CODE XREF: _dl_map_object_from_fd+914j .text:00011B24 ; _dl_map_object_from_fd+938j ... .text:00011B24 LDR R3, [R1,#8]! .text:00011B28 CMP R3, #0 .text:00011B2C BNE loc_11AB0 .text:00011B30 .text:00011B30 loc_11B30 ; CODE XREF: _dl_map_object_from_fd+904j .text:00011B30 LDR R2, [R0,#0xC] .text:00011B34 CMP R2, #0 .text:00011B38 LDRNE R3, [R2,#4] .text:00011B3C ADDNE R3, R3, R12 .text:00011B40 STRNE R3, [R2,#4] .text:00011B44 LDR R2, [R0,#0x14] .text:00011B48 CMP R2, #0 .text:00011B4C LDRNE R3, [R2,#4] .text:00011B50 ADDNE R3, R3, R12 .text:00011B54 STRNE R3, [R2,#4] .text:00011B58 LDR R2, [R0,#0x18] .text:00011B5C CMP R2, #0 .text:00011B60 LDRNE R3, [R2,#4] .text:00011B64 ADDNE R3, R3, R12 .text:00011B68 STRNE R3, [R2,#4] .text:00011B6C LDR R1, [R0,#0x44] .text:00011B70 CMP R1, #0 .text:00011B74 BEQ loc_11BA8 .text:00011B78 LDR R3, [R0,#0x4C] .text:00011B7C LDR R2, [R3,#4] .text:00011B80 CMP R2, #8 .text:00011B84 BEQ loc_11B9C .text:00011B88 LDR R0, =aInfo19D_un_d_v ; "info[19]->d_un.d_val == sizeof (Elf32_R"... .text:00011B8C LDR R1, =aDynamicLink_h ; "dynamic-link.h" .text:00011B90 LDR R3, =aElf_get_dynami ; "elf_get_dynamic_info" .text:00011B94 MOV R2, #0x52 .text:00011B98 BL __assert_fail .text:00011B9C ; --------------------------------------------------------------------------- .text:00011B9C .text:00011B9C loc_11B9C ; CODE XREF: _dl_map_object_from_fd+9DCj .text:00011B9C LDR R3, [R1,#4] .text:00011BA0 ADD R3, R3, R12 .text:00011BA4 STR R3, [R1,#4] .text:00011BA8 .text:00011BA8 loc_11BA8 ; CODE XREF: _dl_map_object_from_fd+9CCj .text:00011BA8 LDR R3, [R0,#0x50] .text:00011BAC CMP R3, #0 .text:00011BB0 BEQ loc_11BD4 .text:00011BB4 LDR R3, [R3,#4] .text:00011BB8 CMP R3, #0x11 .text:00011BBC BEQ loc_11BD4 .text:00011BC0 LDR R0, =aInfo20D_un_d_v ; "info[20]->d_un.d_val == 17" .text:00011BC4 LDR R1, =aDynamicLink_h ; "dynamic-link.h" .text:00011BC8 LDR R3, =aElf_get_dynami ; "elf_get_dynamic_info" .text:00011BCC MOV R2, #0x5A .text:00011BD0 BL __assert_fail .text:00011BD4 ; --------------------------------------------------------------------------- .text:00011BD4 .text:00011BD4 loc_11BD4 ; CODE XREF: _dl_map_object_from_fd+A08j .text:00011BD4 ; _dl_map_object_from_fd+A14j .text:00011BD4 LDR R2, [R0,#0x5C] .text:00011BD8 CMP R2, #0 .text:00011BDC LDRNE R3, [R2,#4] .text:00011BE0 ADDNE R3, R3, R12 .text:00011BE4 STRNE R3, [R2,#4] .text:00011BE8 LDR R2, [R0,#0xC4] .text:00011BEC CMP R2, #0 .text:00011BF0 LDRNE R3, [R2,#4] .text:00011BF4 ADDNE R3, R3, R12 .text:00011BF8 STRNE R3, [R2,#4] .text:00011BFC LDR R3, [R0,#0x78] .text:00011C00 CMP R3, #0 .text:00011C04 BEQ loc_11C2C .text:00011C08 LDR R2, [R3,#4] .text:00011C0C TST R2, #2 .text:00011C10 STRNE R3, [R0,#0x40] .text:00011C14 TST R2, #4 .text:00011C18 LDRNE R3, [R0,#0x78] .text:00011C1C STRNE R3, [R0,#0x58] .text:00011C20 TST R2, #8 .text:00011C24 LDRNE R3, [R0,#0x78] .text:00011C28 STRNE R3, [R0,#0x60] .text:00011C2C .text:00011C2C loc_11C2C ; CODE XREF: _dl_map_object_from_fd+A5Cj .text:00011C2C LDR R3, [R0,#0x98] .text:00011C30 CMP R3, #0 .text:00011C34 LDRNE R3, [R3,#4] .text:00011C38 STRNE R3, [LR,#0x198] .text:00011C3C LDR R3, [R0,#0x74] .text:00011C40 CMP R3, #0 .text:00011C44 MOVNE R3, #0 .text:00011C48 STRNE R3, [R0,#0x3C] .text:00011C4C .text:00011C4C loc_11C4C ; CODE XREF: _dl_map_object_from_fd+8F0j .text:00011C4C LDR R2, [R11,#var_38] .text:00011C50 LDR R3, [R2,#0x198] .text:00011C54 TST R3, #0x40 .text:00011C58 BEQ loc_11D04 .text:00011C5C LDR R0, [R11,#arg_8] .text:00011C60 CMP R0, #0 .text:00011C64 BGE loc_11D04 .text:00011C68 LDR R3, [R2,#0xC] .text:00011C6C CMP R3, #0 .text:00011C70 BEQ loc_11C8C .text:00011C74 LDR R0, =aLL_nextVoid0 ; "l->l_next == ((void *)0)" .text:00011C78 LDR R1, =aDlLoad_c ; "dl-load.c" .text:00011C7C MOV R2, #0x430 .text:00011C80 LDR R3, =a_dl_map_object ; "_dl_map_object_from_fd" .text:00011C84 ADD R2, R2, #0xC .text:00011C88 BL __assert_fail .text:00011C8C ; --------------------------------------------------------------------------- .text:00011C8C .text:00011C8C loc_11C8C ; CODE XREF: _dl_map_object_from_fd+AC8j .text:00011C8C LDR R2, [R2,#0x10] .text:00011C90 CMP R2, #0 .text:00011C94 LDREQ R3, =_dl_loaded .text:00011C98 STREQ R2, [R3] .text:00011C9C STRNE R3, [R2,#0xC] .text:00011CA0 LDR R1, =_dl_nloaded .text:00011CA4 LDR R3, [R1] .text:00011CA8 SUB R3, R3, #1 .text:00011CAC STR R3, [R1] .text:00011CB0 LDR R2, [R11,#var_38] .text:00011CB4 LDR R0, [R2,#0x14C] .text:00011CB8 ADD R3, R2, #0x150 .text:00011CBC LDMDA R3, {R1,R3} .text:00011CC0 SUB R1, R3, R1 .text:00011CC4 BL munmap .text:00011CC8 LDR R3, [R11,#var_38] .text:00011CCC LDR R0, [R3,#0x14] .text:00011CD0 BL free .text:00011CD4 LDR R2, [R11,#var_38] .text:00011CD8 LDRB R3, [R2,#0x12C] .text:00011CDC MOVS R3, R3,LSR#7 .text:00011CE0 BEQ loc_11CEC .text:00011CE4 LDR R0, [R2,#0xEC] .text:00011CE8 BL free .text:00011CEC .text:00011CEC loc_11CEC ; CODE XREF: _dl_map_object_from_fd+B38j .text:00011CEC LDR R0, [R11,#var_38] .text:00011CF0 BL free .text:00011CF4 LDR R1, [R11,#var_30] .text:00011CF8 LDR R2, =aSharedObjectCa ; "shared object cannot be dlopen()ed" .text:00011CFC MOV R0, #0 .text:00011D00 BL _dl_signal_error .text:00011D04 ; --------------------------------------------------------------------------- .text:00011D04 .text:00011D04 loc_11D04 ; CODE XREF: _dl_map_object_from_fd+AB0j .text:00011D04 ; _dl_map_object_from_fd+ABCj .text:00011D04 LDR R0, [R11,#var_38] .text:00011D08 LDR R3, [R0,#0x28] .text:00011D0C CMP R3, #0 .text:00011D10 BEQ loc_11D18 .text:00011D14 BL _dl_setup_hash .text:00011D18 .text:00011D18 loc_11D18 ; CODE XREF: _dl_map_object_from_fd+B68j .text:00011D18 LDR R1, [R11,#var_38] .text:00011D1C LDR R3, [R1,#0x58] .text:00011D20 CMP R3, #0 .text:00011D24 BEQ loc_11E08 .text:00011D28 LDR R2, [R1,#0x154] .text:00011D2C ADD R3, R1, #0xF8 .text:00011D30 CMP R3, R2 .text:00011D34 BEQ loc_11E08 .text:00011D38 MOV R0, #4 .text:00011D3C BL malloc .text:00011D40 LDR R12, [R11,#var_38] .text:00011D44 CMP R0, #0 .text:00011D48 STR R0, [R12,#0x108] .text:00011D4C BNE loc_11DD4 .text:00011D50 LDR R1, [R11,#var_2C] .text:00011D54 LDR R2, [R11,#var_30] .text:00011D58 LDR R3, [R11,#var_34] .text:00011D5C STR R12, [SP,#0xD4+var_D4] .text:00011D60 LDR R0, =aCannotCreate_0 ; "cannot create searchlist" .text:00011D64 STR R0, [SP,#0xD4+var_D0] .text:00011D68 MOV R0, #0xC .text:00011D6C BL lose .text:00011D70 ; --------------------------------------------------------------------------- .text:00011D70 .text:00011D70 loc_11D70 ; CODE XREF: _dl_map_object_from_fd+ECj .text:00011D70 LDR R0, [R11,#var_2C] .text:00011D74 BL close .text:00011D78 LDR R0, [R11,#var_34] .text:00011D7C BL free .text:00011D80 LDR R0, [R11,#var_38] .text:00011D84 LDR R1, [R11,#var_30] .text:00011D88 BL add_name_to_object .text:00011D8C LDR R0, [R11,#var_38] .text:00011D90 B loc_11E40 .text:00011D90 ; --------------------------------------------------------------------------- .text:00011D94 off_11D94 DCD aObjectFileHasN ; DATA XREF: _dl_map_object_from_fd+850r .text:00011D94 ; "object file has no dynamic section" .text:00011D98 off_11D98 DCD _dl_debug_mask ; DATA XREF: _dl_map_object_from_fd+880r .text:00011D9C off_11D9C DCD aDynamic0x0LxBa ; DATA XREF: _dl_map_object_from_fd+8D8r .text:00011D9C ; " dynamic: 0x%0*lx base: 0x%0*lx siz"... .text:00011DA0 off_11DA0 DCD aBadDynamicTag ; DATA XREF: _dl_map_object_from_fd+95Cr .text:00011DA0 ; "bad dynamic tag" .text:00011DA4 off_11DA4 DCD aBadDynamicTa_0 ; DATA XREF: _dl_map_object_from_fd+968r .text:00011DA4 ; "! \"bad dynamic tag\"" .text:00011DA8 off_11DA8 DCD aDynamicLink_h ; DATA XREF: _dl_map_object_from_fd+96Cr .text:00011DA8 ; _dl_map_object_from_fd+9E4r ... .text:00011DA8 ; "dynamic-link.h" .text:00011DAC off_11DAC DCD aElf_get_dynami ; DATA XREF: _dl_map_object_from_fd+970r .text:00011DAC ; _dl_map_object_from_fd+9E8r ... .text:00011DAC ; "elf_get_dynamic_info" .text:00011DB0 off_11DB0 DCD aInfo19D_un_d_v ; DATA XREF: _dl_map_object_from_fd+9E0r .text:00011DB0 ; "info[19]->d_un.d_val == sizeof (Elf32_R"... .text:00011DB4 off_11DB4 DCD aInfo20D_un_d_v ; DATA XREF: _dl_map_object_from_fd+A18r .text:00011DB4 ; "info[20]->d_un.d_val == 17" .text:00011DB8 off_11DB8 DCD aLL_nextVoid0 ; DATA XREF: _dl_map_object_from_fd+ACCr .text:00011DB8 ; "l->l_next == ((void *)0)" .text:00011DBC off_11DBC DCD aDlLoad_c ; DATA XREF: _dl_map_object_from_fd+AD0r .text:00011DBC ; "dl-load.c" .text:00011DC0 off_11DC0 DCD a_dl_map_object ; DATA XREF: _dl_map_object_from_fd+AD8r .text:00011DC0 ; "_dl_map_object_from_fd" .text:00011DC4 off_11DC4 DCD _dl_loaded ; DATA XREF: _dl_map_object_from_fd+AECr .text:00011DC8 off_11DC8 DCD _dl_nloaded ; DATA XREF: _dl_map_object_from_fd+AF8r .text:00011DCC off_11DCC DCD aSharedObjectCa ; DATA XREF: _dl_map_object_from_fd+B50r .text:00011DCC ; "shared object cannot be dlopen()ed" .text:00011DD0 off_11DD0 DCD aCannotCreate_0 ; DATA XREF: _dl_map_object_from_fd+BB8r .text:00011DD0 ; "cannot create searchlist" .text:00011DD4 ; --------------------------------------------------------------------------- .text:00011DD4 .text:00011DD4 loc_11DD4 ; CODE XREF: _dl_map_object_from_fd+BA4j .text:00011DD4 STR R12, [R0] .text:00011DD8 MOV R2, #1 .text:00011DDC STR R2, [R12,#0x10C] .text:00011DE0 STR R2, [R12,#0x114] .text:00011DE4 LDR R3, [R12,#0x108] .text:00011DE8 STR R3, [R12,#0x110] .text:00011DEC ADD R0, R12, #0x158 .text:00011DF0 ADD R1, R12, #0x154 .text:00011DF4 ADD R2, R2, #0xB .text:00011DF8 BL memmove .text:00011DFC LDR R2, [R11,#var_38] .text:00011E00 ADD R3, R2, #0x108 .text:00011E04 STR R3, [R2,#0x154] .text:00011E08 .text:00011E08 loc_11E08 ; CODE XREF: _dl_map_object_from_fd+B7Cj .text:00011E08 ; _dl_map_object_from_fd+B8Cj .text:00011E08 LDR R2, [R11,#var_38] .text:00011E0C LDR R3, [R2,#0x198] .text:00011E10 TST R3, #0x20 .text:00011E14 LDRNE R3, =_dl_initfirst .text:00011E18 STRNE R2, [R3] .text:00011E1C LDR R0, [R11,#var_38] .text:00011E20 SUB R3, R11, #-var_98 .text:00011E24 LDMIA R3, {R1,R2} .text:00011E28 ADD R12, R0, #0x16C .text:00011E2C STMIA R12, {R1,R2} .text:00011E30 SUB R12, R11, #-var_40 .text:00011E34 LDMIA R12, {R2,R3} .text:00011E38 ADD R1, R0, #0x174 .text:00011E3C STMIA R1, {R2,R3} .text:00011E40 .text:00011E40 loc_11E40 ; CODE XREF: _dl_map_object_from_fd+10Cj .text:00011E40 ; _dl_map_object_from_fd+BE8j .text:00011E40 B locret_11E48 .text:00011E40 ; --------------------------------------------------------------------------- .text:00011E44 off_11E44 DCD _dl_initfirst ; DATA XREF: _dl_map_object_from_fd+C6Cr .text:00011E48 ; --------------------------------------------------------------------------- .text:00011E48 .text:00011E48 locret_11E48 ; CODE XREF: _dl_map_object_from_fd:loc_11E40j .text:00011E48 LDMDB R11, {R4-R11,SP,PC} .text:00011E48 ; End of function _dl_map_object_from_fd .text:00011E48 .text:00011E4C .text:00011E4C ; =============== S U B R O U T I N E ======================================= .text:00011E4C .text:00011E4C ; Attributes: bp-based frame .text:00011E4C .text:00011E4C print_search_path ; CODE XREF: open_path+A4p .text:00011E4C .text:00011E4C var_30 = -0x30 .text:00011E4C var_2C = -0x2C .text:00011E4C .text:00011E4C MOV R12, SP .text:00011E50 STMFD SP!, {R4-R12,LR,PC} .text:00011E54 SUB R11, R12, #4 .text:00011E58 LDR R12, =max_dirnamelen .text:00011E5C LDR LR, =max_capstrlen .text:00011E60 MOV R6, R0 .text:00011E64 LDR R0, =aSearchPath ; " search path=" .text:00011E68 SUB SP, SP, #8 .text:00011E6C LDR R3, [R12] .text:00011E70 LDR R4, [LR] .text:00011E74 MOV R9, R1 .text:00011E78 STR R2, [R11,#var_2C] .text:00011E7C ADD R3, R3, R4 .text:00011E80 BIC R3, R3, #0xE0000000 .text:00011E84 ADD R3, R3, #3 .text:00011E88 BIC R3, R3, #0xC0000003 .text:00011E8C RSB SP, R3, SP .text:00011E90 MOV R4, SP .text:00011E94 BL _dl_debug_printf .text:00011E98 LDR R2, [R6] .text:00011E9C MOV R3, #1 .text:00011EA0 STR R3, [R11,#var_30] .text:00011EA4 B loc_11F84 .text:00011EA8 ; --------------------------------------------------------------------------- .text:00011EA8 .text:00011EA8 loc_11EA8 ; CODE XREF: print_search_path+148j .text:00011EA8 ADD R1, R2, #0xC .text:00011EAC LDMIA R1, {R1,R2} .text:00011EB0 MOV R0, R4 .text:00011EB4 BL mempcpy .text:00011EB8 MOV R5, #0 .text:00011EBC LDR R2, =ncapstr .text:00011EC0 MOV R8, R0 .text:00011EC4 LDR R3, [R2] .text:00011EC8 ADD R10, R6, #4 .text:00011ECC CMP R5, R3 .text:00011ED0 BCS loc_11F7C .text:00011ED4 MOV R7, R5 .text:00011ED8 .text:00011ED8 loc_11ED8 ; CODE XREF: print_search_path+12Cj .text:00011ED8 LDR R3, [R6] .text:00011EDC ADD R3, R3, #0x14 .text:00011EE0 LDR R2, [R3,R5,LSL#2] .text:00011EE4 CMP R2, #1 .text:00011EE8 BEQ loc_11F68 .text:00011EEC LDR R3, =capstr .text:00011EF0 LDR R2, [R3] .text:00011EF4 MOV R0, R5,LSL#3 .text:00011EF8 LDR R1, [R0,R2] .text:00011EFC ADD R0, R0, R2 .text:00011F00 LDR R2, [R0,#4] .text:00011F04 MOV R0, R8 .text:00011F08 BL mempcpy .text:00011F0C CMP R0, R4 .text:00011F10 BEQ loc_11F2C .text:00011F14 ADD R3, R4, #1 .text:00011F18 CMP R0, R3 .text:00011F1C BNE loc_11F34 .text:00011F20 LDRB R3, [R4] .text:00011F24 CMP R3, #0x2F .text:00011F28 BNE loc_11F34 .text:00011F2C .text:00011F2C loc_11F2C ; CODE XREF: print_search_path+C4j .text:00011F2C STRB R7, [R0] .text:00011F30 B loc_11F38 .text:00011F34 ; --------------------------------------------------------------------------- .text:00011F34 .text:00011F34 loc_11F34 ; CODE XREF: print_search_path+D0j .text:00011F34 ; print_search_path+DCj .text:00011F34 STRB R7, [R0,#-1] .text:00011F38 .text:00011F38 loc_11F38 ; CODE XREF: print_search_path+E4j .text:00011F38 LDR R3, [R11,#var_30] .text:00011F3C CMP R3, #0 .text:00011F40 BEQ loc_11F5C .text:00011F44 MOV R2, #0 .text:00011F48 STR R2, [R11,#var_30] .text:00011F4C LDR R0, =aS ; "%s" .text:00011F50 MOV R1, R4 .text:00011F54 BL _dl_debug_printf_c .text:00011F58 B loc_11F68 .text:00011F5C ; --------------------------------------------------------------------------- .text:00011F5C .text:00011F5C loc_11F5C ; CODE XREF: print_search_path+F4j .text:00011F5C LDR R0, =aS_0 ; ":%s" .text:00011F60 MOV R1, R4 .text:00011F64 BL _dl_debug_printf_c .text:00011F68 .text:00011F68 loc_11F68 ; CODE XREF: print_search_path+9Cj .text:00011F68 ; print_search_path+10Cj .text:00011F68 LDR R2, =ncapstr .text:00011F6C LDR R3, [R2] .text:00011F70 ADD R5, R5, #1 .text:00011F74 CMP R5, R3 .text:00011F78 BCC loc_11ED8 .text:00011F7C .text:00011F7C loc_11F7C ; CODE XREF: print_search_path+84j .text:00011F7C MOV R6, R10 .text:00011F80 LDR R2, [R6] .text:00011F84 .text:00011F84 loc_11F84 ; CODE XREF: print_search_path+58j .text:00011F84 CMP R2, #0 .text:00011F88 BEQ loc_11F98 .text:00011F8C LDR R3, [R2,#4] .text:00011F90 CMP R3, R9 .text:00011F94 BEQ loc_11EA8 .text:00011F98 .text:00011F98 loc_11F98 ; CODE XREF: print_search_path+13Cj .text:00011F98 LDR R3, [R11,#var_2C] .text:00011F9C CMP R3, #0 .text:00011FA0 BEQ loc_11FF0 .text:00011FA4 LDRB R3, [R3] .text:00011FA8 CMP R3, #0 .text:00011FAC LDREQ R3, =_dl_argv .text:00011FB0 LDREQ R2, [R3] .text:00011FB4 LDREQ R2, [R2] .text:00011FB8 LDRNE R2, [R11,#var_2C] .text:00011FBC LDR R0, =aSFromFileS ; "\t\t(%s from file %s)\n" .text:00011FC0 MOV R1, R9 .text:00011FC4 BL _dl_debug_printf_c .text:00011FC8 B locret_12004 .text:00011FC8 ; --------------------------------------------------------------------------- .text:00011FCC off_11FCC DCD max_dirnamelen ; DATA XREF: print_search_path+Cr .text:00011FD0 off_11FD0 DCD max_capstrlen ; DATA XREF: print_search_path+10r .text:00011FD4 off_11FD4 DCD aSearchPath ; DATA XREF: print_search_path+18r .text:00011FD4 ; " search path=" .text:00011FD8 off_11FD8 DCD ncapstr ; DATA XREF: print_search_path+70r .text:00011FD8 ; print_search_path:loc_11F68r .text:00011FDC off_11FDC DCD capstr ; DATA XREF: print_search_path+A0r .text:00011FE0 off_11FE0 DCD aS ; DATA XREF: print_search_path+100r .text:00011FE0 ; "%s" .text:00011FE4 off_11FE4 DCD aS_0 ; DATA XREF: print_search_path:loc_11F5Cr .text:00011FE4 ; ":%s" .text:00011FE8 off_11FE8 DCD _dl_argv ; DATA XREF: print_search_path+160r .text:00011FEC off_11FEC DCD aSFromFileS ; DATA XREF: print_search_path+170r .text:00011FEC ; "\t\t(%s from file %s)\n" .text:00011FF0 ; --------------------------------------------------------------------------- .text:00011FF0 .text:00011FF0 loc_11FF0 ; CODE XREF: print_search_path+154j .text:00011FF0 LDR R0, =aS_1 ; "\t\t(%s)\n" .text:00011FF4 MOV R1, R9 .text:00011FF8 BL _dl_debug_printf_c .text:00011FFC B locret_12004 .text:00011FFC ; --------------------------------------------------------------------------- .text:00012000 off_12000 DCD aS_1 ; DATA XREF: print_search_path:loc_11FF0r .text:00012000 ; "\t\t(%s)\n" .text:00012004 ; --------------------------------------------------------------------------- .text:00012004 .text:00012004 locret_12004 ; CODE XREF: print_search_path+17Cj .text:00012004 ; print_search_path+1B0j .text:00012004 LDMDB R11, {R4-R11,SP,PC} .text:00012004 ; End of function print_search_path .text:00012004 .text:00012008 .text:00012008 ; =============== S U B R O U T I N E ======================================= .text:00012008 .text:00012008 ; Attributes: bp-based frame .text:00012008 .text:00012008 open_verify ; CODE XREF: open_path+148p .text:00012008 ; _dl_map_object+4F4p ... .text:00012008 .text:00012008 var_58 = -0x58 .text:00012008 var_54 = -0x54 .text:00012008 var_50 = -0x50 .text:00012008 var_4C = -0x4C .text:00012008 var_48 = -0x48 .text:00012008 .text:00012008 MOV R12, SP .text:0001200C STMFD SP!, {R4-R12,LR,PC} .text:00012010 SUB R11, R12, #4 .text:00012014 SUB SP, SP, #0x30 .text:00012018 STR R0, [R11,#var_4C] .text:0001201C MOV R10, R1 .text:00012020 MOV R1, #0 .text:00012024 BL open .text:00012028 MOV R8, R0 .text:0001202C CMN R8, #1 .text:00012030 BEQ loc_12458 .text:00012034 BL __errno_location .text:00012038 MOV R5, #0 .text:0001203C STR R5, [R0] .text:00012040 MOV R0, R8 .text:00012044 ADD R7, R10, #4 .text:00012048 MOV R1, R7 .text:0001204C MOV R2, #0x400 .text:00012050 BL read .text:00012054 CMP R0, #0x33 .text:00012058 STR R0, [R10] .text:0001205C BGT loc_1209C .text:00012060 BL __errno_location .text:00012064 MOV R4, R0 .text:00012068 BL __errno_location .text:0001206C LDR R1, [R0] .text:00012070 LDR R0, [R4] .text:00012074 STR R5, [SP,#0x58+var_58] .text:00012078 LDR R3, =aCannotReadFile ; "cannot read file data" .text:0001207C LDR R2, =aFileTooShort ; "file too short" .text:00012080 CMP R1, R5 .text:00012084 MOVEQ R3, R2 .text:00012088 STR R3, [SP,#0x58+var_54] .text:0001208C MOV R1, R8 .text:00012090 LDR R2, [R11,#var_4C] .text:00012094 MOV R3, R5 .text:00012098 BL lose .text:0001209C ; --------------------------------------------------------------------------- .text:0001209C .text:0001209C loc_1209C ; CODE XREF: open_verify+54j .text:0001209C MOV R0, R7 .text:000120A0 LDR R1, =expected.182 .text:000120A4 MOV R2, #7 .text:000120A8 BL memcmp .text:000120AC CMP R0, #0 .text:000120B0 BEQ loc_121BC .text:000120B4 LDRB R0, [R7,#7] .text:000120B8 CMP R0, #0x61 .text:000120BC CMPNE R0, #0 .text:000120C0 BNE loc_121BC .text:000120C4 LDRB R12, [R7,#8] .text:000120C8 CMP R12, #0 .text:000120CC BNE loc_121BC .text:000120D0 LDR R2, [R10,#4] .text:000120D4 LDR R3, =0x464C457F .text:000120D8 CMP R2, R3 .text:000120DC BEQ loc_12100 .text:000120E0 STR R12, [SP,#0x58+var_58] .text:000120E4 LDR R3, =aInvalidElfHead ; "invalid ELF header" .text:000120E8 STR R3, [SP,#0x58+var_54] .text:000120EC MOV R0, R12 .text:000120F0 MOV R1, R8 .text:000120F4 LDR R2, [R11,#var_4C] .text:000120F8 MOV R3, R0 .text:000120FC BL lose .text:00012100 ; --------------------------------------------------------------------------- .text:00012100 .text:00012100 loc_12100 ; CODE XREF: open_verify+D4j .text:00012100 LDRB R3, [R7,#4] .text:00012104 CMP R3, #1 .text:00012108 BNE loc_123E4 .text:0001210C LDRB R3, [R7,#5] .text:00012110 CMP R3, #1 .text:00012114 BEQ loc_12138 .text:00012118 STR R12, [SP,#0x58+var_58] .text:0001211C LDR R3, =aElfFileDataEnc ; "ELF file data encoding not little-endia"... .text:00012120 STR R3, [SP,#0x58+var_54] .text:00012124 MOV R0, R12 .text:00012128 MOV R1, R8 .text:0001212C LDR R2, [R11,#var_4C] .text:00012130 MOV R3, R0 .text:00012134 BL lose .text:00012138 ; --------------------------------------------------------------------------- .text:00012138 .text:00012138 loc_12138 ; CODE XREF: open_verify+10Cj .text:00012138 LDRB R3, [R7,#6] .text:0001213C CMP R3, #1 .text:00012140 BEQ loc_12164 .text:00012144 STR R12, [SP,#0x58+var_58] .text:00012148 LDR R3, =aElfFileVersion ; "ELF file version ident does not match c"... .text:0001214C STR R3, [SP,#0x58+var_54] .text:00012150 MOV R0, R12 .text:00012154 MOV R1, R8 .text:00012158 LDR R2, [R11,#var_4C] .text:0001215C MOV R3, R0 .text:00012160 BL lose .text:00012164 ; --------------------------------------------------------------------------- .text:00012164 .text:00012164 loc_12164 ; CODE XREF: open_verify+138j .text:00012164 SUBS R3, R0, #0x61 .text:00012168 MOVNE R3, #1 .text:0001216C CMP R0, #0 .text:00012170 MOVNE R0, R3 .text:00012174 MOVEQ R0, #0 .text:00012178 CMP R0, #0 .text:0001217C BEQ loc_121A0 .text:00012180 STR R12, [SP,#0x58+var_58] .text:00012184 LDR R3, =aElfFileOsAbiIn ; "ELF file OS ABI invalid" .text:00012188 STR R3, [SP,#0x58+var_54] .text:0001218C MOV R0, R12 .text:00012190 MOV R1, R8 .text:00012194 LDR R2, [R11,#var_4C] .text:00012198 MOV R3, R0 .text:0001219C BL lose .text:000121A0 ; --------------------------------------------------------------------------- .text:000121A0 .text:000121A0 loc_121A0 ; CODE XREF: open_verify+174j .text:000121A0 STR R0, [SP,#0x58+var_58] .text:000121A4 LDR R3, =aInternalError ; "internal error" .text:000121A8 STR R3, [SP,#0x58+var_54] .text:000121AC MOV R1, R8 .text:000121B0 LDR R2, [R11,#var_4C] .text:000121B4 MOV R3, R0 .text:000121B8 BL lose .text:000121BC ; --------------------------------------------------------------------------- .text:000121BC .text:000121BC loc_121BC ; CODE XREF: open_verify+A8j .text:000121BC ; open_verify+B8j ... .text:000121BC LDR R3, [R7,#0x14] .text:000121C0 CMP R3, #1 .text:000121C4 BEQ loc_121E8 .text:000121C8 MOV R0, #0 .text:000121CC STR R0, [SP,#0x58+var_58] .text:000121D0 LDR R3, =aElfFileVersi_0 ; "ELF file version does not match current"... .text:000121D4 STR R3, [SP,#0x58+var_54] .text:000121D8 MOV R1, R8 .text:000121DC LDR R2, [R11,#var_4C] .text:000121E0 MOV R3, R0 .text:000121E4 BL lose .text:000121E8 ; --------------------------------------------------------------------------- .text:000121E8 .text:000121E8 loc_121E8 ; CODE XREF: open_verify+1BCj .text:000121E8 LDR R2, [R7,#0x10] .text:000121EC MOV R3, R2,LSR#16 .text:000121F0 CMP R3, #0x28 .text:000121F4 BNE loc_123E4 .text:000121F8 LDR R3, [R7,#0x28] .text:000121FC MOV R3, R3,LSR#16 .text:00012200 CMP R3, #0x20 .text:00012204 BEQ loc_12228 .text:00012208 MOV R0, #0 .text:0001220C STR R0, [SP,#0x58+var_58] .text:00012210 LDR R3, =aElfFileSPhents ; "ELF file's phentsize not the expected s"... .text:00012214 STR R3, [SP,#0x58+var_54] .text:00012218 MOV R1, R8 .text:0001221C LDR R2, [R11,#var_4C] .text:00012220 MOV R3, R0 .text:00012224 BL lose .text:00012228 ; --------------------------------------------------------------------------- .text:00012228 .text:00012228 loc_12228 ; CODE XREF: open_verify+1FCj .text:00012228 SUB R3, R2, #2 .text:0001222C MOV R3, R3,LSL#16 .text:00012230 CMP R3, #0x10000 .text:00012234 BLS loc_12258 .text:00012238 MOV R0, #0 .text:0001223C STR R0, [SP,#0x58+var_58] .text:00012240 LDR R3, =aOnlyEt_dynAndE ; "only ET_DYN and ET_EXEC can be loaded" .text:00012244 STR R3, [SP,#0x58+var_54] .text:00012248 MOV R1, R8 .text:0001224C LDR R2, [R11,#var_4C] .text:00012250 MOV R3, R0 .text:00012254 BL lose .text:00012258 ; --------------------------------------------------------------------------- .text:00012258 .text:00012258 loc_12258 ; CODE XREF: open_verify+22Cj .text:00012258 LDRB R2, [R7,#0x2C] .text:0001225C ADD R0, R7, #0x2C .text:00012260 LDRB R3, [R0,#1] .text:00012264 LDR R12, [R7,#0x1C] .text:00012268 LDR R1, [R10] .text:0001226C STR R0, [R11,#var_50] .text:00012270 ORR R2, R2, R3,LSL#8 .text:00012274 MOV R4, R2,LSL#5 .text:00012278 ADD R3, R12, R4 .text:0001227C CMP R3, R1 .text:00012280 ADDLS R3, R12, #4 .text:00012284 ADDLS R9, R10, R3 .text:00012288 BLS loc_122E0 .text:0001228C RSB SP, R4, SP .text:00012290 ADD R9, SP, #0x58+var_50 .text:00012294 MOV R0, R8 .text:00012298 MOV R1, #0 .text:0001229C MOV R2, R12 .text:000122A0 BL lseek .text:000122A4 MOV R0, R8 .text:000122A8 MOV R1, R9 .text:000122AC MOV R2, R4 .text:000122B0 BL read .text:000122B4 CMP R0, R4 .text:000122B8 BEQ loc_122E0 .text:000122BC BL __errno_location .text:000122C0 LDR R0, [R0] .text:000122C4 MOV R3, #0 .text:000122C8 STR R3, [SP,#0x58+var_58] .text:000122CC LDR R2, =aCannotReadFile ; "cannot read file data" .text:000122D0 STR R2, [SP,#0x58+var_54] .text:000122D4 LDR R2, [R11,#var_4C] .text:000122D8 MOV R1, R8 .text:000122DC BL lose .text:000122E0 ; --------------------------------------------------------------------------- .text:000122E0 .text:000122E0 loc_122E0 ; CODE XREF: open_verify+280j .text:000122E0 ; open_verify+2B0j .text:000122E0 LDR R1, [R11,#var_50] .text:000122E4 LDRB R3, [R7,#0x2C] .text:000122E8 LDRB R2, [R1,#1] .text:000122EC MOV R5, R9 .text:000122F0 ORR R3, R3, R2,LSL#8 .text:000122F4 ADD R3, R5, R3,LSL#5 .text:000122F8 CMP R5, R3 .text:000122FC BCS loc_12458 .text:00012300 .text:00012300 loc_12300 ; CODE XREF: open_verify+44Cj .text:00012300 LDR R3, [R5] .text:00012304 CMP R3, #4 .text:00012308 BNE loc_12438 .text:0001230C LDR R6, [R5,#0x10] .text:00012310 CMP R6, #0x20 .text:00012314 BNE loc_12438 .text:00012318 LDR R3, [R5,#0x1C] .text:0001231C CMP R3, #3 .text:00012320 BLS loc_12438 .text:00012324 LDR R12, [R5,#4] .text:00012328 LDR R2, [R10] .text:0001232C ADD R3, R12, #0x20 .text:00012330 CMP R3, R2 .text:00012334 ADDLS R3, R12, #4 .text:00012338 ADDLS R4, R10, R3 .text:0001233C BLS loc_12390 .text:00012340 MOV R0, R8 .text:00012344 MOV R1, #0 .text:00012348 MOV R2, R12 .text:0001234C BL lseek .text:00012350 MOV R0, R8 .text:00012354 SUB R4, R11, #-var_48 .text:00012358 MOV R1, R4 .text:0001235C MOV R2, R6 .text:00012360 BL read .text:00012364 CMP R0, #0x20 .text:00012368 BEQ loc_12390 .text:0001236C BL __errno_location .text:00012370 LDR R0, [R0] .text:00012374 MOV R3, #0 .text:00012378 STR R3, [SP,#0x58+var_58] .text:0001237C LDR R2, =aCannotReadFile ; "cannot read file data" .text:00012380 STR R2, [SP,#0x58+var_54] .text:00012384 LDR R2, [R11,#var_4C] .text:00012388 MOV R1, R8 .text:0001238C BL lose .text:00012390 ; --------------------------------------------------------------------------- .text:00012390 .text:00012390 loc_12390 ; CODE XREF: open_verify+334j .text:00012390 ; open_verify+360j .text:00012390 MOV R0, R4 .text:00012394 LDR R1, =expected_note.183 .text:00012398 MOV R2, #0x10 .text:0001239C BL memcmp .text:000123A0 CMP R0, #0 .text:000123A4 BNE loc_12438 .text:000123A8 LDR R2, [R4,#0x10] .text:000123AC LDRB R3, [R4,#0x18] .text:000123B0 LDRB R1, [R4,#0x14] .text:000123B4 CMP R2, #0 .text:000123B8 MOV R3, R3,LSL#8 .text:000123BC LDRB R2, [R4,#0x1C] .text:000123C0 ORR R3, R3, R1,LSL#16 .text:000123C4 ADD R0, R3, R2 .text:000123C8 BNE loc_123E4 .text:000123CC LDR R3, =_dl_osversion .text:000123D0 LDR R3, [R3] .text:000123D4 CMP R3, #0 .text:000123D8 BEQ loc_12458 .text:000123DC CMP R3, R0 .text:000123E0 BCS loc_12458 .text:000123E4 .text:000123E4 loc_123E4 ; CODE XREF: open_verify+100j .text:000123E4 ; open_verify+1ECj ... .text:000123E4 MOV R0, R8 .text:000123E8 MOV R8, 0xFFFFFFFF .text:000123EC BL close .text:000123F0 BL __errno_location .text:000123F4 MOV R3, #2 .text:000123F8 STR R3, [R0] .text:000123FC B loc_12458 .text:000123FC ; --------------------------------------------------------------------------- .text:00012400 off_12400 DCD aCannotReadFile ; DATA XREF: open_verify+70r .text:00012400 ; open_verify+2C4r ... .text:00012400 ; "cannot read file data" .text:00012404 off_12404 DCD aFileTooShort ; DATA XREF: open_verify+74r .text:00012404 ; "file too short" .text:00012408 off_12408 DCD expected.182 ; DATA XREF: open_verify+98r .text:0001240C dword_1240C DCD 0x464C457F ; DATA XREF: open_verify+CCr .text:00012410 off_12410 DCD aInvalidElfHead ; DATA XREF: open_verify+DCr .text:00012410 ; "invalid ELF header" .text:00012414 off_12414 DCD aElfFileDataEnc ; DATA XREF: open_verify+114r .text:00012414 ; "ELF file data encoding not little-endia"... .text:00012418 off_12418 DCD aElfFileVersion ; DATA XREF: open_verify+140r .text:00012418 ; "ELF file version ident does not match c"... .text:0001241C off_1241C DCD aElfFileOsAbiIn ; DATA XREF: open_verify+17Cr .text:0001241C ; "ELF file OS ABI invalid" .text:00012420 off_12420 DCD aInternalError ; DATA XREF: open_verify+19Cr .text:00012420 ; "internal error" .text:00012424 off_12424 DCD aElfFileVersi_0 ; DATA XREF: open_verify+1C8r .text:00012424 ; "ELF file version does not match current"... .text:00012428 off_12428 DCD aElfFileSPhents ; DATA XREF: open_verify+208r .text:00012428 ; "ELF file's phentsize not the expected s"... .text:0001242C off_1242C DCD aOnlyEt_dynAndE ; DATA XREF: open_verify+238r .text:0001242C ; "only ET_DYN and ET_EXEC can be loaded" .text:00012430 off_12430 DCD expected_note.183 ; DATA XREF: open_verify+38Cr .text:00012434 off_12434 DCD _dl_osversion ; DATA XREF: open_verify+3C4r .text:00012438 ; --------------------------------------------------------------------------- .text:00012438 .text:00012438 loc_12438 ; CODE XREF: open_verify+300j .text:00012438 ; open_verify+30Cj ... .text:00012438 LDR R1, [R11,#var_50] .text:0001243C LDRB R3, [R7,#0x2C] .text:00012440 LDRB R2, [R1,#1] .text:00012444 ADD R5, R5, #0x20 .text:00012448 ORR R3, R3, R2,LSL#8 .text:0001244C ADD R3, R9, R3,LSL#5 .text:00012450 CMP R5, R3 .text:00012454 BCC loc_12300 .text:00012458 .text:00012458 loc_12458 ; CODE XREF: open_verify+28j .text:00012458 ; open_verify+2F4j ... .text:00012458 MOV R0, R8 .text:0001245C LDMDB R11, {R4-R11,SP,PC} .text:0001245C ; End of function open_verify .text:0001245C .text:00012460 .text:00012460 ; =============== S U B R O U T I N E ======================================= .text:00012460 .text:00012460 ; Attributes: bp-based frame .text:00012460 .text:00012460 open_path ; CODE XREF: _dl_map_object:loc_129CCp .text:00012460 ; _dl_map_object+2F0p ... .text:00012460 .text:00012460 var_AC = -0xAC .text:00012460 var_A8 = -0xA8 .text:00012460 var_A4 = -0xA4 .text:00012460 var_A0 = -0xA0 .text:00012460 var_9C = -0x9C .text:00012460 var_98 = -0x98 .text:00012460 var_94 = -0x94 .text:00012460 var_90 = -0x90 .text:00012460 var_8C = -0x8C .text:00012460 var_88 = -0x88 .text:00012460 var_78 = -0x78 .text:00012460 arg_0 = 4 .text:00012460 arg_4 = 8 .text:00012460 .text:00012460 MOV R12, SP .text:00012464 STMFD SP!, {R4-R12,LR,PC} .text:00012468 SUB R11, R12, #4 .text:0001246C SUB SP, SP, #0x84 .text:00012470 STR R3, [R11,#var_94] .text:00012474 LDR R3, [R3] .text:00012478 STR R0, [R11,#var_8C] .text:0001247C STR R2, [R11,#var_90] .text:00012480 MOV R12, #0 .text:00012484 STR R12, [R11,#var_A0] .text:00012488 STR R3, [R11,#var_98] .text:0001248C LDR R2, =max_dirnamelen .text:00012490 LDR R3, [R2] .text:00012494 STR R12, [R11,#var_9C] .text:00012498 LDR R0, =max_capstrlen .text:0001249C MOV R5, 0xFFFFFFFF .text:000124A0 LDR R2, [R0] .text:000124A4 MOV R9, R1 .text:000124A8 ADD R3, R3, R2 .text:000124AC ADD R3, R3, R9 .text:000124B0 ADD R3, R3, #3 .text:000124B4 BIC R3, R3, #3 .text:000124B8 RSB SP, R3, SP .text:000124BC MOV R7, SP .text:000124C0 .text:000124C0 loc_124C0 ; CODE XREF: open_path+2D8j .text:000124C0 MOV R1, #0 .text:000124C4 STR R1, [R11,#var_AC] .text:000124C8 LDR R2, =_dl_debug_mask .text:000124CC LDR R3, [R2] .text:000124D0 STR R1, [R11,#var_A4] .text:000124D4 TST R3, #1 .text:000124D8 LDR R3, [R11,#var_98] .text:000124DC LDR R4, [R3] .text:000124E0 BEQ loc_12508 .text:000124E4 LDR R3, [R4,#4] .text:000124E8 LDR R12, [R11,#var_9C] .text:000124EC CMP R12, R3 .text:000124F0 BEQ loc_12508 .text:000124F4 STR R3, [R11,#var_9C] .text:000124F8 LDR R0, [R11,#var_98] .text:000124FC LDR R2, [R4,#8] .text:00012500 MOV R1, R3 .text:00012504 BL print_search_path .text:00012508 .text:00012508 loc_12508 ; CODE XREF: open_path+80j .text:00012508 ; open_path+90j .text:00012508 LDR R1, [R4,#0xC] .text:0001250C MOV R0, R7 .text:00012510 LDR R2, [R4,#0x10] .text:00012514 MOV R8, #0 .text:00012518 BL mempcpy .text:0001251C CMN R5, #1 .text:00012520 STR R0, [R11,#var_A8] .text:00012524 BNE loc_12698 .text:00012528 LDR R2, =ncapstr .text:0001252C LDR R3, [R2] .text:00012530 CMP R8, R3 .text:00012534 BCS loc_12698 .text:00012538 ADD R4, R4, #0x14 .text:0001253C MOV R10, #2 .text:00012540 MOV R6, R8 .text:00012544 .text:00012544 loc_12544 ; CODE XREF: open_path+234j .text:00012544 LDR R3, [R4,R6] .text:00012548 CMP R3, #1 .text:0001254C BEQ loc_12678 .text:00012550 LDR R2, =capstr .text:00012554 LDR R0, [R2] .text:00012558 MOV R3, R8,LSL#3 .text:0001255C LDR R1, [R3,R0] .text:00012560 ADD R3, R3, R0 .text:00012564 LDR R2, [R3,#4] .text:00012568 LDR R0, [R11,#var_A8] .text:0001256C BL mempcpy .text:00012570 LDR R1, [R11,#var_8C] .text:00012574 MOV R2, R9 .text:00012578 BL mempcpy .text:0001257C LDR R1, =_dl_debug_mask .text:00012580 LDR R3, [R1] .text:00012584 RSB R0, R7, R0 .text:00012588 STR R0, [R11,#var_A4] .text:0001258C TST R3, #1 .text:00012590 BEQ loc_125A0 .text:00012594 LDR R0, =aTryingFileS ; " trying file=%s\n" .text:00012598 MOV R1, R7 .text:0001259C BL _dl_debug_printf .text:000125A0 .text:000125A0 loc_125A0 ; CODE XREF: open_path+130j .text:000125A0 LDR R1, [R11,#arg_4] .text:000125A4 MOV R0, R7 .text:000125A8 BL open_verify .text:000125AC LDR R2, [R4,R6] .text:000125B0 MOV R5, R0 .text:000125B4 CMP R2, #0 .text:000125B8 BNE loc_1260C .text:000125BC CMN R5, #1 .text:000125C0 BNE loc_12608 .text:000125C4 LDR R12, [R11,#var_A4] .text:000125C8 RSB R3, R9, R12 .text:000125CC ADD R3, R3, R7 .text:000125D0 STRB R2, [R3,R5] .text:000125D4 MOV R0, #3 .text:000125D8 MOV R1, R7 .text:000125DC SUB R2, R11, #-var_88 .text:000125E0 BL __xstat64 .text:000125E4 CMP R0, #0 .text:000125E8 BNE loc_125FC .text:000125EC LDR R3, [R11,#var_78] .text:000125F0 AND R3, R3, #0xF000 .text:000125F4 CMP R3, #0x4000 .text:000125F8 BEQ loc_12608 .text:000125FC .text:000125FC loc_125FC ; CODE XREF: open_path+188j .text:000125FC MOV R3, #1 .text:00012600 STR R3, [R4,R6] .text:00012604 B loc_1260C .text:00012608 ; --------------------------------------------------------------------------- .text:00012608 .text:00012608 loc_12608 ; CODE XREF: open_path+160j .text:00012608 ; open_path+198j .text:00012608 STR R10, [R4,R6] .text:0001260C .text:0001260C loc_1260C ; CODE XREF: open_path+158j .text:0001260C ; open_path+1A4j .text:0001260C LDR R3, [R4,R6] .text:00012610 LDR R1, [R11,#var_AC] .text:00012614 LDR R2, [R11,#var_90] .text:00012618 CMP R3, #2 .text:0001261C ORREQ R1, R1, #1 .text:00012620 CMN R5, #1 .text:00012624 CMPNE R2, #0 .text:00012628 STR R1, [R11,#var_AC] .text:0001262C BEQ loc_12678 .text:00012630 LDR R3, =__libc_enable_secure .text:00012634 LDR R2, [R3] .text:00012638 CMP R2, #0 .text:0001263C BEQ loc_12678 .text:00012640 MOV R0, #3 .text:00012644 MOV R1, R5 .text:00012648 SUB R2, R11, #-var_88 .text:0001264C BL __fxstat64 .text:00012650 CMP R0, #0 .text:00012654 BNE loc_12664 .text:00012658 LDR R3, [R11,#var_78] .text:0001265C TST R3, #0x800 .text:00012660 BNE loc_12678 .text:00012664 .text:00012664 loc_12664 ; CODE XREF: open_path+1F4j .text:00012664 MOV R0, R5 .text:00012668 MOV R5, 0xFFFFFFFF .text:0001266C BL close .text:00012670 BL __errno_location .text:00012674 STR R10, [R0] .text:00012678 .text:00012678 loc_12678 ; CODE XREF: open_path+ECj .text:00012678 ; open_path+1CCj ... .text:00012678 ADD R6, R6, #4 .text:0001267C ADD R8, R8, #1 .text:00012680 CMN R5, #1 .text:00012684 BNE loc_12698 .text:00012688 LDR R12, =ncapstr .text:0001268C LDR R3, [R12] .text:00012690 CMP R8, R3 .text:00012694 BCC loc_12544 .text:00012698 .text:00012698 loc_12698 ; CODE XREF: open_path+C4j .text:00012698 ; open_path+D4j ... .text:00012698 CMN R5, #1 .text:0001269C BEQ loc_126F4 .text:000126A0 LDR R0, [R11,#var_A4] .text:000126A4 BL malloc .text:000126A8 LDR R1, [R11,#arg_0] .text:000126AC CMP R0, #0 .text:000126B0 STR R0, [R1] .text:000126B4 BEQ loc_126CC .text:000126B8 LDR R2, [R11,#var_A4] .text:000126BC MOV R1, R7 .text:000126C0 BL memcpy .text:000126C4 MOV R0, R5 .text:000126C8 B locret_1276C .text:000126CC ; --------------------------------------------------------------------------- .text:000126CC .text:000126CC loc_126CC ; CODE XREF: open_path+254j .text:000126CC MOV R0, R5 .text:000126D0 BL close .text:000126D4 B loc_12768 .text:000126D4 ; --------------------------------------------------------------------------- .text:000126D8 off_126D8 DCD max_dirnamelen ; DATA XREF: open_path+2Cr .text:000126DC off_126DC DCD max_capstrlen ; DATA XREF: open_path+38r .text:000126E0 off_126E0 DCD _dl_debug_mask ; DATA XREF: open_path+68r .text:000126E0 ; open_path+11Cr .text:000126E4 off_126E4 DCD ncapstr ; DATA XREF: open_path+C8r .text:000126E4 ; open_path+228r .text:000126E8 off_126E8 DCD capstr ; DATA XREF: open_path+F0r .text:000126EC off_126EC DCD aTryingFileS ; DATA XREF: open_path+134r .text:000126EC ; " trying file=%s\n" .text:000126F0 off_126F0 DCD __libc_enable_secure ; DATA XREF: open_path+1D0r .text:000126F4 ; --------------------------------------------------------------------------- .text:000126F4 .text:000126F4 loc_126F4 ; CODE XREF: open_path+23Cj .text:000126F4 LDR R2, [R11,#var_AC] .text:000126F8 CMP R2, #0 .text:000126FC BEQ loc_12718 .text:00012700 BL __errno_location .text:00012704 LDR R0, [R0] .text:00012708 CMP R0, #2 .text:0001270C BEQ loc_12718 .text:00012710 CMP R0, #0xD .text:00012714 BNE loc_12768 .text:00012718 .text:00012718 loc_12718 ; CODE XREF: open_path+29Cj .text:00012718 ; open_path+2ACj .text:00012718 LDR R12, [R11,#var_98] .text:0001271C LDR R1, [R11,#var_A0] .text:00012720 LDR R2, [R11,#var_AC] .text:00012724 LDR R3, [R12,#4]! .text:00012728 ORR R1, R1, R2 .text:0001272C STR R1, [R11,#var_A0] .text:00012730 CMP R3, #0 .text:00012734 STR R12, [R11,#var_98] .text:00012738 BNE loc_124C0 .text:0001273C CMP R1, #0 .text:00012740 BNE loc_12768 .text:00012744 LDR R12, [R11,#var_94] .text:00012748 LDR R3, [R12,#4] .text:0001274C CMP R3, #0 .text:00012750 BEQ loc_1275C .text:00012754 LDR R0, [R12] .text:00012758 BL free .text:0001275C .text:0001275C loc_1275C ; CODE XREF: open_path+2F0j .text:0001275C LDR R1, [R11,#var_94] .text:00012760 MOV R3, 0xFFFFFFFF .text:00012764 STR R3, [R1] .text:00012768 .text:00012768 loc_12768 ; CODE XREF: open_path+274j .text:00012768 ; open_path+2B4j ... .text:00012768 MOV R0, 0xFFFFFFFF .text:0001276C .text:0001276C locret_1276C ; CODE XREF: open_path+268j .text:0001276C LDMDB R11, {R4-R11,SP,PC} .text:0001276C ; End of function open_path .text:0001276C .text:00012770 .text:00012770 ; =============== S U B R O U T I N E ======================================= .text:00012770 .text:00012770 ; Attributes: bp-based frame .text:00012770 .text:00012770 EXPORT _dl_map_object .text:00012770 _dl_map_object ; CODE XREF: dl_open_worker+190p .text:00012770 ; openaux+34p .text:00012770 .text:00012770 var_44C = -0x44C .text:00012770 var_448 = -0x448 .text:00012770 var_444 = -0x444 .text:00012770 var_440 = -0x440 .text:00012770 var_43C = -0x43C .text:00012770 var_438 = -0x438 .text:00012770 var_434 = -0x434 .text:00012770 var_430 = -0x430 .text:00012770 var_420 = -0x420 .text:00012770 arg_0 = 4 .text:00012770 arg_4 = 8 .text:00012770 .text:00012770 MOV R12, SP .text:00012774 STMFD SP!, {R4-R12,LR,PC} .text:00012778 SUB R11, R12, #4 .text:0001277C LDR R12, =_dl_loaded .text:00012780 SUB SP, SP, #0x420 .text:00012784 SUB SP, SP, #4 .text:00012788 LDR R6, [R12] .text:0001278C STR R0, [R11,#var_434] .text:00012790 STR R2, [R11,#var_438] .text:00012794 MOV R8, R1 .text:00012798 MOV R10, R12 .text:0001279C STR R3, [R11,#var_43C] .text:000127A0 CMP R6, #0 .text:000127A4 BEQ loc_12878 .text:000127A8 .text:000127A8 loc_127A8 ; CODE XREF: _dl_map_object+104j .text:000127A8 LDRB R3, [R6,#0x12D] .text:000127AC TST R3, #2 .text:000127B0 BNE loc_1286C .text:000127B4 LDR R1, [R6,#4] .text:000127B8 MOV R0, R8 .text:000127BC BL strcmp .text:000127C0 LDR R4, [R6,#0x14] .text:000127C4 CMP R0, #0 .text:000127C8 MOVNE R5, #0 .text:000127CC MOVEQ R5, #1 .text:000127D0 CMP R4, #0 .text:000127D4 CMPNE R0, #0 .text:000127D8 BEQ loc_12808 .text:000127DC .text:000127DC loc_127DC ; CODE XREF: _dl_map_object+94j .text:000127DC LDR R1, [R4] .text:000127E0 MOV R0, R8 .text:000127E4 BL strcmp .text:000127E8 CMP R0, #0 .text:000127EC MOVEQ R5, #1 .text:000127F0 LDRNE R4, [R4,#4] .text:000127F4 CMP R4, #0 .text:000127F8 EORNE R3, R5, #1 .text:000127FC MOVEQ R3, #0 .text:00012800 CMP R3, #0 .text:00012804 BNE loc_127DC .text:00012808 .text:00012808 loc_12808 ; CODE XREF: _dl_map_object+68j .text:00012808 CMP R5, #0 .text:0001280C BNE loc_12864 .text:00012810 LDRB R3, [R6,#0x12D] .text:00012814 TST R3, #1 .text:00012818 BNE loc_1286C .text:0001281C LDR R2, [R6,#0x50] .text:00012820 CMP R2, #0 .text:00012824 BEQ loc_1286C .text:00012828 LDR R3, [R6,#0x2C] .text:0001282C LDR R2, [R2,#4] .text:00012830 LDR R1, [R3,#4] .text:00012834 MOV R0, R8 .text:00012838 ADD R4, R1, R2 .text:0001283C MOV R1, R4 .text:00012840 BL strcmp .text:00012844 CMP R0, #0 .text:00012848 BNE loc_1286C .text:0001284C MOV R0, R6 .text:00012850 MOV R1, R4 .text:00012854 BL add_name_to_object .text:00012858 LDRB R3, [R6,#0x12D] .text:0001285C ORR R3, R3, #1 .text:00012860 STRB R3, [R6,#0x12D] .text:00012864 .text:00012864 loc_12864 ; CODE XREF: _dl_map_object+9Cj .text:00012864 MOV R0, R6 .text:00012868 B locret_12EBC .text:0001286C ; --------------------------------------------------------------------------- .text:0001286C .text:0001286C loc_1286C ; CODE XREF: _dl_map_object+40j .text:0001286C ; _dl_map_object+A8j ... .text:0001286C LDR R6, [R6,#0xC] .text:00012870 CMP R6, #0 .text:00012874 BNE loc_127A8 .text:00012878 .text:00012878 loc_12878 ; CODE XREF: _dl_map_object+34j .text:00012878 LDR R2, =_dl_debug_mask .text:0001287C LDR R1, [R11,#var_434] .text:00012880 LDR R3, [R2] .text:00012884 CMP R1, #0 .text:00012888 MOV R3, R3,LSR#6 .text:0001288C ANDNE R3, R3, #1 .text:00012890 MOVEQ R3, #0 .text:00012894 CMP R3, #0 .text:00012898 BEQ loc_128C0 .text:0001289C LDR R2, [R1,#4] .text:000128A0 LDRB R3, [R2] .text:000128A4 CMP R3, #0 .text:000128A8 LDREQ R3, =_dl_argv .text:000128AC LDREQ R2, [R3] .text:000128B0 LDREQ R2, [R2] .text:000128B4 LDR R0, =aFileSNeededByS ; "\nfile=%s; needed by %s\n" .text:000128B8 MOV R1, R8 .text:000128BC BL _dl_debug_printf .text:000128C0 .text:000128C0 loc_128C0 ; CODE XREF: _dl_map_object+128j .text:000128C0 MOV R0, R8 .text:000128C4 MOV R1, #0x2F .text:000128C8 BL strchr .text:000128CC CMP R0, #0 .text:000128D0 BNE loc_12D34 .text:000128D4 MOV R0, R8 .text:000128D8 BL strlen .text:000128DC LDR R2, =_dl_debug_mask .text:000128E0 LDR R3, [R2] .text:000128E4 ADD R0, R0, #1 .text:000128E8 STR R0, [R11,#var_440] .text:000128EC TST R3, #1 .text:000128F0 BEQ loc_12900 .text:000128F4 LDR R0, =aFindLibrarySSe ; "find library=%s; searching\n" .text:000128F8 MOV R1, R8 .text:000128FC BL _dl_debug_printf .text:00012900 .text:00012900 loc_12900 ; CODE XREF: _dl_map_object+180j .text:00012900 LDR R3, [R11,#var_434] .text:00012904 MOV R9, 0xFFFFFFFF .text:00012908 CMP R3, #0 .text:0001290C BEQ loc_1291C .text:00012910 LDR R3, [R3,#0x8C] .text:00012914 CMP R3, #0 .text:00012918 BNE loc_12A68 .text:0001291C .text:0001291C loc_1291C ; CODE XREF: _dl_map_object+19Cj .text:0001291C LDR R6, [R11,#var_434] .text:00012920 CMP R6, #0 .text:00012924 BEQ loc_129F0 .text:00012928 SUB R7, R11, #-var_420 .text:0001292C SUB R7, R7, #8 .text:00012930 SUB R7, R7, #8 .text:00012934 SUB R5, R11, #-var_420 .text:00012938 SUB R5, R5, #8 .text:0001293C SUB R5, R5, #4 .text:00012940 .text:00012940 loc_12940 ; CODE XREF: _dl_map_object+27Cj .text:00012940 LDR R3, [R6,#0x138] .text:00012944 CMP R3, #0 .text:00012948 BNE loc_129AC .text:0001294C LDR R2, [R6,#0x54] .text:00012950 CMP R2, #0 .text:00012954 MOVEQ R3, 0xFFFFFFFF .text:00012958 STREQ R3, [R6,#0x138] .text:0001295C BEQ loc_129D4 .text:00012960 LDR R3, [R6,#0x2C] .text:00012964 ADD R4, R6, #0x138 .text:00012968 LDR R1, [R2,#4] .text:0001296C MOV R0, R4 .text:00012970 LDR R12, [R3,#4] .text:00012974 MOV R2, R6 .text:00012978 LDR R3, =aRpath ; "RPATH" .text:0001297C ADD R1, R12, R1 .text:00012980 BL decompose_rpath .text:00012984 LDR R3, [R6,#0x138] .text:00012988 CMN R3, #1 .text:0001298C BEQ loc_129D4 .text:00012990 STR R7, [SP,#0x44C+var_44C] .text:00012994 STR R5, [SP,#0x44C+var_448] .text:00012998 LDR R1, [R11,#var_440] .text:0001299C MOV R0, R8 .text:000129A0 LDR R2, [R11,#var_438] .text:000129A4 MOV R3, R4 .text:000129A8 B loc_129CC .text:000129AC ; --------------------------------------------------------------------------- .text:000129AC .text:000129AC loc_129AC ; CODE XREF: _dl_map_object+1D8j .text:000129AC CMN R3, #1 .text:000129B0 BEQ loc_129D4 .text:000129B4 STR R7, [SP,#0x44C+var_44C] .text:000129B8 STR R5, [SP,#0x44C+var_448] .text:000129BC LDR R1, [R11,#var_440] .text:000129C0 MOV R0, R8 .text:000129C4 LDR R2, [R11,#var_438] .text:000129C8 ADD R3, R6, #0x138 .text:000129CC .text:000129CC loc_129CC ; CODE XREF: _dl_map_object+238j .text:000129CC BL open_path .text:000129D0 MOV R9, R0 .text:000129D4 .text:000129D4 loc_129D4 ; CODE XREF: _dl_map_object+1ECj .text:000129D4 ; _dl_map_object+21Cj ... .text:000129D4 LDR R6, [R6,#0x118] .text:000129D8 SUBS R3, R6, #0 .text:000129DC MOVNE R3, #1 .text:000129E0 CMN R9, #1 .text:000129E4 MOVNE R3, #0 .text:000129E8 CMP R3, #0 .text:000129EC BNE loc_12940 .text:000129F0 .text:000129F0 loc_129F0 ; CODE XREF: _dl_map_object+1B4j .text:000129F0 LDR R6, [R10] .text:000129F4 SUBS R3, R6, #0 .text:000129F8 MOVNE R3, #1 .text:000129FC CMN R9, #1 .text:00012A00 MOVNE R3, #0 .text:00012A04 CMP R3, #0 .text:00012A08 BEQ loc_12A68 .text:00012A0C LDRB R3, [R6,#0x12C] .text:00012A10 LDR R12, [R11,#var_434] .text:00012A14 AND R3, R3, #3 .text:00012A18 CMP R3, #2 .text:00012A1C CMPNE R6, R12 .text:00012A20 BEQ loc_12A68 .text:00012A24 LDR R3, [R6,#0x138] .text:00012A28 CMN R3, #1 .text:00012A2C BEQ loc_12A68 .text:00012A30 SUB R3, R11, #-var_420 .text:00012A34 SUB R3, R3, #8 .text:00012A38 SUB R3, R3, #8 .text:00012A3C SUB R2, R11, #-var_420 .text:00012A40 STR R3, [SP,#0x44C+var_44C] .text:00012A44 SUB R2, R2, #8 .text:00012A48 SUB R2, R2, #4 .text:00012A4C STR R2, [SP,#0x44C+var_448] .text:00012A50 LDR R1, [R11,#var_440] .text:00012A54 MOV R0, R8 .text:00012A58 LDR R2, [R11,#var_438] .text:00012A5C ADD R3, R6, #0x138 .text:00012A60 BL open_path .text:00012A64 MOV R9, R0 .text:00012A68 .text:00012A68 loc_12A68 ; CODE XREF: _dl_map_object+1A8j .text:00012A68 ; _dl_map_object+298j ... .text:00012A68 CMN R9, #1 .text:00012A6C BNE loc_12AB8 .text:00012A70 LDR R12, =env_path_list .text:00012A74 LDR R3, [R12] .text:00012A78 CMN R3, #1 .text:00012A7C BEQ loc_12AB8 .text:00012A80 SUB R3, R11, #-var_420 .text:00012A84 SUB R3, R3, #8 .text:00012A88 SUB R3, R3, #8 .text:00012A8C SUB R2, R11, #-var_420 .text:00012A90 STR R3, [SP,#0x44C+var_44C] .text:00012A94 SUB R2, R2, #8 .text:00012A98 SUB R2, R2, #4 .text:00012A9C STR R2, [SP,#0x44C+var_448] .text:00012AA0 LDR R1, [R11,#var_440] .text:00012AA4 MOV R0, R8 .text:00012AA8 LDR R2, [R11,#var_438] .text:00012AAC MOV R3, R12 .text:00012AB0 BL open_path .text:00012AB4 MOV R9, R0 .text:00012AB8 .text:00012AB8 loc_12AB8 ; CODE XREF: _dl_map_object+2FCj .text:00012AB8 ; _dl_map_object+30Cj .text:00012AB8 LDR R1, [R11,#var_434] .text:00012ABC CMP R1, #0 .text:00012AC0 BEQ loc_12BC4 .text:00012AC4 LDR R3, [R1,#0x17C] .text:00012AC8 CMN R3, #1 .text:00012ACC BEQ loc_12BC4 .text:00012AD0 CMP R3, #0 .text:00012AD4 BNE loc_12B80 .text:00012AD8 LDR R2, [R1,#0x8C] .text:00012ADC CMP R2, #0 .text:00012AE0 BNE loc_12B0C .text:00012AE4 MOV R3, 0xFFFFFFFF .text:00012AE8 STR R3, [R1,#0x17C] .text:00012AEC B loc_12BC4 .text:00012AEC ; --------------------------------------------------------------------------- .text:00012AF0 off_12AF0 DCD _dl_loaded ; DATA XREF: _dl_map_object+Cr .text:00012AF4 off_12AF4 DCD _dl_debug_mask ; DATA XREF: _dl_map_object:loc_12878r .text:00012AF4 ; _dl_map_object+16Cr .text:00012AF8 off_12AF8 DCD _dl_argv ; DATA XREF: _dl_map_object+138r .text:00012AFC off_12AFC DCD aFileSNeededByS ; DATA XREF: _dl_map_object+144r .text:00012AFC ; "\nfile=%s; needed by %s\n" .text:00012B00 off_12B00 DCD aFindLibrarySSe ; DATA XREF: _dl_map_object+184r .text:00012B00 ; "find library=%s; searching\n" .text:00012B04 off_12B04 DCD aRpath ; DATA XREF: _dl_map_object+208r .text:00012B04 ; "RPATH" .text:00012B08 off_12B08 DCD env_path_list ; DATA XREF: _dl_map_object+300r .text:00012B0C ; --------------------------------------------------------------------------- .text:00012B0C .text:00012B0C loc_12B0C ; CODE XREF: _dl_map_object+370j .text:00012B0C LDR R12, [R11,#var_434] .text:00012B10 LDR R1, [R2,#4] .text:00012B14 LDR R2, [R11,#var_434] .text:00012B18 LDR R3, [R12,#0x2C] .text:00012B1C ADD R4, R12, #0x17C .text:00012B20 LDR R12, [R3,#4] .text:00012B24 MOV R0, R4 .text:00012B28 LDR R3, =aRunpath ; "RUNPATH" .text:00012B2C ADD R1, R12, R1 .text:00012B30 BL decompose_rpath .text:00012B34 LDR R1, [R11,#var_434] .text:00012B38 LDR R3, [R1,#0x17C] .text:00012B3C CMN R3, #1 .text:00012B40 BEQ loc_12BC4 .text:00012B44 SUB R3, R11, #-var_420 .text:00012B48 SUB R3, R3, #8 .text:00012B4C SUB R3, R3, #8 .text:00012B50 SUB R2, R11, #-var_420 .text:00012B54 STR R3, [SP,#0x44C+var_44C] .text:00012B58 SUB R2, R2, #8 .text:00012B5C SUB R2, R2, #4 .text:00012B60 STR R2, [SP,#0x44C+var_448] .text:00012B64 LDR R1, [R11,#var_440] .text:00012B68 MOV R0, R8 .text:00012B6C LDR R2, [R11,#var_438] .text:00012B70 MOV R3, R4 .text:00012B74 B loc_12BBC .text:00012B78 ; --------------------------------------------------------------------------- .text:00012B78 .text:00012B78 loc_12B78 ; CODE XREF: _dl_map_object+4C8j .text:00012B78 MOV R10, R0 .text:00012B7C B loc_12C4C .text:00012B80 ; --------------------------------------------------------------------------- .text:00012B80 .text:00012B80 loc_12B80 ; CODE XREF: _dl_map_object+364j .text:00012B80 CMN R3, #1 .text:00012B84 BEQ loc_12BC4 .text:00012B88 SUB R3, R11, #-var_420 .text:00012B8C SUB R3, R3, #8 .text:00012B90 SUB R3, R3, #8 .text:00012B94 SUB R2, R11, #-var_420 .text:00012B98 STR R3, [SP,#0x44C+var_44C] .text:00012B9C SUB R2, R2, #8 .text:00012BA0 SUB R2, R2, #4 .text:00012BA4 STR R2, [SP,#0x44C+var_448] .text:00012BA8 LDR R1, [R11,#var_440] .text:00012BAC LDR R12, [R11,#var_434] .text:00012BB0 MOV R0, R8 .text:00012BB4 LDR R2, [R11,#var_438] .text:00012BB8 ADD R3, R12, #0x17C .text:00012BBC .text:00012BBC loc_12BBC ; CODE XREF: _dl_map_object+404j .text:00012BBC BL open_path .text:00012BC0 MOV R9, R0 .text:00012BC4 .text:00012BC4 loc_12BC4 ; CODE XREF: _dl_map_object+350j .text:00012BC4 ; _dl_map_object+35Cj ... .text:00012BC4 CMN R9, #1 .text:00012BC8 BNE loc_12CB4 .text:00012BCC LDR R1, [R11,#var_438] .text:00012BD0 CMP R1, #0 .text:00012BD4 BEQ loc_12BE8 .text:00012BD8 LDR R3, =__libc_enable_secure .text:00012BDC LDR R2, [R3] .text:00012BE0 CMP R2, #0 .text:00012BE4 BNE loc_12CB4 .text:00012BE8 .text:00012BE8 loc_12BE8 ; CODE XREF: _dl_map_object+464j .text:00012BE8 MOV R0, R8 .text:00012BEC LDR R6, [R11,#var_434] .text:00012BF0 BL _dl_load_cache_lookup .text:00012BF4 SUBS R10, R0, #0 .text:00012BF8 BEQ loc_12CB4 .text:00012BFC LDR R6, [R11,#var_434] .text:00012C00 CMP R6, #0 .text:00012C04 BEQ loc_12C4C .text:00012C08 LDR R3, [R6,#0x198] .text:00012C0C TST R3, #0x800 .text:00012C10 BEQ loc_12C4C .text:00012C14 MOV R5, #0 .text:00012C18 LDR R7, =system_dirs ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:00012C1C .text:00012C1C loc_12C1C ; CODE XREF: _dl_map_object+4D8j .text:00012C1C LDR R2, =system_dirs_len .text:00012C20 MOV R0, R10 .text:00012C24 LDR R4, [R2,R5,LSL#2] .text:00012C28 MOV R1, R7 .text:00012C2C MOV R2, R4 .text:00012C30 BL memcmp .text:00012C34 CMP R0, #0 .text:00012C38 BEQ loc_12B78 .text:00012C3C ADD R3, R4, #1 .text:00012C40 ADD R7, R7, R3 .text:00012C44 ADDS R5, R5, #1 .text:00012C48 BEQ loc_12C1C .text:00012C4C .text:00012C4C loc_12C4C ; CODE XREF: _dl_map_object+40Cj .text:00012C4C ; _dl_map_object+494j ... .text:00012C4C CMP R10, #0 .text:00012C50 BEQ loc_12CB4 .text:00012C54 MOV R0, R10 .text:00012C58 SUB R1, R11, #-var_420 .text:00012C5C SUB R1, R1, #8 .text:00012C60 SUB R1, R1, #4 .text:00012C64 BL open_verify .text:00012C68 MOV R9, R0 .text:00012C6C CMN R9, #1 .text:00012C70 BEQ loc_12CB4 .text:00012C74 MOV R0, R10 .text:00012C78 BL strlen .text:00012C7C ADD R4, R0, #1 .text:00012C80 MOV R0, R4 .text:00012C84 BL malloc .text:00012C88 CMP R0, #0 .text:00012C8C BEQ loc_12C9C .text:00012C90 MOV R1, R10 .text:00012C94 MOV R2, R4 .text:00012C98 BL memcpy .text:00012C9C .text:00012C9C loc_12C9C ; CODE XREF: _dl_map_object+51Cj .text:00012C9C CMP R0, #0 .text:00012CA0 STR R0, [R11,#var_430] .text:00012CA4 BNE loc_12CB4 .text:00012CA8 MOV R0, R9 .text:00012CAC MOV R9, 0xFFFFFFFF .text:00012CB0 BL close .text:00012CB4 .text:00012CB4 loc_12CB4 ; CODE XREF: _dl_map_object+458j .text:00012CB4 ; _dl_map_object+474j ... .text:00012CB4 CMN R9, #1 .text:00012CB8 BNE loc_12D18 .text:00012CBC CMP R6, #0 .text:00012CC0 BEQ loc_12CD0 .text:00012CC4 LDR R3, [R6,#0x198] .text:00012CC8 TST R3, #0x800 .text:00012CCC BNE loc_12D18 .text:00012CD0 .text:00012CD0 loc_12CD0 ; CODE XREF: _dl_map_object+550j .text:00012CD0 LDR R12, =rtld_search_dirs .text:00012CD4 LDR R3, [R12] .text:00012CD8 CMN R3, #1 .text:00012CDC BEQ loc_12D18 .text:00012CE0 SUB R3, R11, #-var_420 .text:00012CE4 SUB R3, R3, #8 .text:00012CE8 SUB R3, R3, #8 .text:00012CEC SUB R2, R11, #-var_420 .text:00012CF0 STR R3, [SP,#0x44C+var_44C] .text:00012CF4 SUB R2, R2, #8 .text:00012CF8 SUB R2, R2, #4 .text:00012CFC STR R2, [SP,#0x44C+var_448] .text:00012D00 LDR R1, [R11,#var_440] .text:00012D04 MOV R0, R8 .text:00012D08 LDR R2, [R11,#var_438] .text:00012D0C MOV R3, R12 .text:00012D10 BL open_path .text:00012D14 MOV R9, R0 .text:00012D18 .text:00012D18 loc_12D18 ; CODE XREF: _dl_map_object+548j .text:00012D18 ; _dl_map_object+55Cj ... .text:00012D18 LDR R12, =_dl_debug_mask .text:00012D1C LDR R3, [R12] .text:00012D20 TST R3, #1 .text:00012D24 BEQ loc_12DB0 .text:00012D28 LDR R0, =asc_5631C ; "\n" .text:00012D2C BL _dl_debug_printf .text:00012D30 B loc_12DB0 .text:00012D34 ; --------------------------------------------------------------------------- .text:00012D34 .text:00012D34 loc_12D34 ; CODE XREF: _dl_map_object+160j .text:00012D34 LDR R1, [R11,#var_434] .text:00012D38 CMP R1, #0 .text:00012D3C BEQ loc_12D50 .text:00012D40 MOV R0, R1 .text:00012D44 MOV R1, R8 .text:00012D48 BL expand_dynamic_string_token .text:00012D4C B loc_12D7C .text:00012D50 ; --------------------------------------------------------------------------- .text:00012D50 .text:00012D50 loc_12D50 ; CODE XREF: _dl_map_object+5CCj .text:00012D50 MOV R0, R8 .text:00012D54 BL strlen .text:00012D58 ADD R4, R0, #1 .text:00012D5C MOV R0, R4 .text:00012D60 BL malloc .text:00012D64 CMP R0, #0 .text:00012D68 LDREQ R0, [R11,#var_434] .text:00012D6C BEQ loc_12D7C .text:00012D70 MOV R1, R8 .text:00012D74 MOV R2, R4 .text:00012D78 BL memcpy .text:00012D7C .text:00012D7C loc_12D7C ; CODE XREF: _dl_map_object+5DCj .text:00012D7C ; _dl_map_object+5FCj .text:00012D7C CMP R0, #0 .text:00012D80 STR R0, [R11,#var_430] .text:00012D84 MOVEQ R9, 0xFFFFFFFF .text:00012D88 BEQ loc_12DB0 .text:00012D8C SUB R1, R11, #-var_420 .text:00012D90 SUB R1, R1, #8 .text:00012D94 SUB R1, R1, #4 .text:00012D98 BL open_verify .text:00012D9C MOV R9, R0 .text:00012DA0 CMN R9, #1 .text:00012DA4 BNE loc_12DB0 .text:00012DA8 LDR R0, [R11,#var_430] .text:00012DAC BL free .text:00012DB0 .text:00012DB0 loc_12DB0 ; CODE XREF: _dl_map_object+5B4j .text:00012DB0 ; _dl_map_object+5C0j ... .text:00012DB0 CMN R9, #1 .text:00012DB4 BNE loc_12E88 .text:00012DB8 LDR R3, [R11,#arg_0] .text:00012DBC CMP R3, #0 .text:00012DC0 BEQ loc_12E4C .text:00012DC4 MOV R0, R8 .text:00012DC8 BL strlen .text:00012DCC ADD R4, R0, #1 .text:00012DD0 MOV R0, R4 .text:00012DD4 BL malloc .text:00012DD8 CMP R0, #0 .text:00012DDC BEQ loc_12DEC .text:00012DE0 MOV R1, R8 .text:00012DE4 MOV R2, R4 .text:00012DE8 BL memcpy .text:00012DEC .text:00012DEC loc_12DEC ; CODE XREF: _dl_map_object+66Cj .text:00012DEC CMP R0, #0 .text:00012DF0 BEQ loc_12E0C .text:00012DF4 LDR R2, [R11,#var_43C] .text:00012DF8 LDR R3, [R11,#var_434] .text:00012DFC MOV R1, R8 .text:00012E00 BL _dl_new_object .text:00012E04 SUBS R6, R0, #0 .text:00012E08 BNE loc_12E1C .text:00012E0C .text:00012E0C loc_12E0C ; CODE XREF: _dl_map_object+680j .text:00012E0C MOV R0, #0xC .text:00012E10 LDR R2, =aCannotCreateSh ; "cannot create shared object descriptor" .text:00012E14 MOV R1, R8 .text:00012E18 BL _dl_signal_error .text:00012E1C ; --------------------------------------------------------------------------- .text:00012E1C .text:00012E1C loc_12E1C ; CODE XREF: _dl_map_object+698j .text:00012E1C LDRB R3, [R6,#0x12D] .text:00012E20 MOV R2, #1 .text:00012E24 STR R2, [R6,#0x11C] .text:00012E28 ORR R3, R3, #2 .text:00012E2C STRB R3, [R6,#0x12D] .text:00012E30 LDR R2, =dummy_bucket.190 .text:00012E34 LDRB R3, [R6,#0x12C] .text:00012E38 STR R2, [R6,#0x120] .text:00012E3C MOV R0, R6 .text:00012E40 ORR R3, R3, #4 .text:00012E44 STRB R3, [R6,#0x12C] .text:00012E48 B locret_12EBC .text:00012E4C ; --------------------------------------------------------------------------- .text:00012E4C .text:00012E4C loc_12E4C ; CODE XREF: _dl_map_object+650j .text:00012E4C BL __errno_location .text:00012E50 LDR R0, [R0] .text:00012E54 LDR R2, =aCannotOpenShar ; "cannot open shared object file" .text:00012E58 MOV R1, R8 .text:00012E5C BL _dl_signal_error .text:00012E5C ; --------------------------------------------------------------------------- .text:00012E60 off_12E60 DCD aRunpath ; DATA XREF: _dl_map_object+3B8r .text:00012E60 ; "RUNPATH" .text:00012E64 off_12E64 DCD __libc_enable_secure ; DATA XREF: _dl_map_object+468r .text:00012E68 off_12E68 DCD system_dirs ; DATA XREF: _dl_map_object+4A8r .text:00012E68 ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:00012E6C off_12E6C DCD system_dirs_len ; DATA XREF: _dl_map_object:loc_12C1Cr .text:00012E70 off_12E70 DCD rtld_search_dirs ; DATA XREF: _dl_map_object:loc_12CD0r .text:00012E74 off_12E74 DCD _dl_debug_mask ; DATA XREF: _dl_map_object:loc_12D18r .text:00012E78 off_12E78 DCD asc_5631C ; DATA XREF: _dl_map_object+5B8r .text:00012E78 ; "\n" .text:00012E7C off_12E7C DCD aCannotCreateSh ; DATA XREF: _dl_map_object+6A0r .text:00012E7C ; "cannot create shared object descriptor" .text:00012E80 off_12E80 DCD dummy_bucket.190 ; DATA XREF: _dl_map_object+6C0r .text:00012E84 off_12E84 DCD aCannotOpenShar ; DATA XREF: _dl_map_object+6E4r .text:00012E84 ; "cannot open shared object file" .text:00012E88 ; --------------------------------------------------------------------------- .text:00012E88 .text:00012E88 loc_12E88 ; CODE XREF: _dl_map_object+644j .text:00012E88 LDR R2, [R11,#var_434] .text:00012E8C STR R2, [SP,#0x44C+var_44C] .text:00012E90 LDR R3, [R11,#var_43C] .text:00012E94 STR R3, [SP,#0x44C+var_448] .text:00012E98 LDR R3, [R11,#arg_4] .text:00012E9C STR R3, [SP,#0x44C+var_444] .text:00012EA0 MOV R0, R8 .text:00012EA4 MOV R1, R9 .text:00012EA8 SUB R2, R11, #-var_420 .text:00012EAC SUB R2, R2, #8 .text:00012EB0 LDR R3, [R11,#var_430] .text:00012EB4 SUB R2, R2, #4 .text:00012EB8 BL _dl_map_object_from_fd .text:00012EBC .text:00012EBC locret_12EBC ; CODE XREF: _dl_map_object+F8j .text:00012EBC ; _dl_map_object+6D8j .text:00012EBC LDMDB R11, {R4-R11,SP,PC} .text:00012EBC ; End of function _dl_map_object .text:00012EBC .text:00012EC0 .text:00012EC0 ; =============== S U B R O U T I N E ======================================= .text:00012EC0 .text:00012EC0 ; Attributes: bp-based frame .text:00012EC0 .text:00012EC0 _dl_cache_libcmp ; CODE XREF: _dl_load_cache_lookup+1F8p .text:00012EC0 ; _dl_load_cache_lookup+248p ... .text:00012EC0 MOV R12, SP .text:00012EC4 STMFD SP!, {R4,R11,R12,LR,PC} .text:00012EC8 SUB R11, R12, #4 .text:00012ECC MOV R4, R0 .text:00012ED0 LDRB R12, [R4] .text:00012ED4 MOV LR, R1 .text:00012ED8 CMP R12, #0 .text:00012EDC BEQ loc_12FC0 .text:00012EE0 .text:00012EE0 loc_12EE0 ; CODE XREF: _dl_cache_libcmp+FCj .text:00012EE0 SUB R3, R12, #0x30 .text:00012EE4 CMP R3, #9 .text:00012EE8 BHI loc_12F84 .text:00012EEC LDRB R3, [LR] .text:00012EF0 SUB R3, R3, #0x30 .text:00012EF4 CMP R3, #9 .text:00012EF8 BHI loc_12F7C .text:00012EFC LDRB R3, [R4] .text:00012F00 LDRB R1, [LR],#1 .text:00012F04 LDRB R2, [R4,#1]! .text:00012F08 SUB R0, R3, #0x30 .text:00012F0C SUB R12, R1, #0x30 .text:00012F10 SUB R2, R2, #0x30 .text:00012F14 CMP R2, #9 .text:00012F18 BHI loc_12F3C .text:00012F1C .text:00012F1C loc_12F1C ; CODE XREF: _dl_cache_libcmp+78j .text:00012F1C LDRB R3, [R4] .text:00012F20 ADD R2, R0, R0,LSL#2 .text:00012F24 LDRB R1, [R4,#1]! .text:00012F28 ADD R3, R3, R2,LSL#1 .text:00012F2C SUB R0, R3, #0x30 .text:00012F30 SUB R1, R1, #0x30 .text:00012F34 CMP R1, #9 .text:00012F38 BLS loc_12F1C .text:00012F3C .text:00012F3C loc_12F3C ; CODE XREF: _dl_cache_libcmp+58j .text:00012F3C LDRB R3, [LR] .text:00012F40 SUB R3, R3, #0x30 .text:00012F44 CMP R3, #9 .text:00012F48 BHI loc_12F6C .text:00012F4C .text:00012F4C loc_12F4C ; CODE XREF: _dl_cache_libcmp+A8j .text:00012F4C LDRB R3, [LR] .text:00012F50 ADD R2, R12, R12,LSL#2 .text:00012F54 LDRB R1, [LR,#1]! .text:00012F58 ADD R3, R3, R2,LSL#1 .text:00012F5C SUB R12, R3, #0x30 .text:00012F60 SUB R1, R1, #0x30 .text:00012F64 CMP R1, #9 .text:00012F68 BLS loc_12F4C .text:00012F6C .text:00012F6C loc_12F6C ; CODE XREF: _dl_cache_libcmp+88j .text:00012F6C CMP R0, R12 .text:00012F70 BEQ loc_12FB4 .text:00012F74 RSB R0, R12, R0 .text:00012F78 LDMDB R11, {R4,R11,SP,PC} .text:00012F7C ; --------------------------------------------------------------------------- .text:00012F7C .text:00012F7C loc_12F7C ; CODE XREF: _dl_cache_libcmp+38j .text:00012F7C MOV R0, #1 .text:00012F80 LDMDB R11, {R4,R11,SP,PC} .text:00012F84 ; --------------------------------------------------------------------------- .text:00012F84 .text:00012F84 loc_12F84 ; CODE XREF: _dl_cache_libcmp+28j .text:00012F84 LDRB R2, [LR] .text:00012F88 SUB R3, R2, #0x30 .text:00012F8C CMP R3, #9 .text:00012F90 MOVLS R0, 0xFFFFFFFF .text:00012F94 LDMLSDB R11, {R4,R11,SP,PC} .text:00012F98 CMP R12, R2 .text:00012F9C LDRNEB R3, [R4] .text:00012FA0 LDRNEB R0, [LR] .text:00012FA4 RSBNE R0, R0, R3 .text:00012FA8 LDMNEDB R11, {R4,R11,SP,PC} .text:00012FAC ADD R4, R4, #1 .text:00012FB0 ADD LR, LR, #1 .text:00012FB4 .text:00012FB4 loc_12FB4 ; CODE XREF: _dl_cache_libcmp+B0j .text:00012FB4 LDRB R12, [R4] .text:00012FB8 CMP R12, #0 .text:00012FBC BNE loc_12EE0 .text:00012FC0 .text:00012FC0 loc_12FC0 ; CODE XREF: _dl_cache_libcmp+1Cj .text:00012FC0 LDRB R3, [R4] .text:00012FC4 LDRB R0, [LR] .text:00012FC8 RSB R0, R0, R3 .text:00012FCC LDMDB R11, {R4,R11,SP,PC} .text:00012FCC ; End of function _dl_cache_libcmp .text:00012FCC .text:00012FD0 .text:00012FD0 ; =============== S U B R O U T I N E ======================================= .text:00012FD0 .text:00012FD0 ; Attributes: bp-based frame .text:00012FD0 .text:00012FD0 EXPORT _dl_load_cache_lookup .text:00012FD0 _dl_load_cache_lookup ; CODE XREF: _dl_map_object+480p .text:00012FD0 .text:00012FD0 var_30 = -0x30 .text:00012FD0 var_2C = -0x2C .text:00012FD0 .text:00012FD0 MOV R12, SP .text:00012FD4 STMFD SP!, {R4-R12,LR,PC} .text:00012FD8 LDR R2, =_dl_debug_mask .text:00012FDC SUB SP, SP, #8 .text:00012FE0 LDR R3, [R2] .text:00012FE4 SUB R11, R12, #4 .text:00012FE8 STR R0, [R11,#var_2C] .text:00012FEC TST R3, #1 .text:00012FF0 BEQ loc_13000 .text:00012FF4 LDR R0, =aSearchCacheS ; " search cache=%s\n" .text:00012FF8 LDR R1, =aUsrLocalArm2_9 ; "/usr/local/arm/2.95.3/arm-linux/etc/ld."... .text:00012FFC BL _dl_debug_printf .text:00013000 .text:00013000 loc_13000 ; CODE XREF: _dl_load_cache_lookup+20j .text:00013000 LDR R2, =cache .text:00013004 LDR R3, [R2] .text:00013008 CMP R3, #0 .text:0001300C BNE loc_13128 .text:00013010 LDR R4, =cachesize .text:00013014 MOV R2, #1 .text:00013018 LDR R0, =aUsrLocalArm2_9 ; "/usr/local/arm/2.95.3/arm-linux/etc/ld."... .text:0001301C MOV R1, R4 .text:00013020 BL _dl_sysdep_read_whole_file .text:00013024 SUBS R5, R0, #0 .text:00013028 BEQ loc_130A4 .text:0001302C LDR R3, [R4] .text:00013030 CMP R3, #0x10 .text:00013034 BLS loc_130A4 .text:00013038 MOV R0, R5 .text:0001303C LDR R1, =aLd_so1_7_0 ; "ld.so-1.7.0" .text:00013040 MOV R2, #0xB .text:00013044 BL memcmp .text:00013048 CMP R0, #0 .text:0001304C BNE loc_130A4 .text:00013050 LDR R1, =cache .text:00013054 STR R5, [R1] .text:00013058 LDR R1, [R4] .text:0001305C LDR R3, [R5,#0xC] .text:00013060 LDR R4, =cache_new .text:00013064 ADD R3, R3, R3,LSL#1 .text:00013068 MOV R3, R3,LSL#2 .text:0001306C ADD R3, R3, #0x10 .text:00013070 ADD R2, R3, #0x30 .text:00013074 CMP R1, R2 .text:00013078 ADD R0, R5, R3 .text:0001307C STR R0, [R4] .text:00013080 BCC loc_13098 .text:00013084 LDR R1, =aGlibcLd_so_cac ; "glibc-ld.so.cache1.1" .text:00013088 MOV R2, #0x14 .text:0001308C BL memcmp .text:00013090 CMP R0, #0 .text:00013094 BEQ loc_13104 .text:00013098 .text:00013098 loc_13098 ; CODE XREF: _dl_load_cache_lookup+B0j .text:00013098 MOV R3, 0xFFFFFFFF .text:0001309C STR R3, [R4] .text:000130A0 B loc_13104 .text:000130A4 ; --------------------------------------------------------------------------- .text:000130A4 .text:000130A4 loc_130A4 ; CODE XREF: _dl_load_cache_lookup+58j .text:000130A4 ; _dl_load_cache_lookup+64j ... .text:000130A4 CMP R5, #0 .text:000130A8 BEQ loc_130E4 .text:000130AC LDR R3, [R4] .text:000130B0 CMP R3, #0x30 .text:000130B4 BLS loc_130E4 .text:000130B8 MOV R0, R5 .text:000130BC LDR R1, =aGlibcLd_so_cac ; "glibc-ld.so.cache1.1" .text:000130C0 MOV R2, #0x14 .text:000130C4 BL memcmp .text:000130C8 CMP R0, #0 .text:000130CC BNE loc_130E4 .text:000130D0 LDR R2, =cache .text:000130D4 STR R5, [R2] .text:000130D8 LDR R3, =cache_new .text:000130DC STR R5, [R3] .text:000130E0 B loc_13104 .text:000130E4 ; --------------------------------------------------------------------------- .text:000130E4 .text:000130E4 loc_130E4 ; CODE XREF: _dl_load_cache_lookup+D8j .text:000130E4 ; _dl_load_cache_lookup+E4j ... .text:000130E4 CMP R5, #0 .text:000130E8 BEQ loc_130F8 .text:000130EC LDR R1, [R4] .text:000130F0 MOV R0, R5 .text:000130F4 BL munmap .text:000130F8 .text:000130F8 loc_130F8 ; CODE XREF: _dl_load_cache_lookup+118j .text:000130F8 LDR R1, =cache .text:000130FC MOV R3, 0xFFFFFFFF .text:00013100 STR R3, [R1] .text:00013104 .text:00013104 loc_13104 ; CODE XREF: _dl_load_cache_lookup+C4j .text:00013104 ; _dl_load_cache_lookup+D0j ... .text:00013104 LDR R2, =cache .text:00013108 LDR R3, [R2] .text:0001310C CMP R3, #0 .text:00013110 BNE loc_13128 .text:00013114 LDR R0, =aCacheVoid0 ; "cache != ((void *)0)" .text:00013118 LDR R1, =a__SysdepsGener ; "../sysdeps/generic/dl-cache.c" .text:0001311C LDR R3, =a_dl_load_cache ; "_dl_load_cache_lookup" .text:00013120 MOV R2, #0xCA .text:00013124 BL __assert_fail .text:00013128 ; --------------------------------------------------------------------------- .text:00013128 .text:00013128 loc_13128 ; CODE XREF: _dl_load_cache_lookup+3Cj .text:00013128 ; _dl_load_cache_lookup+140j .text:00013128 LDR R3, =cache .text:0001312C LDR R12, [R3] .text:00013130 CMN R12, #1 .text:00013134 MOVEQ R0, #0 .text:00013138 BEQ loc_13538 .text:0001313C LDR R3, =cache_new .text:00013140 LDR R9, [R3] .text:00013144 MOV R1, #0 .text:00013148 STR R1, [R11,#var_30] .text:0001314C CMN R9, #1 .text:00013150 BEQ loc_13348 .text:00013154 LDR R3, =cachesize .text:00013158 LDR R2, [R3] .text:0001315C MOV R6, R9 .text:00013160 ADD R2, R12, R2 .text:00013164 RSB R8, R6, R2 .text:00013168 MOV R10, R1 .text:0001316C LDR R2, [R6,#0x14] .text:00013170 MOV R0, #1 .text:00013174 SUB R7, R2, #1 .text:00013178 ADD R3, R7, R7,LSR#31 .text:0001317C MOV R5, R3,ASR R0 .text:00013180 B loc_13198 .text:00013184 ; --------------------------------------------------------------------------- .text:00013184 .text:00013184 loc_13184 ; CODE XREF: _dl_load_cache_lookup+200j .text:00013184 ADDLT R10, R5, #1 .text:00013188 SUBGE R7, R5, #1 .text:0001318C ADD R3, R10, R7 .text:00013190 ADD R3, R3, R3,LSR#31 .text:00013194 MOV R5, R3,ASR#1 .text:00013198 .text:00013198 loc_13198 ; CODE XREF: _dl_load_cache_lookup+1B0j .text:00013198 CMP R10, R7 .text:0001319C BGT loc_131D4 .text:000131A0 LDR R2, =cache_new .text:000131A4 LDR R3, [R2] .text:000131A8 ADD R2, R5, R5,LSL#1 .text:000131AC ADD R3, R3, #0x34 .text:000131B0 LDR R3, [R3,R2,LSL#3] .text:000131B4 CMP R3, R8 .text:000131B8 MOV R0, #1 .text:000131BC BCS loc_131D4 .text:000131C0 LDR R0, [R11,#var_2C] .text:000131C4 ADD R1, R9, R3 .text:000131C8 BL _dl_cache_libcmp .text:000131CC CMP R0, #0 .text:000131D0 BNE loc_13184 .text:000131D4 .text:000131D4 loc_131D4 ; CODE XREF: _dl_load_cache_lookup+1CCj .text:000131D4 ; _dl_load_cache_lookup+1ECj .text:000131D4 CMP R0, #0 .text:000131D8 BNE loc_13508 .text:000131DC MOV R10, R5 .text:000131E0 B loc_131E8 .text:000131E4 ; --------------------------------------------------------------------------- .text:000131E4 .text:000131E4 loc_131E4 ; CODE XREF: _dl_load_cache_lookup+250j .text:000131E4 MOV R5, R4 .text:000131E8 .text:000131E8 loc_131E8 ; CODE XREF: _dl_load_cache_lookup+210j .text:000131E8 CMP R5, #0 .text:000131EC BLE loc_13224 .text:000131F0 LDR R1, =cache_new .text:000131F4 SUB R4, R5, #1 .text:000131F8 LDR R3, [R1] .text:000131FC ADD R2, R4, R4,LSL#1 .text:00013200 ADD R3, R3, #0x34 .text:00013204 LDR R3, [R3,R2,LSL#3] .text:00013208 CMP R3, R8 .text:0001320C BCS loc_13224 .text:00013210 LDR R0, [R11,#var_2C] .text:00013214 ADD R1, R9, R3 .text:00013218 BL _dl_cache_libcmp .text:0001321C CMP R0, #0 .text:00013220 BEQ loc_131E4 .text:00013224 .text:00013224 loc_13224 ; CODE XREF: _dl_load_cache_lookup+21Cj .text:00013224 ; _dl_load_cache_lookup+23Cj .text:00013224 ADD R3, R5, R5,LSL#1 .text:00013228 MOV R6, R3,LSL#3 .text:0001322C .text:0001322C loc_1322C ; CODE XREF: _dl_load_cache_lookup+370j .text:0001322C CMP R5, R10 .text:00013230 BLE loc_13260 .text:00013234 LDR R2, =cache_new .text:00013238 LDR R3, [R2] .text:0001323C ADD R3, R3, #0x34 .text:00013240 LDR R3, [R3,R6] .text:00013244 CMP R3, R8 .text:00013248 BCS loc_13508 .text:0001324C LDR R0, [R11,#var_2C] .text:00013250 ADD R1, R9, R3 .text:00013254 BL _dl_cache_libcmp .text:00013258 CMP R0, #0 .text:0001325C BNE loc_13508 .text:00013260 .text:00013260 loc_13260 ; CODE XREF: _dl_load_cache_lookup+260j .text:00013260 LDR R3, =cache_new .text:00013264 LDR R0, [R3] .text:00013268 ADD R3, R0, #0x30 .text:0001326C LDR R12, [R3,R6] .text:00013270 CMP R12, #3 .text:00013274 CMPNE R12, #1 .text:00013278 BNE loc_13334 .text:0001327C ADD R3, R0, #0x38 .text:00013280 LDR R2, [R3,R6] .text:00013284 CMP R2, R8 .text:00013288 BCS loc_13334 .text:0001328C LDR R1, [R11,#var_30] .text:00013290 CMP R1, #0 .text:00013294 BEQ loc_132A8 .text:00013298 LDR R2, =_dl_correct_cache_id .text:0001329C LDR R3, [R2] .text:000132A0 CMP R12, R3 .text:000132A4 BNE loc_13334 .text:000132A8 .text:000132A8 loc_132A8 ; CODE XREF: _dl_load_cache_lookup+2C4j .text:000132A8 LDR R3, =_dl_osversion .text:000132AC LDR R1, [R3] .text:000132B0 CMP R1, #0 .text:000132B4 BEQ loc_132C8 .text:000132B8 ADD R3, R0, #0x3C .text:000132BC LDR R2, [R3,R6] .text:000132C0 CMP R2, R1 .text:000132C4 BHI loc_13334 .text:000132C8 .text:000132C8 loc_132C8 ; CODE XREF: _dl_load_cache_lookup+2E4j .text:000132C8 LDR R3, =0 .text:000132CC CMP R3, #0 .text:000132D0 BEQ loc_1330C .text:000132D4 LDR R1, =0 .text:000132D8 ADD R3, R0, #0x40 .text:000132DC LDR R2, [R1] .text:000132E0 ADD R3, R3, R6 .text:000132E4 LDMIA R3, {R3,R4} .text:000132E8 MOV R1, R2 .text:000132EC MOV R2, #0 .text:000132F0 AND R3, R3, R1 .text:000132F4 AND R4, R4, R2 .text:000132F8 CMP R4, R2 .text:000132FC BHI loc_13334 .text:00013300 BNE loc_1330C .text:00013304 CMP R3, R1 .text:00013308 BHI loc_13334 .text:0001330C .text:0001330C loc_1330C ; CODE XREF: _dl_load_cache_lookup+300j .text:0001330C ; _dl_load_cache_lookup+330j .text:0001330C LDR R2, =cache_new .text:00013310 LDR R3, [R2] .text:00013314 LDR R2, =_dl_correct_cache_id .text:00013318 LDR R1, [R2] .text:0001331C ADD R3, R3, #0x38 .text:00013320 LDR R2, [R3,R6] .text:00013324 CMP R12, R1 .text:00013328 ADD R2, R9, R2 .text:0001332C STR R2, [R11,#var_30] .text:00013330 BEQ loc_13508 .text:00013334 .text:00013334 loc_13334 ; CODE XREF: _dl_load_cache_lookup+2A8j .text:00013334 ; _dl_load_cache_lookup+2B8j ... .text:00013334 ADD R6, R6, #0x18 .text:00013338 ADD R5, R5, #1 .text:0001333C CMP R5, R7 .text:00013340 BLE loc_1322C .text:00013344 B loc_13508 .text:00013348 ; --------------------------------------------------------------------------- .text:00013348 .text:00013348 loc_13348 ; CODE XREF: _dl_load_cache_lookup+180j .text:00013348 LDR R2, [R12,#0xC] .text:0001334C LDR R1, =cachesize .text:00013350 ADD R3, R2, R2,LSL#1 .text:00013354 MOV R3, R3,LSL#2 .text:00013358 ADD R3, R3, #0x10 .text:0001335C LDR R0, [R1] .text:00013360 ADD R6, R12, R3 .text:00013364 RSB R8, R3, R0 .text:00013368 LDR R10, [R11,#var_30] .text:0001336C MOV R0, #1 .text:00013370 SUB R7, R2, #1 .text:00013374 ADD R3, R7, R7,LSR#31 .text:00013378 B loc_133CC .text:0001337C ; --------------------------------------------------------------------------- .text:0001337C .text:0001337C loc_1337C ; CODE XREF: _dl_load_cache_lookup+438j .text:0001337C BGE loc_133C0 .text:00013380 ADD R10, R5, #1 .text:00013384 B loc_133C4 .text:00013384 ; --------------------------------------------------------------------------- .text:00013388 off_13388 DCD _dl_debug_mask ; DATA XREF: _dl_load_cache_lookup+8r .text:0001338C off_1338C DCD aSearchCacheS ; DATA XREF: _dl_load_cache_lookup+24r .text:0001338C ; " search cache=%s\n" .text:00013390 off_13390 DCD aUsrLocalArm2_9 ; DATA XREF: _dl_load_cache_lookup+28r .text:00013390 ; _dl_load_cache_lookup+48r .text:00013390 ; "/usr/local/arm/2.95.3/arm-linux/etc/ld."... .text:00013394 off_13394 DCD cache ; DATA XREF: _dl_load_cache_lookup:loc_13000r .text:00013394 ; _dl_load_cache_lookup+80r ... .text:00013398 off_13398 DCD cachesize ; DATA XREF: _dl_load_cache_lookup+40r .text:00013398 ; _dl_load_cache_lookup+184r ... .text:0001339C off_1339C DCD aLd_so1_7_0 ; DATA XREF: _dl_load_cache_lookup+6Cr .text:0001339C ; "ld.so-1.7.0" .text:000133A0 off_133A0 DCD cache_new ; DATA XREF: _dl_load_cache_lookup+90r .text:000133A0 ; _dl_load_cache_lookup+108r ... .text:000133A4 off_133A4 DCD aGlibcLd_so_cac ; DATA XREF: _dl_load_cache_lookup+B4r .text:000133A4 ; _dl_load_cache_lookup+ECr .text:000133A4 ; "glibc-ld.so.cache1.1" .text:000133A8 off_133A8 DCD aCacheVoid0 ; DATA XREF: _dl_load_cache_lookup+144r .text:000133A8 ; "cache != ((void *)0)" .text:000133AC off_133AC DCD a__SysdepsGener ; DATA XREF: _dl_load_cache_lookup+148r .text:000133AC ; "../sysdeps/generic/dl-cache.c" .text:000133B0 off_133B0 DCD a_dl_load_cache ; DATA XREF: _dl_load_cache_lookup+14Cr .text:000133B0 ; "_dl_load_cache_lookup" .text:000133B4 off_133B4 DCD _dl_correct_cache_id .text:000133B4 ; DATA XREF: _dl_load_cache_lookup+2C8r .text:000133B4 ; _dl_load_cache_lookup+344r .text:000133B8 off_133B8 DCD _dl_osversion ; DATA XREF: _dl_load_cache_lookup:loc_132A8r .text:000133BC dword_133BC DCD 0 ; DATA XREF: _dl_load_cache_lookup:loc_132C8r .text:000133BC ; _dl_load_cache_lookup+304r .text:000133C0 ; --------------------------------------------------------------------------- .text:000133C0 .text:000133C0 loc_133C0 ; CODE XREF: _dl_load_cache_lookup:loc_1337Cj .text:000133C0 SUB R7, R5, #1 .text:000133C4 .text:000133C4 loc_133C4 ; CODE XREF: _dl_load_cache_lookup+3B4j .text:000133C4 ADD R3, R10, R7 .text:000133C8 ADD R3, R3, R3,LSR#31 .text:000133CC .text:000133CC loc_133CC ; CODE XREF: _dl_load_cache_lookup+3A8j .text:000133CC MOV R5, R3,ASR#1 .text:000133D0 CMP R10, R7 .text:000133D4 BGT loc_1340C .text:000133D8 LDR R1, =cache .text:000133DC LDR R3, [R1] .text:000133E0 ADD R2, R5, R5,LSL#1 .text:000133E4 ADD R3, R3, #0x14 .text:000133E8 LDR R3, [R3,R2,LSL#2] .text:000133EC CMP R3, R8 .text:000133F0 MOV R0, #1 .text:000133F4 BCS loc_1340C .text:000133F8 LDR R0, [R11,#var_2C] .text:000133FC ADD R1, R6, R3 .text:00013400 BL _dl_cache_libcmp .text:00013404 CMP R0, #0 .text:00013408 BNE loc_1337C .text:0001340C .text:0001340C loc_1340C ; CODE XREF: _dl_load_cache_lookup+404j .text:0001340C ; _dl_load_cache_lookup+424j .text:0001340C CMP R0, #0 .text:00013410 BNE loc_13508 .text:00013414 MOV R10, R5 .text:00013418 B loc_13424 .text:00013418 ; --------------------------------------------------------------------------- .text:0001341C off_1341C DCD cache ; DATA XREF: _dl_load_cache_lookup+408r .text:00013420 ; --------------------------------------------------------------------------- .text:00013420 .text:00013420 loc_13420 ; CODE XREF: _dl_load_cache_lookup+48Cj .text:00013420 MOV R5, R4 .text:00013424 .text:00013424 loc_13424 ; CODE XREF: _dl_load_cache_lookup+448j .text:00013424 CMP R5, #0 .text:00013428 BLE loc_13460 .text:0001342C LDR R2, =cache .text:00013430 SUB R4, R5, #1 .text:00013434 LDR R3, [R2] .text:00013438 ADD R2, R4, R4,LSL#1 .text:0001343C ADD R3, R3, #0x14 .text:00013440 LDR R3, [R3,R2,LSL#2] .text:00013444 CMP R3, R8 .text:00013448 BCS loc_13460 .text:0001344C LDR R0, [R11,#var_2C] .text:00013450 ADD R1, R6, R3 .text:00013454 BL _dl_cache_libcmp .text:00013458 CMP R0, #0 .text:0001345C BEQ loc_13420 .text:00013460 .text:00013460 loc_13460 ; CODE XREF: _dl_load_cache_lookup+458j .text:00013460 ; _dl_load_cache_lookup+478j .text:00013460 ADD R3, R5, R5,LSL#1 .text:00013464 MOV R4, R3,LSL#2 .text:00013468 .text:00013468 loc_13468 ; CODE XREF: _dl_load_cache_lookup+534j .text:00013468 CMP R5, R10 .text:0001346C BLE loc_1349C .text:00013470 LDR R1, =cache .text:00013474 LDR R3, [R1] .text:00013478 ADD R3, R3, #0x14 .text:0001347C LDR R3, [R3,R4] .text:00013480 CMP R3, R8 .text:00013484 BCS loc_13508 .text:00013488 LDR R0, [R11,#var_2C] .text:0001348C ADD R1, R6, R3 .text:00013490 BL _dl_cache_libcmp .text:00013494 CMP R0, #0 .text:00013498 BNE loc_13508 .text:0001349C .text:0001349C loc_1349C ; CODE XREF: _dl_load_cache_lookup+49Cj .text:0001349C LDR R3, =cache .text:000134A0 LDR R2, [R3] .text:000134A4 ADD R3, R2, #0x10 .text:000134A8 LDR R1, [R3,R4] .text:000134AC CMP R1, #3 .text:000134B0 CMPNE R1, #1 .text:000134B4 BNE loc_134F8 .text:000134B8 ADD R3, R2, #0x18 .text:000134BC LDR R2, [R3,R4] .text:000134C0 CMP R2, R8 .text:000134C4 BCS loc_134F8 .text:000134C8 LDR R3, [R11,#var_30] .text:000134CC LDR R0, =_dl_correct_cache_id .text:000134D0 CMP R3, #0 .text:000134D4 BEQ loc_134E4 .text:000134D8 LDR R3, [R0] .text:000134DC CMP R1, R3 .text:000134E0 BNE loc_134F8 .text:000134E4 .text:000134E4 loc_134E4 ; CODE XREF: _dl_load_cache_lookup+504j .text:000134E4 LDR R3, [R0] .text:000134E8 ADD R2, R6, R2 .text:000134EC STR R2, [R11,#var_30] .text:000134F0 CMP R1, R3 .text:000134F4 BEQ loc_13508 .text:000134F8 .text:000134F8 loc_134F8 ; CODE XREF: _dl_load_cache_lookup+4E4j .text:000134F8 ; _dl_load_cache_lookup+4F4j ... .text:000134F8 ADD R4, R4, #0xC .text:000134FC ADD R5, R5, #1 .text:00013500 CMP R5, R7 .text:00013504 BLE loc_13468 .text:00013508 .text:00013508 loc_13508 ; CODE XREF: _dl_load_cache_lookup+208j .text:00013508 ; _dl_load_cache_lookup+278j ... .text:00013508 LDR R1, =_dl_debug_mask .text:0001350C LDR R2, [R11,#var_30] .text:00013510 LDR R3, [R1] .text:00013514 CMP R2, #0 .text:00013518 ANDNE R3, R3, #1 .text:0001351C MOVEQ R3, #0 .text:00013520 CMP R3, #0 .text:00013524 BEQ loc_13534 .text:00013528 LDR R0, =aTryingFileS_0 ; " trying file=%s\n" .text:0001352C MOV R1, R2 .text:00013530 BL _dl_debug_printf .text:00013534 .text:00013534 loc_13534 ; CODE XREF: _dl_load_cache_lookup+554j .text:00013534 LDR R0, [R11,#var_30] .text:00013538 .text:00013538 loc_13538 ; CODE XREF: _dl_load_cache_lookup+168j .text:00013538 B locret_1354C .text:00013538 ; --------------------------------------------------------------------------- .text:0001353C off_1353C DCD cache ; DATA XREF: _dl_load_cache_lookup+45Cr .text:0001353C ; _dl_load_cache_lookup+4A0r ... .text:00013540 off_13540 DCD _dl_correct_cache_id .text:00013540 ; DATA XREF: _dl_load_cache_lookup+4FCr .text:00013544 off_13544 DCD _dl_debug_mask ; DATA XREF: _dl_load_cache_lookup:loc_13508r .text:00013548 off_13548 DCD aTryingFileS_0 ; DATA XREF: _dl_load_cache_lookup+558r .text:00013548 ; " trying file=%s\n" .text:0001354C ; --------------------------------------------------------------------------- .text:0001354C .text:0001354C locret_1354C ; CODE XREF: _dl_load_cache_lookup:loc_13538j .text:0001354C LDMDB R11, {R4-R11,SP,PC} .text:0001354C ; End of function _dl_load_cache_lookup .text:0001354C .text:00013550 .text:00013550 ; =============== S U B R O U T I N E ======================================= .text:00013550 .text:00013550 ; Attributes: bp-based frame .text:00013550 .text:00013550 EXPORT _dl_unload_cache .text:00013550 _dl_unload_cache ; CODE XREF: .text:000517D4p .text:00013550 MOV R12, SP .text:00013554 STMFD SP!, {R4,R11,R12,LR,PC} .text:00013558 LDR R4, =cache .text:0001355C LDR R0, [R4] .text:00013560 SUB R11, R12, #4 .text:00013564 CMP R0, #0 .text:00013568 CMNNE R0, #1 .text:0001356C LDMEQDB R11, {R4,R11,SP,PC} .text:00013570 LDR R3, =cachesize .text:00013574 LDR R1, [R3] .text:00013578 BL munmap .text:0001357C MOV R3, #0 .text:00013580 STR R3, [R4] .text:00013584 LDMDB R11, {R4,R11,SP,PC} .text:00013584 ; End of function _dl_unload_cache .text:00013584 .text:00013584 ; --------------------------------------------------------------------------- .text:00013588 off_13588 DCD cache ; DATA XREF: _dl_unload_cache+8r .text:0001358C off_1358C DCD cachesize ; DATA XREF: _dl_unload_cache+20r .text:00013590 .text:00013590 ; =============== S U B R O U T I N E ======================================= .text:00013590 .text:00013590 ; Attributes: bp-based frame .text:00013590 .text:00013590 add_dependency ; CODE XREF: _dl_lookup_symbol+39Cp .text:00013590 ; _dl_lookup_versioned_symbol+4ECp .text:00013590 MOV R12, SP .text:00013594 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00013598 SUB R11, R12, #4 .text:0001359C MOV R7, #0 .text:000135A0 MOV R5, R0 .text:000135A4 LDR R3, =0 .text:000135A8 MOV R4, R1 .text:000135AC CMP R3, R7 .text:000135B0 BEQ loc_135C0 .text:000135B4 LDR R0, =_dl_load_lock .text:000135B8 MOV LR, PC .text:000135BC MOV PC, R3 .text:000135C0 .text:000135C0 loc_135C0 ; CODE XREF: add_dependency+20j .text:000135C0 LDR R1, [R5,#0x184] .text:000135C4 LDR R3, [R1,R7,LSL#2] .text:000135C8 MOV R2, R7 .text:000135CC LDR R8, =0 .text:000135D0 B loc_135DC .text:000135D4 ; --------------------------------------------------------------------------- .text:000135D4 .text:000135D4 loc_135D4 ; CODE XREF: add_dependency+58j .text:000135D4 ADD R2, R2, #1 .text:000135D8 LDR R3, [R1,R2,LSL#2] .text:000135DC .text:000135DC loc_135DC ; CODE XREF: add_dependency+40j .text:000135DC CMP R3, #0 .text:000135E0 BEQ loc_135EC .text:000135E4 CMP R3, R4 .text:000135E8 BNE loc_135D4 .text:000135EC .text:000135EC loc_135EC ; CODE XREF: add_dependency+50j .text:000135EC LDR R3, [R1,R2,LSL#2] .text:000135F0 CMP R3, #0 .text:000135F4 BNE loc_13704 .text:000135F8 LDR R6, [R5,#0x18C] .text:000135FC MOV R2, R3 .text:00013600 LDR R1, [R5,#0x190] .text:00013604 B loc_1360C .text:00013608 ; --------------------------------------------------------------------------- .text:00013608 .text:00013608 loc_13608 ; CODE XREF: add_dependency+8Cj .text:00013608 ADD R2, R2, #1 .text:0001360C .text:0001360C loc_1360C ; CODE XREF: add_dependency+74j .text:0001360C CMP R2, R6 .text:00013610 BCS loc_13620 .text:00013614 LDR R3, [R1,R2,LSL#2] .text:00013618 CMP R3, R4 .text:0001361C BNE loc_13608 .text:00013620 .text:00013620 loc_13620 ; CODE XREF: add_dependency+80j .text:00013620 CMP R2, R6 .text:00013624 BNE loc_13704 .text:00013628 LDR R3, =_dl_loaded .text:0001362C LDR R3, [R3] .text:00013630 CMP R3, #0 .text:00013634 CMPNE R3, R4 .text:00013638 BEQ loc_1364C .text:0001363C .text:0001363C loc_1363C ; CODE XREF: add_dependency+B8j .text:0001363C LDR R3, [R3,#0xC] .text:00013640 CMP R3, #0 .text:00013644 CMPNE R3, R4 .text:00013648 BNE loc_1363C .text:0001364C .text:0001364C loc_1364C ; CODE XREF: add_dependency+A8j .text:0001364C CMP R3, #0 .text:00013650 BEQ loc_13700 .text:00013654 LDR R1, [R5,#0x188] .text:00013658 CMP R6, R1 .text:0001365C BCC loc_13688 .text:00013660 ADD R1, R1, #5 .text:00013664 STR R1, [R5,#0x188] .text:00013668 LDR R0, [R5,#0x190] .text:0001366C MOV R1, R1,LSL#2 .text:00013670 BL realloc .text:00013674 CMP R0, #0 .text:00013678 STRNE R0, [R5,#0x190] .text:0001367C LDREQ R3, [R5,#0x188] .text:00013680 SUBEQ R3, R3, #5 .text:00013684 STREQ R3, [R5,#0x188] .text:00013688 .text:00013688 loc_13688 ; CODE XREF: add_dependency+CCj .text:00013688 LDR R3, [R5,#0x188] .text:0001368C CMP R6, R3 .text:00013690 BCS loc_136A8 .text:00013694 LDR R3, [R5,#0x18C] .text:00013698 LDR R2, [R5,#0x190] .text:0001369C STR R4, [R2,R3,LSL#2] .text:000136A0 ADD R3, R3, #1 .text:000136A4 STR R3, [R5,#0x18C] .text:000136A8 .text:000136A8 loc_136A8 ; CODE XREF: add_dependency+100j .text:000136A8 LDR R3, [R4,#0x128] .text:000136AC ADD R3, R3, #1 .text:000136B0 STR R3, [R4,#0x128] .text:000136B4 LDR R2, =_dl_debug_mask .text:000136B8 LDR R3, [R2] .text:000136BC TST R3, #0x40 .text:000136C0 BEQ loc_13704 .text:000136C4 LDR R1, [R4,#4] .text:000136C8 LDRB R3, [R1] .text:000136CC CMP R3, #0 .text:000136D0 LDREQ R3, =_dl_argv .text:000136D4 LDREQ R2, [R3] .text:000136D8 LDREQ R1, [R2] .text:000136DC LDR R2, [R5,#4] .text:000136E0 LDRB R3, [R2] .text:000136E4 CMP R3, #0 .text:000136E8 LDREQ R3, =_dl_argv .text:000136EC LDREQ R2, [R3] .text:000136F0 LDREQ R2, [R2] .text:000136F4 LDR R0, =aFileSNeededB_0 ; "\nfile=%s; needed by %s (relocation dep"... .text:000136F8 BL _dl_debug_printf .text:000136FC B loc_13704 .text:00013700 ; --------------------------------------------------------------------------- .text:00013700 .text:00013700 loc_13700 ; CODE XREF: add_dependency+C0j .text:00013700 MOV R7, 0xFFFFFFFF .text:00013704 .text:00013704 loc_13704 ; CODE XREF: add_dependency+64j .text:00013704 ; add_dependency+94j ... .text:00013704 CMP R8, #0 .text:00013708 BEQ loc_13718 .text:0001370C LDR R0, =_dl_load_lock .text:00013710 MOV LR, PC .text:00013714 MOV PC, R8 .text:00013718 .text:00013718 loc_13718 ; CODE XREF: add_dependency+178j .text:00013718 MOV R0, R7 .text:0001371C LDMDB R11, {R4-R8,R11,SP,PC} .text:0001371C ; End of function add_dependency .text:0001371C .text:0001371C ; --------------------------------------------------------------------------- .text:00013720 off_13720 DCD 0 ; DATA XREF: add_dependency+14r .text:00013724 off_13724 DCD _dl_load_lock ; DATA XREF: add_dependency+24r .text:00013724 ; add_dependency+17Cr .text:00013728 dword_13728 DCD 0 ; DATA XREF: add_dependency+3Cr .text:0001372C off_1372C DCD _dl_loaded ; DATA XREF: add_dependency+98r .text:00013730 off_13730 DCD _dl_debug_mask ; DATA XREF: add_dependency+124r .text:00013734 off_13734 DCD _dl_argv ; DATA XREF: add_dependency+140r .text:00013734 ; add_dependency+158r .text:00013738 off_13738 DCD aFileSNeededB_0 ; DATA XREF: add_dependency+164r .text:00013738 ; "\nfile=%s; needed by %s (relocation dep"... .text:0001373C .text:0001373C ; =============== S U B R O U T I N E ======================================= .text:0001373C .text:0001373C ; Attributes: bp-based frame .text:0001373C .text:0001373C EXPORT _dl_lookup_symbol .text:0001373C _dl_lookup_symbol ; CODE XREF: do_dlsym+38p .text:0001373C ; .text:00052660p ... .text:0001373C .text:0001373C var_94 = -0x94 .text:0001373C var_90 = -0x90 .text:0001373C var_8C = -0x8C .text:0001373C var_88 = -0x88 .text:0001373C var_84 = -0x84 .text:0001373C var_80 = -0x80 .text:0001373C var_7C = -0x7C .text:0001373C var_78 = -0x78 .text:0001373C var_74 = -0x74 .text:0001373C var_70 = -0x70 .text:0001373C var_6C = -0x6C .text:0001373C var_68 = -0x68 .text:0001373C var_64 = -0x64 .text:0001373C var_60 = -0x60 .text:0001373C var_5C = -0x5C .text:0001373C var_58 = -0x58 .text:0001373C var_54 = -0x54 .text:0001373C var_50 = -0x50 .text:0001373C var_4C = -0x4C .text:0001373C var_48 = -0x48 .text:0001373C var_44 = -0x44 .text:0001373C var_40 = -0x40 .text:0001373C var_38 = -0x38 .text:0001373C var_34 = -0x34 .text:0001373C var_30 = -0x30 .text:0001373C var_2C = -0x2C .text:0001373C arg_0 = 4 .text:0001373C arg_4 = 8 .text:0001373C .text:0001373C MOV R12, SP .text:00013740 STMFD SP!, {R4-R12,LR,PC} .text:00013744 SUB R11, R12, #4 .text:00013748 SUB SP, SP, #0x6C .text:0001374C STR R0, [R11,#var_44] .text:00013750 STR R1, [R11,#var_48] .text:00013754 STR R2, [R11,#var_4C] .text:00013758 STR R3, [R11,#var_50] .text:0001375C .text:0001375C loc_1375C ; CODE XREF: _dl_lookup_symbol+3B0j .text:0001375C LDR R0, [R11,#var_48] .text:00013760 MOV R1, #0 .text:00013764 STR R1, [R11,#var_54] .text:00013768 CMP R0, #0 .text:0001376C LDRNE R2, [R0,#4] .text:00013770 STRNE R2, [R11,#var_54] .text:00013774 LDR R4, [R11,#var_44] .text:00013778 LDRB R3, [R4] .text:0001377C MOV R0, #0 .text:00013780 STR R0, [R11,#var_58] .text:00013784 CMP R3, R0 .text:00013788 BEQ loc_13830 .text:0001378C LDRB R3, [R4,#1] .text:00013790 MOV R1, R4 .text:00013794 LDRB R2, [R1],#1 .text:00013798 CMP R3, R0 .text:0001379C STR R2, [R11,#var_58] .text:000137A0 BEQ loc_13830 .text:000137A4 LDRB R3, [R4,#1] .text:000137A8 LDR R4, [R11,#var_58] .text:000137AC LDRB R2, [R1,#1]! .text:000137B0 ADD R4, R3, R4,LSL#4 .text:000137B4 CMP R2, R0 .text:000137B8 STR R4, [R11,#var_58] .text:000137BC BEQ loc_13830 .text:000137C0 LDRB R3, [R1] .text:000137C4 LDRB R2, [R1,#1]! .text:000137C8 ADD R4, R3, R4,LSL#4 .text:000137CC CMP R2, R0 .text:000137D0 STR R4, [R11,#var_58] .text:000137D4 BEQ loc_13830 .text:000137D8 LDRB R3, [R1] .text:000137DC LDRB R2, [R1,#1]! .text:000137E0 ADD R4, R3, R4,LSL#4 .text:000137E4 CMP R2, R0 .text:000137E8 STR R4, [R11,#var_58] .text:000137EC BEQ loc_13830 .text:000137F0 LDRB R3, [R1] .text:000137F4 LDRB R2, [R1,#1]! .text:000137F8 ADD R4, R3, R4,LSL#4 .text:000137FC CMP R2, R0 .text:00013800 STR R4, [R11,#var_58] .text:00013804 BEQ loc_13830 .text:00013808 .text:00013808 loc_13808 ; CODE XREF: _dl_lookup_symbol+F0j .text:00013808 LDRB R3, [R1] .text:0001380C LDR R0, [R11,#var_58] .text:00013810 ADD R0, R3, R0,LSL#4 .text:00013814 AND R2, R0, #0xF0000000 .text:00013818 EOR R0, R0, R2 .text:0001381C LDRB R3, [R1,#1]! .text:00013820 EOR R0, R0, R2,LSR#24 .text:00013824 STR R0, [R11,#var_58] .text:00013828 CMP R3, #0 .text:0001382C BNE loc_13808 .text:00013830 .text:00013830 loc_13830 ; CODE XREF: _dl_lookup_symbol+4Cj .text:00013830 ; _dl_lookup_symbol+64j ... .text:00013830 LDR R1, =_dl_num_relocations .text:00013834 LDR R3, [R1] .text:00013838 ADD R3, R3, #1 .text:0001383C STR R3, [R1] .text:00013840 SUB R4, R11, #-var_30 .text:00013844 MOV R3, #0 .text:00013848 MOV R2, #0 .text:0001384C STMIA R4, {R2,R3} .text:00013850 LDR R0, [R11,#var_50] .text:00013854 LDR R1, [R11,#arg_0] .text:00013858 STR R0, [R11,#var_5C] .text:0001385C CMP R1, #0x14 .text:00013860 MOVNE R1, #0 .text:00013864 MOVEQ R1, #1 .text:00013868 STR R1, [R11,#var_60] .text:0001386C LDR R2, [R11,#arg_0] .text:00013870 LDR R3, [R0] .text:00013874 CMP R2, #0x16 .text:00013878 MOVNE R2, #0 .text:0001387C MOVEQ R2, #1 .text:00013880 STR R2, [R11,#var_64] .text:00013884 CMP R3, #0 .text:00013888 BEQ loc_13B04 .text:0001388C MOV R10, R4 .text:00013890 .text:00013890 loc_13890 ; CODE XREF: _dl_lookup_symbol+3C4j .text:00013890 LDR R3, [R11,#var_4C] .text:00013894 LDR R3, [R3] .text:00013898 STR R3, [R11,#var_68] .text:0001389C LDR R4, [R11,#var_5C] .text:000138A0 LDR R3, [R4] .text:000138A4 LDR R0, [R3] .text:000138A8 MOV R1, #0 .text:000138AC STR R1, [R11,#var_6C] .text:000138B0 STR R0, [R11,#var_70] .text:000138B4 LDR R3, [R3,#4] .text:000138B8 STR R3, [R11,#var_74] .text:000138BC .text:000138BC loc_138BC ; CODE XREF: _dl_lookup_symbol+350j .text:000138BC LDR R2, [R11,#var_60] .text:000138C0 MOV R12, #0 .text:000138C4 LDR R3, [R11,#var_6C] .text:000138C8 MOV R9, R12 .text:000138CC LDR R4, [R11,#var_70] .text:000138D0 CMP R2, R12 .text:000138D4 LDR R6, [R4,R3,LSL#2] .text:000138D8 BEQ loc_138E8 .text:000138DC LDRB R3, [R6,#0x12C] .text:000138E0 TST R3, #3 .text:000138E4 BEQ loc_13A78 .text:000138E8 .text:000138E8 loc_138E8 ; CODE XREF: _dl_lookup_symbol+19Cj .text:000138E8 LDR R3, =_dl_debug_mask .text:000138EC LDR R2, [R3] .text:000138F0 TST R2, #8 .text:000138F4 BEQ loc_13924 .text:000138F8 LDR R2, [R6,#4] .text:000138FC LDRB R3, [R2] .text:00013900 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00013904 CMP R3, #0 .text:00013908 LDREQ R3, =_dl_argv .text:0001390C LDREQ R2, [R3] .text:00013910 LDREQ R2, [R2] .text:00013914 STR R12, [R11,#var_90] .text:00013918 LDR R1, [R11,#var_44] .text:0001391C BL _dl_debug_printf .text:00013920 LDR R12, [R11,#var_90] .text:00013924 .text:00013924 loc_13924 ; CODE XREF: _dl_lookup_symbol+1B8j .text:00013924 LDR R1, [R6,#0x11C] .text:00013928 ADD R2, R6, #0x2C .text:0001392C LDMIA R2, {R2,R3} .text:00013930 LDR R2, [R2,#4] .text:00013934 LDR R8, [R3,#4] .text:00013938 STR R2, [R11,#var_78] .text:0001393C LDR R7, [R6,#0x144] .text:00013940 STR R12, [R11,#var_90] .text:00013944 LDR R0, [R11,#var_58] .text:00013948 BL __umodsi3 .text:0001394C LDR R3, [R6,#0x120] .text:00013950 LDR R5, [R3,R0,LSL#2] .text:00013954 LDR R12, [R11,#var_90] .text:00013958 CMP R5, #0 .text:0001395C BEQ loc_13A1C .text:00013960 .text:00013960 loc_13960 ; CODE XREF: _dl_lookup_symbol+2DCj .text:00013960 MOV R2, R5,LSL#4 .text:00013964 ADD R4, R8, R2 .text:00013968 LDR R3, [R4,#4] .text:0001396C CMP R3, #0 .text:00013970 BEQ loc_13A0C .text:00013974 LDR R0, [R11,#var_64] .text:00013978 CMP R0, #0 .text:0001397C BEQ loc_1398C .text:00013980 LDR R3, [R4,#0xC] .text:00013984 MOVS R3, R3,LSR#16 .text:00013988 BEQ loc_13A0C .text:0001398C .text:0001398C loc_1398C ; CODE XREF: _dl_lookup_symbol+240j .text:0001398C LDRB R3, [R4,#0xC] .text:00013990 AND R3, R3, #0xF .text:00013994 CMP R3, #2 .text:00013998 BHI loc_13A0C .text:0001399C LDR R1, [R11,#var_68] .text:000139A0 CMP R4, R1 .text:000139A4 BEQ loc_139CC .text:000139A8 LDR R0, [R8,R2] .text:000139AC STR R12, [R11,#var_90] .text:000139B0 LDR R2, [R11,#var_78] .text:000139B4 LDR R1, [R11,#var_44] .text:000139B8 ADD R0, R2, R0 .text:000139BC BL strcmp .text:000139C0 CMP R0, #0 .text:000139C4 LDR R12, [R11,#var_90] .text:000139C8 BNE loc_13A0C .text:000139CC .text:000139CC loc_139CC ; CODE XREF: _dl_lookup_symbol+268j .text:000139CC CMP R7, #0 .text:000139D0 BEQ loc_13A30 .text:000139D4 MOV R3, R5,LSL#1 .text:000139D8 LDRB R1, [R3,R7] .text:000139DC ADD R3, R3, R7 .text:000139E0 LDRB R2, [R3,#1] .text:000139E4 ORR R2, R1, R2,LSL#8 .text:000139E8 MOV R3, R2,LSL#17 .text:000139EC MOV R3, R3,LSR#17 .text:000139F0 CMP R3, #2 .text:000139F4 BLS loc_13A30 .text:000139F8 TST R2, #0x8000 .text:000139FC BNE loc_13A0C .text:00013A00 ADD R9, R9, #1 .text:00013A04 CMP R9, #1 .text:00013A08 MOVEQ R12, R4 .text:00013A0C .text:00013A0C loc_13A0C ; CODE XREF: _dl_lookup_symbol+234j .text:00013A0C ; _dl_lookup_symbol+24Cj ... .text:00013A0C LDR R3, [R6,#0x124] .text:00013A10 LDR R5, [R3,R5,LSL#2] .text:00013A14 CMP R5, #0 .text:00013A18 BNE loc_13960 .text:00013A1C .text:00013A1C loc_13A1C ; CODE XREF: _dl_lookup_symbol+220j .text:00013A1C CMP R9, #1 .text:00013A20 MOVEQ R4, R12 .text:00013A24 MOVNE R4, #0 .text:00013A28 CMP R4, #0 .text:00013A2C BEQ loc_13A78 .text:00013A30 .text:00013A30 loc_13A30 ; CODE XREF: _dl_lookup_symbol+294j .text:00013A30 ; _dl_lookup_symbol+2B8j .text:00013A30 LDRB R3, [R4,#0xC] .text:00013A34 MOV R3, R3,LSR#4 .text:00013A38 CMP R3, #1 .text:00013A3C BEQ loc_13A68 .text:00013A40 CMP R3, #2 .text:00013A44 BNE loc_13A78 .text:00013A48 LDR R3, =_dl_dynamic_weak .text:00013A4C LDR R2, [R3] .text:00013A50 CMP R2, #0 .text:00013A54 BEQ loc_13A68 .text:00013A58 LDR R3, [R10] .text:00013A5C CMP R3, #0 .text:00013A60 STMEQIA R10, {R4,R6} .text:00013A64 B loc_13A78 .text:00013A68 ; --------------------------------------------------------------------------- .text:00013A68 .text:00013A68 loc_13A68 ; CODE XREF: _dl_lookup_symbol+300j .text:00013A68 ; _dl_lookup_symbol+318j .text:00013A68 STR R4, [R10] .text:00013A6C MOV R3, #1 .text:00013A70 STR R6, [R10,#4] .text:00013A74 B loc_13A94 .text:00013A78 ; --------------------------------------------------------------------------- .text:00013A78 .text:00013A78 loc_13A78 ; CODE XREF: _dl_lookup_symbol+1A8j .text:00013A78 ; _dl_lookup_symbol+2F0j ... .text:00013A78 LDR R3, [R11,#var_6C] .text:00013A7C LDR R4, [R11,#var_74] .text:00013A80 ADD R3, R3, #1 .text:00013A84 CMP R3, R4 .text:00013A88 STR R3, [R11,#var_6C] .text:00013A8C BCC loc_138BC .text:00013A90 MOV R3, #0 .text:00013A94 .text:00013A94 loc_13A94 ; CODE XREF: _dl_lookup_symbol+338j .text:00013A94 CMP R3, #0 .text:00013A98 BEQ loc_13AF0 .text:00013A9C LDR R1, [R10,#4] .text:00013AA0 LDRB R3, [R1,#0x12C] .text:00013AA4 AND R3, R3, #0x13 .text:00013AA8 CMP R3, #0x12 .text:00013AAC BNE loc_13B04 .text:00013AB0 LDR R0, [R11,#arg_4] .text:00013AB4 LDR R2, [R11,#var_48] .text:00013AB8 CMP R0, #0 .text:00013ABC MOVNE R3, #0 .text:00013AC0 MOVEQ R3, #1 .text:00013AC4 CMP R2, R1 .text:00013AC8 MOVEQ R3, #0 .text:00013ACC CMP R3, #0 .text:00013AD0 BEQ loc_13B04 .text:00013AD4 MOV R0, R2 .text:00013AD8 BL add_dependency .text:00013ADC CMP R0, #0 .text:00013AE0 BGE loc_13B04 .text:00013AE4 MOV R3, #0 .text:00013AE8 STR R3, [R11,#arg_4] .text:00013AEC B loc_1375C .text:00013AF0 ; --------------------------------------------------------------------------- .text:00013AF0 .text:00013AF0 loc_13AF0 ; CODE XREF: _dl_lookup_symbol+35Cj .text:00013AF0 LDR R4, [R11,#var_5C] .text:00013AF4 LDR R3, [R4,#4]! .text:00013AF8 CMP R3, #0 .text:00013AFC STR R4, [R11,#var_5C] .text:00013B00 BNE loc_13890 .text:00013B04 .text:00013B04 loc_13B04 ; CODE XREF: _dl_lookup_symbol+14Cj .text:00013B04 ; _dl_lookup_symbol+370j ... .text:00013B04 LDR R3, [R11,#var_30] .text:00013B08 CMP R3, #0 .text:00013B0C BNE loc_13C08 .text:00013B10 LDR R0, [R11,#var_4C] .text:00013B14 LDR R3, [R0] .text:00013B18 CMP R3, #0 .text:00013B1C BEQ loc_13B30 .text:00013B20 LDRB R3, [R3,#0xC] .text:00013B24 MOV R3, R3,LSR#4 .text:00013B28 CMP R3, #2 .text:00013B2C BEQ loc_13BD8 .text:00013B30 .text:00013B30 loc_13B30 ; CODE XREF: _dl_lookup_symbol+3E0j .text:00013B30 LDR R1, [R11,#var_54] .text:00013B34 CMP R1, #0 .text:00013B38 BEQ loc_13B48 .text:00013B3C LDRB R3, [R1] .text:00013B40 CMP R3, #0 .text:00013B44 BNE loc_13B64 .text:00013B48 .text:00013B48 loc_13B48 ; CODE XREF: _dl_lookup_symbol+3FCj .text:00013B48 LDR R3, =_dl_argv .text:00013B4C LDR R2, [R3] .text:00013B50 LDR R1, [R2] .text:00013B54 LDR R7, =aMainProgram ; "<main program>" .text:00013B58 CMP R1, #0 .text:00013B5C MOVNE R7, R1 .text:00013B60 B loc_13B68 .text:00013B64 ; --------------------------------------------------------------------------- .text:00013B64 .text:00013B64 loc_13B64 ; CODE XREF: _dl_lookup_symbol+408j .text:00013B64 LDR R7, [R11,#var_54] .text:00013B68 .text:00013B68 loc_13B68 ; CODE XREF: _dl_lookup_symbol+424j .text:00013B68 LDR R2, [R11,#var_44] .text:00013B6C STR R2, [R11,#var_34] .text:00013B70 MOV R5, #1 .text:00013B74 MOV R4, #0 .text:00013B78 LDR R3, =undefined_msg ; "undefined symbol: " .text:00013B7C SUB R6, R11, #-var_38 .text:00013B80 STR R3, [R11,#var_38] .text:00013B84 .text:00013B84 loc_13B84 ; CODE XREF: _dl_lookup_symbol+45Cj .text:00013B84 LDR R0, [R6,R4,LSL#2] .text:00013B88 ADD R4, R4, #1 .text:00013B8C BL strlen .text:00013B90 ADD R5, R5, R0 .text:00013B94 CMP R4, #1 .text:00013B98 BLS loc_13B84 .text:00013B9C ADD R3, R5, #3 .text:00013BA0 BIC R3, R3, #3 .text:00013BA4 RSB SP, R3, SP .text:00013BA8 ADD R5, SP, #0x94+var_90 .text:00013BAC MOV R0, R5 .text:00013BB0 MOV R4, #0 .text:00013BB4 .text:00013BB4 loc_13BB4 ; CODE XREF: _dl_lookup_symbol+488j .text:00013BB4 LDR R1, [R6,R4,LSL#2] .text:00013BB8 ADD R4, R4, #1 .text:00013BBC BL stpcpy .text:00013BC0 CMP R4, #1 .text:00013BC4 BLS loc_13BB4 .text:00013BC8 MOV R0, #0 .text:00013BCC MOV R1, R7 .text:00013BD0 MOV R2, R5 .text:00013BD4 BL _dl_signal_cerror .text:00013BD8 .text:00013BD8 loc_13BD8 ; CODE XREF: _dl_lookup_symbol+3F0j .text:00013BD8 MOV R3, #0 .text:00013BDC LDR R4, [R11,#var_4C] .text:00013BE0 MOV R0, R3 .text:00013BE4 STR R3, [R4] .text:00013BE8 B locret_13F50 .text:00013BE8 ; --------------------------------------------------------------------------- .text:00013BEC off_13BEC DCD _dl_num_relocations ; DATA XREF: _dl_lookup_symbol:loc_13830r .text:00013BF0 off_13BF0 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol:loc_138E8r .text:00013BF4 off_13BF4 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol+1C4r .text:00013BF4 ; "symbol=%s; lookup in file=%s\n" .text:00013BF8 off_13BF8 DCD _dl_argv ; DATA XREF: _dl_lookup_symbol+1CCr .text:00013BF8 ; _dl_lookup_symbol:loc_13B48r .text:00013BFC off_13BFC DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol+30Cr .text:00013C00 off_13C00 DCD aMainProgram ; DATA XREF: _dl_lookup_symbol+418r .text:00013C00 ; "<main program>" .text:00013C04 off_13C04 DCD undefined_msg ; DATA XREF: _dl_lookup_symbol+43Cr .text:00013C04 ; "undefined symbol: " .text:00013C08 ; --------------------------------------------------------------------------- .text:00013C08 .text:00013C08 loc_13C08 ; CODE XREF: _dl_lookup_symbol+3D0j .text:00013C08 LDR R0, [R11,#var_4C] .text:00013C0C LDR R3, [R0] .text:00013C10 MOV R4, #0 .text:00013C14 CMP R3, R4 .text:00013C18 BEQ loc_13C30 .text:00013C1C LDRB R3, [R3,#0xD] .text:00013C20 AND R3, R3, #3 .text:00013C24 CMP R3, #3 .text:00013C28 MOVNE R4, #0 .text:00013C2C MOVEQ R4, #1 .text:00013C30 .text:00013C30 loc_13C30 ; CODE XREF: _dl_lookup_symbol+4DCj .text:00013C30 LDR R2, =_dl_debug_mask .text:00013C34 LDR R3, [R2] .text:00013C38 TST R3, #4 .text:00013C3C BEQ loc_13CBC .text:00013C40 LDR R1, [R11,#var_54] .text:00013C44 CMP R1, #0 .text:00013C48 BEQ loc_13C58 .text:00013C4C LDRB R3, [R1] .text:00013C50 CMP R3, #0 .text:00013C54 BNE loc_13C74 .text:00013C58 .text:00013C58 loc_13C58 ; CODE XREF: _dl_lookup_symbol+50Cj .text:00013C58 LDR R3, =_dl_argv .text:00013C5C LDR R2, [R3] .text:00013C60 LDR R1, [R2] .text:00013C64 LDR LR, =aMainProgram ; "<main program>" .text:00013C68 CMP R1, #0 .text:00013C6C MOVNE LR, R1 .text:00013C70 B loc_13C78 .text:00013C74 ; --------------------------------------------------------------------------- .text:00013C74 .text:00013C74 loc_13C74 ; CODE XREF: _dl_lookup_symbol+518j .text:00013C74 LDR LR, [R11,#var_54] .text:00013C78 .text:00013C78 loc_13C78 ; CODE XREF: _dl_lookup_symbol+534j .text:00013C78 LDR R3, [R11,#var_2C] .text:00013C7C LDR R3, [R3,#4] .text:00013C80 LDRB R2, [R3] .text:00013C84 CMP R2, #0 .text:00013C88 MOVNE R2, R3 .text:00013C8C LDREQ R3, =_dl_argv .text:00013C90 LDREQ R2, [R3] .text:00013C94 LDREQ R2, [R2] .text:00013C98 LDR R3, [R11,#var_44] .text:00013C9C STR R3, [SP,#0x94+var_94] .text:00013CA0 LDR R12, =aNormal ; "normal" .text:00013CA4 MOV R1, LR .text:00013CA8 LDR R3, =aProtected ; "protected" .text:00013CAC CMP R4, #0 .text:00013CB0 LDR R0, =aBindingFileSTo ; "binding file %s to %s: %s symbol `%s'\n" .text:00013CB4 MOVEQ R3, R12 .text:00013CB8 BL _dl_debug_printf .text:00013CBC .text:00013CBC loc_13CBC ; CODE XREF: _dl_lookup_symbol+500j .text:00013CBC CMP R4, #0 .text:00013CC0 LDREQ R3, [R11,#var_30] .text:00013CC4 LDREQ R4, [R11,#var_4C] .text:00013CC8 STREQ R3, [R4] .text:00013CCC BEQ loc_13F1C .text:00013CD0 SUB R2, R11, #-var_40 .text:00013CD4 MOV R1, #0 .text:00013CD8 MOV R0, #0 .text:00013CDC STMIA R2, {R0,R1} .text:00013CE0 LDR R1, [R11,#var_50] .text:00013CE4 STR R1, [R11,#var_5C] .text:00013CE8 LDR R3, [R1] .text:00013CEC MOV R12, R2 .text:00013CF0 CMP R3, #0 .text:00013CF4 BEQ loc_13EF4 .text:00013CF8 .text:00013CF8 loc_13CF8 ; CODE XREF: _dl_lookup_symbol+7B4j .text:00013CF8 LDR R2, [R11,#var_4C] .text:00013CFC LDR R2, [R2] .text:00013D00 STR R2, [R11,#var_7C] .text:00013D04 LDR R4, [R11,#var_5C] .text:00013D08 LDR R3, [R4] .text:00013D0C LDR R0, [R3] .text:00013D10 MOV R1, #0 .text:00013D14 STR R1, [R11,#var_80] .text:00013D18 STR R0, [R11,#var_84] .text:00013D1C LDR R3, [R3,#4] .text:00013D20 STR R3, [R11,#var_88] .text:00013D24 .text:00013D24 loc_13D24 ; CODE XREF: _dl_lookup_symbol+794j .text:00013D24 LDR R2, =_dl_debug_mask .text:00013D28 LDR R3, [R2] .text:00013D2C MOV R9, #0 .text:00013D30 LDR R4, [R11,#var_84] .text:00013D34 TST R3, #8 .text:00013D38 LDR R3, [R11,#var_80] .text:00013D3C MOV R10, R9 .text:00013D40 LDR R6, [R4,R3,LSL#2] .text:00013D44 BEQ loc_13D74 .text:00013D48 LDR R2, [R6,#4] .text:00013D4C LDRB R3, [R2] .text:00013D50 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00013D54 CMP R3, R9 .text:00013D58 LDREQ R3, =_dl_argv .text:00013D5C LDREQ R2, [R3] .text:00013D60 LDREQ R2, [R2] .text:00013D64 STR R12, [R11,#var_90] .text:00013D68 LDR R1, [R11,#var_44] .text:00013D6C BL _dl_debug_printf .text:00013D70 LDR R12, [R11,#var_90] .text:00013D74 .text:00013D74 loc_13D74 ; CODE XREF: _dl_lookup_symbol+608j .text:00013D74 LDR R1, [R6,#0x11C] .text:00013D78 ADD R2, R6, #0x2C .text:00013D7C LDMIA R2, {R2,R3} .text:00013D80 LDR R2, [R2,#4] .text:00013D84 LDR R8, [R3,#4] .text:00013D88 STR R2, [R11,#var_8C] .text:00013D8C LDR R7, [R6,#0x144] .text:00013D90 STR R12, [R11,#var_90] .text:00013D94 LDR R0, [R11,#var_58] .text:00013D98 BL __umodsi3 .text:00013D9C LDR R3, [R6,#0x120] .text:00013DA0 LDR R5, [R3,R0,LSL#2] .text:00013DA4 LDR R12, [R11,#var_90] .text:00013DA8 CMP R5, #0 .text:00013DAC BEQ loc_13E60 .text:00013DB0 .text:00013DB0 loc_13DB0 ; CODE XREF: _dl_lookup_symbol+720j .text:00013DB0 MOV R2, R5,LSL#4 .text:00013DB4 ADD R4, R8, R2 .text:00013DB8 LDR R3, [R4,#4] .text:00013DBC CMP R3, #0 .text:00013DC0 BEQ loc_13E50 .text:00013DC4 LDR R3, [R4,#0xC] .text:00013DC8 MOVS R3, R3,LSR#16 .text:00013DCC BEQ loc_13E50 .text:00013DD0 LDRB R3, [R4,#0xC] .text:00013DD4 AND R3, R3, #0xF .text:00013DD8 CMP R3, #2 .text:00013DDC BHI loc_13E50 .text:00013DE0 LDR R0, [R11,#var_7C] .text:00013DE4 CMP R4, R0 .text:00013DE8 BEQ loc_13E10 .text:00013DEC LDR R0, [R8,R2] .text:00013DF0 STR R12, [R11,#var_90] .text:00013DF4 LDR R2, [R11,#var_8C] .text:00013DF8 LDR R1, [R11,#var_44] .text:00013DFC ADD R0, R2, R0 .text:00013E00 BL strcmp .text:00013E04 CMP R0, #0 .text:00013E08 LDR R12, [R11,#var_90] .text:00013E0C BNE loc_13E50 .text:00013E10 .text:00013E10 loc_13E10 ; CODE XREF: _dl_lookup_symbol+6ACj .text:00013E10 CMP R7, #0 .text:00013E14 BEQ loc_13E74 .text:00013E18 MOV R3, R5,LSL#1 .text:00013E1C LDRB R1, [R3,R7] .text:00013E20 ADD R3, R3, R7 .text:00013E24 LDRB R2, [R3,#1] .text:00013E28 ORR R2, R1, R2,LSL#8 .text:00013E2C MOV R3, R2,LSL#17 .text:00013E30 MOV R3, R3,LSR#17 .text:00013E34 CMP R3, #2 .text:00013E38 BLS loc_13E74 .text:00013E3C TST R2, #0x8000 .text:00013E40 BNE loc_13E50 .text:00013E44 ADD R10, R10, #1 .text:00013E48 CMP R10, #1 .text:00013E4C MOVEQ R9, R4 .text:00013E50 .text:00013E50 loc_13E50 ; CODE XREF: _dl_lookup_symbol+684j .text:00013E50 ; _dl_lookup_symbol+690j ... .text:00013E50 LDR R3, [R6,#0x124] .text:00013E54 LDR R5, [R3,R5,LSL#2] .text:00013E58 CMP R5, #0 .text:00013E5C BNE loc_13DB0 .text:00013E60 .text:00013E60 loc_13E60 ; CODE XREF: _dl_lookup_symbol+670j .text:00013E60 CMP R10, #1 .text:00013E64 MOVEQ R4, R9 .text:00013E68 MOVNE R4, #0 .text:00013E6C CMP R4, #0 .text:00013E70 BEQ loc_13EBC .text:00013E74 .text:00013E74 loc_13E74 ; CODE XREF: _dl_lookup_symbol+6D8j .text:00013E74 ; _dl_lookup_symbol+6FCj .text:00013E74 LDRB R3, [R4,#0xC] .text:00013E78 MOV R3, R3,LSR#4 .text:00013E7C CMP R3, #1 .text:00013E80 BEQ loc_13EAC .text:00013E84 CMP R3, #2 .text:00013E88 BNE loc_13EBC .text:00013E8C LDR R3, =_dl_dynamic_weak .text:00013E90 LDR R2, [R3] .text:00013E94 CMP R2, #0 .text:00013E98 BEQ loc_13EAC .text:00013E9C LDR R3, [R12] .text:00013EA0 CMP R3, #0 .text:00013EA4 STMEQIA R12, {R4,R6} .text:00013EA8 B loc_13EBC .text:00013EAC ; --------------------------------------------------------------------------- .text:00013EAC .text:00013EAC loc_13EAC ; CODE XREF: _dl_lookup_symbol+744j .text:00013EAC ; _dl_lookup_symbol+75Cj .text:00013EAC STR R4, [R12] .text:00013EB0 MOV R3, #1 .text:00013EB4 STR R6, [R12,#4] .text:00013EB8 B loc_13ED8 .text:00013EBC ; --------------------------------------------------------------------------- .text:00013EBC .text:00013EBC loc_13EBC ; CODE XREF: _dl_lookup_symbol+734j .text:00013EBC ; _dl_lookup_symbol+74Cj ... .text:00013EBC LDR R3, [R11,#var_80] .text:00013EC0 LDR R4, [R11,#var_88] .text:00013EC4 ADD R3, R3, #1 .text:00013EC8 CMP R3, R4 .text:00013ECC STR R3, [R11,#var_80] .text:00013ED0 BCC loc_13D24 .text:00013ED4 MOV R3, #0 .text:00013ED8 .text:00013ED8 loc_13ED8 ; CODE XREF: _dl_lookup_symbol+77Cj .text:00013ED8 CMP R3, #0 .text:00013EDC BNE loc_13EF4 .text:00013EE0 LDR R0, [R11,#var_5C] .text:00013EE4 LDR R3, [R0,#4]! .text:00013EE8 CMP R3, #0 .text:00013EEC STR R0, [R11,#var_5C] .text:00013EF0 BNE loc_13CF8 .text:00013EF4 .text:00013EF4 loc_13EF4 ; CODE XREF: _dl_lookup_symbol+5B8j .text:00013EF4 ; _dl_lookup_symbol+7A0j .text:00013EF4 LDR R3, [R11,#var_40] .text:00013EF8 CMP R3, #0 .text:00013EFC BEQ loc_13F10 .text:00013F00 LDR R3, [R12,#4] .text:00013F04 LDR R1, [R11,#var_48] .text:00013F08 CMP R3, R1 .text:00013F0C BNE loc_13F48 .text:00013F10 .text:00013F10 loc_13F10 ; CODE XREF: _dl_lookup_symbol+7C0j .text:00013F10 LDR R3, [R11,#var_30] .text:00013F14 LDR R2, [R11,#var_4C] .text:00013F18 STR R3, [R2] .text:00013F1C .text:00013F1C loc_13F1C ; CODE XREF: _dl_lookup_symbol+590j .text:00013F1C LDR R2, [R11,#var_2C] .text:00013F20 LDR R0, [R2] .text:00013F24 B locret_13F50 .text:00013F24 ; --------------------------------------------------------------------------- .text:00013F28 off_13F28 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol:loc_13C30r .text:00013F28 ; _dl_lookup_symbol:loc_13D24r .text:00013F2C off_13F2C DCD _dl_argv ; DATA XREF: _dl_lookup_symbol:loc_13C58r .text:00013F2C ; _dl_lookup_symbol+550r ... .text:00013F30 off_13F30 DCD aMainProgram ; DATA XREF: _dl_lookup_symbol+528r .text:00013F30 ; "<main program>" .text:00013F34 off_13F34 DCD aNormal ; DATA XREF: _dl_lookup_symbol+564r .text:00013F34 ; "normal" .text:00013F38 off_13F38 DCD aProtected ; DATA XREF: _dl_lookup_symbol+56Cr .text:00013F38 ; "protected" .text:00013F3C off_13F3C DCD aBindingFileSTo ; DATA XREF: _dl_lookup_symbol+574r .text:00013F3C ; "binding file %s to %s: %s symbol `%s'\n" .text:00013F40 off_13F40 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol+614r .text:00013F40 ; "symbol=%s; lookup in file=%s\n" .text:00013F44 off_13F44 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol+750r .text:00013F48 ; --------------------------------------------------------------------------- .text:00013F48 .text:00013F48 loc_13F48 ; CODE XREF: _dl_lookup_symbol+7D0j .text:00013F48 LDR R3, [R11,#var_48] .text:00013F4C LDR R0, [R3] .text:00013F50 .text:00013F50 locret_13F50 ; CODE XREF: _dl_lookup_symbol+4ACj .text:00013F50 ; _dl_lookup_symbol+7E8j .text:00013F50 LDMDB R11, {R4-R11,SP,PC} .text:00013F50 ; End of function _dl_lookup_symbol .text:00013F50 .text:00013F54 .text:00013F54 ; =============== S U B R O U T I N E ======================================= .text:00013F54 .text:00013F54 ; Attributes: bp-based frame .text:00013F54 .text:00013F54 EXPORT _dl_lookup_symbol_skip .text:00013F54 _dl_lookup_symbol_skip .text:00013F54 .text:00013F54 var_AC = -0xAC .text:00013F54 var_A8 = -0xA8 .text:00013F54 var_A4 = -0xA4 .text:00013F54 var_A0 = -0xA0 .text:00013F54 var_9C = -0x9C .text:00013F54 var_98 = -0x98 .text:00013F54 var_94 = -0x94 .text:00013F54 var_90 = -0x90 .text:00013F54 var_8C = -0x8C .text:00013F54 var_88 = -0x88 .text:00013F54 var_84 = -0x84 .text:00013F54 var_80 = -0x80 .text:00013F54 var_7C = -0x7C .text:00013F54 var_78 = -0x78 .text:00013F54 var_74 = -0x74 .text:00013F54 var_70 = -0x70 .text:00013F54 var_6C = -0x6C .text:00013F54 var_68 = -0x68 .text:00013F54 var_64 = -0x64 .text:00013F54 var_60 = -0x60 .text:00013F54 var_5C = -0x5C .text:00013F54 var_58 = -0x58 .text:00013F54 var_54 = -0x54 .text:00013F54 var_50 = -0x50 .text:00013F54 var_4C = -0x4C .text:00013F54 var_48 = -0x48 .text:00013F54 var_44 = -0x44 .text:00013F54 var_40 = -0x40 .text:00013F54 var_3C = -0x3C .text:00013F54 var_38 = -0x38 .text:00013F54 var_30 = -0x30 .text:00013F54 var_2C = -0x2C .text:00013F54 arg_0 = 4 .text:00013F54 .text:00013F54 MOV R12, SP .text:00013F58 STMFD SP!, {R4-R12,LR,PC} .text:00013F5C SUB R11, R12, #4 .text:00013F60 MOV R12, #0 .text:00013F64 SUB SP, SP, #0x84 .text:00013F68 STR R12, [R11,#var_48] .text:00013F6C STR R0, [R11,#var_3C] .text:00013F70 STR R2, [R11,#var_44] .text:00013F74 CMP R1, #0 .text:00013F78 MOV R0, R3 .text:00013F7C STR R1, [R11,#var_40] .text:00013F80 LDRNE LR, [R1,#4] .text:00013F84 STRNE LR, [R11,#var_48] .text:00013F88 LDR R1, [R11,#var_3C] .text:00013F8C LDR R12, =_dl_num_relocations .text:00013F90 LDRB R3, [R1] .text:00013F94 MOV R2, #0 .text:00013F98 STR R2, [R11,#var_4C] .text:00013F9C CMP R3, R2 .text:00013FA0 BEQ loc_14044 .text:00013FA4 LDRB R3, [R1,#1] .text:00013FA8 LDRB LR, [R1],#1 .text:00013FAC CMP R3, R2 .text:00013FB0 STR LR, [R11,#var_4C] .text:00013FB4 BEQ loc_14044 .text:00013FB8 LDR R3, [R11,#var_3C] .text:00013FBC LDRB R2, [R3,#1] .text:00013FC0 LDRB R3, [R1,#1]! .text:00013FC4 ADD LR, R2, LR,LSL#4 .text:00013FC8 CMP R3, #0 .text:00013FCC STR LR, [R11,#var_4C] .text:00013FD0 BEQ loc_14044 .text:00013FD4 LDRB R2, [R1] .text:00013FD8 LDRB R3, [R1,#1]! .text:00013FDC ADD LR, R2, LR,LSL#4 .text:00013FE0 CMP R3, #0 .text:00013FE4 STR LR, [R11,#var_4C] .text:00013FE8 BEQ loc_14044 .text:00013FEC LDRB R2, [R1] .text:00013FF0 LDRB R3, [R1,#1]! .text:00013FF4 ADD LR, R2, LR,LSL#4 .text:00013FF8 CMP R3, #0 .text:00013FFC STR LR, [R11,#var_4C] .text:00014000 BEQ loc_14044 .text:00014004 LDRB R2, [R1] .text:00014008 LDRB R3, [R1,#1]! .text:0001400C ADD LR, R2, LR,LSL#4 .text:00014010 CMP R3, #0 .text:00014014 STR LR, [R11,#var_4C] .text:00014018 BEQ loc_14044 .text:0001401C .text:0001401C loc_1401C ; CODE XREF: _dl_lookup_symbol_skip+ECj .text:0001401C LDRB R3, [R1] .text:00014020 LDR LR, [R11,#var_4C] .text:00014024 ADD LR, R3, LR,LSL#4 .text:00014028 AND R2, LR, #0xF0000000 .text:0001402C EOR LR, LR, R2 .text:00014030 LDRB R3, [R1,#1]! .text:00014034 EOR LR, LR, R2,LSR#24 .text:00014038 STR LR, [R11,#var_4C] .text:0001403C CMP R3, #0 .text:00014040 BNE loc_1401C .text:00014044 .text:00014044 loc_14044 ; CODE XREF: _dl_lookup_symbol_skip+4Cj .text:00014044 ; _dl_lookup_symbol_skip+60j ... .text:00014044 MOV R3, #0 .text:00014048 MOV R2, #0 .text:0001404C SUB LR, R11, #-var_30 .text:00014050 STMIA LR, {R2,R3} .text:00014054 LDR R3, [R12] .text:00014058 ADD R3, R3, #1 .text:0001405C STR R3, [R12] .text:00014060 STR R0, [R11,#var_50] .text:00014064 LDR R3, [R0] .text:00014068 LDR R2, [R3,#8] .text:0001406C MOV R1, #0 .text:00014070 STR R1, [R11,#var_54] .text:00014074 LDR R3, [R2,R1,LSL#2] .text:00014078 LDR R2, [R11,#arg_0] .text:0001407C CMP R3, R2 .text:00014080 BEQ loc_140D0 .text:00014084 .text:00014084 loc_14084 ; CODE XREF: _dl_lookup_symbol_skip+178j .text:00014084 LDR R2, [R0] .text:00014088 LDR R12, [R11,#var_54] .text:0001408C LDR R3, [R2,#0xC] .text:00014090 CMP R12, R3 .text:00014094 BCC loc_140B0 .text:00014098 LDR R0, =aIScopeR_ndupli ; "i < (*scope)->r_nduplist" .text:0001409C LDR R1, =aDlLookup_c ; "dl-lookup.c" .text:000140A0 MOV R2, #0x12C .text:000140A4 LDR R3, =a_dl_lookup_sym ; "_dl_lookup_symbol_skip" .text:000140A8 ADD R2, R2, #3 .text:000140AC BL __assert_fail .text:000140B0 ; --------------------------------------------------------------------------- .text:000140B0 .text:000140B0 loc_140B0 ; CODE XREF: _dl_lookup_symbol_skip+140j .text:000140B0 LDR LR, [R11,#var_54] .text:000140B4 LDR R2, [R2,#8] .text:000140B8 ADD LR, LR, #1 .text:000140BC STR LR, [R11,#var_54] .text:000140C0 LDR R1, [R11,#arg_0] .text:000140C4 LDR R3, [R2,LR,LSL#2] .text:000140C8 CMP R3, R1 .text:000140CC BNE loc_14084 .text:000140D0 .text:000140D0 loc_140D0 ; CODE XREF: _dl_lookup_symbol_skip+12Cj .text:000140D0 LDR R3, [R0] .text:000140D4 LDR R12, [R11,#var_54] .text:000140D8 LDR R2, [R3,#4] .text:000140DC CMP R12, R2 .text:000140E0 STR R2, [R11,#var_58] .text:000140E4 BCS loc_142D8 .text:000140E8 LDR LR, [R11,#var_44] .text:000140EC LDR LR, [LR] .text:000140F0 STR LR, [R11,#var_5C] .text:000140F4 SUB R10, R11, #-var_30 .text:000140F8 LDR R3, [R3] .text:000140FC MOV R9, R12 .text:00014100 STR R3, [R11,#var_60] .text:00014104 .text:00014104 loc_14104 ; CODE XREF: _dl_lookup_symbol_skip+35Cj .text:00014104 MOV R0, #0 .text:00014108 STR R0, [R11,#var_64] .text:0001410C LDR R1, [R11,#var_60] .text:00014110 LDR R2, [R11,#arg_0] .text:00014114 LDR R6, [R1,R9,LSL#2] .text:00014118 MOV R12, R0 .text:0001411C CMP R6, R2 .text:00014120 MOVNE R3, #0 .text:00014124 MOVEQ R3, #1 .text:00014128 CMP R2, R0 .text:0001412C MOVEQ R3, R0 .text:00014130 CMP R3, R0 .text:00014134 BNE loc_142A4 .text:00014138 LDR R3, =_dl_debug_mask .text:0001413C LDR R2, [R3] .text:00014140 TST R2, #8 .text:00014144 BEQ loc_14174 .text:00014148 LDR R2, [R6,#4] .text:0001414C LDRB R3, [R2] .text:00014150 CMP R3, R0 .text:00014154 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00014158 LDREQ R3, =_dl_argv .text:0001415C LDREQ R2, [R3] .text:00014160 LDREQ R2, [R2] .text:00014164 STR R12, [R11,#var_A8] .text:00014168 LDR R1, [R11,#var_3C] .text:0001416C BL _dl_debug_printf .text:00014170 LDR R12, [R11,#var_A8] .text:00014174 .text:00014174 loc_14174 ; CODE XREF: _dl_lookup_symbol_skip+1F0j .text:00014174 LDR R1, [R6,#0x11C] .text:00014178 ADD R2, R6, #0x2C .text:0001417C LDMIA R2, {R2,R3} .text:00014180 LDR R2, [R2,#4] .text:00014184 LDR R8, [R3,#4] .text:00014188 STR R2, [R11,#var_68] .text:0001418C LDR R7, [R6,#0x144] .text:00014190 STR R12, [R11,#var_A8] .text:00014194 LDR R0, [R11,#var_4C] .text:00014198 BL __umodsi3 .text:0001419C LDR R3, [R6,#0x120] .text:000141A0 LDR R5, [R3,R0,LSL#2] .text:000141A4 LDR R12, [R11,#var_A8] .text:000141A8 CMP R5, #0 .text:000141AC BEQ loc_1425C .text:000141B0 .text:000141B0 loc_141B0 ; CODE XREF: _dl_lookup_symbol_skip+304j .text:000141B0 MOV R2, R5,LSL#4 .text:000141B4 ADD R4, R8, R2 .text:000141B8 LDR R3, [R4,#4] .text:000141BC CMP R3, #0 .text:000141C0 BEQ loc_1424C .text:000141C4 LDRB R3, [R4,#0xC] .text:000141C8 AND R3, R3, #0xF .text:000141CC CMP R3, #2 .text:000141D0 BHI loc_1424C .text:000141D4 LDR R3, [R11,#var_5C] .text:000141D8 CMP R4, R3 .text:000141DC BEQ loc_14204 .text:000141E0 LDR R0, [R8,R2] .text:000141E4 STR R12, [R11,#var_A8] .text:000141E8 LDR LR, [R11,#var_68] .text:000141EC LDR R1, [R11,#var_3C] .text:000141F0 ADD R0, LR, R0 .text:000141F4 BL strcmp .text:000141F8 CMP R0, #0 .text:000141FC LDR R12, [R11,#var_A8] .text:00014200 BNE loc_1424C .text:00014204 .text:00014204 loc_14204 ; CODE XREF: _dl_lookup_symbol_skip+288j .text:00014204 CMP R7, #0 .text:00014208 BEQ loc_14270 .text:0001420C MOV R3, R5,LSL#1 .text:00014210 LDRB R1, [R3,R7] .text:00014214 ADD R3, R3, R7 .text:00014218 LDRB R2, [R3,#1] .text:0001421C ORR R2, R1, R2,LSL#8 .text:00014220 MOV R3, R2,LSL#17 .text:00014224 MOV R3, R3,LSR#17 .text:00014228 CMP R3, #2 .text:0001422C BLS loc_14270 .text:00014230 TST R2, #0x8000 .text:00014234 BNE loc_1424C .text:00014238 ADD R12, R12, #1 .text:0001423C LDR R0, [R11,#var_64] .text:00014240 CMP R12, #1 .text:00014244 MOVEQ R0, R4 .text:00014248 STR R0, [R11,#var_64] .text:0001424C .text:0001424C loc_1424C ; CODE XREF: _dl_lookup_symbol_skip+26Cj .text:0001424C ; _dl_lookup_symbol_skip+27Cj ... .text:0001424C LDR R3, [R6,#0x124] .text:00014250 LDR R5, [R3,R5,LSL#2] .text:00014254 CMP R5, #0 .text:00014258 BNE loc_141B0 .text:0001425C .text:0001425C loc_1425C ; CODE XREF: _dl_lookup_symbol_skip+258j .text:0001425C LDR R4, [R11,#var_64] .text:00014260 CMP R12, #1 .text:00014264 MOVNE R4, #0 .text:00014268 CMP R4, #0 .text:0001426C BEQ loc_142A4 .text:00014270 .text:00014270 loc_14270 ; CODE XREF: _dl_lookup_symbol_skip+2B4j .text:00014270 ; _dl_lookup_symbol_skip+2D8j .text:00014270 LDRB R3, [R4,#0xC] .text:00014274 MOV R3, R3,LSR#4 .text:00014278 CMP R3, #1 .text:0001427C BEQ loc_144B0 .text:00014280 CMP R3, #2 .text:00014284 BNE loc_142A4 .text:00014288 LDR R3, =_dl_dynamic_weak .text:0001428C LDR R2, [R3] .text:00014290 CMP R2, #0 .text:00014294 BEQ loc_144B0 .text:00014298 LDR R3, [R10] .text:0001429C CMP R3, #0 .text:000142A0 STMEQIA R10, {R4,R6} .text:000142A4 .text:000142A4 loc_142A4 ; CODE XREF: _dl_lookup_symbol_skip+1E0j .text:000142A4 ; _dl_lookup_symbol_skip+318j ... .text:000142A4 LDR R1, [R11,#var_58] .text:000142A8 ADD R9, R9, #1 .text:000142AC CMP R9, R1 .text:000142B0 BCC loc_14104 .text:000142B4 B loc_144D8 .text:000142B4 ; --------------------------------------------------------------------------- .text:000142B8 off_142B8 DCD _dl_num_relocations ; DATA XREF: _dl_lookup_symbol_skip+38r .text:000142BC off_142BC DCD aIScopeR_ndupli ; DATA XREF: _dl_lookup_symbol_skip+144r .text:000142BC ; "i < (*scope)->r_nduplist" .text:000142C0 off_142C0 DCD aDlLookup_c ; DATA XREF: _dl_lookup_symbol_skip+148r .text:000142C0 ; "dl-lookup.c" .text:000142C4 off_142C4 DCD a_dl_lookup_sym ; DATA XREF: _dl_lookup_symbol_skip+150r .text:000142C4 ; "_dl_lookup_symbol_skip" .text:000142C8 off_142C8 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol_skip+1E4r .text:000142CC off_142CC DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol_skip+200r .text:000142CC ; "symbol=%s; lookup in file=%s\n" .text:000142D0 off_142D0 DCD _dl_argv ; DATA XREF: _dl_lookup_symbol_skip+204r .text:000142D4 off_142D4 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol_skip+334r .text:000142D8 ; --------------------------------------------------------------------------- .text:000142D8 .text:000142D8 loc_142D8 ; CODE XREF: _dl_lookup_symbol_skip+190j .text:000142D8 ; _dl_lookup_symbol_skip+58Cj .text:000142D8 LDR R2, [R11,#var_50] .text:000142DC LDR R3, [R2,#4]! .text:000142E0 CMP R3, #0 .text:000142E4 STR R2, [R11,#var_50] .text:000142E8 BEQ loc_144E4 .text:000142EC LDR R12, [R11,#var_44] .text:000142F0 LDR R12, [R12] .text:000142F4 STR R12, [R11,#var_6C] .text:000142F8 LDR LR, [R3] .text:000142FC MOV R0, #0 .text:00014300 STR R0, [R11,#var_70] .text:00014304 STR LR, [R11,#var_74] .text:00014308 LDR R3, [R3,#4] .text:0001430C SUB R10, R11, #-var_30 .text:00014310 STR R3, [R11,#var_78] .text:00014314 .text:00014314 loc_14314 ; CODE XREF: _dl_lookup_symbol_skip+580j .text:00014314 LDR R1, [R11,#var_70] .text:00014318 LDR R2, [R11,#var_74] .text:0001431C LDR LR, [R11,#arg_0] .text:00014320 MOV R12, #0 .text:00014324 LDR R6, [R2,R1,LSL#2] .text:00014328 MOV R9, R12 .text:0001432C CMP R6, LR .text:00014330 MOVNE R3, #0 .text:00014334 MOVEQ R3, #1 .text:00014338 CMP LR, R12 .text:0001433C MOVEQ R3, R12 .text:00014340 CMP R3, R12 .text:00014344 BNE loc_144C0 .text:00014348 LDR R3, =_dl_debug_mask .text:0001434C LDR R2, [R3] .text:00014350 TST R2, #8 .text:00014354 BEQ loc_14384 .text:00014358 LDR R2, [R6,#4] .text:0001435C LDRB R3, [R2] .text:00014360 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00014364 CMP R3, R12 .text:00014368 LDREQ R3, =_dl_argv .text:0001436C LDREQ R2, [R3] .text:00014370 LDREQ R2, [R2] .text:00014374 STR R12, [R11,#var_A8] .text:00014378 LDR R1, [R11,#var_3C] .text:0001437C BL _dl_debug_printf .text:00014380 LDR R12, [R11,#var_A8] .text:00014384 .text:00014384 loc_14384 ; CODE XREF: _dl_lookup_symbol_skip+400j .text:00014384 LDR R1, [R6,#0x11C] .text:00014388 ADD R2, R6, #0x2C .text:0001438C LDMIA R2, {R2,R3} .text:00014390 LDR R2, [R2,#4] .text:00014394 LDR R8, [R3,#4] .text:00014398 STR R2, [R11,#var_7C] .text:0001439C LDR R7, [R6,#0x144] .text:000143A0 STR R12, [R11,#var_A8] .text:000143A4 LDR R0, [R11,#var_4C] .text:000143A8 BL __umodsi3 .text:000143AC LDR R3, [R6,#0x120] .text:000143B0 LDR R5, [R3,R0,LSL#2] .text:000143B4 LDR R12, [R11,#var_A8] .text:000143B8 CMP R5, #0 .text:000143BC BEQ loc_14464 .text:000143C0 .text:000143C0 loc_143C0 ; CODE XREF: _dl_lookup_symbol_skip+50Cj .text:000143C0 MOV R2, R5,LSL#4 .text:000143C4 ADD R4, R8, R2 .text:000143C8 LDR R3, [R4,#4] .text:000143CC CMP R3, #0 .text:000143D0 BEQ loc_14454 .text:000143D4 LDRB R3, [R4,#0xC] .text:000143D8 AND R3, R3, #0xF .text:000143DC CMP R3, #2 .text:000143E0 BHI loc_14454 .text:000143E4 LDR R0, [R11,#var_6C] .text:000143E8 CMP R4, R0 .text:000143EC BEQ loc_14414 .text:000143F0 LDR R0, [R8,R2] .text:000143F4 STR R12, [R11,#var_A8] .text:000143F8 LDR R2, [R11,#var_7C] .text:000143FC LDR R1, [R11,#var_3C] .text:00014400 ADD R0, R2, R0 .text:00014404 BL strcmp .text:00014408 CMP R0, #0 .text:0001440C LDR R12, [R11,#var_A8] .text:00014410 BNE loc_14454 .text:00014414 .text:00014414 loc_14414 ; CODE XREF: _dl_lookup_symbol_skip+498j .text:00014414 CMP R7, #0 .text:00014418 BEQ loc_14478 .text:0001441C MOV R3, R5,LSL#1 .text:00014420 LDRB R1, [R3,R7] .text:00014424 ADD R3, R3, R7 .text:00014428 LDRB R2, [R3,#1] .text:0001442C ORR R2, R1, R2,LSL#8 .text:00014430 MOV R3, R2,LSL#17 .text:00014434 MOV R3, R3,LSR#17 .text:00014438 CMP R3, #2 .text:0001443C BLS loc_14478 .text:00014440 TST R2, #0x8000 .text:00014444 BNE loc_14454 .text:00014448 ADD R9, R9, #1 .text:0001444C CMP R9, #1 .text:00014450 MOVEQ R12, R4 .text:00014454 .text:00014454 loc_14454 ; CODE XREF: _dl_lookup_symbol_skip+47Cj .text:00014454 ; _dl_lookup_symbol_skip+48Cj ... .text:00014454 LDR R3, [R6,#0x124] .text:00014458 LDR R5, [R3,R5,LSL#2] .text:0001445C CMP R5, #0 .text:00014460 BNE loc_143C0 .text:00014464 .text:00014464 loc_14464 ; CODE XREF: _dl_lookup_symbol_skip+468j .text:00014464 CMP R9, #1 .text:00014468 MOVEQ R4, R12 .text:0001446C MOVNE R4, #0 .text:00014470 CMP R4, #0 .text:00014474 BEQ loc_144C0 .text:00014478 .text:00014478 loc_14478 ; CODE XREF: _dl_lookup_symbol_skip+4C4j .text:00014478 ; _dl_lookup_symbol_skip+4E8j .text:00014478 LDRB R3, [R4,#0xC] .text:0001447C MOV R3, R3,LSR#4 .text:00014480 CMP R3, #1 .text:00014484 BEQ loc_144B0 .text:00014488 CMP R3, #2 .text:0001448C BNE loc_144C0 .text:00014490 LDR R3, =_dl_dynamic_weak .text:00014494 LDR R2, [R3] .text:00014498 CMP R2, #0 .text:0001449C BEQ loc_144B0 .text:000144A0 LDR R3, [R10] .text:000144A4 CMP R3, #0 .text:000144A8 STMEQIA R10, {R4,R6} .text:000144AC B loc_144C0 .text:000144B0 ; --------------------------------------------------------------------------- .text:000144B0 .text:000144B0 loc_144B0 ; CODE XREF: _dl_lookup_symbol_skip+328j .text:000144B0 ; _dl_lookup_symbol_skip+340j ... .text:000144B0 STR R4, [R10] .text:000144B4 MOV R3, #1 .text:000144B8 STR R6, [R10,#4] .text:000144BC B loc_144DC .text:000144C0 ; --------------------------------------------------------------------------- .text:000144C0 .text:000144C0 loc_144C0 ; CODE XREF: _dl_lookup_symbol_skip+3F0j .text:000144C0 ; _dl_lookup_symbol_skip+520j ... .text:000144C0 LDR R3, [R11,#var_70] .text:000144C4 LDR R12, [R11,#var_78] .text:000144C8 ADD R3, R3, #1 .text:000144CC CMP R3, R12 .text:000144D0 STR R3, [R11,#var_70] .text:000144D4 BCC loc_14314 .text:000144D8 .text:000144D8 loc_144D8 ; CODE XREF: _dl_lookup_symbol_skip+360j .text:000144D8 MOV R3, #0 .text:000144DC .text:000144DC loc_144DC ; CODE XREF: _dl_lookup_symbol_skip+568j .text:000144DC CMP R3, #0 .text:000144E0 BEQ loc_142D8 .text:000144E4 .text:000144E4 loc_144E4 ; CODE XREF: _dl_lookup_symbol_skip+394j .text:000144E4 LDR R3, [R11,#var_30] .text:000144E8 CMP R3, #0 .text:000144EC LDREQ LR, [R11,#var_44] .text:000144F0 MOVEQ R0, R3 .text:000144F4 STREQ R3, [LR] .text:000144F8 BEQ locret_14A50 .text:000144FC LDR R0, [R11,#var_44] .text:00014500 LDR R3, [R0] .text:00014504 MOV R4, #0 .text:00014508 CMP R3, R4 .text:0001450C BEQ loc_14524 .text:00014510 LDRB R3, [R3,#0xD] .text:00014514 AND R3, R3, #3 .text:00014518 CMP R3, #3 .text:0001451C MOVNE R4, #0 .text:00014520 MOVEQ R4, #1 .text:00014524 .text:00014524 loc_14524 ; CODE XREF: _dl_lookup_symbol_skip+5B8j .text:00014524 LDR R2, =_dl_debug_mask .text:00014528 LDR R3, [R2] .text:0001452C TST R3, #4 .text:00014530 BEQ loc_145B0 .text:00014534 LDR R1, [R11,#var_48] .text:00014538 CMP R1, #0 .text:0001453C BEQ loc_1454C .text:00014540 LDRB R3, [R1] .text:00014544 CMP R3, #0 .text:00014548 BNE loc_14568 .text:0001454C .text:0001454C loc_1454C ; CODE XREF: _dl_lookup_symbol_skip+5E8j .text:0001454C LDR R3, =_dl_argv .text:00014550 LDR R2, [R3] .text:00014554 LDR R1, [R2] .text:00014558 LDR LR, =aMainProgram ; "<main program>" .text:0001455C CMP R1, #0 .text:00014560 MOVNE LR, R1 .text:00014564 B loc_1456C .text:00014568 ; --------------------------------------------------------------------------- .text:00014568 .text:00014568 loc_14568 ; CODE XREF: _dl_lookup_symbol_skip+5F4j .text:00014568 LDR LR, [R11,#var_48] .text:0001456C .text:0001456C loc_1456C ; CODE XREF: _dl_lookup_symbol_skip+610j .text:0001456C LDR R3, [R11,#var_2C] .text:00014570 LDR R3, [R3,#4] .text:00014574 LDRB R2, [R3] .text:00014578 CMP R2, #0 .text:0001457C MOVNE R2, R3 .text:00014580 LDREQ R3, =_dl_argv .text:00014584 LDREQ R2, [R3] .text:00014588 LDREQ R2, [R2] .text:0001458C LDR R3, [R11,#var_3C] .text:00014590 STR R3, [SP,#0xAC+var_AC] .text:00014594 LDR R12, =aNormal ; "normal" .text:00014598 MOV R1, LR .text:0001459C LDR R3, =aProtected ; "protected" .text:000145A0 CMP R4, #0 .text:000145A4 LDR R0, =aBindingFileSTo ; "binding file %s to %s: %s symbol `%s'\n" .text:000145A8 MOVEQ R3, R12 .text:000145AC BL _dl_debug_printf .text:000145B0 .text:000145B0 loc_145B0 ; CODE XREF: _dl_lookup_symbol_skip+5DCj .text:000145B0 CMP R4, #0 .text:000145B4 BNE loc_145EC .text:000145B8 LDR R3, [R11,#var_30] .text:000145BC LDR R12, [R11,#var_44] .text:000145C0 STR R3, [R12] .text:000145C4 LDR R2, [R11,#var_2C] .text:000145C8 B loc_14A4C .text:000145C8 ; --------------------------------------------------------------------------- .text:000145CC off_145CC DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol_skip+3F4r .text:000145CC ; _dl_lookup_symbol_skip:loc_14524r .text:000145D0 off_145D0 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol_skip+40Cr .text:000145D0 ; "symbol=%s; lookup in file=%s\n" .text:000145D4 off_145D4 DCD _dl_argv ; DATA XREF: _dl_lookup_symbol_skip+414r .text:000145D4 ; _dl_lookup_symbol_skip:loc_1454Cr ... .text:000145D8 off_145D8 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol_skip+53Cr .text:000145DC off_145DC DCD aMainProgram ; DATA XREF: _dl_lookup_symbol_skip+604r .text:000145DC ; "<main program>" .text:000145E0 off_145E0 DCD aNormal ; DATA XREF: _dl_lookup_symbol_skip+640r .text:000145E0 ; "normal" .text:000145E4 off_145E4 DCD aProtected ; DATA XREF: _dl_lookup_symbol_skip+648r .text:000145E4 ; "protected" .text:000145E8 off_145E8 DCD aBindingFileSTo ; DATA XREF: _dl_lookup_symbol_skip+650r .text:000145E8 ; "binding file %s to %s: %s symbol `%s'\n" .text:000145EC ; --------------------------------------------------------------------------- .text:000145EC .text:000145EC loc_145EC ; CODE XREF: _dl_lookup_symbol_skip+660j .text:000145EC LDR LR, [R11,#var_50] .text:000145F0 SUB R3, R11, #-var_38 .text:000145F4 LDR R2, [LR] .text:000145F8 MOV R1, #0 .text:000145FC MOV R0, #0 .text:00014600 STMIA R3, {R0,R1} .text:00014604 LDR R12, [R11,#var_54] .text:00014608 LDR R1, [R2,#4] .text:0001460C CMP R12, R1 .text:00014610 MOV R12, R3 .text:00014614 STR R1, [R11,#var_80] .text:00014618 BCS loc_147F4 .text:0001461C LDR LR, [R11,#var_44] .text:00014620 LDR LR, [LR] .text:00014624 STR LR, [R11,#var_84] .text:00014628 LDR R10, [R11,#var_54] .text:0001462C LDR R2, [R2] .text:00014630 STR R2, [R11,#var_88] .text:00014634 .text:00014634 loc_14634 ; CODE XREF: _dl_lookup_symbol_skip+898j .text:00014634 MOV R0, #0 .text:00014638 STR R0, [R11,#var_8C] .text:0001463C LDR R1, [R11,#var_88] .text:00014640 LDR R2, [R11,#arg_0] .text:00014644 LDR R6, [R1,R10,LSL#2] .text:00014648 MOV R9, R0 .text:0001464C CMP R6, R2 .text:00014650 MOVNE R3, #0 .text:00014654 MOVEQ R3, #1 .text:00014658 CMP R2, R0 .text:0001465C MOVEQ R3, R0 .text:00014660 CMP R3, R0 .text:00014664 BNE loc_147E0 .text:00014668 LDR LR, =_dl_debug_mask .text:0001466C LDR R3, [LR] .text:00014670 TST R3, #8 .text:00014674 BEQ loc_146A4 .text:00014678 LDR R2, [R6,#4] .text:0001467C LDRB R3, [R2] .text:00014680 CMP R3, R0 .text:00014684 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00014688 LDREQ R3, =_dl_argv .text:0001468C LDREQ R2, [R3] .text:00014690 LDREQ R2, [R2] .text:00014694 STR R12, [R11,#var_A8] .text:00014698 LDR R1, [R11,#var_3C] .text:0001469C BL _dl_debug_printf .text:000146A0 LDR R12, [R11,#var_A8] .text:000146A4 .text:000146A4 loc_146A4 ; CODE XREF: _dl_lookup_symbol_skip+720j .text:000146A4 LDR R1, [R6,#0x11C] .text:000146A8 ADD R2, R6, #0x2C .text:000146AC LDMIA R2, {R2,R3} .text:000146B0 LDR R2, [R2,#4] .text:000146B4 LDR R8, [R3,#4] .text:000146B8 STR R2, [R11,#var_90] .text:000146BC LDR R7, [R6,#0x144] .text:000146C0 STR R12, [R11,#var_A8] .text:000146C4 LDR R0, [R11,#var_4C] .text:000146C8 BL __umodsi3 .text:000146CC LDR R3, [R6,#0x120] .text:000146D0 LDR R5, [R3,R0,LSL#2] .text:000146D4 LDR R12, [R11,#var_A8] .text:000146D8 CMP R5, #0 .text:000146DC BEQ loc_14798 .text:000146E0 .text:000146E0 loc_146E0 ; CODE XREF: _dl_lookup_symbol_skip+840j .text:000146E0 MOV R2, R5,LSL#4 .text:000146E4 ADD R4, R8, R2 .text:000146E8 LDR R3, [R4,#4] .text:000146EC CMP R3, #0 .text:000146F0 BEQ loc_14788 .text:000146F4 LDR R3, [R4,#0xC] .text:000146F8 MOVS R3, R3,LSR#16 .text:000146FC BEQ loc_14788 .text:00014700 LDRB R3, [R4,#0xC] .text:00014704 AND R3, R3, #0xF .text:00014708 CMP R3, #2 .text:0001470C BHI loc_14788 .text:00014710 LDR R0, [R11,#var_84] .text:00014714 CMP R4, R0 .text:00014718 BEQ loc_14740 .text:0001471C LDR R0, [R8,R2] .text:00014720 STR R12, [R11,#var_A8] .text:00014724 LDR R2, [R11,#var_90] .text:00014728 LDR R1, [R11,#var_3C] .text:0001472C ADD R0, R2, R0 .text:00014730 BL strcmp .text:00014734 CMP R0, #0 .text:00014738 LDR R12, [R11,#var_A8] .text:0001473C BNE loc_14788 .text:00014740 .text:00014740 loc_14740 ; CODE XREF: _dl_lookup_symbol_skip+7C4j .text:00014740 CMP R7, #0 .text:00014744 BEQ loc_147AC .text:00014748 MOV R3, R5,LSL#1 .text:0001474C LDRB R1, [R3,R7] .text:00014750 ADD R3, R3, R7 .text:00014754 LDRB R2, [R3,#1] .text:00014758 ORR R2, R1, R2,LSL#8 .text:0001475C MOV R3, R2,LSL#17 .text:00014760 MOV R3, R3,LSR#17 .text:00014764 CMP R3, #2 .text:00014768 BLS loc_147AC .text:0001476C TST R2, #0x8000 .text:00014770 BNE loc_14788 .text:00014774 ADD R9, R9, #1 .text:00014778 LDR R3, [R11,#var_8C] .text:0001477C CMP R9, #1 .text:00014780 MOVEQ R3, R4 .text:00014784 STR R3, [R11,#var_8C] .text:00014788 .text:00014788 loc_14788 ; CODE XREF: _dl_lookup_symbol_skip+79Cj .text:00014788 ; _dl_lookup_symbol_skip+7A8j ... .text:00014788 LDR R3, [R6,#0x124] .text:0001478C LDR R5, [R3,R5,LSL#2] .text:00014790 CMP R5, #0 .text:00014794 BNE loc_146E0 .text:00014798 .text:00014798 loc_14798 ; CODE XREF: _dl_lookup_symbol_skip+788j .text:00014798 LDR R4, [R11,#var_8C] .text:0001479C CMP R9, #1 .text:000147A0 MOVNE R4, #0 .text:000147A4 CMP R4, #0 .text:000147A8 BEQ loc_147E0 .text:000147AC .text:000147AC loc_147AC ; CODE XREF: _dl_lookup_symbol_skip+7F0j .text:000147AC ; _dl_lookup_symbol_skip+814j .text:000147AC LDRB R3, [R4,#0xC] .text:000147B0 MOV R3, R3,LSR#4 .text:000147B4 CMP R3, #1 .text:000147B8 BEQ loc_149D4 .text:000147BC CMP R3, #2 .text:000147C0 BNE loc_147E0 .text:000147C4 LDR R3, =_dl_dynamic_weak .text:000147C8 LDR R2, [R3] .text:000147CC CMP R2, #0 .text:000147D0 BEQ loc_149D4 .text:000147D4 LDR R3, [R12] .text:000147D8 CMP R3, #0 .text:000147DC STMEQIA R12, {R4,R6} .text:000147E0 .text:000147E0 loc_147E0 ; CODE XREF: _dl_lookup_symbol_skip+710j .text:000147E0 ; _dl_lookup_symbol_skip+854j ... .text:000147E0 LDR LR, [R11,#var_80] .text:000147E4 ADD R10, R10, #1 .text:000147E8 CMP R10, LR .text:000147EC BCC loc_14634 .text:000147F0 B loc_14A0C .text:000147F4 ; --------------------------------------------------------------------------- .text:000147F4 .text:000147F4 loc_147F4 ; CODE XREF: _dl_lookup_symbol_skip+6C4j .text:000147F4 ; _dl_lookup_symbol_skip+AC0j .text:000147F4 LDR R0, [R11,#var_50] .text:000147F8 LDR R3, [R0,#4]! .text:000147FC CMP R3, #0 .text:00014800 STR R0, [R11,#var_50] .text:00014804 BEQ loc_14A18 .text:00014808 LDR R1, [R11,#var_44] .text:0001480C LDR R1, [R1] .text:00014810 STR R1, [R11,#var_94] .text:00014814 LDR R2, [R3] .text:00014818 MOV LR, #0 .text:0001481C STR LR, [R11,#var_98] .text:00014820 STR R2, [R11,#var_9C] .text:00014824 LDR R3, [R3,#4] .text:00014828 STR R3, [R11,#var_A0] .text:0001482C .text:0001482C loc_1482C ; CODE XREF: _dl_lookup_symbol_skip+AB4j .text:0001482C LDR R0, [R11,#var_98] .text:00014830 LDR R1, [R11,#var_9C] .text:00014834 LDR R2, [R11,#arg_0] .text:00014838 MOV R9, #0 .text:0001483C LDR R6, [R1,R0,LSL#2] .text:00014840 MOV R10, R9 .text:00014844 CMP R6, R2 .text:00014848 MOVNE R3, #0 .text:0001484C MOVEQ R3, #1 .text:00014850 CMP R2, R9 .text:00014854 MOVEQ R3, R9 .text:00014858 CMP R3, R9 .text:0001485C BNE loc_149F4 .text:00014860 LDR LR, =_dl_debug_mask .text:00014864 LDR R3, [LR] .text:00014868 TST R3, #8 .text:0001486C BEQ loc_1489C .text:00014870 LDR R2, [R6,#4] .text:00014874 LDRB R3, [R2] .text:00014878 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:0001487C CMP R3, R9 .text:00014880 LDREQ R3, =_dl_argv .text:00014884 LDREQ R2, [R3] .text:00014888 LDREQ R2, [R2] .text:0001488C STR R12, [R11,#var_A8] .text:00014890 LDR R1, [R11,#var_3C] .text:00014894 BL _dl_debug_printf .text:00014898 LDR R12, [R11,#var_A8] .text:0001489C .text:0001489C loc_1489C ; CODE XREF: _dl_lookup_symbol_skip+918j .text:0001489C LDR R1, [R6,#0x11C] .text:000148A0 ADD R2, R6, #0x2C .text:000148A4 LDMIA R2, {R2,R3} .text:000148A8 LDR R2, [R2,#4] .text:000148AC LDR R8, [R3,#4] .text:000148B0 STR R2, [R11,#var_A4] .text:000148B4 LDR R7, [R6,#0x144] .text:000148B8 STR R12, [R11,#var_A8] .text:000148BC LDR R0, [R11,#var_4C] .text:000148C0 BL __umodsi3 .text:000148C4 LDR R3, [R6,#0x120] .text:000148C8 LDR R5, [R3,R0,LSL#2] .text:000148CC LDR R12, [R11,#var_A8] .text:000148D0 CMP R5, #0 .text:000148D4 BEQ loc_14988 .text:000148D8 .text:000148D8 loc_148D8 ; CODE XREF: _dl_lookup_symbol_skip+A30j .text:000148D8 MOV R2, R5,LSL#4 .text:000148DC ADD R4, R8, R2 .text:000148E0 LDR R3, [R4,#4] .text:000148E4 CMP R3, #0 .text:000148E8 BEQ loc_14978 .text:000148EC LDR R3, [R4,#0xC] .text:000148F0 MOVS R3, R3,LSR#16 .text:000148F4 BEQ loc_14978 .text:000148F8 LDRB R3, [R4,#0xC] .text:000148FC AND R3, R3, #0xF .text:00014900 CMP R3, #2 .text:00014904 BHI loc_14978 .text:00014908 LDR R0, [R11,#var_94] .text:0001490C CMP R4, R0 .text:00014910 BEQ loc_14938 .text:00014914 LDR R0, [R8,R2] .text:00014918 STR R12, [R11,#var_A8] .text:0001491C LDR R2, [R11,#var_A4] .text:00014920 LDR R1, [R11,#var_3C] .text:00014924 ADD R0, R2, R0 .text:00014928 BL strcmp .text:0001492C CMP R0, #0 .text:00014930 LDR R12, [R11,#var_A8] .text:00014934 BNE loc_14978 .text:00014938 .text:00014938 loc_14938 ; CODE XREF: _dl_lookup_symbol_skip+9BCj .text:00014938 CMP R7, #0 .text:0001493C BEQ loc_1499C .text:00014940 MOV R3, R5,LSL#1 .text:00014944 LDRB R1, [R3,R7] .text:00014948 ADD R3, R3, R7 .text:0001494C LDRB R2, [R3,#1] .text:00014950 ORR R2, R1, R2,LSL#8 .text:00014954 MOV R3, R2,LSL#17 .text:00014958 MOV R3, R3,LSR#17 .text:0001495C CMP R3, #2 .text:00014960 BLS loc_1499C .text:00014964 TST R2, #0x8000 .text:00014968 BNE loc_14978 .text:0001496C ADD R10, R10, #1 .text:00014970 CMP R10, #1 .text:00014974 MOVEQ R9, R4 .text:00014978 .text:00014978 loc_14978 ; CODE XREF: _dl_lookup_symbol_skip+994j .text:00014978 ; _dl_lookup_symbol_skip+9A0j ... .text:00014978 LDR R3, [R6,#0x124] .text:0001497C LDR R5, [R3,R5,LSL#2] .text:00014980 CMP R5, #0 .text:00014984 BNE loc_148D8 .text:00014988 .text:00014988 loc_14988 ; CODE XREF: _dl_lookup_symbol_skip+980j .text:00014988 CMP R10, #1 .text:0001498C MOVEQ R4, R9 .text:00014990 MOVNE R4, #0 .text:00014994 CMP R4, #0 .text:00014998 BEQ loc_149F4 .text:0001499C .text:0001499C loc_1499C ; CODE XREF: _dl_lookup_symbol_skip+9E8j .text:0001499C ; _dl_lookup_symbol_skip+A0Cj .text:0001499C LDRB R3, [R4,#0xC] .text:000149A0 MOV R3, R3,LSR#4 .text:000149A4 CMP R3, #1 .text:000149A8 BEQ loc_149D4 .text:000149AC CMP R3, #2 .text:000149B0 BNE loc_149F4 .text:000149B4 LDR R3, =_dl_dynamic_weak .text:000149B8 LDR R2, [R3] .text:000149BC CMP R2, #0 .text:000149C0 BEQ loc_149D4 .text:000149C4 LDR R3, [R12] .text:000149C8 CMP R3, #0 .text:000149CC STMEQIA R12, {R4,R6} .text:000149D0 B loc_149F4 .text:000149D4 ; --------------------------------------------------------------------------- .text:000149D4 .text:000149D4 loc_149D4 ; CODE XREF: _dl_lookup_symbol_skip+864j .text:000149D4 ; _dl_lookup_symbol_skip+87Cj ... .text:000149D4 STR R4, [R12] .text:000149D8 MOV R3, #1 .text:000149DC STR R6, [R12,#4] .text:000149E0 B loc_14A10 .text:000149E0 ; --------------------------------------------------------------------------- .text:000149E4 off_149E4 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol_skip+714r .text:000149E4 ; _dl_lookup_symbol_skip+90Cr .text:000149E8 off_149E8 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol_skip+730r .text:000149E8 ; _dl_lookup_symbol_skip+924r .text:000149E8 ; "symbol=%s; lookup in file=%s\n" .text:000149EC off_149EC DCD _dl_argv ; DATA XREF: _dl_lookup_symbol_skip+734r .text:000149EC ; _dl_lookup_symbol_skip+92Cr .text:000149F0 off_149F0 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol_skip+870r .text:000149F0 ; _dl_lookup_symbol_skip+A60r .text:000149F4 ; --------------------------------------------------------------------------- .text:000149F4 .text:000149F4 loc_149F4 ; CODE XREF: _dl_lookup_symbol_skip+908j .text:000149F4 ; _dl_lookup_symbol_skip+A44j ... .text:000149F4 LDR R3, [R11,#var_98] .text:000149F8 LDR LR, [R11,#var_A0] .text:000149FC ADD R3, R3, #1 .text:00014A00 CMP R3, LR .text:00014A04 STR R3, [R11,#var_98] .text:00014A08 BCC loc_1482C .text:00014A0C .text:00014A0C loc_14A0C ; CODE XREF: _dl_lookup_symbol_skip+89Cj .text:00014A0C MOV R3, #0 .text:00014A10 .text:00014A10 loc_14A10 ; CODE XREF: _dl_lookup_symbol_skip+A8Cj .text:00014A10 CMP R3, #0 .text:00014A14 BEQ loc_147F4 .text:00014A18 .text:00014A18 loc_14A18 ; CODE XREF: _dl_lookup_symbol_skip+8B0j .text:00014A18 LDR R3, [R11,#var_38] .text:00014A1C CMP R3, #0 .text:00014A20 BEQ loc_14A34 .text:00014A24 LDR R3, [R12,#4] .text:00014A28 LDR R0, [R11,#var_40] .text:00014A2C CMP R3, R0 .text:00014A30 BNE loc_14A48 .text:00014A34 .text:00014A34 loc_14A34 ; CODE XREF: _dl_lookup_symbol_skip+ACCj .text:00014A34 LDR R3, [R11,#var_30] .text:00014A38 LDR R1, [R11,#var_44] .text:00014A3C STR R3, [R1] .text:00014A40 LDR R2, [R11,#var_2C] .text:00014A44 B loc_14A4C .text:00014A48 ; --------------------------------------------------------------------------- .text:00014A48 .text:00014A48 loc_14A48 ; CODE XREF: _dl_lookup_symbol_skip+ADCj .text:00014A48 LDR R2, [R11,#var_40] .text:00014A4C .text:00014A4C loc_14A4C ; CODE XREF: _dl_lookup_symbol_skip+674j .text:00014A4C ; _dl_lookup_symbol_skip+AF0j .text:00014A4C LDR R0, [R2] .text:00014A50 .text:00014A50 locret_14A50 ; CODE XREF: _dl_lookup_symbol_skip+5A4j .text:00014A50 LDMDB R11, {R4-R11,SP,PC} .text:00014A50 ; End of function _dl_lookup_symbol_skip .text:00014A50 .text:00014A54 .text:00014A54 ; =============== S U B R O U T I N E ======================================= .text:00014A54 .text:00014A54 ; Attributes: bp-based frame .text:00014A54 .text:00014A54 EXPORT _dl_lookup_versioned_symbol .text:00014A54 _dl_lookup_versioned_symbol ; CODE XREF: .text:00052628p .text:00014A54 ; fixup+D4p ... .text:00014A54 .text:00014A54 var_D8 = -0xD8 .text:00014A54 var_D4 = -0xD4 .text:00014A54 var_D0 = -0xD0 .text:00014A54 var_CC = -0xCC .text:00014A54 var_C8 = -0xC8 .text:00014A54 var_C4 = -0xC4 .text:00014A54 var_C0 = -0xC0 .text:00014A54 var_BC = -0xBC .text:00014A54 var_B8 = -0xB8 .text:00014A54 var_B4 = -0xB4 .text:00014A54 var_B0 = -0xB0 .text:00014A54 var_AC = -0xAC .text:00014A54 var_A8 = -0xA8 .text:00014A54 var_A4 = -0xA4 .text:00014A54 var_A0 = -0xA0 .text:00014A54 var_9C = -0x9C .text:00014A54 var_98 = -0x98 .text:00014A54 var_94 = -0x94 .text:00014A54 var_90 = -0x90 .text:00014A54 var_8C = -0x8C .text:00014A54 var_88 = -0x88 .text:00014A54 var_84 = -0x84 .text:00014A54 var_80 = -0x80 .text:00014A54 var_7C = -0x7C .text:00014A54 var_78 = -0x78 .text:00014A54 var_74 = -0x74 .text:00014A54 var_70 = -0x70 .text:00014A54 var_68 = -0x68 .text:00014A54 var_64 = -0x64 .text:00014A54 var_60 = -0x60 .text:00014A54 var_5C = -0x5C .text:00014A54 var_58 = -0x58 .text:00014A54 var_54 = -0x54 .text:00014A54 var_50 = -0x50 .text:00014A54 var_4C = -0x4C .text:00014A54 var_48 = -0x48 .text:00014A54 arg_0 = 4 .text:00014A54 arg_4 = 8 .text:00014A54 arg_8 = 0xC .text:00014A54 .text:00014A54 MOV R12, SP .text:00014A58 STMFD SP!, {R4-R12,LR,PC} .text:00014A5C SUB R11, R12, #4 .text:00014A60 SUB SP, SP, #0xB0 .text:00014A64 STR R0, [R11,#var_7C] .text:00014A68 STR R1, [R11,#var_80] .text:00014A6C STR R2, [R11,#var_84] .text:00014A70 STR R3, [R11,#var_88] .text:00014A74 SUB R0, R11, #-var_70 .text:00014A78 STR R0, [R11,#var_D0] .text:00014A7C .text:00014A7C loc_14A7C ; CODE XREF: _dl_lookup_versioned_symbol+500j .text:00014A7C LDR R1, [R11,#var_80] .text:00014A80 MOV R2, #0 .text:00014A84 STR R2, [R11,#var_8C] .text:00014A88 CMP R1, #0 .text:00014A8C LDRNE R3, [R1,#4] .text:00014A90 STRNE R3, [R11,#var_8C] .text:00014A94 LDR R4, [R11,#var_7C] .text:00014A98 LDRB R3, [R4] .text:00014A9C MOV R0, #0 .text:00014AA0 STR R0, [R11,#var_90] .text:00014AA4 CMP R3, R0 .text:00014AA8 BEQ loc_14B50 .text:00014AAC LDRB R3, [R4,#1] .text:00014AB0 MOV R1, R4 .text:00014AB4 LDRB R2, [R1],#1 .text:00014AB8 CMP R3, R0 .text:00014ABC STR R2, [R11,#var_90] .text:00014AC0 BEQ loc_14B50 .text:00014AC4 LDRB R3, [R4,#1] .text:00014AC8 LDR R4, [R11,#var_90] .text:00014ACC LDRB R2, [R1,#1]! .text:00014AD0 ADD R4, R3, R4,LSL#4 .text:00014AD4 CMP R2, R0 .text:00014AD8 STR R4, [R11,#var_90] .text:00014ADC BEQ loc_14B50 .text:00014AE0 LDRB R3, [R1] .text:00014AE4 LDRB R2, [R1,#1]! .text:00014AE8 ADD R4, R3, R4,LSL#4 .text:00014AEC CMP R2, R0 .text:00014AF0 STR R4, [R11,#var_90] .text:00014AF4 BEQ loc_14B50 .text:00014AF8 LDRB R3, [R1] .text:00014AFC LDRB R2, [R1,#1]! .text:00014B00 ADD R4, R3, R4,LSL#4 .text:00014B04 CMP R2, R0 .text:00014B08 STR R4, [R11,#var_90] .text:00014B0C BEQ loc_14B50 .text:00014B10 LDRB R3, [R1] .text:00014B14 LDRB R2, [R1,#1]! .text:00014B18 ADD R4, R3, R4,LSL#4 .text:00014B1C CMP R2, R0 .text:00014B20 STR R4, [R11,#var_90] .text:00014B24 BEQ loc_14B50 .text:00014B28 .text:00014B28 loc_14B28 ; CODE XREF: _dl_lookup_versioned_symbol+F8j .text:00014B28 LDRB R3, [R1] .text:00014B2C LDR R0, [R11,#var_90] .text:00014B30 ADD R0, R3, R0,LSL#4 .text:00014B34 AND R2, R0, #0xF0000000 .text:00014B38 EOR R0, R0, R2 .text:00014B3C LDRB R3, [R1,#1]! .text:00014B40 EOR R0, R0, R2,LSR#24 .text:00014B44 STR R0, [R11,#var_90] .text:00014B48 CMP R3, #0 .text:00014B4C BNE loc_14B28 .text:00014B50 .text:00014B50 loc_14B50 ; CODE XREF: _dl_lookup_versioned_symbol+54j .text:00014B50 ; _dl_lookup_versioned_symbol+6Cj ... .text:00014B50 LDR R4, [R11,#var_D0] .text:00014B54 MOV R3, #0 .text:00014B58 MOV R2, #0 .text:00014B5C STMIA R4, {R2,R3} .text:00014B60 LDR R0, =_dl_num_relocations .text:00014B64 LDR R3, [R0] .text:00014B68 ADD R3, R3, #1 .text:00014B6C STR R3, [R0] .text:00014B70 LDR R1, [R11,#var_88] .text:00014B74 LDR R2, [R11,#arg_4] .text:00014B78 STR R1, [R11,#var_94] .text:00014B7C CMP R2, #0x14 .text:00014B80 MOVNE R2, #0 .text:00014B84 MOVEQ R2, #1 .text:00014B88 STR R2, [R11,#var_98] .text:00014B8C LDR R4, [R11,#arg_4] .text:00014B90 LDR R3, [R1] .text:00014B94 CMP R4, #0x16 .text:00014B98 MOVNE R4, #0 .text:00014B9C MOVEQ R4, #1 .text:00014BA0 STR R4, [R11,#var_9C] .text:00014BA4 CMP R3, #0 .text:00014BA8 BEQ loc_15088 .text:00014BAC .text:00014BAC loc_14BAC ; CODE XREF: _dl_lookup_versioned_symbol+630j .text:00014BAC LDR R0, [R11,#var_84] .text:00014BB0 LDR R0, [R0] .text:00014BB4 STR R0, [R11,#var_A0] .text:00014BB8 LDR R1, [R11,#var_94] .text:00014BBC LDR R3, [R1] .text:00014BC0 LDR R2, [R3] .text:00014BC4 MOV R4, #0 .text:00014BC8 STR R4, [R11,#var_A4] .text:00014BCC STR R2, [R11,#var_A8] .text:00014BD0 LDR R3, [R3,#4] .text:00014BD4 STR R3, [R11,#var_AC] .text:00014BD8 .text:00014BD8 loc_14BD8 ; CODE XREF: _dl_lookup_versioned_symbol+4A0j .text:00014BD8 LDR R0, [R11,#var_98] .text:00014BDC LDR R1, [R11,#var_A4] .text:00014BE0 LDR R2, [R11,#var_A8] .text:00014BE4 CMP R0, #0 .text:00014BE8 LDR R7, [R2,R1,LSL#2] .text:00014BEC BEQ loc_14BFC .text:00014BF0 LDRB R3, [R7,#0x12C] .text:00014BF4 TST R3, #3 .text:00014BF8 BEQ loc_14EE0 .text:00014BFC .text:00014BFC loc_14BFC ; CODE XREF: _dl_lookup_versioned_symbol+198j .text:00014BFC LDR R3, =_dl_debug_mask .text:00014C00 LDR R2, [R3] .text:00014C04 TST R2, #8 .text:00014C08 BEQ loc_14C30 .text:00014C0C LDR R2, [R7,#4] .text:00014C10 LDRB R3, [R2] .text:00014C14 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00014C18 CMP R3, #0 .text:00014C1C LDREQ R3, =_dl_argv .text:00014C20 LDREQ R2, [R3] .text:00014C24 LDREQ R2, [R2] .text:00014C28 LDR R1, [R11,#var_7C] .text:00014C2C BL _dl_debug_printf .text:00014C30 .text:00014C30 loc_14C30 ; CODE XREF: _dl_lookup_versioned_symbol+1B4j .text:00014C30 LDR R1, [R7,#0x11C] .text:00014C34 ADD R2, R7, #0x2C .text:00014C38 LDMIA R2, {R2,R3} .text:00014C3C LDR R3, [R3,#4] .text:00014C40 STR R3, [R11,#var_B0] .text:00014C44 LDR R2, [R2,#4] .text:00014C48 STR R2, [R11,#var_B4] .text:00014C4C LDR R0, [R11,#var_90] .text:00014C50 LDR R9, [R7,#0x144] .text:00014C54 BL __umodsi3 .text:00014C58 LDR R3, [R7,#0x120] .text:00014C5C LDR R10, [R3,R0,LSL#2] .text:00014C60 CMP R10, #0 .text:00014C64 BEQ loc_14E44 .text:00014C68 .text:00014C68 loc_14C68 ; CODE XREF: _dl_lookup_versioned_symbol+394j .text:00014C68 LDR R3, [R11,#var_B0] .text:00014C6C MOV R2, R10,LSL#4 .text:00014C70 ADD R8, R3, R2 .text:00014C74 LDR R3, [R8,#4] .text:00014C78 CMP R3, #0 .text:00014C7C BEQ loc_14DDC .text:00014C80 LDR R4, [R11,#var_9C] .text:00014C84 CMP R4, #0 .text:00014C88 BEQ loc_14C98 .text:00014C8C LDR R3, [R8,#0xC] .text:00014C90 MOVS R3, R3,LSR#16 .text:00014C94 BEQ loc_14DDC .text:00014C98 .text:00014C98 loc_14C98 ; CODE XREF: _dl_lookup_versioned_symbol+234j .text:00014C98 LDRB R3, [R8,#0xC] .text:00014C9C AND R3, R3, #0xF .text:00014CA0 CMP R3, #2 .text:00014CA4 BHI loc_14DDC .text:00014CA8 LDR R0, [R11,#var_A0] .text:00014CAC CMP R8, R0 .text:00014CB0 BEQ loc_14CD4 .text:00014CB4 LDR R1, [R11,#var_B0] .text:00014CB8 LDR R0, [R1,R2] .text:00014CBC LDR R2, [R11,#var_B4] .text:00014CC0 LDR R1, [R11,#var_7C] .text:00014CC4 ADD R0, R2, R0 .text:00014CC8 BL strcmp .text:00014CCC CMP R0, #0 .text:00014CD0 BNE loc_14DDC .text:00014CD4 .text:00014CD4 loc_14CD4 ; CODE XREF: _dl_lookup_versioned_symbol+25Cj .text:00014CD4 CMP R9, #0 .text:00014CD8 BNE loc_14D5C .text:00014CDC LDR R3, [R11,#arg_0] .text:00014CE0 LDR R6, [R3,#0xC] .text:00014CE4 CMP R6, #0 .text:00014CE8 BEQ loc_14DF0 .text:00014CEC LDR R1, [R7,#4] .text:00014CF0 MOV R0, R6 .text:00014CF4 BL strcmp .text:00014CF8 LDR R4, [R7,#0x14] .text:00014CFC CMP R0, #0 .text:00014D00 MOVNE R5, #0 .text:00014D04 MOVEQ R5, #1 .text:00014D08 CMP R4, #0 .text:00014D0C CMPNE R0, #0 .text:00014D10 BEQ loc_14D40 .text:00014D14 .text:00014D14 loc_14D14 ; CODE XREF: _dl_lookup_versioned_symbol+2E8j .text:00014D14 LDR R1, [R4] .text:00014D18 MOV R0, R6 .text:00014D1C BL strcmp .text:00014D20 CMP R0, #0 .text:00014D24 MOVEQ R5, #1 .text:00014D28 LDRNE R4, [R4,#4] .text:00014D2C CMP R4, #0 .text:00014D30 EORNE R3, R5, #1 .text:00014D34 MOVEQ R3, #0 .text:00014D38 CMP R3, #0 .text:00014D3C BNE loc_14D14 .text:00014D40 .text:00014D40 loc_14D40 ; CODE XREF: _dl_lookup_versioned_symbol+2BCj .text:00014D40 CMP R5, #0 .text:00014D44 BEQ loc_14DF0 .text:00014D48 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:00014D4C LDR R1, =aDoLookup_h ; "do-lookup.h" .text:00014D50 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:00014D54 MOV R2, #0x68 .text:00014D58 BL __assert_fail .text:00014D5C ; --------------------------------------------------------------------------- .text:00014D5C .text:00014D5C loc_14D5C ; CODE XREF: _dl_lookup_versioned_symbol+284j .text:00014D5C MOV R5, R10,LSL#1 .text:00014D60 LDRB R2, [R5,R9] .text:00014D64 ADD R6, R5, R9 .text:00014D68 LDRB R3, [R6,#1] .text:00014D6C LDR R12, [R7,#0x134] .text:00014D70 ORR R2, R2, R3,LSL#8 .text:00014D74 MOV R0, R2,LSL#17 .text:00014D78 MOV R0, R0,LSR#17 .text:00014D7C MOV R4, R0,LSL#4 .text:00014D80 ADD R3, R4, R12 .text:00014D84 LDR R1, [R3,#4] .text:00014D88 LDR R3, [R11,#arg_0] .text:00014D8C LDR R2, [R3,#4] .text:00014D90 CMP R1, R2 .text:00014D94 BNE loc_14DAC .text:00014D98 LDR R0, [R12,R0,LSL#4] .text:00014D9C LDR R1, [R3] .text:00014DA0 BL strcmp .text:00014DA4 CMP R0, #0 .text:00014DA8 BEQ loc_14DF0 .text:00014DAC .text:00014DAC loc_14DAC ; CODE XREF: _dl_lookup_versioned_symbol+340j .text:00014DAC LDR R0, [R11,#arg_0] .text:00014DB0 LDR R3, [R0,#8] .text:00014DB4 CMP R3, #0 .text:00014DB8 BNE loc_14DDC .text:00014DBC LDR R3, [R7,#0x134] .text:00014DC0 ADD R3, R4, R3 .text:00014DC4 LDR R2, [R3,#4] .text:00014DC8 CMP R2, #0 .text:00014DCC BNE loc_14DDC .text:00014DD0 LDRB R3, [R6,#1] .text:00014DD4 MOVS R3, R3,LSR#7 .text:00014DD8 BEQ loc_14DF0 .text:00014DDC .text:00014DDC loc_14DDC ; CODE XREF: _dl_lookup_versioned_symbol+228j .text:00014DDC ; _dl_lookup_versioned_symbol+240j ... .text:00014DDC LDR R3, [R7,#0x124] .text:00014DE0 LDR R10, [R3,R10,LSL#2] .text:00014DE4 CMP R10, #0 .text:00014DE8 BNE loc_14C68 .text:00014DEC B loc_14E44 .text:00014DF0 ; --------------------------------------------------------------------------- .text:00014DF0 .text:00014DF0 loc_14DF0 ; CODE XREF: _dl_lookup_versioned_symbol+294j .text:00014DF0 ; _dl_lookup_versioned_symbol+2F0j ... .text:00014DF0 LDRB R3, [R8,#0xC] .text:00014DF4 MOV R3, R3,LSR#4 .text:00014DF8 CMP R3, #1 .text:00014DFC BEQ loc_14E30 .text:00014E00 CMP R3, #2 .text:00014E04 BNE loc_14E44 .text:00014E08 LDR R3, =_dl_dynamic_weak .text:00014E0C LDR R2, [R3] .text:00014E10 CMP R2, #0 .text:00014E14 BEQ loc_14E30 .text:00014E18 LDR R1, [R11,#var_D0] .text:00014E1C LDR R3, [R1] .text:00014E20 CMP R3, #0 .text:00014E24 STREQ R8, [R1] .text:00014E28 STREQ R7, [R1,#4] .text:00014E2C B loc_14E44 .text:00014E30 ; --------------------------------------------------------------------------- .text:00014E30 .text:00014E30 loc_14E30 ; CODE XREF: _dl_lookup_versioned_symbol+3A8j .text:00014E30 ; _dl_lookup_versioned_symbol+3C0j .text:00014E30 LDR R2, [R11,#var_D0] .text:00014E34 STR R8, [R2] .text:00014E38 MOV R0, #1 .text:00014E3C STR R7, [R2,#4] .text:00014E40 B loc_14EFC .text:00014E44 ; --------------------------------------------------------------------------- .text:00014E44 .text:00014E44 loc_14E44 ; CODE XREF: _dl_lookup_versioned_symbol+210j .text:00014E44 ; _dl_lookup_versioned_symbol+398j ... .text:00014E44 CMP R10, #0 .text:00014E48 BNE loc_14EE0 .text:00014E4C LDR R3, [R11,#arg_0] .text:00014E50 LDR R6, [R3,#0xC] .text:00014E54 CMP R6, #0 .text:00014E58 BEQ loc_14EE0 .text:00014E5C LDR R1, [R7,#4] .text:00014E60 MOV R0, R6 .text:00014E64 BL strcmp .text:00014E68 LDR R4, [R7,#0x14] .text:00014E6C CMP R0, #0 .text:00014E70 MOVNE R5, #0 .text:00014E74 MOVEQ R5, #1 .text:00014E78 CMP R4, #0 .text:00014E7C CMPNE R0, #0 .text:00014E80 BEQ loc_14ED8 .text:00014E84 .text:00014E84 loc_14E84 ; CODE XREF: _dl_lookup_versioned_symbol+480j .text:00014E84 LDR R1, [R4] .text:00014E88 MOV R0, R6 .text:00014E8C BL strcmp .text:00014E90 CMP R0, #0 .text:00014E94 BNE loc_14EC0 .text:00014E98 MOV R5, #1 .text:00014E9C B loc_14EC4 .text:00014E9C ; --------------------------------------------------------------------------- .text:00014EA0 off_14EA0 DCD _dl_num_relocations ; DATA XREF: _dl_lookup_versioned_symbol+10Cr .text:00014EA4 off_14EA4 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol:loc_14BFCr .text:00014EA8 off_14EA8 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol+1C0r .text:00014EA8 ; "symbol=%s; lookup in file=%s\n" .text:00014EAC off_14EAC DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol+1C8r .text:00014EB0 off_14EB0 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol+2F4r .text:00014EB0 ; "version->filename == ((void *)0) || ! _"... .text:00014EB4 off_14EB4 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol+2F8r .text:00014EB4 ; "do-lookup.h" .text:00014EB8 off_14EB8 DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol+2FCr .text:00014EB8 ; "do_lookup_versioned" .text:00014EBC off_14EBC DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol+3B4r .text:00014EC0 ; --------------------------------------------------------------------------- .text:00014EC0 .text:00014EC0 loc_14EC0 ; CODE XREF: _dl_lookup_versioned_symbol+440j .text:00014EC0 LDR R4, [R4,#4] .text:00014EC4 .text:00014EC4 loc_14EC4 ; CODE XREF: _dl_lookup_versioned_symbol+448j .text:00014EC4 CMP R4, #0 .text:00014EC8 EORNE R3, R5, #1 .text:00014ECC MOVEQ R3, #0 .text:00014ED0 CMP R3, #0 .text:00014ED4 BNE loc_14E84 .text:00014ED8 .text:00014ED8 loc_14ED8 ; CODE XREF: _dl_lookup_versioned_symbol+42Cj .text:00014ED8 CMP R5, #0 .text:00014EDC BNE loc_14F58 .text:00014EE0 .text:00014EE0 loc_14EE0 ; CODE XREF: _dl_lookup_versioned_symbol+1A4j .text:00014EE0 ; _dl_lookup_versioned_symbol+3F4j ... .text:00014EE0 LDR R4, [R11,#var_A4] .text:00014EE4 LDR R0, [R11,#var_AC] .text:00014EE8 ADD R4, R4, #1 .text:00014EEC CMP R4, R0 .text:00014EF0 STR R4, [R11,#var_A4] .text:00014EF4 BCC loc_14BD8 .text:00014EF8 MOV R0, #0 .text:00014EFC .text:00014EFC loc_14EFC ; CODE XREF: _dl_lookup_versioned_symbol+3ECj .text:00014EFC ; _dl_lookup_versioned_symbol+508j .text:00014EFC CMP R0, #0 .text:00014F00 BLE loc_14F60 .text:00014F04 LDR R2, [R11,#var_D0] .text:00014F08 LDR R1, [R2,#4] .text:00014F0C LDRB R3, [R1,#0x12C] .text:00014F10 AND R3, R3, #0x13 .text:00014F14 CMP R3, #0x12 .text:00014F18 BNE loc_15088 .text:00014F1C LDR R4, [R11,#arg_8] .text:00014F20 LDR R0, [R11,#var_80] .text:00014F24 CMP R4, #0 .text:00014F28 MOVNE R3, #0 .text:00014F2C MOVEQ R3, #1 .text:00014F30 CMP R0, R1 .text:00014F34 MOVEQ R3, #0 .text:00014F38 CMP R3, #0 .text:00014F3C BEQ loc_15088 .text:00014F40 BL add_dependency .text:00014F44 CMP R0, #0 .text:00014F48 BGE loc_15088 .text:00014F4C MOV R1, #0 .text:00014F50 STR R1, [R11,#arg_8] .text:00014F54 B loc_14A7C .text:00014F58 ; --------------------------------------------------------------------------- .text:00014F58 .text:00014F58 loc_14F58 ; CODE XREF: _dl_lookup_versioned_symbol+488j .text:00014F58 MOV R0, 0xFFFFFFFF .text:00014F5C B loc_14EFC .text:00014F60 ; --------------------------------------------------------------------------- .text:00014F60 .text:00014F60 loc_14F60 ; CODE XREF: _dl_lookup_versioned_symbol+4ACj .text:00014F60 BGE loc_15074 .text:00014F64 LDR R2, [R11,#var_8C] .text:00014F68 CMP R2, #0 .text:00014F6C BEQ loc_14F7C .text:00014F70 LDRB R3, [R2] .text:00014F74 CMP R3, #0 .text:00014F78 BNE loc_14F98 .text:00014F7C .text:00014F7C loc_14F7C ; CODE XREF: _dl_lookup_versioned_symbol+518j .text:00014F7C LDR R3, =_dl_argv .text:00014F80 LDR R2, [R3] .text:00014F84 LDR R1, [R2] .text:00014F88 LDR R7, =aMainProgram ; "<main program>" .text:00014F8C CMP R1, #0 .text:00014F90 MOVNE R7, R1 .text:00014F94 B loc_14F9C .text:00014F98 ; --------------------------------------------------------------------------- .text:00014F98 .text:00014F98 loc_14F98 ; CODE XREF: _dl_lookup_versioned_symbol+524j .text:00014F98 LDR R7, [R11,#var_8C] .text:00014F9C .text:00014F9C loc_14F9C ; CODE XREF: _dl_lookup_versioned_symbol+540j .text:00014F9C LDR R3, [R11,#var_7C] .text:00014FA0 STR R3, [R11,#var_64] .text:00014FA4 LDR R2, =aVersion ; ", version " .text:00014FA8 STR R2, [R11,#var_60] .text:00014FAC LDR R3, =aSymbol ; "symbol " .text:00014FB0 STR R3, [R11,#var_68] .text:00014FB4 LDR R4, [R11,#arg_0] .text:00014FB8 LDR R2, =aNotDefinedInFi ; " not defined in file " .text:00014FBC LDR R3, [R4] .text:00014FC0 STR R2, [R11,#var_58] .text:00014FC4 STR R3, [R11,#var_5C] .text:00014FC8 LDR R2, =aWithLinkTimeRe ; " with link time reference" .text:00014FCC LDR R3, [R4,#0xC] .text:00014FD0 STR R2, [R11,#var_50] .text:00014FD4 STR R3, [R11,#var_54] .text:00014FD8 LDR R2, =aNoVersionSymbo ; " (no version symbols)" .text:00014FDC LDR R3, =dword_565EC .text:00014FE0 CMN R0, #2 .text:00014FE4 MOVEQ R3, R2 .text:00014FE8 STR R3, [R11,#var_4C] .text:00014FEC SUB R12, R11, #-var_68 .text:00014FF0 LDMIA R12!, {R0-R3} .text:00014FF4 SUB LR, R11, #-var_48 .text:00014FF8 STMIA LR!, {R0-R3} .text:00014FFC MOV R5, #1 .text:00015000 SUB R6, R11, #-var_48 .text:00015004 LDMIA R12, {R0-R3} .text:00015008 MOV R4, #0 .text:0001500C STMIA LR, {R0-R3} .text:00015010 .text:00015010 loc_15010 ; CODE XREF: _dl_lookup_versioned_symbol+5D0j .text:00015010 LDR R0, [R6,R4,LSL#2] .text:00015014 ADD R4, R4, #1 .text:00015018 BL strlen .text:0001501C ADD R5, R5, R0 .text:00015020 CMP R4, #7 .text:00015024 BLS loc_15010 .text:00015028 ADD R3, R5, #3 .text:0001502C BIC R3, R3, #3 .text:00015030 RSB SP, R3, SP .text:00015034 ADD R5, SP, #0xD8+var_D0 .text:00015038 MOV R0, R5 .text:0001503C MOV R4, #0 .text:00015040 .text:00015040 loc_15040 ; CODE XREF: _dl_lookup_versioned_symbol+5FCj .text:00015040 LDR R1, [R6,R4,LSL#2] .text:00015044 ADD R4, R4, #1 .text:00015048 BL stpcpy .text:0001504C CMP R4, #7 .text:00015050 BLS loc_15040 .text:00015054 MOV R0, #0 .text:00015058 MOV R1, R7 .text:0001505C MOV R2, R5 .text:00015060 BL _dl_signal_cerror .text:00015064 MOV R0, #0 .text:00015068 LDR R1, [R11,#var_84] .text:0001506C STR R0, [R1] .text:00015070 B locret_15634 .text:00015074 ; --------------------------------------------------------------------------- .text:00015074 .text:00015074 loc_15074 ; CODE XREF: _dl_lookup_versioned_symbol:loc_14F60j .text:00015074 LDR R2, [R11,#var_94] .text:00015078 LDR R3, [R2,#4]! .text:0001507C CMP R3, #0 .text:00015080 STR R2, [R11,#var_94] .text:00015084 BNE loc_14BAC .text:00015088 .text:00015088 loc_15088 ; CODE XREF: _dl_lookup_versioned_symbol+154j .text:00015088 ; _dl_lookup_versioned_symbol+4C4j ... .text:00015088 LDR R3, [R11,#var_70] .text:0001508C CMP R3, #0 .text:00015090 BNE loc_15194 .text:00015094 LDR R4, [R11,#var_84] .text:00015098 LDR R3, [R4] .text:0001509C CMP R3, #0 .text:000150A0 BEQ loc_150B4 .text:000150A4 LDRB R3, [R3,#0xC] .text:000150A8 MOV R3, R3,LSR#4 .text:000150AC CMP R3, #2 .text:000150B0 BEQ loc_15180 .text:000150B4 .text:000150B4 loc_150B4 ; CODE XREF: _dl_lookup_versioned_symbol+64Cj .text:000150B4 LDR R0, [R11,#var_8C] .text:000150B8 CMP R0, #0 .text:000150BC BEQ loc_150CC .text:000150C0 LDRB R3, [R0] .text:000150C4 CMP R3, #0 .text:000150C8 BNE loc_150E8 .text:000150CC .text:000150CC loc_150CC ; CODE XREF: _dl_lookup_versioned_symbol+668j .text:000150CC LDR R3, =_dl_argv .text:000150D0 LDR R2, [R3] .text:000150D4 LDR R1, [R2] .text:000150D8 LDR R7, =aMainProgram ; "<main program>" .text:000150DC CMP R1, #0 .text:000150E0 MOVNE R7, R1 .text:000150E4 B loc_150EC .text:000150E8 ; --------------------------------------------------------------------------- .text:000150E8 .text:000150E8 loc_150E8 ; CODE XREF: _dl_lookup_versioned_symbol+674j .text:000150E8 LDR R7, [R11,#var_8C] .text:000150EC .text:000150EC loc_150EC ; CODE XREF: _dl_lookup_versioned_symbol+690j .text:000150EC LDR R1, [R11,#var_7C] .text:000150F0 STR R1, [R11,#var_54] .text:000150F4 LDR R3, =undefined_msg ; "undefined symbol: " .text:000150F8 STR R3, [R11,#var_58] .text:000150FC LDR R2, =aVersion ; ", version " .text:00015100 STR R2, [R11,#var_50] .text:00015104 LDR R2, [R11,#arg_0] .text:00015108 LDR R3, [R2] .text:0001510C STR R3, [R11,#var_4C] .text:00015110 MOV R5, #1 .text:00015114 MOV R4, #0 .text:00015118 SUB R12, R11, #-var_58 .text:0001511C SUB LR, R11, #-var_68 .text:00015120 LDMIA R12, {R0-R3} .text:00015124 MOV R6, LR .text:00015128 STMIA LR, {R0-R3} .text:0001512C .text:0001512C loc_1512C ; CODE XREF: _dl_lookup_versioned_symbol+6ECj .text:0001512C LDR R0, [R6,R4,LSL#2] .text:00015130 ADD R4, R4, #1 .text:00015134 BL strlen .text:00015138 ADD R5, R5, R0 .text:0001513C CMP R4, #3 .text:00015140 BLS loc_1512C .text:00015144 ADD R3, R5, #3 .text:00015148 BIC R3, R3, #3 .text:0001514C RSB SP, R3, SP .text:00015150 ADD R5, SP, #0xD8+var_D0 .text:00015154 MOV R0, R5 .text:00015158 MOV R4, #0 .text:0001515C .text:0001515C loc_1515C ; CODE XREF: _dl_lookup_versioned_symbol+718j .text:0001515C LDR R1, [R6,R4,LSL#2] .text:00015160 ADD R4, R4, #1 .text:00015164 BL stpcpy .text:00015168 CMP R4, #3 .text:0001516C BLS loc_1515C .text:00015170 MOV R0, #0 .text:00015174 MOV R1, R7 .text:00015178 MOV R2, R5 .text:0001517C BL _dl_signal_cerror .text:00015180 .text:00015180 loc_15180 ; CODE XREF: _dl_lookup_versioned_symbol+65Cj .text:00015180 MOV R3, #0 .text:00015184 LDR R4, [R11,#var_84] .text:00015188 MOV R0, R3 .text:0001518C STR R3, [R4] .text:00015190 B locret_15634 .text:00015194 ; --------------------------------------------------------------------------- .text:00015194 .text:00015194 loc_15194 ; CODE XREF: _dl_lookup_versioned_symbol+63Cj .text:00015194 LDR R0, [R11,#var_84] .text:00015198 LDR R3, [R0] .text:0001519C MOV R4, #0 .text:000151A0 CMP R3, R4 .text:000151A4 BEQ loc_151BC .text:000151A8 LDRB R3, [R3,#0xD] .text:000151AC AND R3, R3, #3 .text:000151B0 CMP R3, #3 .text:000151B4 MOVNE R4, #0 .text:000151B8 MOVEQ R4, #1 .text:000151BC .text:000151BC loc_151BC ; CODE XREF: _dl_lookup_versioned_symbol+750j .text:000151BC LDR R2, =_dl_debug_mask .text:000151C0 LDR R3, [R2] .text:000151C4 TST R3, #4 .text:000151C8 BEQ loc_15288 .text:000151CC LDR R1, [R11,#var_8C] .text:000151D0 CMP R1, #0 .text:000151D4 BEQ loc_151E4 .text:000151D8 LDRB R3, [R1] .text:000151DC CMP R3, #0 .text:000151E0 BNE loc_15200 .text:000151E4 .text:000151E4 loc_151E4 ; CODE XREF: _dl_lookup_versioned_symbol+780j .text:000151E4 LDR R3, =_dl_argv .text:000151E8 LDR R2, [R3] .text:000151EC LDR R1, [R2] .text:000151F0 LDR LR, =aMainProgram ; "<main program>" .text:000151F4 CMP R1, #0 .text:000151F8 MOVNE LR, R1 .text:000151FC B loc_15204 .text:00015200 ; --------------------------------------------------------------------------- .text:00015200 .text:00015200 loc_15200 ; CODE XREF: _dl_lookup_versioned_symbol+78Cj .text:00015200 LDR LR, [R11,#var_8C] .text:00015204 .text:00015204 loc_15204 ; CODE XREF: _dl_lookup_versioned_symbol+7A8j .text:00015204 LDR R2, [R11,#var_D0] .text:00015208 LDR R3, [R2,#4] .text:0001520C LDR R3, [R3,#4] .text:00015210 LDRB R2, [R3] .text:00015214 CMP R2, #0 .text:00015218 BEQ loc_1524C .text:0001521C MOV R2, R3 .text:00015220 B loc_15258 .text:00015220 ; --------------------------------------------------------------------------- .text:00015224 off_15224 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol:loc_14F7Cr .text:00015224 ; _dl_lookup_versioned_symbol:loc_150CCr ... .text:00015228 off_15228 DCD aMainProgram ; DATA XREF: _dl_lookup_versioned_symbol+534r .text:00015228 ; _dl_lookup_versioned_symbol+684r ... .text:00015228 ; "<main program>" .text:0001522C off_1522C DCD aVersion ; DATA XREF: _dl_lookup_versioned_symbol+550r .text:0001522C ; _dl_lookup_versioned_symbol+6A8r .text:0001522C ; ", version " .text:00015230 off_15230 DCD aSymbol ; DATA XREF: _dl_lookup_versioned_symbol+558r .text:00015230 ; "symbol " .text:00015234 off_15234 DCD aNotDefinedInFi ; DATA XREF: _dl_lookup_versioned_symbol+564r .text:00015234 ; " not defined in file " .text:00015238 off_15238 DCD aWithLinkTimeRe ; DATA XREF: _dl_lookup_versioned_symbol+574r .text:00015238 ; " with link time reference" .text:0001523C off_1523C DCD aNoVersionSymbo ; DATA XREF: _dl_lookup_versioned_symbol+584r .text:0001523C ; " (no version symbols)" .text:00015240 off_15240 DCD dword_565EC ; DATA XREF: _dl_lookup_versioned_symbol+588r .text:00015244 off_15244 DCD undefined_msg ; DATA XREF: _dl_lookup_versioned_symbol+6A0r .text:00015244 ; "undefined symbol: " .text:00015248 off_15248 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol:loc_151BCr .text:0001524C ; --------------------------------------------------------------------------- .text:0001524C .text:0001524C loc_1524C ; CODE XREF: _dl_lookup_versioned_symbol+7C4j .text:0001524C LDR R3, =_dl_argv .text:00015250 LDR R2, [R3] .text:00015254 LDR R2, [R2] .text:00015258 .text:00015258 loc_15258 ; CODE XREF: _dl_lookup_versioned_symbol+7CCj .text:00015258 LDR R3, [R11,#var_7C] .text:0001525C STR R3, [SP,#0xD8+var_D8] .text:00015260 LDR R0, [R11,#arg_0] .text:00015264 LDR R3, [R0] .text:00015268 STR R3, [SP,#0xD8+var_D4] .text:0001526C LDR R12, =aNormal ; "normal" .text:00015270 MOV R1, LR .text:00015274 LDR R3, =aProtected ; "protected" .text:00015278 CMP R4, #0 .text:0001527C LDR R0, =aBindingFileS_0 ; "binding file %s to %s: %s symbol `%s' ["... .text:00015280 MOVEQ R3, R12 .text:00015284 BL _dl_debug_printf .text:00015288 .text:00015288 loc_15288 ; CODE XREF: _dl_lookup_versioned_symbol+774j .text:00015288 CMP R4, #0 .text:0001528C BEQ loc_155E8 .text:00015290 SUB R2, R11, #-var_78 .text:00015294 MOV R1, #0 .text:00015298 MOV R0, #0 .text:0001529C STMIA R2, {R0,R1} .text:000152A0 LDR R1, [R11,#var_88] .text:000152A4 STR R1, [R11,#var_94] .text:000152A8 LDR R3, [R1] .text:000152AC CMP R3, #0 .text:000152B0 BEQ loc_155CC .text:000152B4 .text:000152B4 loc_152B4 ; CODE XREF: _dl_lookup_versioned_symbol+B74j .text:000152B4 LDR R2, [R11,#var_84] .text:000152B8 LDR R2, [R2] .text:000152BC STR R2, [R11,#var_B8] .text:000152C0 LDR R4, [R11,#var_94] .text:000152C4 LDR R3, [R4] .text:000152C8 LDR R0, [R3] .text:000152CC MOV R1, #0 .text:000152D0 STR R1, [R11,#var_BC] .text:000152D4 STR R0, [R11,#var_C0] .text:000152D8 LDR R3, [R3,#4] .text:000152DC STR R3, [R11,#var_C4] .text:000152E0 .text:000152E0 loc_152E0 ; CODE XREF: _dl_lookup_versioned_symbol+B54j .text:000152E0 LDR R2, =_dl_debug_mask .text:000152E4 LDR R3, [R2] .text:000152E8 LDR R4, [R11,#var_C0] .text:000152EC TST R3, #8 .text:000152F0 LDR R3, [R11,#var_BC] .text:000152F4 LDR R7, [R4,R3,LSL#2] .text:000152F8 BEQ loc_15320 .text:000152FC LDR R2, [R7,#4] .text:00015300 LDRB R3, [R2] .text:00015304 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00015308 CMP R3, #0 .text:0001530C LDREQ R3, =_dl_argv .text:00015310 LDREQ R2, [R3] .text:00015314 LDREQ R2, [R2] .text:00015318 LDR R1, [R11,#var_7C] .text:0001531C BL _dl_debug_printf .text:00015320 .text:00015320 loc_15320 ; CODE XREF: _dl_lookup_versioned_symbol+8A4j .text:00015320 LDR R1, [R7,#0x11C] .text:00015324 ADD R2, R7, #0x2C .text:00015328 LDMIA R2, {R2,R3} .text:0001532C LDR R3, [R3,#4] .text:00015330 STR R3, [R11,#var_C8] .text:00015334 LDR R2, [R2,#4] .text:00015338 STR R2, [R11,#var_CC] .text:0001533C LDR R0, [R11,#var_90] .text:00015340 LDR R9, [R7,#0x144] .text:00015344 BL __umodsi3 .text:00015348 LDR R3, [R7,#0x120] .text:0001534C LDR R10, [R3,R0,LSL#2] .text:00015350 CMP R10, #0 .text:00015354 BEQ loc_1551C .text:00015358 .text:00015358 loc_15358 ; CODE XREF: _dl_lookup_versioned_symbol+A74j .text:00015358 LDR R0, [R11,#var_C8] .text:0001535C MOV R2, R10,LSL#4 .text:00015360 ADD R8, R0, R2 .text:00015364 LDR R3, [R8,#4] .text:00015368 CMP R3, #0 .text:0001536C BEQ loc_154BC .text:00015370 LDR R3, [R8,#0xC] .text:00015374 MOVS R3, R3,LSR#16 .text:00015378 BEQ loc_154BC .text:0001537C LDRB R3, [R8,#0xC] .text:00015380 AND R3, R3, #0xF .text:00015384 CMP R3, #2 .text:00015388 BHI loc_154BC .text:0001538C LDR R1, [R11,#var_B8] .text:00015390 CMP R8, R1 .text:00015394 BEQ loc_153B4 .text:00015398 LDR R0, [R0,R2] .text:0001539C LDR R2, [R11,#var_CC] .text:000153A0 LDR R1, [R11,#var_7C] .text:000153A4 ADD R0, R2, R0 .text:000153A8 BL strcmp .text:000153AC CMP R0, #0 .text:000153B0 BNE loc_154BC .text:000153B4 .text:000153B4 loc_153B4 ; CODE XREF: _dl_lookup_versioned_symbol+940j .text:000153B4 CMP R9, #0 .text:000153B8 BNE loc_1543C .text:000153BC LDR R3, [R11,#arg_0] .text:000153C0 LDR R6, [R3,#0xC] .text:000153C4 CMP R6, #0 .text:000153C8 BEQ loc_154D0 .text:000153CC LDR R1, [R7,#4] .text:000153D0 MOV R0, R6 .text:000153D4 BL strcmp .text:000153D8 LDR R4, [R7,#0x14] .text:000153DC CMP R0, #0 .text:000153E0 MOVNE R5, #0 .text:000153E4 MOVEQ R5, #1 .text:000153E8 CMP R4, #0 .text:000153EC CMPNE R0, #0 .text:000153F0 BEQ loc_15420 .text:000153F4 .text:000153F4 loc_153F4 ; CODE XREF: _dl_lookup_versioned_symbol+9C8j .text:000153F4 LDR R1, [R4] .text:000153F8 MOV R0, R6 .text:000153FC BL strcmp .text:00015400 CMP R0, #0 .text:00015404 MOVEQ R5, #1 .text:00015408 LDRNE R4, [R4,#4] .text:0001540C CMP R4, #0 .text:00015410 EORNE R3, R5, #1 .text:00015414 MOVEQ R3, #0 .text:00015418 CMP R3, #0 .text:0001541C BNE loc_153F4 .text:00015420 .text:00015420 loc_15420 ; CODE XREF: _dl_lookup_versioned_symbol+99Cj .text:00015420 CMP R5, #0 .text:00015424 BEQ loc_154D0 .text:00015428 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:0001542C LDR R1, =aDoLookup_h ; "do-lookup.h" .text:00015430 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:00015434 MOV R2, #0x68 .text:00015438 BL __assert_fail .text:0001543C ; --------------------------------------------------------------------------- .text:0001543C .text:0001543C loc_1543C ; CODE XREF: _dl_lookup_versioned_symbol+964j .text:0001543C MOV R5, R10,LSL#1 .text:00015440 LDRB R2, [R5,R9] .text:00015444 ADD R6, R5, R9 .text:00015448 LDRB R3, [R6,#1] .text:0001544C LDR R12, [R7,#0x134] .text:00015450 ORR R2, R2, R3,LSL#8 .text:00015454 MOV R0, R2,LSL#17 .text:00015458 MOV R0, R0,LSR#17 .text:0001545C MOV R4, R0,LSL#4 .text:00015460 ADD R3, R4, R12 .text:00015464 LDR R1, [R3,#4] .text:00015468 LDR R3, [R11,#arg_0] .text:0001546C LDR R2, [R3,#4] .text:00015470 CMP R1, R2 .text:00015474 BNE loc_1548C .text:00015478 LDR R0, [R12,R0,LSL#4] .text:0001547C LDR R1, [R3] .text:00015480 BL strcmp .text:00015484 CMP R0, #0 .text:00015488 BEQ loc_154D0 .text:0001548C .text:0001548C loc_1548C ; CODE XREF: _dl_lookup_versioned_symbol+A20j .text:0001548C LDR R0, [R11,#arg_0] .text:00015490 LDR R3, [R0,#8] .text:00015494 CMP R3, #0 .text:00015498 BNE loc_154BC .text:0001549C LDR R3, [R7,#0x134] .text:000154A0 ADD R3, R4, R3 .text:000154A4 LDR R2, [R3,#4] .text:000154A8 CMP R2, #0 .text:000154AC BNE loc_154BC .text:000154B0 LDRB R3, [R6,#1] .text:000154B4 MOVS R3, R3,LSR#7 .text:000154B8 BEQ loc_154D0 .text:000154BC .text:000154BC loc_154BC ; CODE XREF: _dl_lookup_versioned_symbol+918j .text:000154BC ; _dl_lookup_versioned_symbol+924j ... .text:000154BC LDR R3, [R7,#0x124] .text:000154C0 LDR R10, [R3,R10,LSL#2] .text:000154C4 CMP R10, #0 .text:000154C8 BNE loc_15358 .text:000154CC B loc_1551C .text:000154D0 ; --------------------------------------------------------------------------- .text:000154D0 .text:000154D0 loc_154D0 ; CODE XREF: _dl_lookup_versioned_symbol+974j .text:000154D0 ; _dl_lookup_versioned_symbol+9D0j ... .text:000154D0 LDRB R3, [R8,#0xC] .text:000154D4 MOV R3, R3,LSR#4 .text:000154D8 CMP R3, #1 .text:000154DC BEQ loc_1550C .text:000154E0 CMP R3, #2 .text:000154E4 BNE loc_1551C .text:000154E8 LDR R3, =_dl_dynamic_weak .text:000154EC LDR R2, [R3] .text:000154F0 CMP R2, #0 .text:000154F4 BEQ loc_1550C .text:000154F8 LDR R3, [R11,#var_78] .text:000154FC CMP R3, #0 .text:00015500 STREQ R8, [R11,#var_78] .text:00015504 STREQ R7, [R11,#var_74] .text:00015508 B loc_1551C .text:0001550C ; --------------------------------------------------------------------------- .text:0001550C .text:0001550C loc_1550C ; CODE XREF: _dl_lookup_versioned_symbol+A88j .text:0001550C ; _dl_lookup_versioned_symbol+AA0j .text:0001550C STR R8, [R11,#var_78] .text:00015510 MOV R3, #1 .text:00015514 STR R7, [R11,#var_74] .text:00015518 B loc_155B0 .text:0001551C ; --------------------------------------------------------------------------- .text:0001551C .text:0001551C loc_1551C ; CODE XREF: _dl_lookup_versioned_symbol+900j .text:0001551C ; _dl_lookup_versioned_symbol+A78j ... .text:0001551C CMP R10, #0 .text:00015520 BNE loc_15594 .text:00015524 LDR R1, [R11,#arg_0] .text:00015528 LDR R6, [R1,#0xC] .text:0001552C CMP R6, #0 .text:00015530 BEQ loc_15594 .text:00015534 LDR R1, [R7,#4] .text:00015538 MOV R0, R6 .text:0001553C BL strcmp .text:00015540 LDR R4, [R7,#0x14] .text:00015544 CMP R0, #0 .text:00015548 MOVNE R5, #0 .text:0001554C MOVEQ R5, #1 .text:00015550 CMP R4, #0 .text:00015554 CMPNE R0, #0 .text:00015558 BEQ loc_15588 .text:0001555C .text:0001555C loc_1555C ; CODE XREF: _dl_lookup_versioned_symbol+B30j .text:0001555C LDR R1, [R4] .text:00015560 MOV R0, R6 .text:00015564 BL strcmp .text:00015568 CMP R0, #0 .text:0001556C MOVEQ R5, #1 .text:00015570 LDRNE R4, [R4,#4] .text:00015574 CMP R4, #0 .text:00015578 EORNE R3, R5, #1 .text:0001557C MOVEQ R3, #0 .text:00015580 CMP R3, #0 .text:00015584 BNE loc_1555C .text:00015588 .text:00015588 loc_15588 ; CODE XREF: _dl_lookup_versioned_symbol+B04j .text:00015588 CMP R5, #0 .text:0001558C MOVNE R3, 0xFFFFFFFF .text:00015590 BNE loc_155B0 .text:00015594 .text:00015594 loc_15594 ; CODE XREF: _dl_lookup_versioned_symbol+ACCj .text:00015594 ; _dl_lookup_versioned_symbol+ADCj .text:00015594 LDR R2, [R11,#var_BC] .text:00015598 LDR R3, [R11,#var_C4] .text:0001559C ADD R2, R2, #1 .text:000155A0 CMP R2, R3 .text:000155A4 STR R2, [R11,#var_BC] .text:000155A8 BCC loc_152E0 .text:000155AC MOV R3, #0 .text:000155B0 .text:000155B0 loc_155B0 ; CODE XREF: _dl_lookup_versioned_symbol+AC4j .text:000155B0 ; _dl_lookup_versioned_symbol+B3Cj .text:000155B0 CMP R3, #0 .text:000155B4 BNE loc_155CC .text:000155B8 LDR R4, [R11,#var_94] .text:000155BC LDR R3, [R4,#4]! .text:000155C0 CMP R3, #0 .text:000155C4 STR R4, [R11,#var_94] .text:000155C8 BNE loc_152B4 .text:000155CC .text:000155CC loc_155CC ; CODE XREF: _dl_lookup_versioned_symbol+85Cj .text:000155CC ; _dl_lookup_versioned_symbol+B60j .text:000155CC LDR R3, [R11,#var_78] .text:000155D0 CMP R3, #0 .text:000155D4 BEQ loc_155E8 .text:000155D8 LDR R3, [R11,#var_74] .text:000155DC LDR R0, [R11,#var_80] .text:000155E0 CMP R3, R0 .text:000155E4 BNE loc_1562C .text:000155E8 .text:000155E8 loc_155E8 ; CODE XREF: _dl_lookup_versioned_symbol+838j .text:000155E8 ; _dl_lookup_versioned_symbol+B80j .text:000155E8 LDR R3, [R11,#var_70] .text:000155EC LDR R1, [R11,#var_84] .text:000155F0 STR R3, [R1] .text:000155F4 LDR R3, [R11,#var_D0] .text:000155F8 LDR R2, [R3,#4] .text:000155FC LDR R0, [R2] .text:00015600 B locret_15634 .text:00015600 ; --------------------------------------------------------------------------- .text:00015604 off_15604 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol:loc_1524Cr .text:00015604 ; _dl_lookup_versioned_symbol+8B8r .text:00015608 off_15608 DCD aNormal ; DATA XREF: _dl_lookup_versioned_symbol+818r .text:00015608 ; "normal" .text:0001560C off_1560C DCD aProtected ; DATA XREF: _dl_lookup_versioned_symbol+820r .text:0001560C ; "protected" .text:00015610 off_15610 DCD aBindingFileS_0 ; DATA XREF: _dl_lookup_versioned_symbol+828r .text:00015610 ; "binding file %s to %s: %s symbol `%s' ["... .text:00015614 off_15614 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol:loc_152E0r .text:00015618 off_15618 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol+8B0r .text:00015618 ; "symbol=%s; lookup in file=%s\n" .text:0001561C off_1561C DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol+9D4r .text:0001561C ; "version->filename == ((void *)0) || ! _"... .text:00015620 off_15620 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol+9D8r .text:00015620 ; "do-lookup.h" .text:00015624 off_15624 DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol+9DCr .text:00015624 ; "do_lookup_versioned" .text:00015628 off_15628 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol+A94r .text:0001562C ; --------------------------------------------------------------------------- .text:0001562C .text:0001562C loc_1562C ; CODE XREF: _dl_lookup_versioned_symbol+B90j .text:0001562C LDR R4, [R11,#var_80] .text:00015630 LDR R0, [R4] .text:00015634 .text:00015634 locret_15634 ; CODE XREF: _dl_lookup_versioned_symbol+61Cj .text:00015634 ; _dl_lookup_versioned_symbol+73Cj ... .text:00015634 LDMDB R11, {R4-R11,SP,PC} .text:00015634 ; End of function _dl_lookup_versioned_symbol .text:00015634 .text:00015638 .text:00015638 ; =============== S U B R O U T I N E ======================================= .text:00015638 .text:00015638 ; Attributes: bp-based frame .text:00015638 .text:00015638 EXPORT _dl_lookup_versioned_symbol_skip .text:00015638 _dl_lookup_versioned_symbol_skip .text:00015638 .text:00015638 var_C4 = -0xC4 .text:00015638 var_C0 = -0xC0 .text:00015638 var_BC = -0xBC .text:00015638 var_B8 = -0xB8 .text:00015638 var_B4 = -0xB4 .text:00015638 var_B0 = -0xB0 .text:00015638 var_AC = -0xAC .text:00015638 var_A8 = -0xA8 .text:00015638 var_A4 = -0xA4 .text:00015638 var_A0 = -0xA0 .text:00015638 var_9C = -0x9C .text:00015638 var_98 = -0x98 .text:00015638 var_94 = -0x94 .text:00015638 var_90 = -0x90 .text:00015638 var_8C = -0x8C .text:00015638 var_88 = -0x88 .text:00015638 var_84 = -0x84 .text:00015638 var_80 = -0x80 .text:00015638 var_7C = -0x7C .text:00015638 var_78 = -0x78 .text:00015638 var_74 = -0x74 .text:00015638 var_70 = -0x70 .text:00015638 var_6C = -0x6C .text:00015638 var_68 = -0x68 .text:00015638 var_64 = -0x64 .text:00015638 var_60 = -0x60 .text:00015638 var_5C = -0x5C .text:00015638 var_58 = -0x58 .text:00015638 var_54 = -0x54 .text:00015638 var_50 = -0x50 .text:00015638 var_4C = -0x4C .text:00015638 var_48 = -0x48 .text:00015638 var_44 = -0x44 .text:00015638 var_40 = -0x40 .text:00015638 var_3C = -0x3C .text:00015638 var_38 = -0x38 .text:00015638 var_34 = -0x34 .text:00015638 var_30 = -0x30 .text:00015638 var_2C = -0x2C .text:00015638 arg_0 = 4 .text:00015638 arg_4 = 8 .text:00015638 .text:00015638 MOV R12, SP .text:0001563C STMFD SP!, {R4-R12,LR,PC} .text:00015640 SUB R11, R12, #4 .text:00015644 MOV R12, #0 .text:00015648 SUB SP, SP, #0x9C .text:0001564C STR R12, [R11,#var_48] .text:00015650 STR R0, [R11,#var_3C] .text:00015654 STR R2, [R11,#var_44] .text:00015658 CMP R1, #0 .text:0001565C MOV R0, R3 .text:00015660 STR R1, [R11,#var_40] .text:00015664 LDRNE LR, [R1,#4] .text:00015668 STRNE LR, [R11,#var_48] .text:0001566C LDR R1, [R11,#var_3C] .text:00015670 LDR R12, =_dl_num_relocations .text:00015674 LDRB R3, [R1] .text:00015678 MOV R2, #0 .text:0001567C STR R2, [R11,#var_4C] .text:00015680 CMP R3, R2 .text:00015684 BEQ loc_15728 .text:00015688 LDRB R3, [R1,#1] .text:0001568C LDRB LR, [R1],#1 .text:00015690 CMP R3, R2 .text:00015694 STR LR, [R11,#var_4C] .text:00015698 BEQ loc_15728 .text:0001569C LDR R3, [R11,#var_3C] .text:000156A0 LDRB R2, [R3,#1] .text:000156A4 LDRB R3, [R1,#1]! .text:000156A8 ADD LR, R2, LR,LSL#4 .text:000156AC CMP R3, #0 .text:000156B0 STR LR, [R11,#var_4C] .text:000156B4 BEQ loc_15728 .text:000156B8 LDRB R2, [R1] .text:000156BC LDRB R3, [R1,#1]! .text:000156C0 ADD LR, R2, LR,LSL#4 .text:000156C4 CMP R3, #0 .text:000156C8 STR LR, [R11,#var_4C] .text:000156CC BEQ loc_15728 .text:000156D0 LDRB R2, [R1] .text:000156D4 LDRB R3, [R1,#1]! .text:000156D8 ADD LR, R2, LR,LSL#4 .text:000156DC CMP R3, #0 .text:000156E0 STR LR, [R11,#var_4C] .text:000156E4 BEQ loc_15728 .text:000156E8 LDRB R2, [R1] .text:000156EC LDRB R3, [R1,#1]! .text:000156F0 ADD LR, R2, LR,LSL#4 .text:000156F4 CMP R3, #0 .text:000156F8 STR LR, [R11,#var_4C] .text:000156FC BEQ loc_15728 .text:00015700 .text:00015700 loc_15700 ; CODE XREF: _dl_lookup_versioned_symbol_skip+ECj .text:00015700 LDRB R3, [R1] .text:00015704 LDR LR, [R11,#var_4C] .text:00015708 ADD LR, R3, LR,LSL#4 .text:0001570C AND R2, LR, #0xF0000000 .text:00015710 EOR LR, LR, R2 .text:00015714 LDRB R3, [R1,#1]! .text:00015718 EOR LR, LR, R2,LSR#24 .text:0001571C STR LR, [R11,#var_4C] .text:00015720 CMP R3, #0 .text:00015724 BNE loc_15700 .text:00015728 .text:00015728 loc_15728 ; CODE XREF: _dl_lookup_versioned_symbol_skip+4Cj .text:00015728 ; _dl_lookup_versioned_symbol_skip+60j ... .text:00015728 MOV R3, #0 .text:0001572C MOV R2, #0 .text:00015730 SUB LR, R11, #-var_30 .text:00015734 STMIA LR, {R2,R3} .text:00015738 LDR R3, [R12] .text:0001573C ADD R3, R3, #1 .text:00015740 STR R3, [R12] .text:00015744 STR R0, [R11,#var_50] .text:00015748 LDR R3, [R0] .text:0001574C LDR R2, [R3,#8] .text:00015750 MOV R1, #0 .text:00015754 STR R1, [R11,#var_54] .text:00015758 LDR R3, [R2,R1,LSL#2] .text:0001575C LDR R2, [R11,#arg_4] .text:00015760 CMP R3, R2 .text:00015764 BEQ loc_157B4 .text:00015768 .text:00015768 loc_15768 ; CODE XREF: _dl_lookup_versioned_symbol_skip+178j .text:00015768 LDR R2, [R0] .text:0001576C LDR R12, [R11,#var_54] .text:00015770 LDR R3, [R2,#0xC] .text:00015774 CMP R12, R3 .text:00015778 BCC loc_15794 .text:0001577C LDR R0, =aIScopeR_ndupli ; "i < (*scope)->r_nduplist" .text:00015780 LDR R1, =aDlLookup_c ; "dl-lookup.c" .text:00015784 MOV R2, #0x1F8 .text:00015788 LDR R3, =a_dl_lookup_ver ; "_dl_lookup_versioned_symbol_skip" .text:0001578C ADD R2, R2, #2 .text:00015790 BL __assert_fail .text:00015794 ; --------------------------------------------------------------------------- .text:00015794 .text:00015794 loc_15794 ; CODE XREF: _dl_lookup_versioned_symbol_skip+140j .text:00015794 LDR LR, [R11,#var_54] .text:00015798 LDR R2, [R2,#8] .text:0001579C ADD LR, LR, #1 .text:000157A0 STR LR, [R11,#var_54] .text:000157A4 LDR R1, [R11,#arg_4] .text:000157A8 LDR R3, [R2,LR,LSL#2] .text:000157AC CMP R3, R1 .text:000157B0 BNE loc_15768 .text:000157B4 .text:000157B4 loc_157B4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+12Cj .text:000157B4 LDR R3, [R0] .text:000157B8 LDR R12, [R11,#var_54] .text:000157BC LDR R2, [R3,#4] .text:000157C0 CMP R12, R2 .text:000157C4 STR R2, [R11,#var_58] .text:000157C8 BCS loc_15AF4 .text:000157CC SUB LR, R11, #-var_30 .text:000157D0 STR LR, [R11,#var_60] .text:000157D4 LDR R0, [R11,#var_44] .text:000157D8 LDR R0, [R0] .text:000157DC STR R12, [R11,#var_64] .text:000157E0 STR R0, [R11,#var_5C] .text:000157E4 LDR R3, [R3] .text:000157E8 STR R3, [R11,#var_68] .text:000157EC .text:000157EC loc_157EC ; CODE XREF: _dl_lookup_versioned_symbol_skip+4B4j .text:000157EC LDR R1, [R11,#var_64] .text:000157F0 LDR R2, [R11,#var_68] .text:000157F4 LDR R12, [R11,#arg_4] .text:000157F8 LDR R7, [R2,R1,LSL#2] .text:000157FC CMP R7, R12 .text:00015800 MOVNE R3, #0 .text:00015804 MOVEQ R3, #1 .text:00015808 CMP R12, #0 .text:0001580C MOVEQ R3, #0 .text:00015810 CMP R3, #0 .text:00015814 BNE loc_15AD8 .text:00015818 LDR R3, =_dl_debug_mask .text:0001581C LDR R2, [R3] .text:00015820 TST R2, #8 .text:00015824 BEQ loc_1584C .text:00015828 LDR R2, [R7,#4] .text:0001582C LDRB R3, [R2] .text:00015830 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00015834 CMP R3, #0 .text:00015838 LDREQ R3, =_dl_argv .text:0001583C LDREQ R2, [R3] .text:00015840 LDREQ R2, [R2] .text:00015844 LDR R1, [R11,#var_3C] .text:00015848 BL _dl_debug_printf .text:0001584C .text:0001584C loc_1584C ; CODE XREF: _dl_lookup_versioned_symbol_skip+1ECj .text:0001584C LDR R1, [R7,#0x11C] .text:00015850 ADD R2, R7, #0x2C .text:00015854 LDMIA R2, {R2,R3} .text:00015858 LDR R3, [R3,#4] .text:0001585C STR R3, [R11,#var_6C] .text:00015860 LDR R2, [R2,#4] .text:00015864 STR R2, [R11,#var_70] .text:00015868 LDR R0, [R11,#var_4C] .text:0001586C LDR R9, [R7,#0x144] .text:00015870 BL __umodsi3 .text:00015874 LDR R3, [R7,#0x120] .text:00015878 LDR R8, [R3,R0,LSL#2] .text:0001587C CMP R8, #0 .text:00015880 BEQ loc_15A64 .text:00015884 .text:00015884 loc_15884 ; CODE XREF: _dl_lookup_versioned_symbol_skip+3B0j .text:00015884 LDR LR, [R11,#var_6C] .text:00015888 MOV R2, R8,LSL#4 .text:0001588C ADD R10, LR, R2 .text:00015890 LDR R3, [R10,#4] .text:00015894 CMP R3, #0 .text:00015898 BEQ loc_159DC .text:0001589C LDRB R3, [R10,#0xC] .text:000158A0 AND R3, R3, #0xF .text:000158A4 CMP R3, #2 .text:000158A8 BHI loc_159DC .text:000158AC LDR R0, [R11,#var_5C] .text:000158B0 CMP R10, R0 .text:000158B4 BEQ loc_158D4 .text:000158B8 LDR R0, [LR,R2] .text:000158BC LDR R2, [R11,#var_70] .text:000158C0 LDR R1, [R11,#var_3C] .text:000158C4 ADD R0, R2, R0 .text:000158C8 BL strcmp .text:000158CC CMP R0, #0 .text:000158D0 BNE loc_159DC .text:000158D4 .text:000158D4 loc_158D4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+27Cj .text:000158D4 CMP R9, #0 .text:000158D8 BNE loc_1595C .text:000158DC LDR R3, [R11,#arg_0] .text:000158E0 LDR R6, [R3,#0xC] .text:000158E4 CMP R6, #0 .text:000158E8 BEQ loc_159F0 .text:000158EC LDR R1, [R7,#4] .text:000158F0 MOV R0, R6 .text:000158F4 BL strcmp .text:000158F8 LDR R4, [R7,#0x14] .text:000158FC CMP R0, #0 .text:00015900 MOVNE R5, #0 .text:00015904 MOVEQ R5, #1 .text:00015908 CMP R4, #0 .text:0001590C CMPNE R0, #0 .text:00015910 BEQ loc_15940 .text:00015914 .text:00015914 loc_15914 ; CODE XREF: _dl_lookup_versioned_symbol_skip+304j .text:00015914 LDR R1, [R4] .text:00015918 MOV R0, R6 .text:0001591C BL strcmp .text:00015920 CMP R0, #0 .text:00015924 MOVEQ R5, #1 .text:00015928 LDRNE R4, [R4,#4] .text:0001592C CMP R4, #0 .text:00015930 EORNE R3, R5, #1 .text:00015934 MOVEQ R3, #0 .text:00015938 CMP R3, #0 .text:0001593C BNE loc_15914 .text:00015940 .text:00015940 loc_15940 ; CODE XREF: _dl_lookup_versioned_symbol_skip+2D8j .text:00015940 CMP R5, #0 .text:00015944 BEQ loc_159F0 .text:00015948 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:0001594C LDR R1, =aDoLookup_h ; "do-lookup.h" .text:00015950 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:00015954 MOV R2, #0x68 .text:00015958 BL __assert_fail .text:0001595C ; --------------------------------------------------------------------------- .text:0001595C .text:0001595C loc_1595C ; CODE XREF: _dl_lookup_versioned_symbol_skip+2A0j .text:0001595C MOV R5, R8,LSL#1 .text:00015960 LDRB R2, [R5,R9] .text:00015964 ADD R6, R5, R9 .text:00015968 LDRB R3, [R6,#1] .text:0001596C LDR R12, [R7,#0x134] .text:00015970 LDR LR, [R11,#arg_0] .text:00015974 ORR R2, R2, R3,LSL#8 .text:00015978 MOV R0, R2,LSL#17 .text:0001597C MOV R0, R0,LSR#17 .text:00015980 MOV R4, R0,LSL#4 .text:00015984 ADD R3, R4, R12 .text:00015988 LDR R1, [R3,#4] .text:0001598C LDR R2, [LR,#4] .text:00015990 CMP R1, R2 .text:00015994 BNE loc_159AC .text:00015998 LDR R0, [R12,R0,LSL#4] .text:0001599C LDR R1, [LR] .text:000159A0 BL strcmp .text:000159A4 CMP R0, #0 .text:000159A8 BEQ loc_159F0 .text:000159AC .text:000159AC loc_159AC ; CODE XREF: _dl_lookup_versioned_symbol_skip+35Cj .text:000159AC LDR R0, [R11,#arg_0] .text:000159B0 LDR R3, [R0,#8] .text:000159B4 CMP R3, #0 .text:000159B8 BNE loc_159DC .text:000159BC LDR R3, [R7,#0x134] .text:000159C0 ADD R3, R4, R3 .text:000159C4 LDR R2, [R3,#4] .text:000159C8 CMP R2, #0 .text:000159CC BNE loc_159DC .text:000159D0 LDRB R3, [R6,#1] .text:000159D4 MOVS R3, R3,LSR#7 .text:000159D8 BEQ loc_159F0 .text:000159DC .text:000159DC loc_159DC ; CODE XREF: _dl_lookup_versioned_symbol_skip+260j .text:000159DC ; _dl_lookup_versioned_symbol_skip+270j ... .text:000159DC LDR R3, [R7,#0x124] .text:000159E0 LDR R8, [R3,R8,LSL#2] .text:000159E4 CMP R8, #0 .text:000159E8 BNE loc_15884 .text:000159EC B loc_15A64 .text:000159F0 ; --------------------------------------------------------------------------- .text:000159F0 .text:000159F0 loc_159F0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+2B0j .text:000159F0 ; _dl_lookup_versioned_symbol_skip+30Cj ... .text:000159F0 LDRB R3, [R10,#0xC] .text:000159F4 MOV R3, R3,LSR#4 .text:000159F8 CMP R3, #1 .text:000159FC BEQ loc_15A30 .text:00015A00 CMP R3, #2 .text:00015A04 BNE loc_15A64 .text:00015A08 LDR R3, =_dl_dynamic_weak .text:00015A0C LDR R2, [R3] .text:00015A10 CMP R2, #0 .text:00015A14 BEQ loc_15A30 .text:00015A18 LDR R1, [R11,#var_60] .text:00015A1C LDR R3, [R1] .text:00015A20 CMP R3, #0 .text:00015A24 STREQ R10, [R1] .text:00015A28 STREQ R7, [R1,#4] .text:00015A2C B loc_15A64 .text:00015A30 ; --------------------------------------------------------------------------- .text:00015A30 .text:00015A30 loc_15A30 ; CODE XREF: _dl_lookup_versioned_symbol_skip+3C4j .text:00015A30 ; _dl_lookup_versioned_symbol_skip+3DCj .text:00015A30 LDR R2, [R11,#var_60] .text:00015A34 B loc_15D80 .text:00015A34 ; --------------------------------------------------------------------------- .text:00015A38 off_15A38 DCD _dl_num_relocations ; DATA XREF: _dl_lookup_versioned_symbol_skip+38r .text:00015A3C off_15A3C DCD aIScopeR_ndupli ; DATA XREF: _dl_lookup_versioned_symbol_skip+144r .text:00015A3C ; "i < (*scope)->r_nduplist" .text:00015A40 off_15A40 DCD aDlLookup_c ; DATA XREF: _dl_lookup_versioned_symbol_skip+148r .text:00015A40 ; "dl-lookup.c" .text:00015A44 off_15A44 DCD a_dl_lookup_ver ; DATA XREF: _dl_lookup_versioned_symbol_skip+150r .text:00015A44 ; "_dl_lookup_versioned_symbol_skip" .text:00015A48 off_15A48 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol_skip+1E0r .text:00015A4C off_15A4C DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol_skip+1F8r .text:00015A4C ; "symbol=%s; lookup in file=%s\n" .text:00015A50 off_15A50 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol_skip+200r .text:00015A54 off_15A54 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol_skip+310r .text:00015A54 ; "version->filename == ((void *)0) || ! _"... .text:00015A58 off_15A58 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol_skip+314r .text:00015A58 ; "do-lookup.h" .text:00015A5C off_15A5C DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol_skip+318r .text:00015A5C ; "do_lookup_versioned" .text:00015A60 off_15A60 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol_skip+3D0r .text:00015A64 ; --------------------------------------------------------------------------- .text:00015A64 .text:00015A64 loc_15A64 ; CODE XREF: _dl_lookup_versioned_symbol_skip+248j .text:00015A64 ; _dl_lookup_versioned_symbol_skip+3B4j ... .text:00015A64 CMP R8, #0 .text:00015A68 BNE loc_15AD8 .text:00015A6C LDR R3, [R11,#arg_0] .text:00015A70 LDR R6, [R3,#0xC] .text:00015A74 CMP R6, #0 .text:00015A78 BEQ loc_15AD8 .text:00015A7C LDR R1, [R7,#4] .text:00015A80 MOV R0, R6 .text:00015A84 BL strcmp .text:00015A88 LDR R4, [R7,#0x14] .text:00015A8C CMP R0, #0 .text:00015A90 MOVNE R5, #0 .text:00015A94 MOVEQ R5, #1 .text:00015A98 CMP R4, #0 .text:00015A9C CMPNE R0, #0 .text:00015AA0 BEQ loc_15AD0 .text:00015AA4 .text:00015AA4 loc_15AA4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+494j .text:00015AA4 LDR R1, [R4] .text:00015AA8 MOV R0, R6 .text:00015AAC BL strcmp .text:00015AB0 CMP R0, #0 .text:00015AB4 MOVEQ R5, #1 .text:00015AB8 LDRNE R4, [R4,#4] .text:00015ABC CMP R4, #0 .text:00015AC0 EORNE R3, R5, #1 .text:00015AC4 MOVEQ R3, #0 .text:00015AC8 CMP R3, #0 .text:00015ACC BNE loc_15AA4 .text:00015AD0 .text:00015AD0 loc_15AD0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+468j .text:00015AD0 CMP R5, #0 .text:00015AD4 BNE loc_15E04 .text:00015AD8 .text:00015AD8 loc_15AD8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+1DCj .text:00015AD8 ; _dl_lookup_versioned_symbol_skip+430j ... .text:00015AD8 LDR R12, [R11,#var_64] .text:00015ADC LDR LR, [R11,#var_58] .text:00015AE0 ADD R12, R12, #1 .text:00015AE4 CMP R12, LR .text:00015AE8 STR R12, [R11,#var_64] .text:00015AEC BCC loc_157EC .text:00015AF0 B loc_15E24 .text:00015AF4 ; --------------------------------------------------------------------------- .text:00015AF4 .text:00015AF4 loc_15AF4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+190j .text:00015AF4 ; _dl_lookup_versioned_symbol_skip+7F4j .text:00015AF4 LDR R0, [R11,#var_50] .text:00015AF8 LDR R3, [R0,#4]! .text:00015AFC CMP R3, #0 .text:00015B00 STR R0, [R11,#var_50] .text:00015B04 BEQ loc_15E30 .text:00015B08 LDR R1, [R11,#var_44] .text:00015B0C LDR R1, [R1] .text:00015B10 SUB R2, R11, #-var_30 .text:00015B14 STR R2, [R11,#var_78] .text:00015B18 STR R1, [R11,#var_74] .text:00015B1C LDR R12, [R3] .text:00015B20 MOV LR, #0 .text:00015B24 STR LR, [R11,#var_7C] .text:00015B28 STR R12, [R11,#var_80] .text:00015B2C LDR R3, [R3,#4] .text:00015B30 STR R3, [R11,#var_84] .text:00015B34 .text:00015B34 loc_15B34 ; CODE XREF: _dl_lookup_versioned_symbol_skip+7E8j .text:00015B34 LDR R0, [R11,#var_7C] .text:00015B38 LDR R1, [R11,#var_80] .text:00015B3C LDR R2, [R11,#arg_4] .text:00015B40 LDR R7, [R1,R0,LSL#2] .text:00015B44 CMP R7, R2 .text:00015B48 MOVNE R3, #0 .text:00015B4C MOVEQ R3, #1 .text:00015B50 CMP R2, #0 .text:00015B54 MOVEQ R3, #0 .text:00015B58 CMP R3, #0 .text:00015B5C BNE loc_15E0C .text:00015B60 LDR R3, =_dl_debug_mask .text:00015B64 LDR R2, [R3] .text:00015B68 TST R2, #8 .text:00015B6C BEQ loc_15B94 .text:00015B70 LDR R2, [R7,#4] .text:00015B74 LDRB R3, [R2] .text:00015B78 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00015B7C CMP R3, #0 .text:00015B80 LDREQ R3, =_dl_argv .text:00015B84 LDREQ R2, [R3] .text:00015B88 LDREQ R2, [R2] .text:00015B8C LDR R1, [R11,#var_3C] .text:00015B90 BL _dl_debug_printf .text:00015B94 .text:00015B94 loc_15B94 ; CODE XREF: _dl_lookup_versioned_symbol_skip+534j .text:00015B94 LDR R1, [R7,#0x11C] .text:00015B98 ADD R2, R7, #0x2C .text:00015B9C LDMIA R2, {R2,R3} .text:00015BA0 LDR R3, [R3,#4] .text:00015BA4 STR R3, [R11,#var_88] .text:00015BA8 LDR R2, [R2,#4] .text:00015BAC STR R2, [R11,#var_8C] .text:00015BB0 LDR R0, [R11,#var_4C] .text:00015BB4 LDR R9, [R7,#0x144] .text:00015BB8 BL __umodsi3 .text:00015BBC LDR R3, [R7,#0x120] .text:00015BC0 LDR R8, [R3,R0,LSL#2] .text:00015BC4 CMP R8, #0 .text:00015BC8 BEQ loc_15D90 .text:00015BCC .text:00015BCC loc_15BCC ; CODE XREF: _dl_lookup_versioned_symbol_skip+6FCj .text:00015BCC LDR R3, [R11,#var_88] .text:00015BD0 MOV R2, R8,LSL#4 .text:00015BD4 ADD R10, R3, R2 .text:00015BD8 LDR R3, [R10,#4] .text:00015BDC CMP R3, #0 .text:00015BE0 BEQ loc_15D28 .text:00015BE4 LDRB R3, [R10,#0xC] .text:00015BE8 AND R3, R3, #0xF .text:00015BEC CMP R3, #2 .text:00015BF0 BHI loc_15D28 .text:00015BF4 LDR R12, [R11,#var_74] .text:00015BF8 CMP R10, R12 .text:00015BFC BEQ loc_15C20 .text:00015C00 LDR LR, [R11,#var_88] .text:00015C04 LDR R0, [LR,R2] .text:00015C08 LDR R2, [R11,#var_8C] .text:00015C0C LDR R1, [R11,#var_3C] .text:00015C10 ADD R0, R2, R0 .text:00015C14 BL strcmp .text:00015C18 CMP R0, #0 .text:00015C1C BNE loc_15D28 .text:00015C20 .text:00015C20 loc_15C20 ; CODE XREF: _dl_lookup_versioned_symbol_skip+5C4j .text:00015C20 CMP R9, #0 .text:00015C24 BNE loc_15CA8 .text:00015C28 LDR R3, [R11,#arg_0] .text:00015C2C LDR R6, [R3,#0xC] .text:00015C30 CMP R6, #0 .text:00015C34 BEQ loc_15D3C .text:00015C38 LDR R1, [R7,#4] .text:00015C3C MOV R0, R6 .text:00015C40 BL strcmp .text:00015C44 LDR R4, [R7,#0x14] .text:00015C48 CMP R0, #0 .text:00015C4C MOVNE R5, #0 .text:00015C50 MOVEQ R5, #1 .text:00015C54 CMP R4, #0 .text:00015C58 CMPNE R0, #0 .text:00015C5C BEQ loc_15C8C .text:00015C60 .text:00015C60 loc_15C60 ; CODE XREF: _dl_lookup_versioned_symbol_skip+650j .text:00015C60 LDR R1, [R4] .text:00015C64 MOV R0, R6 .text:00015C68 BL strcmp .text:00015C6C CMP R0, #0 .text:00015C70 MOVEQ R5, #1 .text:00015C74 LDRNE R4, [R4,#4] .text:00015C78 CMP R4, #0 .text:00015C7C EORNE R3, R5, #1 .text:00015C80 MOVEQ R3, #0 .text:00015C84 CMP R3, #0 .text:00015C88 BNE loc_15C60 .text:00015C8C .text:00015C8C loc_15C8C ; CODE XREF: _dl_lookup_versioned_symbol_skip+624j .text:00015C8C CMP R5, #0 .text:00015C90 BEQ loc_15D3C .text:00015C94 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:00015C98 LDR R1, =aDoLookup_h ; "do-lookup.h" .text:00015C9C LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:00015CA0 MOV R2, #0x68 .text:00015CA4 BL __assert_fail .text:00015CA8 ; --------------------------------------------------------------------------- .text:00015CA8 .text:00015CA8 loc_15CA8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+5ECj .text:00015CA8 MOV R5, R8,LSL#1 .text:00015CAC LDRB R2, [R5,R9] .text:00015CB0 ADD R6, R5, R9 .text:00015CB4 LDRB R3, [R6,#1] .text:00015CB8 LDR R12, [R7,#0x134] .text:00015CBC LDR LR, [R11,#arg_0] .text:00015CC0 ORR R2, R2, R3,LSL#8 .text:00015CC4 MOV R0, R2,LSL#17 .text:00015CC8 MOV R0, R0,LSR#17 .text:00015CCC MOV R4, R0,LSL#4 .text:00015CD0 ADD R3, R4, R12 .text:00015CD4 LDR R1, [R3,#4] .text:00015CD8 LDR R2, [LR,#4] .text:00015CDC CMP R1, R2 .text:00015CE0 BNE loc_15CF8 .text:00015CE4 LDR R0, [R12,R0,LSL#4] .text:00015CE8 LDR R1, [LR] .text:00015CEC BL strcmp .text:00015CF0 CMP R0, #0 .text:00015CF4 BEQ loc_15D3C .text:00015CF8 .text:00015CF8 loc_15CF8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+6A8j .text:00015CF8 LDR R0, [R11,#arg_0] .text:00015CFC LDR R3, [R0,#8] .text:00015D00 CMP R3, #0 .text:00015D04 BNE loc_15D28 .text:00015D08 LDR R3, [R7,#0x134] .text:00015D0C ADD R3, R4, R3 .text:00015D10 LDR R2, [R3,#4] .text:00015D14 CMP R2, #0 .text:00015D18 BNE loc_15D28 .text:00015D1C LDRB R3, [R6,#1] .text:00015D20 MOVS R3, R3,LSR#7 .text:00015D24 BEQ loc_15D3C .text:00015D28 .text:00015D28 loc_15D28 ; CODE XREF: _dl_lookup_versioned_symbol_skip+5A8j .text:00015D28 ; _dl_lookup_versioned_symbol_skip+5B8j ... .text:00015D28 LDR R3, [R7,#0x124] .text:00015D2C LDR R8, [R3,R8,LSL#2] .text:00015D30 CMP R8, #0 .text:00015D34 BNE loc_15BCC .text:00015D38 B loc_15D90 .text:00015D3C ; --------------------------------------------------------------------------- .text:00015D3C .text:00015D3C loc_15D3C ; CODE XREF: _dl_lookup_versioned_symbol_skip+5FCj .text:00015D3C ; _dl_lookup_versioned_symbol_skip+658j ... .text:00015D3C LDRB R3, [R10,#0xC] .text:00015D40 MOV R3, R3,LSR#4 .text:00015D44 CMP R3, #1 .text:00015D48 BEQ loc_15D7C .text:00015D4C CMP R3, #2 .text:00015D50 BNE loc_15D90 .text:00015D54 LDR R3, =_dl_dynamic_weak .text:00015D58 LDR R2, [R3] .text:00015D5C CMP R2, #0 .text:00015D60 BEQ loc_15D7C .text:00015D64 LDR R1, [R11,#var_78] .text:00015D68 LDR R3, [R1] .text:00015D6C CMP R3, #0 .text:00015D70 STREQ R10, [R1] .text:00015D74 STREQ R7, [R1,#4] .text:00015D78 B loc_15D90 .text:00015D7C ; --------------------------------------------------------------------------- .text:00015D7C .text:00015D7C loc_15D7C ; CODE XREF: _dl_lookup_versioned_symbol_skip+710j .text:00015D7C ; _dl_lookup_versioned_symbol_skip+728j .text:00015D7C LDR R2, [R11,#var_78] .text:00015D80 .text:00015D80 loc_15D80 ; CODE XREF: _dl_lookup_versioned_symbol_skip+3FCj .text:00015D80 STR R10, [R2] .text:00015D84 MOV R3, #1 .text:00015D88 STR R7, [R2,#4] .text:00015D8C B loc_15E28 .text:00015D90 ; --------------------------------------------------------------------------- .text:00015D90 .text:00015D90 loc_15D90 ; CODE XREF: _dl_lookup_versioned_symbol_skip+590j .text:00015D90 ; _dl_lookup_versioned_symbol_skip+700j ... .text:00015D90 CMP R8, #0 .text:00015D94 BNE loc_15E0C .text:00015D98 LDR R3, [R11,#arg_0] .text:00015D9C LDR R6, [R3,#0xC] .text:00015DA0 CMP R6, #0 .text:00015DA4 BEQ loc_15E0C .text:00015DA8 LDR R1, [R7,#4] .text:00015DAC MOV R0, R6 .text:00015DB0 BL strcmp .text:00015DB4 LDR R4, [R7,#0x14] .text:00015DB8 CMP R0, #0 .text:00015DBC MOVNE R5, #0 .text:00015DC0 MOVEQ R5, #1 .text:00015DC4 CMP R4, #0 .text:00015DC8 CMPNE R0, #0 .text:00015DCC BEQ loc_15DFC .text:00015DD0 .text:00015DD0 loc_15DD0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+7C0j .text:00015DD0 LDR R1, [R4] .text:00015DD4 MOV R0, R6 .text:00015DD8 BL strcmp .text:00015DDC CMP R0, #0 .text:00015DE0 MOVEQ R5, #1 .text:00015DE4 LDRNE R4, [R4,#4] .text:00015DE8 CMP R4, #0 .text:00015DEC EORNE R3, R5, #1 .text:00015DF0 MOVEQ R3, #0 .text:00015DF4 CMP R3, #0 .text:00015DF8 BNE loc_15DD0 .text:00015DFC .text:00015DFC loc_15DFC ; CODE XREF: _dl_lookup_versioned_symbol_skip+794j .text:00015DFC CMP R5, #0 .text:00015E00 BEQ loc_15E0C .text:00015E04 .text:00015E04 loc_15E04 ; CODE XREF: _dl_lookup_versioned_symbol_skip+49Cj .text:00015E04 MOV R3, 0xFFFFFFFF .text:00015E08 B loc_15E28 .text:00015E0C ; --------------------------------------------------------------------------- .text:00015E0C .text:00015E0C loc_15E0C ; CODE XREF: _dl_lookup_versioned_symbol_skip+524j .text:00015E0C ; _dl_lookup_versioned_symbol_skip+75Cj ... .text:00015E0C LDR R12, [R11,#var_7C] .text:00015E10 LDR LR, [R11,#var_84] .text:00015E14 ADD R12, R12, #1 .text:00015E18 CMP R12, LR .text:00015E1C STR R12, [R11,#var_7C] .text:00015E20 BCC loc_15B34 .text:00015E24 .text:00015E24 loc_15E24 ; CODE XREF: _dl_lookup_versioned_symbol_skip+4B8j .text:00015E24 MOV R3, #0 .text:00015E28 .text:00015E28 loc_15E28 ; CODE XREF: _dl_lookup_versioned_symbol_skip+754j .text:00015E28 ; _dl_lookup_versioned_symbol_skip+7D0j .text:00015E28 CMP R3, #0 .text:00015E2C BEQ loc_15AF4 .text:00015E30 .text:00015E30 loc_15E30 ; CODE XREF: _dl_lookup_versioned_symbol_skip+4CCj .text:00015E30 LDR R3, [R11,#var_30] .text:00015E34 CMP R3, #0 .text:00015E38 BNE loc_15F1C .text:00015E3C LDR R0, [R11,#var_44] .text:00015E40 LDR R3, [R0] .text:00015E44 CMP R3, #0 .text:00015E48 BEQ loc_15E5C .text:00015E4C LDRB R3, [R3,#0xC] .text:00015E50 MOV R3, R3,LSR#4 .text:00015E54 CMP R3, #2 .text:00015E58 BEQ loc_15EE4 .text:00015E5C .text:00015E5C loc_15E5C ; CODE XREF: _dl_lookup_versioned_symbol_skip+810j .text:00015E5C LDR R0, [R11,#var_3C] .text:00015E60 BL strlen .text:00015E64 MOV R4, R0 .text:00015E68 ADD R3, R4, #0x13 .text:00015E6C BIC R3, R3, #0xE0000000 .text:00015E70 ADD R3, R3, #3 .text:00015E74 BIC R3, R3, #0xC0000003 .text:00015E78 RSB SP, R3, SP .text:00015E7C ADD R5, SP, #0xC4+var_BC .text:00015E80 MOV R0, R5 .text:00015E84 LDR R1, =undefined_msg ; "undefined symbol: " .text:00015E88 MOV R2, #0x12 .text:00015E8C BL mempcpy .text:00015E90 LDR R1, [R11,#var_3C] .text:00015E94 ADD R2, R4, #1 .text:00015E98 BL mempcpy .text:00015E9C LDR R1, [R11,#var_48] .text:00015EA0 CMP R1, #0 .text:00015EA4 BEQ loc_15EB4 .text:00015EA8 LDRB R3, [R1] .text:00015EAC CMP R3, #0 .text:00015EB0 BNE loc_15ED0 .text:00015EB4 .text:00015EB4 loc_15EB4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+86Cj .text:00015EB4 LDR R3, =_dl_argv .text:00015EB8 LDR R2, [R3] .text:00015EBC LDR R1, [R2] .text:00015EC0 LDR R12, =aMainProgram ; "<main program>" .text:00015EC4 CMP R1, #0 .text:00015EC8 MOVNE R12, R1 .text:00015ECC B loc_15ED4 .text:00015ED0 ; --------------------------------------------------------------------------- .text:00015ED0 .text:00015ED0 loc_15ED0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+878j .text:00015ED0 LDR R12, [R11,#var_48] .text:00015ED4 .text:00015ED4 loc_15ED4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+894j .text:00015ED4 MOV R0, #0 .text:00015ED8 MOV R1, R12 .text:00015EDC MOV R2, R5 .text:00015EE0 BL _dl_signal_cerror .text:00015EE4 .text:00015EE4 loc_15EE4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+820j .text:00015EE4 MOV R3, #0 .text:00015EE8 LDR R2, [R11,#var_44] .text:00015EEC MOV R0, R3 .text:00015EF0 STR R3, [R2] .text:00015EF4 B locret_166CC .text:00015EF4 ; --------------------------------------------------------------------------- .text:00015EF8 off_15EF8 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol_skip+528r .text:00015EFC off_15EFC DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol_skip+540r .text:00015EFC ; "symbol=%s; lookup in file=%s\n" .text:00015F00 off_15F00 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol_skip+548r .text:00015F00 ; _dl_lookup_versioned_symbol_skip:loc_15EB4r .text:00015F04 off_15F04 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol_skip+65Cr .text:00015F04 ; "version->filename == ((void *)0) || ! _"... .text:00015F08 off_15F08 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol_skip+660r .text:00015F08 ; "do-lookup.h" .text:00015F0C off_15F0C DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol_skip+664r .text:00015F0C ; "do_lookup_versioned" .text:00015F10 off_15F10 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol_skip+71Cr .text:00015F14 off_15F14 DCD undefined_msg ; DATA XREF: _dl_lookup_versioned_symbol_skip+84Cr .text:00015F14 ; "undefined symbol: " .text:00015F18 off_15F18 DCD aMainProgram ; DATA XREF: _dl_lookup_versioned_symbol_skip+888r .text:00015F18 ; "<main program>" .text:00015F1C ; --------------------------------------------------------------------------- .text:00015F1C .text:00015F1C loc_15F1C ; CODE XREF: _dl_lookup_versioned_symbol_skip+800j .text:00015F1C LDR R12, [R11,#var_44] .text:00015F20 LDR R3, [R12] .text:00015F24 MOV R4, #0 .text:00015F28 CMP R3, R4 .text:00015F2C BEQ loc_15F44 .text:00015F30 LDRB R3, [R3,#0xD] .text:00015F34 AND R3, R3, #3 .text:00015F38 CMP R3, #3 .text:00015F3C MOVNE R4, #0 .text:00015F40 MOVEQ R4, #1 .text:00015F44 .text:00015F44 loc_15F44 ; CODE XREF: _dl_lookup_versioned_symbol_skip+8F4j .text:00015F44 LDR R2, =_dl_debug_mask .text:00015F48 LDR R3, [R2] .text:00015F4C TST R3, #4 .text:00015F50 BEQ loc_15FDC .text:00015F54 LDR LR, [R11,#var_48] .text:00015F58 CMP LR, #0 .text:00015F5C BEQ loc_15F6C .text:00015F60 LDRB R3, [LR] .text:00015F64 CMP R3, #0 .text:00015F68 BNE loc_15F88 .text:00015F6C .text:00015F6C loc_15F6C ; CODE XREF: _dl_lookup_versioned_symbol_skip+924j .text:00015F6C LDR R3, =_dl_argv .text:00015F70 LDR R2, [R3] .text:00015F74 LDR R1, [R2] .text:00015F78 LDR LR, =aMainProgram ; "<main program>" .text:00015F7C CMP R1, #0 .text:00015F80 MOVNE LR, R1 .text:00015F84 B loc_15F8C .text:00015F88 ; --------------------------------------------------------------------------- .text:00015F88 .text:00015F88 loc_15F88 ; CODE XREF: _dl_lookup_versioned_symbol_skip+930j .text:00015F88 LDR LR, [R11,#var_48] .text:00015F8C .text:00015F8C loc_15F8C ; CODE XREF: _dl_lookup_versioned_symbol_skip+94Cj .text:00015F8C LDR R3, [R11,#var_2C] .text:00015F90 LDR R3, [R3,#4] .text:00015F94 LDRB R2, [R3] .text:00015F98 CMP R2, #0 .text:00015F9C MOVNE R2, R3 .text:00015FA0 LDREQ R3, =_dl_argv .text:00015FA4 LDREQ R2, [R3] .text:00015FA8 LDREQ R2, [R2] .text:00015FAC LDR R0, [R11,#var_3C] .text:00015FB0 STR R0, [SP,#0xC4+var_C4] .text:00015FB4 LDR R1, [R11,#arg_0] .text:00015FB8 LDR R3, [R1] .text:00015FBC STR R3, [SP,#0xC4+var_C0] .text:00015FC0 LDR R12, =aNormal ; "normal" .text:00015FC4 LDR R0, =aBindingFileS_0 ; "binding file %s to %s: %s symbol `%s' ["... .text:00015FC8 CMP R4, #0 .text:00015FCC LDR R3, =aProtected ; "protected" .text:00015FD0 MOV R1, LR .text:00015FD4 MOVEQ R3, R12 .text:00015FD8 BL _dl_debug_printf .text:00015FDC .text:00015FDC loc_15FDC ; CODE XREF: _dl_lookup_versioned_symbol_skip+918j .text:00015FDC CMP R4, #0 .text:00015FE0 LDREQ R3, [R11,#var_30] .text:00015FE4 LDREQ R2, [R11,#var_44] .text:00015FE8 STREQ R3, [R2] .text:00015FEC BEQ loc_1669C .text:00015FF0 LDR R12, [R11,#var_50] .text:00015FF4 SUB R3, R11, #-var_38 .text:00015FF8 LDR R2, [R12] .text:00015FFC MOV R1, #0 .text:00016000 MOV R0, #0 .text:00016004 STMIA R3, {R0,R1} .text:00016008 LDR R12, [R11,#var_54] .text:0001600C LDR R1, [R2,#4] .text:00016010 CMP R12, R1 .text:00016014 STR R1, [R11,#var_90] .text:00016018 BCS loc_16340 .text:0001601C LDR LR, [R11,#var_44] .text:00016020 LDR LR, [LR] .text:00016024 STR R12, [R11,#var_98] .text:00016028 STR LR, [R11,#var_94] .text:0001602C LDR R2, [R2] .text:00016030 STR R2, [R11,#var_9C] .text:00016034 .text:00016034 loc_16034 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D00j .text:00016034 LDR R0, [R11,#var_98] .text:00016038 LDR R1, [R11,#var_9C] .text:0001603C LDR R2, [R11,#arg_4] .text:00016040 LDR R7, [R1,R0,LSL#2] .text:00016044 CMP R7, R2 .text:00016048 MOVNE R3, #0 .text:0001604C MOVEQ R3, #1 .text:00016050 CMP R2, #0 .text:00016054 MOVEQ R3, #0 .text:00016058 CMP R3, #0 .text:0001605C BNE loc_16324 .text:00016060 LDR R12, =_dl_debug_mask .text:00016064 LDR R3, [R12] .text:00016068 TST R3, #8 .text:0001606C BEQ loc_16094 .text:00016070 LDR R2, [R7,#4] .text:00016074 LDRB R3, [R2] .text:00016078 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:0001607C CMP R3, #0 .text:00016080 LDREQ R3, =_dl_argv .text:00016084 LDREQ R2, [R3] .text:00016088 LDREQ R2, [R2] .text:0001608C LDR R1, [R11,#var_3C] .text:00016090 BL _dl_debug_printf .text:00016094 .text:00016094 loc_16094 ; CODE XREF: _dl_lookup_versioned_symbol_skip+A34j .text:00016094 LDR R1, [R7,#0x11C] .text:00016098 ADD R2, R7, #0x2C .text:0001609C LDMIA R2, {R2,R3} .text:000160A0 LDR R3, [R3,#4] .text:000160A4 STR R3, [R11,#var_A0] .text:000160A8 LDR R2, [R2,#4] .text:000160AC STR R2, [R11,#var_A4] .text:000160B0 LDR R0, [R11,#var_4C] .text:000160B4 LDR R9, [R7,#0x144] .text:000160B8 BL __umodsi3 .text:000160BC LDR R3, [R7,#0x120] .text:000160C0 LDR R10, [R3,R0,LSL#2] .text:000160C4 CMP R10, #0 .text:000160C8 BEQ loc_1627C .text:000160CC .text:000160CC loc_160CC ; CODE XREF: _dl_lookup_versioned_symbol_skip+C04j .text:000160CC LDR LR, [R11,#var_A0] .text:000160D0 MOV R2, R10,LSL#4 .text:000160D4 ADD R8, LR, R2 .text:000160D8 LDR R3, [R8,#4] .text:000160DC CMP R3, #0 .text:000160E0 BEQ loc_16230 .text:000160E4 LDR R3, [R8,#0xC] .text:000160E8 MOVS R3, R3,LSR#16 .text:000160EC BEQ loc_16230 .text:000160F0 LDRB R3, [R8,#0xC] .text:000160F4 AND R3, R3, #0xF .text:000160F8 CMP R3, #2 .text:000160FC BHI loc_16230 .text:00016100 LDR R0, [R11,#var_94] .text:00016104 CMP R8, R0 .text:00016108 BEQ loc_16128 .text:0001610C LDR R0, [LR,R2] .text:00016110 LDR R2, [R11,#var_A4] .text:00016114 LDR R1, [R11,#var_3C] .text:00016118 ADD R0, R2, R0 .text:0001611C BL strcmp .text:00016120 CMP R0, #0 .text:00016124 BNE loc_16230 .text:00016128 .text:00016128 loc_16128 ; CODE XREF: _dl_lookup_versioned_symbol_skip+AD0j .text:00016128 CMP R9, #0 .text:0001612C BNE loc_161B0 .text:00016130 LDR R3, [R11,#arg_0] .text:00016134 LDR R6, [R3,#0xC] .text:00016138 CMP R6, #0 .text:0001613C BEQ loc_16244 .text:00016140 LDR R1, [R7,#4] .text:00016144 MOV R0, R6 .text:00016148 BL strcmp .text:0001614C LDR R4, [R7,#0x14] .text:00016150 CMP R0, #0 .text:00016154 MOVNE R5, #0 .text:00016158 MOVEQ R5, #1 .text:0001615C CMP R4, #0 .text:00016160 CMPNE R0, #0 .text:00016164 BEQ loc_16194 .text:00016168 .text:00016168 loc_16168 ; CODE XREF: _dl_lookup_versioned_symbol_skip+B58j .text:00016168 LDR R1, [R4] .text:0001616C MOV R0, R6 .text:00016170 BL strcmp .text:00016174 CMP R0, #0 .text:00016178 MOVEQ R5, #1 .text:0001617C LDRNE R4, [R4,#4] .text:00016180 CMP R4, #0 .text:00016184 EORNE R3, R5, #1 .text:00016188 MOVEQ R3, #0 .text:0001618C CMP R3, #0 .text:00016190 BNE loc_16168 .text:00016194 .text:00016194 loc_16194 ; CODE XREF: _dl_lookup_versioned_symbol_skip+B2Cj .text:00016194 CMP R5, #0 .text:00016198 BEQ loc_16244 .text:0001619C LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:000161A0 LDR R1, =aDoLookup_h ; "do-lookup.h" .text:000161A4 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:000161A8 MOV R2, #0x68 .text:000161AC BL __assert_fail .text:000161B0 ; --------------------------------------------------------------------------- .text:000161B0 .text:000161B0 loc_161B0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+AF4j .text:000161B0 MOV R5, R10,LSL#1 .text:000161B4 LDRB R2, [R5,R9] .text:000161B8 ADD R6, R5, R9 .text:000161BC LDRB R3, [R6,#1] .text:000161C0 LDR R12, [R7,#0x134] .text:000161C4 LDR LR, [R11,#arg_0] .text:000161C8 ORR R2, R2, R3,LSL#8 .text:000161CC MOV R0, R2,LSL#17 .text:000161D0 MOV R0, R0,LSR#17 .text:000161D4 MOV R4, R0,LSL#4 .text:000161D8 ADD R3, R4, R12 .text:000161DC LDR R1, [R3,#4] .text:000161E0 LDR R2, [LR,#4] .text:000161E4 CMP R1, R2 .text:000161E8 BNE loc_16200 .text:000161EC LDR R0, [R12,R0,LSL#4] .text:000161F0 LDR R1, [LR] .text:000161F4 BL strcmp .text:000161F8 CMP R0, #0 .text:000161FC BEQ loc_16244 .text:00016200 .text:00016200 loc_16200 ; CODE XREF: _dl_lookup_versioned_symbol_skip+BB0j .text:00016200 LDR R0, [R11,#arg_0] .text:00016204 LDR R3, [R0,#8] .text:00016208 CMP R3, #0 .text:0001620C BNE loc_16230 .text:00016210 LDR R3, [R7,#0x134] .text:00016214 ADD R3, R4, R3 .text:00016218 LDR R2, [R3,#4] .text:0001621C CMP R2, #0 .text:00016220 BNE loc_16230 .text:00016224 LDRB R3, [R6,#1] .text:00016228 MOVS R3, R3,LSR#7 .text:0001622C BEQ loc_16244 .text:00016230 .text:00016230 loc_16230 ; CODE XREF: _dl_lookup_versioned_symbol_skip+AA8j .text:00016230 ; _dl_lookup_versioned_symbol_skip+AB4j ... .text:00016230 LDR R3, [R7,#0x124] .text:00016234 LDR R10, [R3,R10,LSL#2] .text:00016238 CMP R10, #0 .text:0001623C BNE loc_160CC .text:00016240 B loc_1627C .text:00016244 ; --------------------------------------------------------------------------- .text:00016244 .text:00016244 loc_16244 ; CODE XREF: _dl_lookup_versioned_symbol_skip+B04j .text:00016244 ; _dl_lookup_versioned_symbol_skip+B60j ... .text:00016244 LDRB R3, [R8,#0xC] .text:00016248 MOV R3, R3,LSR#4 .text:0001624C CMP R3, #1 .text:00016250 BEQ loc_165C4 .text:00016254 CMP R3, #2 .text:00016258 BNE loc_1627C .text:0001625C LDR R3, =_dl_dynamic_weak .text:00016260 LDR R2, [R3] .text:00016264 CMP R2, #0 .text:00016268 BEQ loc_165C4 .text:0001626C LDR R3, [R11,#var_38] .text:00016270 CMP R3, #0 .text:00016274 STREQ R8, [R11,#var_38] .text:00016278 STREQ R7, [R11,#var_34] .text:0001627C .text:0001627C loc_1627C ; CODE XREF: _dl_lookup_versioned_symbol_skip+A90j .text:0001627C ; _dl_lookup_versioned_symbol_skip+C08j ... .text:0001627C CMP R10, #0 .text:00016280 BNE loc_16324 .text:00016284 LDR R1, [R11,#arg_0] .text:00016288 LDR R6, [R1,#0xC] .text:0001628C CMP R6, #0 .text:00016290 BEQ loc_16324 .text:00016294 LDR R1, [R7,#4] .text:00016298 MOV R0, R6 .text:0001629C BL strcmp .text:000162A0 LDR R4, [R7,#0x14] .text:000162A4 CMP R0, #0 .text:000162A8 MOVNE R5, #0 .text:000162AC MOVEQ R5, #1 .text:000162B0 CMP R4, #0 .text:000162B4 CMPNE R0, #0 .text:000162B8 BEQ loc_1631C .text:000162BC .text:000162BC loc_162BC ; CODE XREF: _dl_lookup_versioned_symbol_skip+CE0j .text:000162BC LDR R1, [R4] .text:000162C0 MOV R0, R6 .text:000162C4 BL strcmp .text:000162C8 CMP R0, #0 .text:000162CC BNE loc_16304 .text:000162D0 MOV R5, #1 .text:000162D4 B loc_16308 .text:000162D4 ; --------------------------------------------------------------------------- .text:000162D8 off_162D8 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol_skip:loc_15F44r .text:000162D8 ; _dl_lookup_versioned_symbol_skip+A28r .text:000162DC off_162DC DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol_skip:loc_15F6Cr .text:000162DC ; _dl_lookup_versioned_symbol_skip+968r ... .text:000162E0 off_162E0 DCD aMainProgram ; DATA XREF: _dl_lookup_versioned_symbol_skip+940r .text:000162E0 ; "<main program>" .text:000162E4 off_162E4 DCD aNormal ; DATA XREF: _dl_lookup_versioned_symbol_skip+988r .text:000162E4 ; "normal" .text:000162E8 off_162E8 DCD aBindingFileS_0 ; DATA XREF: _dl_lookup_versioned_symbol_skip+98Cr .text:000162E8 ; "binding file %s to %s: %s symbol `%s' ["... .text:000162EC off_162EC DCD aProtected ; DATA XREF: _dl_lookup_versioned_symbol_skip+994r .text:000162EC ; "protected" .text:000162F0 off_162F0 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol_skip+A40r .text:000162F0 ; "symbol=%s; lookup in file=%s\n" .text:000162F4 off_162F4 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol_skip+B64r .text:000162F4 ; "version->filename == ((void *)0) || ! _"... .text:000162F8 off_162F8 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol_skip+B68r .text:000162F8 ; "do-lookup.h" .text:000162FC off_162FC DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol_skip+B6Cr .text:000162FC ; "do_lookup_versioned" .text:00016300 off_16300 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol_skip+C24r .text:00016304 ; --------------------------------------------------------------------------- .text:00016304 .text:00016304 loc_16304 ; CODE XREF: _dl_lookup_versioned_symbol_skip+C94j .text:00016304 LDR R4, [R4,#4] .text:00016308 .text:00016308 loc_16308 ; CODE XREF: _dl_lookup_versioned_symbol_skip+C9Cj .text:00016308 CMP R4, #0 .text:0001630C EORNE R3, R5, #1 .text:00016310 MOVEQ R3, #0 .text:00016314 CMP R3, #0 .text:00016318 BNE loc_162BC .text:0001631C .text:0001631C loc_1631C ; CODE XREF: _dl_lookup_versioned_symbol_skip+C80j .text:0001631C CMP R5, #0 .text:00016320 BNE loc_16648 .text:00016324 .text:00016324 loc_16324 ; CODE XREF: _dl_lookup_versioned_symbol_skip+A24j .text:00016324 ; _dl_lookup_versioned_symbol_skip+C48j ... .text:00016324 LDR R2, [R11,#var_98] .text:00016328 LDR R3, [R11,#var_90] .text:0001632C ADD R2, R2, #1 .text:00016330 CMP R2, R3 .text:00016334 STR R2, [R11,#var_98] .text:00016338 BCC loc_16034 .text:0001633C B loc_16668 .text:00016340 ; --------------------------------------------------------------------------- .text:00016340 .text:00016340 loc_16340 ; CODE XREF: _dl_lookup_versioned_symbol_skip+9E0j .text:00016340 ; _dl_lookup_versioned_symbol_skip+1038j .text:00016340 LDR R12, [R11,#var_50] .text:00016344 LDR R3, [R12,#4]! .text:00016348 CMP R3, #0 .text:0001634C STR R12, [R11,#var_50] .text:00016350 BEQ loc_16674 .text:00016354 LDR LR, [R11,#var_44] .text:00016358 LDR LR, [LR] .text:0001635C STR LR, [R11,#var_A8] .text:00016360 LDR R0, [R3] .text:00016364 MOV R1, #0 .text:00016368 STR R1, [R11,#var_AC] .text:0001636C STR R0, [R11,#var_B0] .text:00016370 LDR R3, [R3,#4] .text:00016374 STR R3, [R11,#var_B4] .text:00016378 .text:00016378 loc_16378 ; CODE XREF: _dl_lookup_versioned_symbol_skip+102Cj .text:00016378 LDR R2, [R11,#var_AC] .text:0001637C LDR R3, [R11,#var_B0] .text:00016380 LDR R12, [R11,#arg_4] .text:00016384 LDR R7, [R3,R2,LSL#2] .text:00016388 CMP R7, R12 .text:0001638C MOVNE R3, #0 .text:00016390 MOVEQ R3, #1 .text:00016394 CMP R12, #0 .text:00016398 MOVEQ R3, #0 .text:0001639C CMP R3, #0 .text:000163A0 BNE loc_16650 .text:000163A4 LDR LR, =_dl_debug_mask .text:000163A8 LDR R3, [LR] .text:000163AC TST R3, #8 .text:000163B0 BEQ loc_163D8 .text:000163B4 LDR R2, [R7,#4] .text:000163B8 LDRB R3, [R2] .text:000163BC LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:000163C0 CMP R3, #0 .text:000163C4 LDREQ R3, =_dl_argv .text:000163C8 LDREQ R2, [R3] .text:000163CC LDREQ R2, [R2] .text:000163D0 LDR R1, [R11,#var_3C] .text:000163D4 BL _dl_debug_printf .text:000163D8 .text:000163D8 loc_163D8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D78j .text:000163D8 LDR R1, [R7,#0x11C] .text:000163DC ADD R2, R7, #0x2C .text:000163E0 LDMIA R2, {R2,R3} .text:000163E4 LDR R3, [R3,#4] .text:000163E8 STR R3, [R11,#var_B8] .text:000163EC LDR R2, [R2,#4] .text:000163F0 STR R2, [R11,#var_BC] .text:000163F4 LDR R0, [R11,#var_4C] .text:000163F8 LDR R9, [R7,#0x144] .text:000163FC BL __umodsi3 .text:00016400 LDR R3, [R7,#0x120] .text:00016404 LDR R10, [R3,R0,LSL#2] .text:00016408 CMP R10, #0 .text:0001640C BEQ loc_165D4 .text:00016410 .text:00016410 loc_16410 ; CODE XREF: _dl_lookup_versioned_symbol_skip+F48j .text:00016410 LDR R0, [R11,#var_B8] .text:00016414 MOV R2, R10,LSL#4 .text:00016418 ADD R8, R0, R2 .text:0001641C LDR R3, [R8,#4] .text:00016420 CMP R3, #0 .text:00016424 BEQ loc_16574 .text:00016428 LDR R3, [R8,#0xC] .text:0001642C MOVS R3, R3,LSR#16 .text:00016430 BEQ loc_16574 .text:00016434 LDRB R3, [R8,#0xC] .text:00016438 AND R3, R3, #0xF .text:0001643C CMP R3, #2 .text:00016440 BHI loc_16574 .text:00016444 LDR R1, [R11,#var_A8] .text:00016448 CMP R8, R1 .text:0001644C BEQ loc_1646C .text:00016450 LDR R0, [R0,R2] .text:00016454 LDR R2, [R11,#var_BC] .text:00016458 LDR R1, [R11,#var_3C] .text:0001645C ADD R0, R2, R0 .text:00016460 BL strcmp .text:00016464 CMP R0, #0 .text:00016468 BNE loc_16574 .text:0001646C .text:0001646C loc_1646C ; CODE XREF: _dl_lookup_versioned_symbol_skip+E14j .text:0001646C CMP R9, #0 .text:00016470 BNE loc_164F4 .text:00016474 LDR R3, [R11,#arg_0] .text:00016478 LDR R6, [R3,#0xC] .text:0001647C CMP R6, #0 .text:00016480 BEQ loc_16588 .text:00016484 LDR R1, [R7,#4] .text:00016488 MOV R0, R6 .text:0001648C BL strcmp .text:00016490 LDR R4, [R7,#0x14] .text:00016494 CMP R0, #0 .text:00016498 MOVNE R5, #0 .text:0001649C MOVEQ R5, #1 .text:000164A0 CMP R4, #0 .text:000164A4 CMPNE R0, #0 .text:000164A8 BEQ loc_164D8 .text:000164AC .text:000164AC loc_164AC ; CODE XREF: _dl_lookup_versioned_symbol_skip+E9Cj .text:000164AC LDR R1, [R4] .text:000164B0 MOV R0, R6 .text:000164B4 BL strcmp .text:000164B8 CMP R0, #0 .text:000164BC MOVEQ R5, #1 .text:000164C0 LDRNE R4, [R4,#4] .text:000164C4 CMP R4, #0 .text:000164C8 EORNE R3, R5, #1 .text:000164CC MOVEQ R3, #0 .text:000164D0 CMP R3, #0 .text:000164D4 BNE loc_164AC .text:000164D8 .text:000164D8 loc_164D8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+E70j .text:000164D8 CMP R5, #0 .text:000164DC BEQ loc_16588 .text:000164E0 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:000164E4 LDR R1, =aDoLookup_h ; "do-lookup.h" .text:000164E8 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:000164EC MOV R2, #0x68 .text:000164F0 BL __assert_fail .text:000164F4 ; --------------------------------------------------------------------------- .text:000164F4 .text:000164F4 loc_164F4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+E38j .text:000164F4 MOV R5, R10,LSL#1 .text:000164F8 LDRB R2, [R5,R9] .text:000164FC ADD R6, R5, R9 .text:00016500 LDRB R3, [R6,#1] .text:00016504 LDR R12, [R7,#0x134] .text:00016508 LDR LR, [R11,#arg_0] .text:0001650C ORR R2, R2, R3,LSL#8 .text:00016510 MOV R0, R2,LSL#17 .text:00016514 MOV R0, R0,LSR#17 .text:00016518 MOV R4, R0,LSL#4 .text:0001651C ADD R3, R4, R12 .text:00016520 LDR R1, [R3,#4] .text:00016524 LDR R2, [LR,#4] .text:00016528 CMP R1, R2 .text:0001652C BNE loc_16544 .text:00016530 LDR R0, [R12,R0,LSL#4] .text:00016534 LDR R1, [LR] .text:00016538 BL strcmp .text:0001653C CMP R0, #0 .text:00016540 BEQ loc_16588 .text:00016544 .text:00016544 loc_16544 ; CODE XREF: _dl_lookup_versioned_symbol_skip+EF4j .text:00016544 LDR R0, [R11,#arg_0] .text:00016548 LDR R3, [R0,#8] .text:0001654C CMP R3, #0 .text:00016550 BNE loc_16574 .text:00016554 LDR R3, [R7,#0x134] .text:00016558 ADD R3, R4, R3 .text:0001655C LDR R2, [R3,#4] .text:00016560 CMP R2, #0 .text:00016564 BNE loc_16574 .text:00016568 LDRB R3, [R6,#1] .text:0001656C MOVS R3, R3,LSR#7 .text:00016570 BEQ loc_16588 .text:00016574 .text:00016574 loc_16574 ; CODE XREF: _dl_lookup_versioned_symbol_skip+DECj .text:00016574 ; _dl_lookup_versioned_symbol_skip+DF8j ... .text:00016574 LDR R3, [R7,#0x124] .text:00016578 LDR R10, [R3,R10,LSL#2] .text:0001657C CMP R10, #0 .text:00016580 BNE loc_16410 .text:00016584 B loc_165D4 .text:00016588 ; --------------------------------------------------------------------------- .text:00016588 .text:00016588 loc_16588 ; CODE XREF: _dl_lookup_versioned_symbol_skip+E48j .text:00016588 ; _dl_lookup_versioned_symbol_skip+EA4j ... .text:00016588 LDRB R3, [R8,#0xC] .text:0001658C MOV R3, R3,LSR#4 .text:00016590 CMP R3, #1 .text:00016594 BEQ loc_165C4 .text:00016598 CMP R3, #2 .text:0001659C BNE loc_165D4 .text:000165A0 LDR R3, =_dl_dynamic_weak .text:000165A4 LDR R2, [R3] .text:000165A8 CMP R2, #0 .text:000165AC BEQ loc_165C4 .text:000165B0 LDR R3, [R11,#var_38] .text:000165B4 CMP R3, #0 .text:000165B8 STREQ R8, [R11,#var_38] .text:000165BC STREQ R7, [R11,#var_34] .text:000165C0 B loc_165D4 .text:000165C4 ; --------------------------------------------------------------------------- .text:000165C4 .text:000165C4 loc_165C4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+C18j .text:000165C4 ; _dl_lookup_versioned_symbol_skip+C30j ... .text:000165C4 STR R8, [R11,#var_38] .text:000165C8 MOV R3, #1 .text:000165CC STR R7, [R11,#var_34] .text:000165D0 B loc_1666C .text:000165D4 ; --------------------------------------------------------------------------- .text:000165D4 .text:000165D4 loc_165D4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+DD4j .text:000165D4 ; _dl_lookup_versioned_symbol_skip+F4Cj ... .text:000165D4 CMP R10, #0 .text:000165D8 BNE loc_16650 .text:000165DC LDR R1, [R11,#arg_0] .text:000165E0 LDR R6, [R1,#0xC] .text:000165E4 CMP R6, #0 .text:000165E8 BEQ loc_16650 .text:000165EC LDR R1, [R7,#4] .text:000165F0 MOV R0, R6 .text:000165F4 BL strcmp .text:000165F8 LDR R4, [R7,#0x14] .text:000165FC CMP R0, #0 .text:00016600 MOVNE R5, #0 .text:00016604 MOVEQ R5, #1 .text:00016608 CMP R4, #0 .text:0001660C CMPNE R0, #0 .text:00016610 BEQ loc_16640 .text:00016614 .text:00016614 loc_16614 ; CODE XREF: _dl_lookup_versioned_symbol_skip+1004j .text:00016614 LDR R1, [R4] .text:00016618 MOV R0, R6 .text:0001661C BL strcmp .text:00016620 CMP R0, #0 .text:00016624 MOVEQ R5, #1 .text:00016628 LDRNE R4, [R4,#4] .text:0001662C CMP R4, #0 .text:00016630 EORNE R3, R5, #1 .text:00016634 MOVEQ R3, #0 .text:00016638 CMP R3, #0 .text:0001663C BNE loc_16614 .text:00016640 .text:00016640 loc_16640 ; CODE XREF: _dl_lookup_versioned_symbol_skip+FD8j .text:00016640 CMP R5, #0 .text:00016644 BEQ loc_16650 .text:00016648 .text:00016648 loc_16648 ; CODE XREF: _dl_lookup_versioned_symbol_skip+CE8j .text:00016648 MOV R3, 0xFFFFFFFF .text:0001664C B loc_1666C .text:00016650 ; --------------------------------------------------------------------------- .text:00016650 .text:00016650 loc_16650 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D68j .text:00016650 ; _dl_lookup_versioned_symbol_skip+FA0j ... .text:00016650 LDR R2, [R11,#var_AC] .text:00016654 LDR R3, [R11,#var_B4] .text:00016658 ADD R2, R2, #1 .text:0001665C CMP R2, R3 .text:00016660 STR R2, [R11,#var_AC] .text:00016664 BCC loc_16378 .text:00016668 .text:00016668 loc_16668 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D04j .text:00016668 MOV R3, #0 .text:0001666C .text:0001666C loc_1666C ; CODE XREF: _dl_lookup_versioned_symbol_skip+F98j .text:0001666C ; _dl_lookup_versioned_symbol_skip+1014j .text:0001666C CMP R3, #0 .text:00016670 BEQ loc_16340 .text:00016674 .text:00016674 loc_16674 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D18j .text:00016674 LDR R3, [R11,#var_38] .text:00016678 CMP R3, #0 .text:0001667C BEQ loc_16690 .text:00016680 LDR R3, [R11,#var_34] .text:00016684 LDR R12, [R11,#var_40] .text:00016688 CMP R3, R12 .text:0001668C BNE loc_166C4 .text:00016690 .text:00016690 loc_16690 ; CODE XREF: _dl_lookup_versioned_symbol_skip+1044j .text:00016690 LDR R3, [R11,#var_30] .text:00016694 LDR LR, [R11,#var_44] .text:00016698 STR R3, [LR] .text:0001669C .text:0001669C loc_1669C ; CODE XREF: _dl_lookup_versioned_symbol_skip+9B4j .text:0001669C LDR R2, [R11,#var_2C] .text:000166A0 LDR R0, [R2] .text:000166A4 B locret_166CC .text:000166A4 ; --------------------------------------------------------------------------- .text:000166A8 off_166A8 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol_skip+D6Cr .text:000166AC off_166AC DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol_skip+D84r .text:000166AC ; "symbol=%s; lookup in file=%s\n" .text:000166B0 off_166B0 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol_skip+D8Cr .text:000166B4 off_166B4 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol_skip+EA8r .text:000166B4 ; "version->filename == ((void *)0) || ! _"... .text:000166B8 off_166B8 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol_skip+EACr .text:000166B8 ; "do-lookup.h" .text:000166BC off_166BC DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol_skip+EB0r .text:000166BC ; "do_lookup_versioned" .text:000166C0 off_166C0 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol_skip+F68r .text:000166C4 ; --------------------------------------------------------------------------- .text:000166C4 .text:000166C4 loc_166C4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+1054j .text:000166C4 LDR R1, [R11,#var_40] .text:000166C8 LDR R0, [R1] .text:000166CC .text:000166CC locret_166CC ; CODE XREF: _dl_lookup_versioned_symbol_skip+8BCj .text:000166CC ; _dl_lookup_versioned_symbol_skip+106Cj .text:000166CC LDMDB R11, {R4-R11,SP,PC} .text:000166CC ; End of function _dl_lookup_versioned_symbol_skip .text:000166CC .text:000166D0 .text:000166D0 ; =============== S U B R O U T I N E ======================================= .text:000166D0 .text:000166D0 ; Attributes: bp-based frame .text:000166D0 .text:000166D0 EXPORT _dl_setup_hash .text:000166D0 _dl_setup_hash ; CODE XREF: _dl_map_object_from_fd+B6Cp .text:000166D0 MOV R12, SP .text:000166D4 STMFD SP!, {R11,R12,LR,PC} .text:000166D8 SUB R11, R12, #4 .text:000166DC MOV R12, R0 .text:000166E0 LDR R3, [R12,#0x28] .text:000166E4 CMP R3, #0 .text:000166E8 LDMEQDB R11, {R11,SP,PC} .text:000166EC LDR R1, [R12] .text:000166F0 LDR R2, [R3,#4] .text:000166F4 ADD R3, R1, R2 .text:000166F8 LDR R0, [R1,R2] .text:000166FC ADD R3, R3, #8 .text:00016700 STR R3, [R12,#0x120] .text:00016704 STR R0, [R12,#0x11C] .text:00016708 ADD R3, R3, R0,LSL#2 .text:0001670C STR R3, [R12,#0x124] .text:00016710 LDMDB R11, {R11,SP,PC} .text:00016710 ; End of function _dl_setup_hash .text:00016710 .text:00016714 .text:00016714 ; =============== S U B R O U T I N E ======================================= .text:00016714 .text:00016714 ; Attributes: bp-based frame .text:00016714 .text:00016714 EXPORT _dl_new_object .text:00016714 _dl_new_object ; CODE XREF: _dl_map_object_from_fd+13Cp .text:00016714 ; _dl_map_object+690p .text:00016714 .text:00016714 var_2C = -0x2C .text:00016714 .text:00016714 MOV R12, SP .text:00016718 STMFD SP!, {R4-R12,LR,PC} .text:0001671C SUB R11, R12, #4 .text:00016720 SUB SP, SP, #4 .text:00016724 STR R2, [R11,#var_2C] .text:00016728 MOV R8, R3 .text:0001672C MOV R9, R0 .text:00016730 MOV R10, R1 .text:00016734 MOV R0, R10 .text:00016738 BL strlen .text:0001673C MOV R4, R0 .text:00016740 MOV R0, #0x1A0 .text:00016744 MOV R1, #1 .text:00016748 BL calloc .text:0001674C MOV R7, R0 .text:00016750 ADD R0, R4, #0xD .text:00016754 BL malloc .text:00016758 MOV R5, R0 .text:0001675C CMP R5, #0 .text:00016760 MOVNE R3, #0 .text:00016764 MOVEQ R3, #1 .text:00016768 CMP R7, #0 .text:0001676C MOVNE R6, R3 .text:00016770 MOVEQ R6, #1 .text:00016774 CMP R6, #0 .text:00016778 ADD R4, R4, #1 .text:0001677C MOVNE R0, #0 .text:00016780 BNE locret_169CC .text:00016784 STR R9, [R7,#4] .text:00016788 ADD R0, R5, #0xC .text:0001678C MOV R1, R10 .text:00016790 MOV R2, R4 .text:00016794 BL memcpy .text:00016798 STMIA R5, {R0,R6} .text:0001679C STR R5, [R7,#0x14] .text:000167A0 STR R8, [R7,#0x118] .text:000167A4 LDR LR, [R11,#var_2C] .text:000167A8 MOV R12, R6 .text:000167AC LDR R1, =_dl_loaded .text:000167B0 AND R2, LR, #3 .text:000167B4 LDR R0, [R1] .text:000167B8 MOV R5, R1 .text:000167BC LDRB R3, [R7,#0x12C] .text:000167C0 CMP R0, #0 .text:000167C4 BIC R3, R3, #3 .text:000167C8 ORR R2, R2, R3 .text:000167CC STRB R2, [R7,#0x12C] .text:000167D0 BEQ loc_16820 .text:000167D4 MOV R2, R0 .text:000167D8 ADD R1, R7, #0xF8 .text:000167DC MOV LR, R12 .text:000167E0 ADD R0, R7, #0x154 .text:000167E4 LDR R3, [R2,#0xC] .text:000167E8 ADD R12, LR, #1 .text:000167EC LDR R4, =_dl_nloaded .text:000167F0 CMP R3, #0 .text:000167F4 BEQ loc_16808 .text:000167F8 .text:000167F8 loc_167F8 ; CODE XREF: _dl_new_object+F0j .text:000167F8 LDR R2, [R2,#0xC] .text:000167FC LDR R3, [R2,#0xC] .text:00016800 CMP R3, #0 .text:00016804 BNE loc_167F8 .text:00016808 .text:00016808 loc_16808 ; CODE XREF: _dl_new_object+E0j .text:00016808 STR R2, [R7,#0x10] .text:0001680C STR R7, [R2,#0xC] .text:00016810 LDR R3, [R5] .text:00016814 ADD R3, R3, #0xF8 .text:00016818 STR R3, [R0,LR] .text:0001681C B loc_1682C .text:00016820 ; --------------------------------------------------------------------------- .text:00016820 .text:00016820 loc_16820 ; CODE XREF: _dl_new_object+BCj .text:00016820 STR R7, [R1] .text:00016824 ADD R1, R7, #0xF8 .text:00016828 LDR R4, =_dl_nloaded .text:0001682C .text:0001682C loc_1682C ; CODE XREF: _dl_new_object+108j .text:0001682C LDR R3, [R4] .text:00016830 CMP R8, #0 .text:00016834 ADD R3, R3, #1 .text:00016838 STR R3, [R4] .text:0001683C BEQ loc_16878 .text:00016840 B loc_16848 .text:00016844 ; --------------------------------------------------------------------------- .text:00016844 .text:00016844 loc_16844 ; CODE XREF: _dl_new_object+13Cj .text:00016844 LDR R8, [R8,#0x118] .text:00016848 .text:00016848 loc_16848 ; CODE XREF: _dl_new_object+12Cj .text:00016848 LDR R3, [R8,#0x118] .text:0001684C CMP R3, #0 .text:00016850 BNE loc_16844 .text:00016854 CMP R12, #0 .text:00016858 ADD R2, R8, #0xF8 .text:0001685C BEQ loc_1686C .text:00016860 LDR R3, [R7,#0x154] .text:00016864 CMP R2, R3 .text:00016868 BEQ loc_16894 .text:0001686C .text:0001686C loc_1686C ; CODE XREF: _dl_new_object+148j .text:0001686C ADD R3, R7, #0x154 .text:00016870 STR R2, [R3,R12,LSL#2] .text:00016874 B loc_16894 .text:00016878 ; --------------------------------------------------------------------------- .text:00016878 .text:00016878 loc_16878 ; CODE XREF: _dl_new_object+128j .text:00016878 CMP R12, #0 .text:0001687C BEQ loc_1688C .text:00016880 LDR R3, [R7,#0x154] .text:00016884 CMP R1, R3 .text:00016888 BEQ loc_16894 .text:0001688C .text:0001688C loc_1688C ; CODE XREF: _dl_new_object+168j .text:0001688C ADD R3, R7, #0x154 .text:00016890 STR R1, [R3,R12,LSL#2] .text:00016894 .text:00016894 loc_16894 ; CODE XREF: _dl_new_object+154j .text:00016894 ; _dl_new_object+160j ... .text:00016894 LDRB R3, [R9] .text:00016898 STR R1, [R7,#0x164] .text:0001689C CMP R3, #0 .text:000168A0 BEQ loc_169C8 .text:000168A4 CMP R3, #0x2F .text:000168A8 BNE loc_168E4 .text:000168AC MOV R0, R9 .text:000168B0 BL strlen .text:000168B4 ADD R5, R0, #1 .text:000168B8 MOV R0, R5 .text:000168BC BL malloc .text:000168C0 SUBS R4, R0, #0 .text:000168C4 BNE loc_168D0 .text:000168C8 .text:000168C8 loc_168C8 ; CODE XREF: _dl_new_object+240j .text:000168C8 ; _dl_new_object+24Cj .text:000168C8 MOV R4, 0xFFFFFFFF .text:000168CC B loc_1698C .text:000168D0 ; --------------------------------------------------------------------------- .text:000168D0 .text:000168D0 loc_168D0 ; CODE XREF: _dl_new_object+1B0j .text:000168D0 MOV R0, R4 .text:000168D4 MOV R1, R9 .text:000168D8 MOV R2, R5 .text:000168DC BL memcpy .text:000168E0 B loc_1698C .text:000168E4 ; --------------------------------------------------------------------------- .text:000168E4 .text:000168E4 loc_168E4 ; CODE XREF: _dl_new_object+194j .text:000168E4 MOV R0, R9 .text:000168E8 BL strlen .text:000168EC MOV R3, R0 .text:000168F0 ADD R5, R3, #0x81 .text:000168F4 MOV R8, #0 .text:000168F8 MOV R0, R5 .text:000168FC ADD R6, R3, #1 .text:00016900 BL malloc .text:00016904 B loc_16918 .text:00016908 ; --------------------------------------------------------------------------- .text:00016908 .text:00016908 loc_16908 ; CODE XREF: _dl_new_object+230j .text:00016908 ADD R5, R5, #0x80 .text:0001690C MOV R0, R4 .text:00016910 MOV R1, R5 .text:00016914 BL realloc .text:00016918 .text:00016918 loc_16918 ; CODE XREF: _dl_new_object+1F0j .text:00016918 MOV R4, R0 .text:0001691C CMP R4, #0 .text:00016920 BEQ loc_16948 .text:00016924 MOV R0, R4 .text:00016928 RSB R1, R6, R5 .text:0001692C BL getcwd .text:00016930 SUBS R8, R0, #0 .text:00016934 BNE loc_16948 .text:00016938 BL __errno_location .text:0001693C LDR R3, [R0] .text:00016940 CMP R3, #0x22 .text:00016944 BEQ loc_16908 .text:00016948 .text:00016948 loc_16948 ; CODE XREF: _dl_new_object+20Cj .text:00016948 ; _dl_new_object+220j .text:00016948 CMP R8, #0 .text:0001694C BNE loc_16964 .text:00016950 CMP R4, #0 .text:00016954 BEQ loc_168C8 .text:00016958 MOV R0, R4 .text:0001695C BL free .text:00016960 B loc_168C8 .text:00016964 ; --------------------------------------------------------------------------- .text:00016964 .text:00016964 loc_16964 ; CODE XREF: _dl_new_object+238j .text:00016964 MOV R0, R4 .text:00016968 MOV R1, #0 .text:0001696C BL rawmemchr .text:00016970 LDRB R3, [R0,#-1] .text:00016974 CMP R3, #0x2F .text:00016978 MOVNE R3, #0x2F .text:0001697C STRNEB R3, [R0],#1 .text:00016980 MOV R1, R9 .text:00016984 MOV R2, R6 .text:00016988 BL memcpy .text:0001698C .text:0001698C loc_1698C ; CODE XREF: _dl_new_object+1B8j .text:0001698C ; _dl_new_object+1CCj .text:0001698C CMN R4, #1 .text:00016990 BEQ loc_169C4 .text:00016994 MOV R0, R4 .text:00016998 MOV R1, #0x2F .text:0001699C BL strrchr .text:000169A0 CMP R0, R4 .text:000169A4 BNE loc_169BC .text:000169A8 MOV R3, #0 .text:000169AC STRB R3, [R4,#1] .text:000169B0 B loc_169C4 .text:000169B0 ; --------------------------------------------------------------------------- .text:000169B4 off_169B4 DCD _dl_loaded ; DATA XREF: _dl_new_object+98r .text:000169B8 off_169B8 DCD _dl_nloaded ; DATA XREF: _dl_new_object+D8r .text:000169B8 ; _dl_new_object+114r .text:000169BC ; --------------------------------------------------------------------------- .text:000169BC .text:000169BC loc_169BC ; CODE XREF: _dl_new_object+290j .text:000169BC MOV R3, #0 .text:000169C0 STRB R3, [R0] .text:000169C4 .text:000169C4 loc_169C4 ; CODE XREF: _dl_new_object+27Cj .text:000169C4 ; _dl_new_object+29Cj .text:000169C4 STR R4, [R7,#0x148] .text:000169C8 .text:000169C8 loc_169C8 ; CODE XREF: _dl_new_object+18Cj .text:000169C8 MOV R0, R7 .text:000169CC .text:000169CC locret_169CC ; CODE XREF: _dl_new_object+6Cj .text:000169CC LDMDB R11, {R4-R11,SP,PC} .text:000169CC ; End of function _dl_new_object .text:000169CC .text:000169D0 .text:000169D0 ; =============== S U B R O U T I N E ======================================= .text:000169D0 .text:000169D0 ; Attributes: noreturn bp-based frame .text:000169D0 .text:000169D0 EXPORT _dl_signal_error .text:000169D0 _dl_signal_error ; CODE XREF: add_name_to_object+70p .text:000169D0 ; decompose_rpath+A8p ... .text:000169D0 .text:000169D0 var_414 = -0x414 .text:000169D0 var_410 = -0x410 .text:000169D0 var_400 = -0x400 .text:000169D0 .text:000169D0 MOV R12, SP .text:000169D4 STMFD SP!, {R11,R12,LR,PC} .text:000169D8 SUB R11, R12, #4 .text:000169DC CMP R2, #0 .text:000169E0 MOV R6, R0 .text:000169E4 LDR R3, =__libc_internal_tsd_get .text:000169E8 MOV R5, R1 .text:000169EC LDR R12, =aDynamicLinkerB ; "DYNAMIC LINKER BUG!!!" .text:000169F0 SUB SP, SP, #0x410 .text:000169F4 LDR R3, [R3] .text:000169F8 MOVNE R8, R2 .text:000169FC MOVEQ R8, R12 .text:00016A00 CMP R3, #0 .text:00016A04 BEQ loc_16A1C .text:00016A08 MOV R0, #1 .text:00016A0C MOV LR, PC .text:00016A10 MOV PC, R3 .text:00016A14 MOV R4, R0 .text:00016A18 B loc_16A24 .text:00016A1C ; --------------------------------------------------------------------------- .text:00016A1C .text:00016A1C loc_16A1C ; CODE XREF: _dl_signal_error+34j .text:00016A1C LDR R3, =__libc_tsd_DL_ERROR_data .text:00016A20 LDR R4, [R3] .text:00016A24 .text:00016A24 loc_16A24 ; CODE XREF: _dl_signal_error+48j .text:00016A24 CMP R4, #0 .text:00016A28 BEQ loc_16A9C .text:00016A2C MOV R0, R5 .text:00016A30 BL strlen .text:00016A34 ADD R10, R0, #1 .text:00016A38 MOV R0, R8 .text:00016A3C BL strlen .text:00016A40 ADD R7, R0, #1 .text:00016A44 ADD R0, R10, R7 .text:00016A48 BL malloc .text:00016A4C CMP R0, #0 .text:00016A50 STR R0, [R4,#4] .text:00016A54 BEQ loc_16A78 .text:00016A58 MOV R1, R8 .text:00016A5C MOV R2, R7 .text:00016A60 BL mempcpy .text:00016A64 MOV R1, R5 .text:00016A68 MOV R2, R10 .text:00016A6C BL memcpy .text:00016A70 STR R0, [R4] .text:00016A74 B loc_16A88 .text:00016A78 ; --------------------------------------------------------------------------- .text:00016A78 .text:00016A78 loc_16A78 ; CODE XREF: _dl_signal_error+84j .text:00016A78 LDR R3, =dword_56668 .text:00016A7C STR R3, [R4] .text:00016A80 LDR R2, =_dl_out_of_memory ; "out of memory" .text:00016A84 STR R2, [R4,#4] .text:00016A88 .text:00016A88 loc_16A88 ; CODE XREF: _dl_signal_error+A4j .text:00016A88 CMP R6, #0 .text:00016A8C ADD R0, R4, #8 .text:00016A90 MOVNE R1, R6 .text:00016A94 MOVEQ R1, 0xFFFFFFFF .text:00016A98 BL siglongjmp .text:00016A9C ; --------------------------------------------------------------------------- .text:00016A9C .text:00016A9C loc_16A9C ; CODE XREF: _dl_signal_error+58j .text:00016A9C CMP R6, #0 .text:00016AA0 BEQ loc_16ABC .text:00016AA4 MOV R0, R6 .text:00016AA8 SUB R1, R11, #-var_400 .text:00016AAC SUB R1, R1, #0xC .text:00016AB0 MOV R2, #0x400 .text:00016AB4 BL strerror_r .text:00016AB8 B loc_16AC0 .text:00016ABC ; --------------------------------------------------------------------------- .text:00016ABC .text:00016ABC loc_16ABC ; CODE XREF: _dl_signal_error+D0j .text:00016ABC LDR R0, =dword_56668 .text:00016AC0 .text:00016AC0 loc_16AC0 ; CODE XREF: _dl_signal_error+E8j .text:00016AC0 LDR R4, =dword_56668 .text:00016AC4 LDR LR, =aProgramNameUnk ; "<program name unknown>" .text:00016AC8 LDR R3, =_dl_argv .text:00016ACC LDR R7, =aSErrorWhileLoa ; "%s: error while loading shared librarie"... .text:00016AD0 LDR R2, [R3] .text:00016AD4 LDR R3, [R2] .text:00016AD8 MOV R1, R4 .text:00016ADC LDR R2, =asc_566BC ; ": " .text:00016AE0 CMP R3, #0 .text:00016AE4 MOVNE LR, R3 .text:00016AE8 SUBS R12, R5, #0 .text:00016AEC MOVEQ R12, R4 .text:00016AF0 BEQ loc_16B04 .text:00016AF4 LDRB R3, [R5] .text:00016AF8 CMP R3, #0 .text:00016AFC MOVNE R1, R2 .text:00016B00 MOVEQ R1, R4 .text:00016B04 .text:00016B04 loc_16B04 ; CODE XREF: _dl_signal_error+120j .text:00016B04 STMEA SP, {R1,R8} .text:00016B08 CMP R6, #0 .text:00016B0C MOVNE R3, R2 .text:00016B10 MOVEQ R3, R4 .text:00016B14 STR R3, [SP,#0x41C+var_414] .text:00016B18 STR R0, [SP,#0x41C+var_410] .text:00016B1C MOV R0, #2 .text:00016B20 MOV R1, R7 .text:00016B24 MOV R2, LR .text:00016B28 MOV R3, R12 .text:00016B2C BL _dl_dprintf .text:00016B30 MOV R0, #0x7F ; status .text:00016B34 BL _exit .text:00016B34 ; End of function _dl_signal_error .text:00016B34 .text:00016B34 ; --------------------------------------------------------------------------- .text:00016B38 off_16B38 DCD __libc_internal_tsd_get ; DATA XREF: _dl_signal_error+14r .text:00016B3C off_16B3C DCD aDynamicLinkerB ; DATA XREF: _dl_signal_error+1Cr .text:00016B3C ; "DYNAMIC LINKER BUG!!!" .text:00016B40 off_16B40 DCD __libc_tsd_DL_ERROR_data .text:00016B40 ; DATA XREF: _dl_signal_error:loc_16A1Cr .text:00016B44 off_16B44 DCD dword_56668 ; DATA XREF: _dl_signal_error:loc_16A78r .text:00016B44 ; _dl_signal_error:loc_16ABCr ... .text:00016B48 off_16B48 DCD _dl_out_of_memory ; DATA XREF: _dl_signal_error+B0r .text:00016B48 ; "out of memory" .text:00016B4C off_16B4C DCD aProgramNameUnk ; DATA XREF: _dl_signal_error+F4r .text:00016B4C ; "<program name unknown>" .text:00016B50 off_16B50 DCD _dl_argv ; DATA XREF: _dl_signal_error+F8r .text:00016B54 off_16B54 DCD aSErrorWhileLoa ; DATA XREF: _dl_signal_error+FCr .text:00016B54 ; "%s: error while loading shared librarie"... .text:00016B58 off_16B58 DCD asc_566BC ; DATA XREF: _dl_signal_error+10Cr .text:00016B58 ; ": " .text:00016B5C ; --------------------------------------------------------------------------- .text:00016B5C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00016B60 .text:00016B60 ; =============== S U B R O U T I N E ======================================= .text:00016B60 .text:00016B60 ; Attributes: bp-based frame .text:00016B60 .text:00016B60 EXPORT _dl_signal_cerror .text:00016B60 _dl_signal_cerror ; CODE XREF: _dl_lookup_symbol+498p .text:00016B60 ; _dl_lookup_versioned_symbol+60Cp ... .text:00016B60 MOV R12, SP .text:00016B64 STMFD SP!, {R11,R12,LR,PC} .text:00016B68 LDR R3, =receiver .text:00016B6C LDR R3, [R3] .text:00016B70 SUB R11, R12, #4 .text:00016B74 CMP R3, #0 .text:00016B78 BEQ loc_16B88 .text:00016B7C MOV LR, PC .text:00016B80 MOV PC, R3 .text:00016B84 LDMDB R11, {R11,SP,PC} .text:00016B88 ; --------------------------------------------------------------------------- .text:00016B88 .text:00016B88 loc_16B88 ; CODE XREF: _dl_signal_cerror+18j .text:00016B88 BL _dl_signal_error .text:00016B88 ; End of function _dl_signal_cerror .text:00016B88 .text:00016B88 ; --------------------------------------------------------------------------- .text:00016B8C off_16B8C DCD receiver ; DATA XREF: _dl_signal_cerror+8r .text:00016B90 .text:00016B90 ; =============== S U B R O U T I N E ======================================= .text:00016B90 .text:00016B90 ; Attributes: bp-based frame .text:00016B90 .text:00016B90 EXPORT _dl_catch_error .text:00016B90 _dl_catch_error ; CODE XREF: dlerror_run+28p .text:00016B90 ; .text:000517CCp ... .text:00016B90 .text:00016B90 var_108 = -0x108 .text:00016B90 var_104 = -0x104 .text:00016B90 var_100 = -0x100 .text:00016B90 var_FC = -0xFC .text:00016B90 var_F8 = -0xF8 .text:00016B90 var_F4 = -0xF4 .text:00016B90 env = -0xF0 .text:00016B90 var_14 = -0x14 .text:00016B90 .text:00016B90 MOV R12, SP .text:00016B94 STMFD SP!, {R4,R11,R12,LR,PC} .text:00016B98 SUB R11, R12, #4 .text:00016B9C LDR R12, =__libc_internal_tsd_get .text:00016BA0 SUB SP, SP, #0xF8 .text:00016BA4 LDR R12, [R12] .text:00016BA8 MOV LR, #0 .text:00016BAC STR LR, [R11,#var_F4] .text:00016BB0 STR R0, [R11,#var_FC] .text:00016BB4 STR R1, [R11,#var_100] .text:00016BB8 STR R2, [R11,#var_104] .text:00016BBC STR R3, [R11,#var_108] .text:00016BC0 CMP R12, LR .text:00016BC4 BEQ loc_16BD8 .text:00016BC8 MOV R0, #1 .text:00016BCC MOV LR, PC .text:00016BD0 MOV PC, R12 .text:00016BD4 B loc_16BE0 .text:00016BD8 ; --------------------------------------------------------------------------- .text:00016BD8 .text:00016BD8 loc_16BD8 ; CODE XREF: _dl_catch_error+34j .text:00016BD8 LDR R3, =__libc_tsd_DL_ERROR_data .text:00016BDC LDR R0, [R3] .text:00016BE0 .text:00016BE0 loc_16BE0 ; CODE XREF: _dl_catch_error+44j .text:00016BE0 STR R0, [R11,#var_14] .text:00016BE4 SUB R0, R11, #-env ; env .text:00016BE8 BL _setjmp .text:00016BEC SUBS R4, R0, #0 .text:00016BF0 BNE loc_16C7C .text:00016BF4 LDR R3, =__libc_internal_tsd_set .text:00016BF8 LDR R3, [R3] .text:00016BFC CMP R3, #0 .text:00016C00 BEQ loc_16C18 .text:00016C04 MOV R0, #1 .text:00016C08 SUB R1, R11, #-var_F8 .text:00016C0C MOV LR, PC .text:00016C10 MOV PC, R3 .text:00016C14 B loc_16C24 .text:00016C18 ; --------------------------------------------------------------------------- .text:00016C18 .text:00016C18 loc_16C18 ; CODE XREF: _dl_catch_error+70j .text:00016C18 LDR R2, =__libc_tsd_DL_ERROR_data .text:00016C1C SUB R3, R11, #-var_F8 .text:00016C20 STR R3, [R2] .text:00016C24 .text:00016C24 loc_16C24 ; CODE XREF: _dl_catch_error+84j .text:00016C24 SUB R0, R11, #-var_108 .text:00016C28 LDMIA R0, {R0,R2} .text:00016C2C MOV LR, PC .text:00016C30 MOV PC, R2 .text:00016C34 LDR R3, =__libc_internal_tsd_set .text:00016C38 LDR R3, [R3] .text:00016C3C CMP R3, #0 .text:00016C40 BEQ loc_16C58 .text:00016C44 LDR R1, [R11,#var_14] .text:00016C48 MOV R0, #1 .text:00016C4C MOV LR, PC .text:00016C50 MOV PC, R3 .text:00016C54 B loc_16C64 .text:00016C58 ; --------------------------------------------------------------------------- .text:00016C58 .text:00016C58 loc_16C58 ; CODE XREF: _dl_catch_error+B0j .text:00016C58 LDR R2, =__libc_tsd_DL_ERROR_data .text:00016C5C LDR R3, [R11,#var_14] .text:00016C60 STR R3, [R2] .text:00016C64 .text:00016C64 loc_16C64 ; CODE XREF: _dl_catch_error+C4j .text:00016C64 LDR R2, [R11,#var_FC] .text:00016C68 MOV R3, #0 .text:00016C6C STR R3, [R2] .text:00016C70 LDR R2, [R11,#var_100] .text:00016C74 MOV R0, R3 .text:00016C78 B loc_16CD8 .text:00016C7C ; --------------------------------------------------------------------------- .text:00016C7C .text:00016C7C loc_16C7C ; CODE XREF: _dl_catch_error+60j .text:00016C7C LDR R3, =__libc_internal_tsd_set .text:00016C80 LDR R3, [R3] .text:00016C84 CMP R3, #0 .text:00016C88 BEQ loc_16CAC .text:00016C8C LDR R1, [R11,#var_14] .text:00016C90 MOV R0, #1 .text:00016C94 MOV LR, PC .text:00016C98 MOV PC, R3 .text:00016C9C B loc_16CB8 .text:00016C9C ; --------------------------------------------------------------------------- .text:00016CA0 off_16CA0 DCD __libc_internal_tsd_get ; DATA XREF: _dl_catch_error+Cr .text:00016CA4 off_16CA4 DCD __libc_tsd_DL_ERROR_data .text:00016CA4 ; DATA XREF: _dl_catch_error:loc_16BD8r .text:00016CA4 ; _dl_catch_error:loc_16C18r ... .text:00016CA8 off_16CA8 DCD __libc_internal_tsd_set ; DATA XREF: _dl_catch_error+64r .text:00016CA8 ; _dl_catch_error+A4r ... .text:00016CAC ; --------------------------------------------------------------------------- .text:00016CAC .text:00016CAC loc_16CAC ; CODE XREF: _dl_catch_error+F8j .text:00016CAC LDR R2, =__libc_tsd_DL_ERROR_data .text:00016CB0 LDR R3, [R11,#var_14] .text:00016CB4 STR R3, [R2] .text:00016CB8 .text:00016CB8 loc_16CB8 ; CODE XREF: _dl_catch_error+10Cj .text:00016CB8 SUB R2, R11, #-var_FC .text:00016CBC LDMIA R2, {R2,R3} .text:00016CC0 STR R3, [R2] .text:00016CC4 LDR R3, [R11,#var_F4] .text:00016CC8 CMN R4, #1 .text:00016CCC LDR R2, [R11,#var_100] .text:00016CD0 MOVNE R0, R4 .text:00016CD4 MOVEQ R0, #0 .text:00016CD8 .text:00016CD8 loc_16CD8 ; CODE XREF: _dl_catch_error+E8j .text:00016CD8 STR R3, [R2] .text:00016CDC B locret_16CE4 .text:00016CDC ; --------------------------------------------------------------------------- .text:00016CE0 off_16CE0 DCD __libc_tsd_DL_ERROR_data .text:00016CE0 ; DATA XREF: _dl_catch_error:loc_16CACr .text:00016CE4 ; --------------------------------------------------------------------------- .text:00016CE4 .text:00016CE4 locret_16CE4 ; CODE XREF: _dl_catch_error+14Cj .text:00016CE4 LDMDB R11, {R4,R11,SP,PC} .text:00016CE4 ; End of function _dl_catch_error .text:00016CE4 .text:00016CE8 .text:00016CE8 ; =============== S U B R O U T I N E ======================================= .text:00016CE8 .text:00016CE8 ; Attributes: bp-based frame .text:00016CE8 .text:00016CE8 EXPORT _dl_receive_error .text:00016CE8 _dl_receive_error .text:00016CE8 MOV R12, SP .text:00016CEC STMFD SP!, {R4-R12,LR,PC} .text:00016CF0 SUB R11, R12, #4 .text:00016CF4 MOV R7, R0 .text:00016CF8 LDR R3, =__libc_internal_tsd_get .text:00016CFC MOV R8, R1 .text:00016D00 LDR R3, [R3] .text:00016D04 MOV R6, R2 .text:00016D08 CMP R3, #0 .text:00016D0C BEQ loc_16D24 .text:00016D10 MOV R0, #1 .text:00016D14 MOV LR, PC .text:00016D18 MOV PC, R3 .text:00016D1C MOV R4, R0 .text:00016D20 B loc_16D2C .text:00016D24 ; --------------------------------------------------------------------------- .text:00016D24 .text:00016D24 loc_16D24 ; CODE XREF: _dl_receive_error+24j .text:00016D24 LDR R3, =__libc_tsd_DL_ERROR_data .text:00016D28 LDR R4, [R3] .text:00016D2C .text:00016D2C loc_16D2C ; CODE XREF: _dl_receive_error+38j .text:00016D2C LDR R3, =receiver .text:00016D30 LDR R2, =__libc_internal_tsd_set .text:00016D34 MOV R9, R3 .text:00016D38 LDR R12, [R2] .text:00016D3C MOV R10, R2 .text:00016D40 LDR R5, [R3] .text:00016D44 CMP R12, #0 .text:00016D48 BEQ loc_16D60 .text:00016D4C MOV R0, #1 .text:00016D50 MOV R1, #0 .text:00016D54 MOV LR, PC .text:00016D58 MOV PC, R12 .text:00016D5C B loc_16D68 .text:00016D60 ; --------------------------------------------------------------------------- .text:00016D60 .text:00016D60 loc_16D60 ; CODE XREF: _dl_receive_error+60j .text:00016D60 LDR R3, =__libc_tsd_DL_ERROR_data .text:00016D64 STR R12, [R3] .text:00016D68 .text:00016D68 loc_16D68 ; CODE XREF: _dl_receive_error+74j .text:00016D68 STR R7, [R9] .text:00016D6C MOV R0, R6 .text:00016D70 MOV LR, PC .text:00016D74 MOV PC, R8 .text:00016D78 LDR R2, [R10] .text:00016D7C CMP R2, #0 .text:00016D80 BEQ loc_16D98 .text:00016D84 MOV R0, #1 .text:00016D88 MOV R1, R4 .text:00016D8C MOV LR, PC .text:00016D90 MOV PC, R2 .text:00016D94 B loc_16DA0 .text:00016D98 ; --------------------------------------------------------------------------- .text:00016D98 .text:00016D98 loc_16D98 ; CODE XREF: _dl_receive_error+98j .text:00016D98 LDR R3, =__libc_tsd_DL_ERROR_data .text:00016D9C STR R4, [R3] .text:00016DA0 .text:00016DA0 loc_16DA0 ; CODE XREF: _dl_receive_error+ACj .text:00016DA0 STR R5, [R9] .text:00016DA4 LDMDB R11, {R4-R11,SP,PC} .text:00016DA4 ; End of function _dl_receive_error .text:00016DA4 .text:00016DA4 ; --------------------------------------------------------------------------- .text:00016DA8 off_16DA8 DCD __libc_internal_tsd_get .text:00016DA8 ; DATA XREF: _dl_receive_error+10r .text:00016DAC off_16DAC DCD __libc_tsd_DL_ERROR_data .text:00016DAC ; DATA XREF: _dl_receive_error:loc_16D24r .text:00016DAC ; _dl_receive_error:loc_16D60r ... .text:00016DB0 off_16DB0 DCD receiver ; DATA XREF: _dl_receive_error:loc_16D2Cr .text:00016DB4 off_16DB4 DCD __libc_internal_tsd_set .text:00016DB4 ; DATA XREF: _dl_receive_error+48r .text:00016DB8 .text:00016DB8 ; =============== S U B R O U T I N E ======================================= .text:00016DB8 .text:00016DB8 ; Attributes: bp-based frame .text:00016DB8 .text:00016DB8 EXPORT _dl_sysdep_read_whole_file .text:00016DB8 _dl_sysdep_read_whole_file ; CODE XREF: _dl_load_cache_lookup+50p .text:00016DB8 .text:00016DB8 var_84 = -0x84 .text:00016DB8 var_80 = -0x80 .text:00016DB8 var_7C = -0x7C .text:00016DB8 var_50 = -0x50 .text:00016DB8 var_1C = -0x1C .text:00016DB8 .text:00016DB8 MOV R12, SP .text:00016DBC STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00016DC0 SUB R11, R12, #4 .text:00016DC4 MOV R7, R1 .text:00016DC8 MOV R1, #0 .text:00016DCC MOV R4, R2 .text:00016DD0 SUB SP, SP, #0x68 .text:00016DD4 BL open .text:00016DD8 SUBS R6, R0, #0 .text:00016DDC MOV R0, #0 .text:00016DE0 BLT locret_16E64 .text:00016DE4 MOV R0, #3 .text:00016DE8 MOV R1, R6 .text:00016DEC SUB R2, R11, #-var_7C .text:00016DF0 BL __fxstat64 .text:00016DF4 CMP R0, #0 .text:00016DF8 BLT loc_16E1C .text:00016DFC MOV R1, 0xFFFFFFCC .text:00016E00 SUB R3, R11, #-var_1C .text:00016E04 LDR R0, [R3,R1] .text:00016E08 ADD R1, R1, R11 .text:00016E0C SUB R3, R1, #0x1C .text:00016E10 LDR R2, [R3,#4] .text:00016E14 ORRS R0, R0, R2 .text:00016E18 BNE loc_16E24 .text:00016E1C .text:00016E1C loc_16E1C ; CODE XREF: _dl_sysdep_read_whole_file+40j .text:00016E1C MOV R4, #0 .text:00016E20 B loc_16E58 .text:00016E24 ; --------------------------------------------------------------------------- .text:00016E24 .text:00016E24 loc_16E24 ; CODE XREF: _dl_sysdep_read_whole_file+60j .text:00016E24 STR R6, [SP,#0x84+var_84] .text:00016E28 MOV R5, #0 .text:00016E2C STR R5, [SP,#0x84+var_80] .text:00016E30 MOV R0, R5 .text:00016E34 MOV R2, R4 .text:00016E38 LDR R1, [R11,#var_50] .text:00016E3C MOV R3, #2 .text:00016E40 BL mmap .text:00016E44 MOV R4, R0 .text:00016E48 CMN R4, #1 .text:00016E4C MOVEQ R4, R5 .text:00016E50 LDRNE R3, [R11,#var_50] .text:00016E54 STRNE R3, [R7] .text:00016E58 .text:00016E58 loc_16E58 ; CODE XREF: _dl_sysdep_read_whole_file+68j .text:00016E58 MOV R0, R6 .text:00016E5C BL close .text:00016E60 MOV R0, R4 .text:00016E64 .text:00016E64 locret_16E64 ; CODE XREF: _dl_sysdep_read_whole_file+28j .text:00016E64 LDMDB R11, {R4-R7,R11,SP,PC} .text:00016E64 ; End of function _dl_sysdep_read_whole_file .text:00016E64 .text:00016E68 .text:00016E68 ; =============== S U B R O U T I N E ======================================= .text:00016E68 .text:00016E68 ; Attributes: bp-based frame .text:00016E68 .text:00016E68 _dl_debug_vdprintf ; CODE XREF: _dl_debug_printf+24p .text:00016E68 ; _dl_debug_printf_c+24p ... .text:00016E68 .text:00016E68 var_258 = -0x258 .text:00016E68 var_58 = -0x58 .text:00016E68 var_54 = -0x54 .text:00016E68 var_50 = -0x50 .text:00016E68 var_4C = -0x4C .text:00016E68 var_48 = -0x48 .text:00016E68 var_44 = -0x44 .text:00016E68 var_40 = -0x40 .text:00016E68 var_3C = -0x3C .text:00016E68 var_38 = -0x38 .text:00016E68 var_34 = -0x34 .text:00016E68 var_30 = -0x30 .text:00016E68 var_2B = -0x2B .text:00016E68 var_2A = -0x2A .text:00016E68 .text:00016E68 MOV R12, SP .text:00016E6C STMFD SP!, {R4-R12,LR,PC} .text:00016E70 SUB R11, R12, #4 .text:00016E74 SUB SP, SP, #0x30 .text:00016E78 STR R1, [R11,#var_38] .text:00016E7C STR R3, [R11,#var_3C] .text:00016E80 MOV R5, R2 .text:00016E84 LDRB R3, [R5] .text:00016E88 MOV R10, #0 .text:00016E8C STR R10, [R11,#var_44] .text:00016E90 STR R0, [R11,#var_34] .text:00016E94 SUB SP, SP, #0x200 .text:00016E98 STR SP, [R11,#var_40] .text:00016E9C CMP R3, R10 .text:00016EA0 BEQ loc_172E8 .text:00016EA4 .text:00016EA4 loc_16EA4 ; CODE XREF: _dl_debug_vdprintf+47Cj .text:00016EA4 STR R5, [R11,#var_48] .text:00016EA8 LDR R1, [R11,#var_38] .text:00016EAC LDR R2, [R11,#var_40] .text:00016EB0 CMP R1, #0 .text:00016EB4 ADD R2, R2, #4 .text:00016EB8 STR R2, [R11,#var_58] .text:00016EBC BLE loc_16FA4 .text:00016EC0 SUB R7, R11, #-var_30 .text:00016EC4 LDR R3, [R11,#var_44] .text:00016EC8 ADD R9, R10, #1 .text:00016ECC CMP R3, #0 .text:00016ED0 BNE loc_16F64 .text:00016ED4 BL getpid .text:00016ED8 STR R0, [R11,#var_44] .text:00016EDC MOV R3, 0x1869F .text:00016EE8 CMP R0, R3 .text:00016EEC BLS loc_16F04 .text:00016EF0 LDR R0, =aPid0Pid100000 ; "pid >= 0 && pid < 100000" .text:00016EF4 LDR R1, =aDlMisc_c ; "dl-misc.c" .text:00016EF8 LDR R3, =a_dl_debug_vdpr ; "_dl_debug_vdprintf" .text:00016EFC MOV R2, #0x71 .text:00016F00 BL __assert_fail .text:00016F04 ; --------------------------------------------------------------------------- .text:00016F04 .text:00016F04 loc_16F04 ; CODE XREF: _dl_debug_vdprintf+84j .text:00016F04 LDR R4, [R11,#var_44] .text:00016F08 SUB R6, R11, #-var_2B .text:00016F0C LDR R8, =_itoa_lower_digits .text:00016F10 .text:00016F10 loc_16F10 ; CODE XREF: _dl_debug_vdprintf+CCj .text:00016F10 MOV R0, R4 .text:00016F14 MOV R1, #0xA .text:00016F18 BL __umodsi3 .text:00016F1C LDRB R3, [R8,R0] .text:00016F20 STRB R3, [R6,#-1]! .text:00016F24 MOV R0, R4 .text:00016F28 MOV R1, #0xA .text:00016F2C BL __udivsi3 .text:00016F30 SUBS R4, R0, #0 .text:00016F34 BNE loc_16F10 .text:00016F38 MOV R3, R6 .text:00016F3C CMP R3, R7 .text:00016F40 BLS loc_16F54 .text:00016F44 MOV R2, #0x30 .text:00016F48 .text:00016F48 loc_16F48 ; CODE XREF: _dl_debug_vdprintf+E8j .text:00016F48 STRB R2, [R3,#-1]! .text:00016F4C CMP R3, R7 .text:00016F50 BHI loc_16F48 .text:00016F54 .text:00016F54 loc_16F54 ; CODE XREF: _dl_debug_vdprintf+D8j .text:00016F54 MOV R3, #0x3A .text:00016F58 STRB R3, [R11,#var_2B] .text:00016F5C MOV R2, #9 .text:00016F60 STRB R2, [R11,#var_2A] .text:00016F64 .text:00016F64 loc_16F64 ; CODE XREF: _dl_debug_vdprintf+68j .text:00016F64 CMP R10, #0x3F .text:00016F68 BLE loc_16F80 .text:00016F6C LDR R0, =aNiovNiovmax ; "niov < niovmax" .text:00016F70 LDR R1, =aDlMisc_c ; "dl-misc.c" .text:00016F74 LDR R3, =a_dl_debug_vdpr ; "_dl_debug_vdprintf" .text:00016F78 MOV R2, #0x7A .text:00016F7C BL __assert_fail .text:00016F80 ; --------------------------------------------------------------------------- .text:00016F80 .text:00016F80 loc_16F80 ; CODE XREF: _dl_debug_vdprintf+100j .text:00016F80 MOV R2, R10,LSL#3 .text:00016F84 LDR R1, [R11,#var_58] .text:00016F88 MOV R3, #7 .text:00016F8C STR R3, [R1,R2] .text:00016F90 SUB R3, R3, #8 .text:00016F94 STR R3, [R11,#var_38] .text:00016F98 LDR R1, [R11,#var_40] .text:00016F9C MOV R10, R9 .text:00016FA0 STR R7, [R1,R2] .text:00016FA4 .text:00016FA4 loc_16FA4 ; CODE XREF: _dl_debug_vdprintf+54j .text:00016FA4 LDRB R3, [R5] .text:00016FA8 MOV R8, R10,LSL#3 .text:00016FAC CMP R3, #0 .text:00016FB0 CMPNE R3, #0x25 .text:00016FB4 BEQ loc_16FEC .text:00016FB8 LDR R2, [R11,#var_38] .text:00016FBC CMP R2, #0 .text:00016FC0 B loc_16FE0 .text:00016FC4 ; --------------------------------------------------------------------------- .text:00016FC4 .text:00016FC4 loc_16FC4 ; CODE XREF: _dl_debug_vdprintf:loc_16FE0j .text:00016FC4 ; _dl_debug_vdprintf+180j .text:00016FC4 LDRB R3, [R5,#1]! .text:00016FC8 AND R3, R3, #0xFF .text:00016FCC CMP R3, #0 .text:00016FD0 CMPNE R3, #0x25 .text:00016FD4 BEQ loc_16FEC .text:00016FD8 LDR R1, [R11,#var_38] .text:00016FDC CMP R1, #0 .text:00016FE0 .text:00016FE0 loc_16FE0 ; CODE XREF: _dl_debug_vdprintf+158j .text:00016FE0 BEQ loc_16FC4 .text:00016FE4 CMP R3, #0xA .text:00016FE8 BNE loc_16FC4 .text:00016FEC .text:00016FEC loc_16FEC ; CODE XREF: _dl_debug_vdprintf+14Cj .text:00016FEC ; _dl_debug_vdprintf+16Cj .text:00016FEC CMP R10, #0x3F .text:00016FF0 BLE loc_17008 .text:00016FF4 LDR R0, =aNiovNiovmax ; "niov < niovmax" .text:00016FF8 LDR R1, =aDlMisc_c ; "dl-misc.c" .text:00016FFC LDR R3, =a_dl_debug_vdpr ; "_dl_debug_vdprintf" .text:00017000 MOV R2, #0x87 .text:00017004 BL __assert_fail .text:00017008 ; --------------------------------------------------------------------------- .text:00017008 .text:00017008 loc_17008 ; CODE XREF: _dl_debug_vdprintf+188j .text:00017008 LDR R2, [R11,#var_48] .text:0001700C LDR R1, [R11,#var_58] .text:00017010 RSB R3, R2, R5 .text:00017014 CMP R3, #0 .text:00017018 STR R3, [R1,R8] .text:0001701C LDRNE R3, [R11,#var_40] .text:00017020 ADDNE R10, R10, #1 .text:00017024 STRNE R2, [R3,R8] .text:00017028 LDRB R3, [R5] .text:0001702C CMP R3, #0x25 .text:00017030 BNE loc_1726C .text:00017034 MOV R1, #0x20 .text:00017038 STR R1, [R11,#var_4C] .text:0001703C LDRB R3, [R5,#1]! .text:00017040 MOV R2, 0xFFFFFFFF .text:00017044 STR R2, [R11,#var_50] .text:00017048 AND R3, R3, #0xFF .text:0001704C CMP R3, #0x30 .text:00017050 ADDEQ R5, R5, #1 .text:00017054 STREQ R3, [R11,#var_4C] .text:00017058 LDRB R3, [R5] .text:0001705C CMP R3, #0x2A .text:00017060 BNE loc_17078 .text:00017064 LDR R3, [R11,#var_3C] .text:00017068 LDR R1, [R3],#4 .text:0001706C STR R1, [R11,#var_50] .text:00017070 ADD R5, R5, #1 .text:00017074 STR R3, [R11,#var_3C] .text:00017078 .text:00017078 loc_17078 ; CODE XREF: _dl_debug_vdprintf+1F8j .text:00017078 MOV R2, R5 .text:0001707C LDRB R3, [R2],#1 .text:00017080 CMP R3, #0x5A .text:00017084 CMPNE R3, #0x6C .text:00017088 MOVEQ R5, R2 .text:0001708C LDRB R3, [R5] .text:00017090 CMP R3, #0x75 .text:00017094 BEQ loc_170B0 .text:00017098 BGT loc_170A8 .text:0001709C CMP R3, #0x73 .text:000170A0 BEQ loc_17218 .text:000170A4 B loc_17248 .text:000170A8 ; --------------------------------------------------------------------------- .text:000170A8 .text:000170A8 loc_170A8 ; CODE XREF: _dl_debug_vdprintf+230j .text:000170A8 CMP R3, #0x78 .text:000170AC BNE loc_17248 .text:000170B0 .text:000170B0 loc_170B0 ; CODE XREF: _dl_debug_vdprintf+22Cj .text:000170B0 SUB SP, SP, #0xC .text:000170B4 ADD R2, SP, #0x264+var_258 .text:000170B8 STR R2, [R11,#var_54] .text:000170BC LDR R1, [R11,#var_3C] .text:000170C0 LDRB R3, [R5] .text:000170C4 MOV R7, R2 .text:000170C8 LDR R4, [R1],#4 .text:000170CC CMP R3, #0x78 .text:000170D0 MOVNE R6, #0xA .text:000170D4 MOVEQ R6, #0x10 .text:000170D8 CMP R6, #0xA .text:000170DC STR R1, [R11,#var_3C] .text:000170E0 BEQ loc_17100 .text:000170E4 BHI loc_170F4 .text:000170E8 CMP R6, #8 .text:000170EC BEQ loc_17164 .text:000170F0 B loc_1718C .text:000170F4 ; --------------------------------------------------------------------------- .text:000170F4 .text:000170F4 loc_170F4 ; CODE XREF: _dl_debug_vdprintf+27Cj .text:000170F4 CMP R6, #0x10 .text:000170F8 BEQ loc_1713C .text:000170FC B loc_1718C .text:00017100 ; --------------------------------------------------------------------------- .text:00017100 .text:00017100 loc_17100 ; CODE XREF: _dl_debug_vdprintf+278j .text:00017100 MOV R8, R10,LSL#3 .text:00017104 ADD R9, R10, #1 .text:00017108 ADD R5, R5, #1 .text:0001710C .text:0001710C loc_1710C ; CODE XREF: _dl_debug_vdprintf+2CCj .text:0001710C MOV R0, R4 .text:00017110 MOV R1, #0xA .text:00017114 BL __umodsi3 .text:00017118 LDR R2, =_itoa_lower_digits .text:0001711C LDRB R3, [R2,R0] .text:00017120 STRB R3, [R7,#-1]! .text:00017124 MOV R1, #0xA .text:00017128 MOV R0, R4 .text:0001712C BL __udivsi3 .text:00017130 SUBS R4, R0, #0 .text:00017134 BNE loc_1710C .text:00017138 B loc_171C8 .text:0001713C ; --------------------------------------------------------------------------- .text:0001713C .text:0001713C loc_1713C ; CODE XREF: _dl_debug_vdprintf+290j .text:0001713C MOV R8, R10,LSL#3 .text:00017140 ADD R9, R10, #1 .text:00017144 ADD R5, R5, #1 .text:00017148 .text:00017148 loc_17148 ; CODE XREF: _dl_debug_vdprintf+2F4j .text:00017148 LDR R1, =_itoa_lower_digits .text:0001714C AND R3, R4, #0xF .text:00017150 LDRB R2, [R1,R3] .text:00017154 MOVS R4, R4,LSR#4 .text:00017158 STRB R2, [R7,#-1]! .text:0001715C BNE loc_17148 .text:00017160 B loc_171C8 .text:00017164 ; --------------------------------------------------------------------------- .text:00017164 .text:00017164 loc_17164 ; CODE XREF: _dl_debug_vdprintf+284j .text:00017164 MOV R8, R10,LSL#3 .text:00017168 ADD R9, R10, #1 .text:0001716C ADD R5, R5, #1 .text:00017170 .text:00017170 loc_17170 ; CODE XREF: _dl_debug_vdprintf+31Cj .text:00017170 LDR R1, =_itoa_lower_digits .text:00017174 AND R3, R4, #7 .text:00017178 LDRB R2, [R1,R3] .text:0001717C MOVS R4, R4,LSR#3 .text:00017180 STRB R2, [R7,#-1]! .text:00017184 BNE loc_17170 .text:00017188 B loc_171C8 .text:0001718C ; --------------------------------------------------------------------------- .text:0001718C .text:0001718C loc_1718C ; CODE XREF: _dl_debug_vdprintf+288j .text:0001718C ; _dl_debug_vdprintf+294j .text:0001718C MOV R8, R10,LSL#3 .text:00017190 ADD R9, R10, #1 .text:00017194 ADD R5, R5, #1 .text:00017198 .text:00017198 loc_17198 ; CODE XREF: _dl_debug_vdprintf+35Cj .text:00017198 MOV R0, R4 .text:0001719C MOV R1, R6 .text:000171A0 BL __umodsi3 .text:000171A4 LDR R2, =_itoa_lower_digits .text:000171A8 LDRB R3, [R2,R0] .text:000171AC STRB R3, [R7,#-1]! .text:000171B0 MOV R1, R6 .text:000171B4 MOV R0, R4 .text:000171B8 BL __udivsi3 .text:000171BC MOV R4, R0 .text:000171C0 CMP R4, #0 .text:000171C4 BNE loc_17198 .text:000171C8 .text:000171C8 loc_171C8 ; CODE XREF: _dl_debug_vdprintf+2D0j .text:000171C8 ; _dl_debug_vdprintf+2F8j ... .text:000171C8 LDR R3, [R11,#var_50] .text:000171CC MOV R2, R7 .text:000171D0 CMN R3, #1 .text:000171D4 BEQ loc_171F8 .text:000171D8 B loc_171E4 .text:000171DC ; --------------------------------------------------------------------------- .text:000171DC .text:000171DC loc_171DC ; CODE XREF: _dl_debug_vdprintf+38Cj .text:000171DC LDR R3, [R11,#var_4C] .text:000171E0 STRB R3, [R2,#-1]! .text:000171E4 .text:000171E4 loc_171E4 ; CODE XREF: _dl_debug_vdprintf+370j .text:000171E4 LDR R1, [R11,#var_54] .text:000171E8 RSB R3, R2, R1 .text:000171EC LDR R1, [R11,#var_50] .text:000171F0 CMP R3, R1 .text:000171F4 BLT loc_171DC .text:000171F8 .text:000171F8 loc_171F8 ; CODE XREF: _dl_debug_vdprintf+36Cj .text:000171F8 LDR R3, [R11,#var_40] .text:000171FC STR R2, [R3,R8] .text:00017200 LDR R1, [R11,#var_54] .text:00017204 RSB R3, R2, R1 .text:00017208 LDR R2, [R11,#var_58] .text:0001720C MOV R10, R9 .text:00017210 STR R3, [R2,R8] .text:00017214 B loc_172DC .text:00017218 ; --------------------------------------------------------------------------- .text:00017218 .text:00017218 loc_17218 ; CODE XREF: _dl_debug_vdprintf+238j .text:00017218 LDR R3, [R11,#var_3C] .text:0001721C LDR R0, [R3],#4 .text:00017220 STR R3, [R11,#var_3C] .text:00017224 LDR R1, [R11,#var_40] .text:00017228 MOV R4, R10,LSL#3 .text:0001722C STR R0, [R1,R4] .text:00017230 ADD R10, R10, #1 .text:00017234 BL strlen .text:00017238 LDR R2, [R11,#var_58] .text:0001723C ADD R5, R5, #1 .text:00017240 STR R0, [R2,R4] .text:00017244 B loc_172DC .text:00017248 ; --------------------------------------------------------------------------- .text:00017248 .text:00017248 loc_17248 ; CODE XREF: _dl_debug_vdprintf+23Cj .text:00017248 ; _dl_debug_vdprintf+244j .text:00017248 LDR R3, =aInvalidFormatS ; "invalid format specifier" .text:0001724C ADD R5, R5, #1 .text:00017250 CMP R3, #0 .text:00017254 BEQ loc_172DC .text:00017258 LDR R0, =aInvalidForma_0 ; "! \"invalid format specifier\"" .text:0001725C LDR R1, =aDlMisc_c ; "dl-misc.c" .text:00017260 LDR R3, =a_dl_debug_vdpr ; "_dl_debug_vdprintf" .text:00017264 MOV R2, #0xD7 .text:00017268 BL __assert_fail .text:0001726C ; --------------------------------------------------------------------------- .text:0001726C .text:0001726C loc_1726C ; CODE XREF: _dl_debug_vdprintf+1C8j .text:0001726C CMP R3, #0xA .text:00017270 BNE loc_172DC .text:00017274 LDR R3, [R11,#var_48] .text:00017278 CMP R5, R3 .text:0001727C BNE loc_172B8 .text:00017280 LDR R1, [R11,#var_40] .text:00017284 MOV R2, R10,LSL#3 .text:00017288 STR R5, [R1,R2] .text:0001728C ADD R10, R10, #1 .text:00017290 LDR R1, [R11,#var_58] .text:00017294 MOV R3, #1 .text:00017298 B loc_172CC .text:00017298 ; --------------------------------------------------------------------------- .text:0001729C off_1729C DCD aPid0Pid100000 ; DATA XREF: _dl_debug_vdprintf+88r .text:0001729C ; "pid >= 0 && pid < 100000" .text:000172A0 off_172A0 DCD aDlMisc_c ; DATA XREF: _dl_debug_vdprintf+8Cr .text:000172A0 ; _dl_debug_vdprintf+108r ... .text:000172A0 ; "dl-misc.c" .text:000172A4 off_172A4 DCD a_dl_debug_vdpr ; DATA XREF: _dl_debug_vdprintf+90r .text:000172A4 ; _dl_debug_vdprintf+10Cr ... .text:000172A4 ; "_dl_debug_vdprintf" .text:000172A8 off_172A8 DCD _itoa_lower_digits ; DATA XREF: _dl_debug_vdprintf+A4r .text:000172A8 ; _dl_debug_vdprintf+2B0r ... .text:000172AC off_172AC DCD aNiovNiovmax ; DATA XREF: _dl_debug_vdprintf+104r .text:000172AC ; _dl_debug_vdprintf+18Cr .text:000172AC ; "niov < niovmax" .text:000172B0 off_172B0 DCD aInvalidFormatS ; DATA XREF: _dl_debug_vdprintf:loc_17248r .text:000172B0 ; "invalid format specifier" .text:000172B4 off_172B4 DCD aInvalidForma_0 ; DATA XREF: _dl_debug_vdprintf+3F0r .text:000172B4 ; "! \"invalid format specifier\"" .text:000172B8 ; --------------------------------------------------------------------------- .text:000172B8 .text:000172B8 loc_172B8 ; CODE XREF: _dl_debug_vdprintf+414j .text:000172B8 SUB R2, R10, #1 .text:000172BC LDR R1, [R11,#var_58] .text:000172C0 MOV R2, R2,LSL#3 .text:000172C4 LDR R3, [R1,R2] .text:000172C8 ADD R3, R3, #1 .text:000172CC .text:000172CC loc_172CC ; CODE XREF: _dl_debug_vdprintf+430j .text:000172CC STR R3, [R1,R2] .text:000172D0 MOV R2, #1 .text:000172D4 ADD R5, R5, R2 .text:000172D8 STR R2, [R11,#var_38] .text:000172DC .text:000172DC loc_172DC ; CODE XREF: _dl_debug_vdprintf+3ACj .text:000172DC ; _dl_debug_vdprintf+3DCj ... .text:000172DC LDRB R3, [R5] .text:000172E0 CMP R3, #0 .text:000172E4 BNE loc_16EA4 .text:000172E8 .text:000172E8 loc_172E8 ; CODE XREF: _dl_debug_vdprintf+38j .text:000172E8 LDR R0, [R11,#var_34] .text:000172EC LDR R1, [R11,#var_40] .text:000172F0 MOV R2, R10 .text:000172F4 BL writev .text:000172F8 LDMDB R11, {R4-R11,SP,PC} .text:000172F8 ; End of function _dl_debug_vdprintf .text:000172F8 .text:000172FC .text:000172FC ; =============== S U B R O U T I N E ======================================= .text:000172FC .text:000172FC ; Attributes: bp-based frame .text:000172FC .text:000172FC EXPORT _dl_debug_printf .text:000172FC _dl_debug_printf ; CODE XREF: _dl_map_object_from_fd+128p .text:000172FC ; _dl_map_object_from_fd+8E0p ... .text:000172FC .text:000172FC varg_r0 = 4 .text:000172FC varg_r1 = 8 .text:000172FC varg_r2 = 0xC .text:000172FC varg_r3 = 0x10 .text:000172FC .text:000172FC MOV R12, SP .text:00017300 STMFD SP!, {R0-R3} .text:00017304 STMFD SP!, {R11,R12,LR,PC} .text:00017308 LDR R3, =_dl_debug_fd .text:0001730C SUB R11, R12, #0x14 .text:00017310 LDR R2, [R11,#varg_r0] .text:00017314 MOV R1, #1 .text:00017318 LDR R0, [R3] .text:0001731C ADD R3, R11, #8 .text:00017320 BL _dl_debug_vdprintf .text:00017324 B locret_1732C .text:00017324 ; --------------------------------------------------------------------------- .text:00017328 off_17328 DCD _dl_debug_fd ; DATA XREF: _dl_debug_printf+Cr .text:0001732C ; --------------------------------------------------------------------------- .text:0001732C .text:0001732C locret_1732C ; CODE XREF: _dl_debug_printf+28j .text:0001732C LDMDB R11, {R11,SP,PC} .text:0001732C ; End of function _dl_debug_printf .text:0001732C .text:00017330 .text:00017330 ; =============== S U B R O U T I N E ======================================= .text:00017330 .text:00017330 ; Attributes: bp-based frame .text:00017330 .text:00017330 EXPORT _dl_debug_printf_c .text:00017330 _dl_debug_printf_c ; CODE XREF: print_search_path+108p .text:00017330 ; print_search_path+118p ... .text:00017330 .text:00017330 varg_r0 = 4 .text:00017330 varg_r1 = 8 .text:00017330 varg_r2 = 0xC .text:00017330 varg_r3 = 0x10 .text:00017330 .text:00017330 MOV R12, SP .text:00017334 STMFD SP!, {R0-R3} .text:00017338 STMFD SP!, {R11,R12,LR,PC} .text:0001733C LDR R3, =_dl_debug_fd .text:00017340 SUB R11, R12, #0x14 .text:00017344 LDR R2, [R11,#varg_r0] .text:00017348 MOV R1, 0xFFFFFFFF .text:0001734C LDR R0, [R3] .text:00017350 ADD R3, R11, #8 .text:00017354 BL _dl_debug_vdprintf .text:00017358 B locret_17360 .text:00017358 ; --------------------------------------------------------------------------- .text:0001735C off_1735C DCD _dl_debug_fd ; DATA XREF: _dl_debug_printf_c+Cr .text:00017360 ; --------------------------------------------------------------------------- .text:00017360 .text:00017360 locret_17360 ; CODE XREF: _dl_debug_printf_c+28j .text:00017360 LDMDB R11, {R11,SP,PC} .text:00017360 ; End of function _dl_debug_printf_c .text:00017360 .text:00017364 .text:00017364 ; =============== S U B R O U T I N E ======================================= .text:00017364 .text:00017364 ; Attributes: bp-based frame .text:00017364 .text:00017364 EXPORT _dl_dprintf .text:00017364 _dl_dprintf ; CODE XREF: _dl_signal_error+15Cp .text:00017364 ; _dl_start_profile+4A0p ... .text:00017364 .text:00017364 varg_r1 = 4 .text:00017364 varg_r2 = 8 .text:00017364 varg_r3 = 0xC .text:00017364 .text:00017364 MOV R12, SP .text:00017368 STMFD SP!, {R1-R3} .text:0001736C STMFD SP!, {R11,R12,LR,PC} .text:00017370 MOV R1, #0 .text:00017374 SUB R11, R12, #0x10 .text:00017378 LDR R2, [R11,#varg_r1] .text:0001737C ADD R3, R11, #8 .text:00017380 BL _dl_debug_vdprintf .text:00017384 LDMDB R11, {R11,SP,PC} .text:00017384 ; End of function _dl_dprintf .text:00017384 .text:00017388 .text:00017388 ; =============== S U B R O U T I N E ======================================= .text:00017388 .text:00017388 ; Attributes: bp-based frame .text:00017388 .text:00017388 EXPORT _dl_aux_init .text:00017388 _dl_aux_init ; CODE XREF: __libc_start_main+B8p .text:00017388 MOV R12, SP .text:0001738C STMFD SP!, {R11,R12,LR,PC} .text:00017390 LDR R3, [R0] .text:00017394 SUB R11, R12, #4 .text:00017398 CMP R3, #0 .text:0001739C LDMEQDB R11, {R11,SP,PC} .text:000173A0 LDR R1, =_dl_pagesize .text:000173A4 LDR R2, =_dl_clktck .text:000173A8 .text:000173A8 loc_173A8 ; CODE XREF: _dl_aux_init+54j .text:000173A8 LDR R3, [R0] .text:000173AC CMP R3, #6 .text:000173B0 BEQ loc_173C0 .text:000173B4 CMP R3, #0x11 .text:000173B8 BEQ loc_173CC .text:000173BC B loc_173D4 .text:000173C0 ; --------------------------------------------------------------------------- .text:000173C0 .text:000173C0 loc_173C0 ; CODE XREF: _dl_aux_init+28j .text:000173C0 LDR R3, [R0,#4] .text:000173C4 STR R3, [R1] .text:000173C8 B loc_173D4 .text:000173CC ; --------------------------------------------------------------------------- .text:000173CC .text:000173CC loc_173CC ; CODE XREF: _dl_aux_init+30j .text:000173CC LDR R3, [R0,#4] .text:000173D0 STR R3, [R2] .text:000173D4 .text:000173D4 loc_173D4 ; CODE XREF: _dl_aux_init+34j .text:000173D4 ; _dl_aux_init+40j .text:000173D4 LDR R3, [R0,#8]! .text:000173D8 CMP R3, #0 .text:000173DC BNE loc_173A8 .text:000173E0 LDMDB R11, {R11,SP,PC} .text:000173E0 ; End of function _dl_aux_init .text:000173E0 .text:000173E0 ; --------------------------------------------------------------------------- .text:000173E4 off_173E4 DCD _dl_pagesize ; DATA XREF: _dl_aux_init+18r .text:000173E8 off_173E8 DCD _dl_clktck ; DATA XREF: _dl_aux_init+1Cr .text:000173EC .text:000173EC ; =============== S U B R O U T I N E ======================================= .text:000173EC .text:000173EC ; Attributes: bp-based frame .text:000173EC .text:000173EC non_dynamic_init .text:000173EC MOV R12, SP .text:000173F0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000173F4 LDR R4, =_dl_pagesize .text:000173F8 LDR R3, [R4] .text:000173FC SUB R11, R12, #4 .text:00017400 CMP R3, #0 .text:00017404 BNE loc_17410 .text:00017408 BL getpagesize .text:0001740C STR R0, [R4] .text:00017410 .text:00017410 loc_17410 ; CODE XREF: non_dynamic_init+18j .text:00017410 LDR R0, =aLd_warn ; "LD_WARN" .text:00017414 BL getenv .text:00017418 LDR R3, =dword_56750 .text:0001741C CMP R0, #0 .text:00017420 MOV R5, R3 .text:00017424 MOVNE R3, R0 .text:00017428 LDRB R2, [R3] .text:0001742C LDR R1, =_dl_verbose .text:00017430 SUBS R2, R2, #0 .text:00017434 MOVNE R2, #1 .text:00017438 STR R2, [R1] .text:0001743C LDR R0, =aLd_library_p_0 ; "LD_LIBRARY_PATH" .text:00017440 BL getenv .text:00017444 BL _dl_init_paths .text:00017448 LDR R0, =aLd_bind_now ; "LD_BIND_NOW" .text:0001744C BL getenv .text:00017450 CMP R0, #0 .text:00017454 MOVEQ R0, R5 .text:00017458 LDRB R3, [R0] .text:0001745C LDR R2, =_dl_lazy .text:00017460 CMP R3, #0 .text:00017464 MOVNE R3, #0 .text:00017468 MOVEQ R3, #1 .text:0001746C STR R3, [R2] .text:00017470 LDR R0, =aLd_bind_not ; "LD_BIND_NOT" .text:00017474 BL getenv .text:00017478 CMP R0, #0 .text:0001747C MOVEQ R0, R5 .text:00017480 LDRB R3, [R0] .text:00017484 LDR R2, =_dl_bind_not .text:00017488 SUBS R3, R3, #0 .text:0001748C MOVNE R3, #1 .text:00017490 STR R3, [R2] .text:00017494 LDR R6, =_dl_platform .text:00017498 LDR R0, =aLd_dynamic_wea ; "LD_DYNAMIC_WEAK" .text:0001749C LDR R4, =_dl_dynamic_weak .text:000174A0 BL getenv .text:000174A4 CMP R0, #0 .text:000174A8 LDR R2, =__libc_enable_secure .text:000174AC MOVEQ R0, R5 .text:000174B0 LDRB R3, [R0] .text:000174B4 LDR R1, [R2] .text:000174B8 CMP R3, #0 .text:000174BC MOVNE R3, #0 .text:000174C0 MOVEQ R3, #1 .text:000174C4 STR R3, [R4] .text:000174C8 CMP R1, #0 .text:000174CC BEQ loc_17508 .text:000174D0 MOV R4, #0 .text:000174D4 LDR R5, =unsecure_envvars.111 .text:000174D8 .text:000174D8 loc_174D8 ; CODE XREF: non_dynamic_init+FCj .text:000174D8 LDR R0, [R5,R4,LSL#2] .text:000174DC ADD R4, R4, #1 .text:000174E0 BL unsetenv .text:000174E4 CMP R4, #9 .text:000174E8 BLS loc_174D8 .text:000174EC LDR R0, =aEtcSuidDebug ; "/etc/suid-debug" .text:000174F0 MOV R1, #0 .text:000174F4 BL access .text:000174F8 CMP R0, #0 .text:000174FC BEQ loc_17508 .text:00017500 LDR R0, =aMalloc_check_0 ; "MALLOC_CHECK_" .text:00017504 BL unsetenv .text:00017508 .text:00017508 loc_17508 ; CODE XREF: non_dynamic_init+E0j .text:00017508 ; non_dynamic_init+110j .text:00017508 LDR R3, [R6] .text:0001750C CMP R3, #0 .text:00017510 BEQ loc_17520 .text:00017514 LDRB R3, [R3] .text:00017518 CMP R3, #0 .text:0001751C STREQ R3, [R6] .text:00017520 .text:00017520 loc_17520 ; CODE XREF: non_dynamic_init+124j .text:00017520 LDR R0, [R6] .text:00017524 CMP R0, #0 .text:00017528 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0001752C BL strlen .text:00017530 LDR R3, =_dl_platformlen .text:00017534 STR R0, [R3] .text:00017538 LDMDB R11, {R4-R6,R11,SP,PC} .text:00017538 ; End of function non_dynamic_init .text:00017538 .text:00017538 ; --------------------------------------------------------------------------- .text:0001753C off_1753C DCD _dl_pagesize ; DATA XREF: non_dynamic_init+8r .text:00017540 off_17540 DCD aLd_warn ; DATA XREF: non_dynamic_init:loc_17410r .text:00017540 ; "LD_WARN" .text:00017544 off_17544 DCD dword_56750 ; DATA XREF: non_dynamic_init+2Cr .text:00017548 off_17548 DCD _dl_verbose ; DATA XREF: non_dynamic_init+40r .text:0001754C off_1754C DCD aLd_library_p_0 ; DATA XREF: non_dynamic_init+50r .text:0001754C ; "LD_LIBRARY_PATH" .text:00017550 off_17550 DCD aLd_bind_now ; DATA XREF: non_dynamic_init+5Cr .text:00017550 ; "LD_BIND_NOW" .text:00017554 off_17554 DCD _dl_lazy ; DATA XREF: non_dynamic_init+70r .text:00017558 off_17558 DCD aLd_bind_not ; DATA XREF: non_dynamic_init+84r .text:00017558 ; "LD_BIND_NOT" .text:0001755C off_1755C DCD _dl_bind_not ; DATA XREF: non_dynamic_init+98r .text:00017560 off_17560 DCD _dl_platform ; DATA XREF: non_dynamic_init+A8r .text:00017564 off_17564 DCD aLd_dynamic_wea ; DATA XREF: non_dynamic_init+ACr .text:00017564 ; "LD_DYNAMIC_WEAK" .text:00017568 off_17568 DCD _dl_dynamic_weak ; DATA XREF: non_dynamic_init+B0r .text:0001756C off_1756C DCD __libc_enable_secure ; DATA XREF: non_dynamic_init+BCr .text:00017570 off_17570 DCD unsecure_envvars.111 ; DATA XREF: non_dynamic_init+E8r .text:00017574 off_17574 DCD aEtcSuidDebug ; DATA XREF: non_dynamic_init+100r .text:00017574 ; "/etc/suid-debug" .text:00017578 off_17578 DCD aMalloc_check_0 ; DATA XREF: non_dynamic_init+114r .text:00017578 ; "MALLOC_CHECK_" .text:0001757C off_1757C DCD _dl_platformlen ; DATA XREF: non_dynamic_init+144r .text:00017580 .text:00017580 ; =============== S U B R O U T I N E ======================================= .text:00017580 .text:00017580 ; Attributes: bp-based frame .text:00017580 .text:00017580 EXPORT _dl_important_hwcaps .text:00017580 _dl_important_hwcaps ; CODE XREF: _dl_init_paths+30p .text:00017580 MOV R12, SP .text:00017584 STMFD SP!, {R4,R11,R12,LR,PC} .text:00017588 SUB R11, R12, #4 .text:0001758C MOV R0, #8 .text:00017590 MOV R4, R2 .text:00017594 BL malloc .text:00017598 SUBS R1, R0, #0 .text:0001759C BNE loc_175AC .text:000175A0 LDR R2, =aCannotCreate_1 ; "cannot create capability list" .text:000175A4 MOV R0, #0xC .text:000175A8 BL _dl_signal_error .text:000175AC ; --------------------------------------------------------------------------- .text:000175AC .text:000175AC loc_175AC ; CODE XREF: _dl_important_hwcaps+1Cj .text:000175AC STR R1, [R1] .text:000175B0 MOV R3, #0 .text:000175B4 STR R3, [R1,#4] .text:000175B8 MOV R0, R1 .text:000175BC ADD R3, R3, #1 .text:000175C0 STR R3, [R4] .text:000175C4 LDMDB R11, {R4,R11,SP,PC} .text:000175C4 ; End of function _dl_important_hwcaps .text:000175C4 .text:000175C4 ; --------------------------------------------------------------------------- .text:000175C8 off_175C8 DCD aCannotCreate_1 ; DATA XREF: _dl_important_hwcaps+20r .text:000175C8 ; "cannot create capability list" .text:000175CC .text:000175CC ; =============== S U B R O U T I N E ======================================= .text:000175CC .text:000175CC ; Attributes: bp-based frame .text:000175CC .text:000175CC EXPORT __libc_init_secure .text:000175CC __libc_init_secure ; CODE XREF: init+70p .text:000175CC MOV R12, SP .text:000175D0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000175D4 SUB R11, R12, #4 .text:000175D8 MOV R5, #0 .text:000175DC BL geteuid .text:000175E0 MOV R4, R0 .text:000175E4 BL getuid .text:000175E8 CMP R4, R0 .text:000175EC BNE loc_17604 .text:000175F0 BL getegid .text:000175F4 MOV R4, R0 .text:000175F8 BL getgid .text:000175FC CMP R4, R0 .text:00017600 BEQ loc_17608 .text:00017604 .text:00017604 loc_17604 ; CODE XREF: __libc_init_secure+20j .text:00017604 MOV R5, #1 .text:00017608 .text:00017608 loc_17608 ; CODE XREF: __libc_init_secure+34j .text:00017608 LDR R3, =__libc_enable_secure .text:0001760C STR R5, [R3] .text:00017610 LDMDB R11, {R4,R5,R11,SP,PC} .text:00017610 ; End of function __libc_init_secure .text:00017610 .text:00017610 ; --------------------------------------------------------------------------- .text:00017614 off_17614 DCD __libc_enable_secure .text:00017614 ; DATA XREF: __libc_init_secure:loc_17608r .text:00017618 .text:00017618 ; =============== S U B R O U T I N E ======================================= .text:00017618 .text:00017618 ; Attributes: bp-based frame .text:00017618 .text:00017618 EXPORT _dl_get_origin .text:00017618 _dl_get_origin ; CODE XREF: expand_dynamic_string_token:loc_10670p .text:00017618 ; dl_open_worker:loc_51460p ... .text:00017618 .text:00017618 var_1000 = -0x1000 .text:00017618 var_1C = -0x1C .text:00017618 .text:00017618 MOV R12, SP .text:0001761C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00017620 SUB R11, R12, #4 .text:00017624 SUB R5, R11, #-var_1000 .text:00017628 SUB R5, R5, #0x1C .text:0001762C MOV R1, R5 .text:00017630 MOV R2, 0xFFF .text:00017638 LDR R0, =aProcSelfExe ; "/proc/self/exe" .text:0001763C SUB SP, SP, #0x1000 .text:00017640 BL readlink .text:00017644 CMN R0, #1 .text:00017648 BEQ loc_176B8 .text:0001764C MOV R3, #0x80000000 .text:00017650 MOV R3, R3,ASR#19 .text:00017654 SUB R1, R11, #-var_1C .text:00017658 LDRB R2, [R1,R3] .text:0001765C CMP R2, #0x5B .text:00017660 BEQ loc_176B8 .text:00017664 MOV R0, R5 .text:00017668 MOV R1, #0x2F .text:0001766C BL strrchr .text:00017670 MOV R6, R0 .text:00017674 RSB R7, R5, R6 .text:00017678 ADD R0, R7, #1 .text:0001767C BL malloc .text:00017680 SUBS R4, R0, #0 .text:00017684 BEQ loc_176E4 .text:00017688 CMP R6, R5 .text:0001768C BNE loc_176A4 .text:00017690 MOV R0, R4 .text:00017694 LDR R1, =asc_56850 ; "/" .text:00017698 MOV R2, #2 .text:0001769C BL memcpy .text:000176A0 B loc_17730 .text:000176A4 ; --------------------------------------------------------------------------- .text:000176A4 .text:000176A4 loc_176A4 ; CODE XREF: _dl_get_origin+74j .text:000176A4 MOV R0, R4 .text:000176A8 MOV R1, R5 .text:000176AC MOV R2, R7 .text:000176B0 BL mempcpy .text:000176B4 B loc_17728 .text:000176B8 ; --------------------------------------------------------------------------- .text:000176B8 .text:000176B8 loc_176B8 ; CODE XREF: _dl_get_origin+30j .text:000176B8 ; _dl_get_origin+48j .text:000176B8 LDR R6, =_dl_origin_path .text:000176BC LDR R0, [R6] .text:000176C0 MOV R4, 0xFFFFFFFF .text:000176C4 CMP R0, #0 .text:000176C8 BEQ loc_17730 .text:000176CC BL strlen .text:000176D0 MOV R5, R0 .text:000176D4 ADD R0, R5, #1 .text:000176D8 BL malloc .text:000176DC SUBS R4, R0, #0 .text:000176E0 BNE loc_176EC .text:000176E4 .text:000176E4 loc_176E4 ; CODE XREF: _dl_get_origin+6Cj .text:000176E4 MOV R4, 0xFFFFFFFF .text:000176E8 B loc_17730 .text:000176EC ; --------------------------------------------------------------------------- .text:000176EC .text:000176EC loc_176EC ; CODE XREF: _dl_get_origin+C8j .text:000176EC MOV R0, R4 .text:000176F0 LDR R1, [R6] .text:000176F4 MOV R2, R5 .text:000176F8 BL mempcpy .text:000176FC ADD R2, R4, #1 .text:00017700 B loc_17714 .text:00017700 ; --------------------------------------------------------------------------- .text:00017704 off_17704 DCD aProcSelfExe ; DATA XREF: _dl_get_origin+20r .text:00017704 ; "/proc/self/exe" .text:00017708 off_17708 DCD asc_56850 ; DATA XREF: _dl_get_origin+7Cr .text:00017708 ; "/" .text:0001770C off_1770C DCD _dl_origin_path ; DATA XREF: _dl_get_origin:loc_176B8r .text:00017710 ; --------------------------------------------------------------------------- .text:00017710 .text:00017710 loc_17710 ; CODE XREF: _dl_get_origin+10Cj .text:00017710 SUB R0, R0, #1 .text:00017714 .text:00017714 loc_17714 ; CODE XREF: _dl_get_origin+E8j .text:00017714 CMP R0, R2 .text:00017718 BLS loc_17728 .text:0001771C LDRB R3, [R0,#-1] .text:00017720 CMP R3, #0x2F .text:00017724 BEQ loc_17710 .text:00017728 .text:00017728 loc_17728 ; CODE XREF: _dl_get_origin+9Cj .text:00017728 ; _dl_get_origin+100j .text:00017728 MOV R3, #0 .text:0001772C STRB R3, [R0] .text:00017730 .text:00017730 loc_17730 ; CODE XREF: _dl_get_origin+88j .text:00017730 ; _dl_get_origin+B0j ... .text:00017730 MOV R0, R4 .text:00017734 LDMDB R11, {R4-R7,R11,SP,PC} .text:00017734 ; End of function _dl_get_origin .text:00017734 .text:00017738 .text:00017738 ; =============== S U B R O U T I N E ======================================= .text:00017738 .text:00017738 ; Attributes: bp-based frame .text:00017738 .text:00017738 init ; CODE XREF: __libc_init_first+Cp .text:00017738 MOV R12, SP .text:0001773C STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00017740 SUB R11, R12, #4 .text:00017744 MOV R12, #0 .text:00017748 MOV R5, R0 .text:0001774C MOV R6, R1 .text:00017750 LDR R3, =_dl_starting_up .text:00017754 MOV R4, R2 .text:00017758 CMP R3, R12 .text:0001775C SUB SP, SP, #0x1C8 .text:00017760 BEQ loc_17774 .text:00017764 LDR R3, [R3] .text:00017768 CMP R3, R12 .text:0001776C MOVNE R12, #0 .text:00017770 MOVEQ R12, #1 .text:00017774 .text:00017774 loc_17774 ; CODE XREF: init+28j .text:00017774 LDR R3, =__libc_multiple_libcs .text:00017778 CMP R12, #0 .text:0001777C STR R12, [R3] .text:00017780 BNE loc_17790 .text:00017784 LDR R3, =__fpu_control .text:00017788 LDR R0, [R3] .text:0001778C BL __setfpucw .text:00017790 .text:00017790 loc_17790 ; CODE XREF: init+48j .text:00017790 LDR R3, =__libc_argc .text:00017794 STR R5, [R3] .text:00017798 LDR R2, =__libc_argv .text:0001779C STR R6, [R2] .text:000177A0 LDR R3, =environ .text:000177A4 STR R4, [R3] .text:000177A8 BL __libc_init_secure .text:000177AC MOV R0, R5 .text:000177B0 MOV R1, R6 .text:000177B4 MOV R2, R4 .text:000177B8 BL __libc_init .text:000177BC MOV R0, R4 .text:000177C0 BL __getopt_clean_environment .text:000177C4 B locret_177E0 .text:000177C4 ; --------------------------------------------------------------------------- .text:000177C8 off_177C8 DCD _dl_starting_up ; DATA XREF: init+18r .text:000177CC off_177CC DCD __libc_multiple_libcs ; DATA XREF: init:loc_17774r .text:000177D0 off_177D0 DCD __fpu_control ; DATA XREF: init+4Cr .text:000177D4 off_177D4 DCD __libc_argc ; DATA XREF: init:loc_17790r .text:000177D8 off_177D8 DCD __libc_argv ; DATA XREF: init+60r .text:000177DC off_177DC DCD environ ; DATA XREF: init+68r .text:000177E0 ; --------------------------------------------------------------------------- .text:000177E0 .text:000177E0 locret_177E0 ; CODE XREF: init+8Cj .text:000177E0 LDMDB R11, {R4-R6,R11,SP,PC} .text:000177E0 ; End of function init .text:000177E0 .text:000177E4 .text:000177E4 ; =============== S U B R O U T I N E ======================================= .text:000177E4 .text:000177E4 ; Attributes: bp-based frame .text:000177E4 .text:000177E4 EXPORT __libc_init_first .text:000177E4 __libc_init_first ; CODE XREF: __libc_start_main+E0p .text:000177E4 MOV R12, SP .text:000177E8 STMFD SP!, {R11,R12,LR,PC} .text:000177EC SUB R11, R12, #4 .text:000177F0 BL init .text:000177F4 LDMDB R11, {R11,SP,PC} .text:000177F4 ; End of function __libc_init_first .text:000177F4 .text:000177F8 .text:000177F8 ; =============== S U B R O U T I N E ======================================= .text:000177F8 .text:000177F8 ; Attributes: noreturn bp-based frame .text:000177F8 .text:000177F8 EXPORT _dl_start .text:000177F8 _dl_start .text:000177F8 MOV R12, SP .text:000177FC STMFD SP!, {R11,R12,LR,PC} .text:00017800 SUB R11, R12, #4 .text:00017804 BL abort .text:00017804 ; End of function _dl_start .text:00017804 .text:00017808 ; --------------------------------------------------------------------------- .text:00017808 LDMDB R11, {R11,SP,PC} .text:0001780C .text:0001780C ; =============== S U B R O U T I N E ======================================= .text:0001780C .text:0001780C ; Attributes: bp-based frame .text:0001780C .text:0001780C _dl_name_match_p .text:0001780C MOV R12, SP .text:00017810 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00017814 SUB R11, R12, #4 .text:00017818 MOV R4, R1 .text:0001781C MOV R6, R0 .text:00017820 LDR R1, [R4,#4] .text:00017824 BL strcmp .text:00017828 LDR R4, [R4,#0x14] .text:0001782C CMP R0, #0 .text:00017830 MOVNE R5, #0 .text:00017834 MOVEQ R5, #1 .text:00017838 CMP R4, #0 .text:0001783C CMPNE R0, #0 .text:00017840 BEQ loc_17870 .text:00017844 .text:00017844 loc_17844 ; CODE XREF: _dl_name_match_p+60j .text:00017844 LDR R1, [R4] .text:00017848 MOV R0, R6 .text:0001784C BL strcmp .text:00017850 CMP R0, #0 .text:00017854 MOVEQ R5, #1 .text:00017858 LDRNE R4, [R4,#4] .text:0001785C CMP R4, #0 .text:00017860 EORNE R3, R5, #1 .text:00017864 MOVEQ R3, #0 .text:00017868 CMP R3, #0 .text:0001786C BNE loc_17844 .text:00017870 .text:00017870 loc_17870 ; CODE XREF: _dl_name_match_p+34j .text:00017870 MOV R0, R5 .text:00017874 LDMDB R11, {R4-R6,R11,SP,PC} .text:00017874 ; End of function _dl_name_match_p .text:00017874 .text:00017878 .text:00017878 ; =============== S U B R O U T I N E ======================================= .text:00017878 .text:00017878 ; Attributes: bp-based frame .text:00017878 .text:00017878 EXPORT __libc_init .text:00017878 __libc_init ; CODE XREF: init+80p .text:00017878 MOV R12, SP .text:0001787C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00017880 SUB R11, R12, #4 .text:00017884 MOV R8, R0 .text:00017888 MOV R7, R1 .text:0001788C MOV R5, R2 .text:00017890 LDR R4, =__elf_set___libc_subinit_element_non_dynamic_init__ .text:00017894 LDR R3, =__elf_set___libc_subfreeres_element_free_mem__ .text:00017898 CMP R4, R3 .text:0001789C MOV R6, R3 .text:000178A0 LDMCSDB R11, {R4-R8,R11,SP,PC} .text:000178A4 .text:000178A4 loc_178A4 ; CODE XREF: __libc_init+44j .text:000178A4 MOV R0, R8 .text:000178A8 MOV R1, R7 .text:000178AC MOV R2, R5 .text:000178B0 MOV LR, PC .text:000178B4 LDR PC, [R4],#4 .text:000178B8 CMP R4, R6 .text:000178BC BCC loc_178A4 .text:000178C0 LDMDB R11, {R4-R8,R11,SP,PC} .text:000178C0 ; End of function __libc_init .text:000178C0 .text:000178C0 ; --------------------------------------------------------------------------- .text:000178C4 off_178C4 DCD __elf_set___libc_subinit_element_non_dynamic_init__ .text:000178C4 ; DATA XREF: __libc_init+18r .text:000178C8 off_178C8 DCD __elf_set___libc_subfreeres_element_free_mem__ .text:000178C8 ; DATA XREF: __libc_init+1Cr .text:000178CC ALIGN 0x10 .text:000178D0 .text:000178D0 ; =============== S U B R O U T I N E ======================================= .text:000178D0 .text:000178D0 .text:000178D0 EXPORT __syscall_error .text:000178D0 __syscall_error ; CODE XREF: wait4+Cj .text:000178D0 ; fork+Cj ... .text:000178D0 RSB R0, R0, #0 .text:000178D4 .text:000178D4 EXPORT __syscall_error_1 .text:000178D4 __syscall_error_1 .text:000178D4 LDR R1, =errno .text:000178D8 STR R0, [R1] .text:000178DC STMFD SP!, {R0,LR} .text:000178E0 BL __errno_location .text:000178E4 LDMFD SP!, {R1,LR} .text:000178E8 STR R1, [R0] .text:000178EC MOV R0, 0xFFFFFFFF .text:000178F0 RET .text:000178F0 ; End of function __syscall_error .text:000178F0 .text:000178F0 ; --------------------------------------------------------------------------- .text:000178F4 _errno_loc DCD errno ; DATA XREF: __syscall_error:__syscall_error_1r .text:000178F8 ALIGN 0x10 .text:00017900 .text:00017900 ; =============== S U B R O U T I N E ======================================= .text:00017900 .text:00017900 ; Attributes: noreturn bp-based frame .text:00017900 .text:00017900 EXPORT __assert_fail .text:00017900 __assert_fail ; CODE XREF: expand_dynamic_string_token+ACp .text:00017900 ; add_name_to_object+90p ... .text:00017900 .text:00017900 var_18 = -0x18 .text:00017900 var_14 = -0x14 .text:00017900 var_10 = -0x10 .text:00017900 .text:00017900 MOV R12, SP .text:00017904 STMFD SP!, {R11,R12,LR,PC} .text:00017908 SUB R11, R12, #4 .text:0001790C MOV R7, R2 .text:00017910 MOV R2, #5 .text:00017914 MOV R6, R0 .text:00017918 MOV R5, R1 .text:0001791C LDR R0, =_libc_intl_domainname ; "libc" .text:00017920 MOV R4, R3 .text:00017924 LDR R1, =aSSSUSSassertio ; "%s%s%s:%u: %s%sAssertion `%s' failed.\n" .text:00017928 SUB SP, SP, #0x14 .text:0001792C BL dcgettext .text:00017930 STMEA SP, {R5,R7} .text:00017934 STR R6, [SP,#0x20+var_10] .text:00017938 LDR R5, =dword_568E4 .text:0001793C CMP R4, #0 .text:00017940 LDR R3, =asc_568E8 ; ": " .text:00017944 MOVEQ R4, R5 .text:00017948 STR R4, [SP,#0x20+var_18] .text:0001794C MOVNE R2, R3 .text:00017950 MOVEQ R2, R5 .text:00017954 STR R2, [SP,#0x20+var_14] .text:00017958 LDR R4, =stderr .text:0001795C LDR R2, =__assert_program_name .text:00017960 LDR LR, [R4] .text:00017964 MOV R1, R0 .text:00017968 LDR R12, [R2] .text:0001796C MOV R0, LR .text:00017970 CMP R12, #0 .text:00017974 MOVNE R2, R12 .text:00017978 MOVEQ R2, R5 .text:0001797C CMP R12, #0 .text:00017980 MOVEQ R3, R5 .text:00017984 BL fprintf .text:00017988 LDR R0, [R4] .text:0001798C BL fflush .text:00017990 BL abort .text:00017990 ; End of function __assert_fail .text:00017990 .text:00017990 ; --------------------------------------------------------------------------- .text:00017994 off_17994 DCD _libc_intl_domainname ; DATA XREF: __assert_fail+1Cr .text:00017994 ; "libc" .text:00017998 off_17998 DCD aSSSUSSassertio ; DATA XREF: __assert_fail+24r .text:00017998 ; "%s%s%s:%u: %s%sAssertion `%s' failed.\n" .text:0001799C off_1799C DCD dword_568E4 ; DATA XREF: __assert_fail+38r .text:000179A0 off_179A0 DCD asc_568E8 ; DATA XREF: __assert_fail+40r .text:000179A0 ; ": " .text:000179A4 off_179A4 DCD stderr ; DATA XREF: __assert_fail+58r .text:000179A8 off_179A8 DCD __assert_program_name ; DATA XREF: __assert_fail+5Cr .text:000179AC ; --------------------------------------------------------------------------- .text:000179AC LDMDB R11, {R4-R7,R11,SP,PC} .text:000179B0 .text:000179B0 ; =============== S U B R O U T I N E ======================================= .text:000179B0 .text:000179B0 ; Attributes: bp-based frame .text:000179B0 .text:000179B0 set_progname .text:000179B0 MOV R12, SP .text:000179B4 STMFD SP!, {R4,R11,R12,LR,PC} .text:000179B8 SUB R11, R12, #4 .text:000179BC SUBS R4, R1, #0 .text:000179C0 LDMEQDB R11, {R4,R11,SP,PC} .text:000179C4 LDR R0, [R4] .text:000179C8 CMP R0, #0 .text:000179CC LDMEQDB R11, {R4,R11,SP,PC} .text:000179D0 MOV R1, #0x2F .text:000179D4 BL strrchr .text:000179D8 CMP R0, #0 .text:000179DC LDREQ R2, =__assert_program_name .text:000179E0 LDREQ R3, [R4] .text:000179E4 STREQ R3, [R2] .text:000179E8 LDRNE R2, =__assert_program_name .text:000179EC ADDNE R3, R0, #1 .text:000179F0 STRNE R3, [R2] .text:000179F4 LDMDB R11, {R4,R11,SP,PC} .text:000179F4 ; End of function set_progname .text:000179F4 .text:000179F4 ; --------------------------------------------------------------------------- .text:000179F8 off_179F8 DCD __assert_program_name ; DATA XREF: set_progname+2Cr .text:000179F8 ; set_progname+38r .text:000179FC .text:000179FC ; =============== S U B R O U T I N E ======================================= .text:000179FC .text:000179FC ; Attributes: bp-based frame .text:000179FC .text:000179FC WEAK dcgettext .text:000179FC dcgettext ; CODE XREF: strerror_r+50p .text:000179FC ; strerror_r+104p ... .text:000179FC .text:000179FC var_14 = -0x14 .text:000179FC var_10 = -0x10 .text:000179FC .text:000179FC MOV R12, SP .text:00017A00 STMFD SP!, {R11,R12,LR,PC} .text:00017A04 MOV R3, #0 .text:00017A08 SUB SP, SP, #8 .text:00017A0C STR R3, [SP,#0x14+var_14] .text:00017A10 STR R2, [SP,#0x14+var_10] .text:00017A14 SUB R11, R12, #4 .text:00017A18 MOV R2, R3 .text:00017A1C BL __dcigettext .text:00017A20 LDMDB R11, {R11,SP,PC} .text:00017A20 ; End of function dcgettext .text:00017A20 .text:00017A24 .text:00017A24 ; =============== S U B R O U T I N E ======================================= .text:00017A24 .text:00017A24 ; Attributes: bp-based frame .text:00017A24 .text:00017A24 transcmp ; DATA XREF: __dcigettext+9Co .text:00017A24 ; __dcigettext:off_17E6Co ... .text:00017A24 MOV R12, SP .text:00017A28 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00017A2C SUB R11, R12, #4 .text:00017A30 MOV R5, R0 .text:00017A34 ADD R0, R5, #0x18 .text:00017A38 MOV R4, R1 .text:00017A3C ADD R1, R4, #0x18 .text:00017A40 BL strcmp .text:00017A44 CMP R0, #0 .text:00017A48 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:00017A4C LDR R0, [R5] .text:00017A50 LDR R1, [R4] .text:00017A54 BL strcmp .text:00017A58 CMP R0, #0 .text:00017A5C LDMNEDB R11, {R4,R5,R11,SP,PC} .text:00017A60 LDR R2, [R5,#4] .text:00017A64 LDR R3, [R4,#4] .text:00017A68 RSB R0, R3, R2 .text:00017A6C LDMDB R11, {R4,R5,R11,SP,PC} .text:00017A6C ; End of function transcmp .text:00017A6C .text:00017A70 .text:00017A70 ; =============== S U B R O U T I N E ======================================= .text:00017A70 .text:00017A70 ; Attributes: bp-based frame .text:00017A70 .text:00017A70 EXPORT __dcigettext .text:00017A70 __dcigettext ; CODE XREF: dcgettext+20p .text:00017A70 .text:00017A70 var_5C = -0x5C .text:00017A70 var_58 = -0x58 .text:00017A70 var_54 = -0x54 .text:00017A70 var_50 = -0x50 .text:00017A70 var_4C = -0x4C .text:00017A70 var_48 = -0x48 .text:00017A70 var_44 = -0x44 .text:00017A70 var_40 = -0x40 .text:00017A70 var_3C = -0x3C .text:00017A70 var_38 = -0x38 .text:00017A70 var_34 = -0x34 .text:00017A70 var_30 = -0x30 .text:00017A70 var_2C = -0x2C .text:00017A70 arg_0 = 4 .text:00017A70 arg_4 = 8 .text:00017A70 .text:00017A70 MOV R12, SP .text:00017A74 STMFD SP!, {R4-R12,LR,PC} .text:00017A78 SUB R11, R12, #4 .text:00017A7C SUB SP, SP, #0x34 .text:00017A80 STR R0, [R11,#var_30] .text:00017A84 MOV R0, #0 .text:00017A88 STR R0, [R11,#var_50] .text:00017A8C STR R2, [R11,#var_38] .text:00017A90 STR R3, [R11,#var_3C] .text:00017A94 CMP R1, #0 .text:00017A98 STR R1, [R11,#var_34] .text:00017A9C BEQ loc_1804C .text:00017AA0 LDR R3, =0 .text:00017AA4 CMP R3, #0 .text:00017AA8 BEQ loc_17AB8 .text:00017AAC LDR R0, =_nl_state_lock .text:00017AB0 MOV LR, PC .text:00017AB4 MOV PC, R3 .text:00017AB8 .text:00017AB8 loc_17AB8 ; CODE XREF: __dcigettext+38j .text:00017AB8 LDR R2, [R11,#var_30] .text:00017ABC CMP R2, #0 .text:00017AC0 LDREQ R3, =_nl_current_default_domain .text:00017AC4 LDREQ R3, [R3] .text:00017AC8 STREQ R3, [R11,#var_30] .text:00017ACC LDR R0, [R11,#var_34] .text:00017AD0 BL strlen .text:00017AD4 MOV R2, R0 .text:00017AD8 ADD R3, R2, #0x1C .text:00017ADC ADD R2, R2, #1 .text:00017AE0 STR R2, [R11,#var_54] .text:00017AE4 BIC R3, R3, #3 .text:00017AE8 RSB SP, R3, SP .text:00017AEC LDR R1, [R11,#var_34] .text:00017AF0 ADD R0, SP, #0x5C+var_44 .text:00017AF4 BL memcpy .text:00017AF8 LDR R3, [R11,#var_30] .text:00017AFC STR R3, [SP,#0x5C+var_5C] .text:00017B00 LDR R0, [R11,#arg_4] .text:00017B04 STR R0, [SP,#0x5C+var_58] .text:00017B08 LDR R5, =root .text:00017B0C LDR R4, =transcmp .text:00017B10 MOV R0, SP .text:00017B14 MOV R1, R5 .text:00017B18 MOV R2, R4 .text:00017B1C BL tfind .text:00017B20 CMP R0, #0 .text:00017B24 STR R0, [R11,#var_50] .text:00017B28 BEQ loc_17B74 .text:00017B2C LDR R12, [R0] .text:00017B30 LDR R3, =_nl_msg_cat_cntr .text:00017B34 LDR R1, [R12,#8] .text:00017B38 LDR R2, [R3] .text:00017B3C CMP R1, R2 .text:00017B40 BNE loc_17B74 .text:00017B44 LDR R2, [R11,#var_3C] .text:00017B48 CMP R2, #0 .text:00017B4C BEQ loc_17B60 .text:00017B50 ADD R0, R12, #0xC .text:00017B54 LDMIA R0, {R0,R2,R3} .text:00017B58 LDR R1, [R11,#arg_0] .text:00017B5C B loc_18028 .text:00017B60 ; --------------------------------------------------------------------------- .text:00017B60 .text:00017B60 loc_17B60 ; CODE XREF: __dcigettext+DCj .text:00017B60 LDR R7, [R12,#0x10] .text:00017B64 B loc_18030 .text:00017B68 ; --------------------------------------------------------------------------- .text:00017B68 .text:00017B68 loc_17B68 ; CODE XREF: __dcigettext+13Cj .text:00017B68 MOV R3, #0 .text:00017B6C STR R3, [R11,#var_40] .text:00017B70 B loc_17BC4 .text:00017B74 ; --------------------------------------------------------------------------- .text:00017B74 .text:00017B74 loc_17B74 ; CODE XREF: __dcigettext+B8j .text:00017B74 ; __dcigettext+D0j .text:00017B74 BL __errno_location .text:00017B78 LDR R3, =_nl_domain_bindings .text:00017B7C LDR R3, [R3] .text:00017B80 STR R3, [R11,#var_40] .text:00017B84 LDR R0, [R0] .text:00017B88 CMP R3, #0 .text:00017B8C STR R0, [R11,#var_4C] .text:00017B90 BEQ loc_17BC4 .text:00017B94 .text:00017B94 loc_17B94 ; CODE XREF: __dcigettext+150j .text:00017B94 LDR R2, [R11,#var_40] .text:00017B98 LDR R0, [R11,#var_30] .text:00017B9C ADD R1, R2, #0x10 .text:00017BA0 BL strcmp .text:00017BA4 CMP R0, #0 .text:00017BA8 BEQ loc_17BC4 .text:00017BAC BLT loc_17B68 .text:00017BB0 LDR R3, [R11,#var_40] .text:00017BB4 LDR R3, [R3] .text:00017BB8 CMP R3, #0 .text:00017BBC STR R3, [R11,#var_40] .text:00017BC0 BNE loc_17B94 .text:00017BC4 .text:00017BC4 loc_17BC4 ; CODE XREF: __dcigettext+100j .text:00017BC4 ; __dcigettext+120j ... .text:00017BC4 LDR R0, [R11,#var_40] .text:00017BC8 CMP R0, #0 .text:00017BCC LDREQ R2, =_nl_default_dirname ; "/usr/local/arm/2.95.3/arm-linux/share/l"... .text:00017BD0 LDREQ R6, =asc_56928 ; "/" .text:00017BD4 STREQ R2, [R11,#var_44] .text:00017BD8 BEQ loc_17CD4 .text:00017BDC LDR R3, [R11,#var_40] .text:00017BE0 LDR R0, [R3,#4] .text:00017BE4 LDRB R3, [R0] .text:00017BE8 CMP R3, #0x2F .text:00017BEC STREQ R0, [R11,#var_44] .text:00017BF0 LDREQ R6, =asc_56928 ; "/" .text:00017BF4 BEQ loc_17CD4 .text:00017BF8 BL strlen .text:00017BFC ADD R0, R0, #1 .text:00017C00 ADD R3, R0, #0x1000 .text:00017C04 ADD R3, R3, #4 .text:00017C08 BIC R3, R3, #3 .text:00017C0C RSB SP, R3, SP .text:00017C10 STR SP, [R11,#var_44] .text:00017C14 MOV R6, 0x1001 .text:00017C1C ADD R4, R0, #0x1000 .text:00017C20 ADD R4, R4, #4 .text:00017C24 BL __errno_location .text:00017C28 MOV R3, #0 .text:00017C2C STR R3, [R0] .text:00017C30 B loc_17C50 .text:00017C34 ; --------------------------------------------------------------------------- .text:00017C34 .text:00017C34 loc_17C34 ; CODE XREF: __dcigettext+200j .text:00017C34 ADD R4, R4, #0x20 .text:00017C38 BIC R3, R4, #3 .text:00017C3C RSB SP, R3, SP .text:00017C40 STR SP, [R11,#var_44] .text:00017C44 ADD R6, R6, #0x20 .text:00017C48 BL __errno_location .text:00017C4C STR R7, [R0] .text:00017C50 .text:00017C50 loc_17C50 ; CODE XREF: __dcigettext+1C0j .text:00017C50 LDR R0, [R11,#var_44] .text:00017C54 MOV R1, R6 .text:00017C58 BL getcwd .text:00017C5C SUBS R7, R0, #0 .text:00017C60 BNE loc_17C74 .text:00017C64 BL __errno_location .text:00017C68 LDR R3, [R0] .text:00017C6C CMP R3, #0x22 .text:00017C70 BEQ loc_17C34 .text:00017C74 .text:00017C74 loc_17C74 ; CODE XREF: __dcigettext+1F0j .text:00017C74 CMP R7, #0 .text:00017C78 BNE loc_17CAC .text:00017C7C BL __errno_location .text:00017C80 LDR R2, [R11,#var_3C] .text:00017C84 LDR R3, [R11,#var_4C] .text:00017C88 CMP R2, #0 .text:00017C8C STR R3, [R0] .text:00017C90 BEQ loc_17E54 .text:00017C94 LDR R0, [R11,#var_34] .text:00017C98 LDR R3, [R11,#arg_0] .text:00017C9C LDR R2, [R11,#var_38] .text:00017CA0 CMP R3, #1 .text:00017CA4 MOVNE R0, R2 .text:00017CA8 B loc_1804C .text:00017CAC ; --------------------------------------------------------------------------- .text:00017CAC .text:00017CAC loc_17CAC ; CODE XREF: __dcigettext+208j .text:00017CAC LDR R0, [R11,#var_44] .text:00017CB0 MOV R1, #0 .text:00017CB4 BL rawmemchr .text:00017CB8 LDR R4, =asc_56928 ; "/" .text:00017CBC MOV R1, R4 .text:00017CC0 BL stpcpy .text:00017CC4 LDR R2, [R11,#var_40] .text:00017CC8 LDR R1, [R2,#4] .text:00017CCC MOV R6, R4 .text:00017CD0 BL stpcpy .text:00017CD4 .text:00017CD4 loc_17CD4 ; CODE XREF: __dcigettext+168j .text:00017CD4 ; __dcigettext+184j .text:00017CD4 LDR R0, [R11,#arg_4] .text:00017CD8 BL category_to_name .text:00017CDC MOV R4, R0 .text:00017CE0 LDR R0, [R11,#arg_4] .text:00017CE4 MOV R1, R4 .text:00017CE8 BL guess_category_value .text:00017CEC MOV R9, R0 .text:00017CF0 LDR R0, [R11,#var_30] .text:00017CF4 BL strlen .text:00017CF8 STR R0, [R11,#var_58] .text:00017CFC MOV R0, R4 .text:00017D00 BL strlen .text:00017D04 LDR R3, [R11,#var_58] .text:00017D08 ADD R0, R0, R3 .text:00017D0C ADD R0, R0, #8 .text:00017D10 BIC R0, R0, #3 .text:00017D14 RSB SP, R0, SP .text:00017D18 STR SP, [R11,#var_48] .text:00017D1C MOV R1, R4 .text:00017D20 MOV R0, SP .text:00017D24 BL stpcpy .text:00017D28 MOV R1, R6 .text:00017D2C BL stpcpy .text:00017D30 LDR R1, [R11,#var_30] .text:00017D34 LDR R2, [R11,#var_58] .text:00017D38 BL mempcpy .text:00017D3C LDR R1, =a_mo ; ".mo" .text:00017D40 BL stpcpy .text:00017D44 MOV R0, R9 .text:00017D48 BL strlen .text:00017D4C ADD R0, R0, #4 .text:00017D50 BIC R0, R0, #3 .text:00017D54 RSB SP, R0, SP .text:00017D58 MOV R8, SP .text:00017D5C .text:00017D5C loc_17D5C ; CODE XREF: __dcigettext+368j .text:00017D5C ; __dcigettext+438j ... .text:00017D5C LDRB R3, [R9] .text:00017D60 CMP R3, #0x3A .text:00017D64 BNE loc_17D74 .text:00017D68 .text:00017D68 loc_17D68 ; CODE XREF: __dcigettext+300j .text:00017D68 LDRB R3, [R9,#1]! .text:00017D6C CMP R3, #0x3A .text:00017D70 BEQ loc_17D68 .text:00017D74 .text:00017D74 loc_17D74 ; CODE XREF: __dcigettext+2F4j .text:00017D74 LDRB R2, [R9] .text:00017D78 CMP R2, #0 .text:00017D7C MOVEQ R3, #0x43 .text:00017D80 STREQB R3, [R8] .text:00017D84 STREQB R2, [R8,#1] .text:00017D88 BEQ loc_17DDC .text:00017D8C MOV R1, R8 .text:00017D90 CMP R2, #0x3A .text:00017D94 LDR R0, =__libc_enable_secure .text:00017D98 BEQ loc_17DB4 .text:00017D9C .text:00017D9C loc_17D9C ; CODE XREF: __dcigettext+340j .text:00017D9C LDRB R2, [R9] .text:00017DA0 STRB R2, [R1],#1 .text:00017DA4 LDRB R3, [R9,#1]! .text:00017DA8 CMP R3, #0 .text:00017DAC CMPNE R3, #0x3A .text:00017DB0 BNE loc_17D9C .text:00017DB4 .text:00017DB4 loc_17DB4 ; CODE XREF: __dcigettext+328j .text:00017DB4 LDR R2, [R0] .text:00017DB8 MOV R3, #0 .text:00017DBC STRB R3, [R1] .text:00017DC0 CMP R2, R3 .text:00017DC4 BEQ loc_17DDC .text:00017DC8 MOV R0, R8 .text:00017DCC MOV R1, #0x2F .text:00017DD0 BL strchr .text:00017DD4 CMP R0, #0 .text:00017DD8 BNE loc_17D5C .text:00017DDC .text:00017DDC loc_17DDC ; CODE XREF: __dcigettext+318j .text:00017DDC ; __dcigettext+354j .text:00017DDC LDRB R3, [R8] .text:00017DE0 SUB R2, R3, #0x43 .text:00017DE4 CMP R3, #0x43 .text:00017DE8 LDREQB R2, [R8,#1] .text:00017DEC CMP R2, #0 .text:00017DF0 BEQ loc_17E08 .text:00017DF4 LDR R1, =aPosix ; "POSIX" .text:00017DF8 MOV R0, R8 .text:00017DFC BL strcmp .text:00017E00 CMP R0, #0 .text:00017E04 BNE loc_17E90 .text:00017E08 .text:00017E08 loc_17E08 ; CODE XREF: __dcigettext+380j .text:00017E08 LDR R0, =0 .text:00017E0C CMP R0, #0 .text:00017E10 BEQ loc_17E24 .text:00017E14 LDR R0, =_nl_state_lock .text:00017E18 LDR R2, =0 .text:00017E1C MOV LR, PC .text:00017E20 MOV PC, R2 .text:00017E24 .text:00017E24 loc_17E24 ; CODE XREF: __dcigettext+3A0j .text:00017E24 BL __errno_location .text:00017E28 LDR R3, [R11,#var_3C] .text:00017E2C LDR R2, [R11,#var_4C] .text:00017E30 CMP R3, #0 .text:00017E34 STR R2, [R0] .text:00017E38 BEQ loc_17E54 .text:00017E3C LDR R0, [R11,#var_34] .text:00017E40 LDR R2, [R11,#arg_0] .text:00017E44 LDR R3, [R11,#var_38] .text:00017E48 CMP R2, #1 .text:00017E4C MOVNE R0, R3 .text:00017E50 B loc_1804C .text:00017E54 ; --------------------------------------------------------------------------- .text:00017E54 .text:00017E54 loc_17E54 ; CODE XREF: __dcigettext+220j .text:00017E54 ; __dcigettext+3C8j .text:00017E54 LDR R0, [R11,#var_34] .text:00017E58 B loc_1804C .text:00017E58 ; --------------------------------------------------------------------------- .text:00017E5C off_17E5C DCD 0 ; DATA XREF: __dcigettext+30r .text:00017E60 off_17E60 DCD _nl_state_lock ; DATA XREF: __dcigettext+3Cr .text:00017E60 ; __dcigettext+3A4r .text:00017E64 off_17E64 DCD _nl_current_default_domain ; DATA XREF: __dcigettext+50r .text:00017E68 off_17E68 DCD root ; DATA XREF: __dcigettext+98r .text:00017E6C off_17E6C DCD transcmp ; DATA XREF: __dcigettext+9Cr .text:00017E70 off_17E70 DCD _nl_msg_cat_cntr ; DATA XREF: __dcigettext+C0r .text:00017E74 off_17E74 DCD _nl_domain_bindings ; DATA XREF: __dcigettext+108r .text:00017E78 off_17E78 DCD _nl_default_dirname ; DATA XREF: __dcigettext+15Cr .text:00017E78 ; "/usr/local/arm/2.95.3/arm-linux/share/l"... .text:00017E7C off_17E7C DCD asc_56928 ; DATA XREF: __dcigettext+160r .text:00017E7C ; __dcigettext+180r ... .text:00017E7C ; "/" .text:00017E80 off_17E80 DCD a_mo ; DATA XREF: __dcigettext+2CCr .text:00017E80 ; ".mo" .text:00017E84 off_17E84 DCD __libc_enable_secure ; DATA XREF: __dcigettext+324r .text:00017E88 off_17E88 DCD aPosix ; DATA XREF: __dcigettext+384r .text:00017E88 ; "POSIX" .text:00017E8C off_17E8C DCD 0 ; DATA XREF: __dcigettext:loc_17E08r .text:00017E8C ; __dcigettext+3A8r .text:00017E90 ; --------------------------------------------------------------------------- .text:00017E90 .text:00017E90 loc_17E90 ; CODE XREF: __dcigettext+394j .text:00017E90 LDR R0, [R11,#var_44] .text:00017E94 LDR R2, [R11,#var_48] .text:00017E98 LDR R3, [R11,#var_40] .text:00017E9C MOV R1, R8 .text:00017EA0 BL _nl_find_domain .text:00017EA4 SUBS R10, R0, #0 .text:00017EA8 BEQ loc_17D5C .text:00017EAC MOV R0, R10 .text:00017EB0 LDR R1, [R11,#var_40] .text:00017EB4 SUB R4, R11, #-var_2C .text:00017EB8 LDR R2, [R11,#var_34] .text:00017EBC MOV R3, R4 .text:00017EC0 BL _nl_find_msg .text:00017EC4 SUBS R7, R0, #0 .text:00017EC8 MOV R12, R4 .text:00017ECC BNE loc_17F14 .text:00017ED0 MOV R6, R7 .text:00017ED4 ADD R5, R10, #0x10 .text:00017ED8 B loc_17EE0 .text:00017EDC ; --------------------------------------------------------------------------- .text:00017EDC .text:00017EDC loc_17EDC ; CODE XREF: __dcigettext+49Cj .text:00017EDC ADD R6, R6, #1 .text:00017EE0 .text:00017EE0 loc_17EE0 ; CODE XREF: __dcigettext+468j .text:00017EE0 MOV R4, R6,LSL#2 .text:00017EE4 LDR R0, [R5,R4] .text:00017EE8 CMP R0, #0 .text:00017EEC BEQ loc_17F14 .text:00017EF0 STR R12, [R11,#var_5C] .text:00017EF4 LDR R1, [R11,#var_40] .text:00017EF8 LDR R2, [R11,#var_34] .text:00017EFC MOV R3, R12 .text:00017F00 BL _nl_find_msg .text:00017F04 SUBS R7, R0, #0 .text:00017F08 LDR R12, [R11,#var_5C] .text:00017F0C BEQ loc_17EDC .text:00017F10 LDR R10, [R5,R4] .text:00017F14 .text:00017F14 loc_17F14 ; CODE XREF: __dcigettext+45Cj .text:00017F14 ; __dcigettext+47Cj .text:00017F14 CMP R7, #0 .text:00017F18 BEQ loc_17D5C .text:00017F1C BL __errno_location .text:00017F20 LDR R3, [R11,#var_50] .text:00017F24 LDR R2, [R11,#var_4C] .text:00017F28 CMP R3, #0 .text:00017F2C STR R2, [R0] .text:00017F30 BNE loc_17FD8 .text:00017F34 LDR R3, [R11,#var_58] .text:00017F38 LDR R2, [R11,#var_54] .text:00017F3C ADD R0, R3, R2 .text:00017F40 ADD R0, R0, #0x19 .text:00017F44 BL malloc .text:00017F48 SUBS R4, R0, #0 .text:00017F4C BEQ loc_1800C .text:00017F50 LDR R1, [R11,#var_34] .text:00017F54 LDR R2, [R11,#var_54] .text:00017F58 ADD R0, R4, #0x18 .text:00017F5C BL mempcpy .text:00017F60 STR R0, [R4] .text:00017F64 LDR R3, [R11,#var_58] .text:00017F68 LDR R1, [R11,#var_30] .text:00017F6C ADD R2, R3, #1 .text:00017F70 BL memcpy .text:00017F74 LDR R0, [R11,#arg_4] .text:00017F78 STR R0, [R4,#4] .text:00017F7C LDR R3, =_nl_msg_cat_cntr .text:00017F80 LDR R2, [R3] .text:00017F84 STR R10, [R4,#0xC] .text:00017F88 STR R7, [R4,#0x10] .text:00017F8C STR R2, [R4,#8] .text:00017F90 LDR R3, [R11,#var_2C] .text:00017F94 STR R3, [R4,#0x14] .text:00017F98 LDR R1, =root .text:00017F9C LDR R2, =transcmp .text:00017FA0 MOV R0, R4 .text:00017FA4 BL tsearch .text:00017FA8 CMP R0, #0 .text:00017FAC STR R0, [R11,#var_50] .text:00017FB0 BEQ loc_17FC0 .text:00017FB4 LDR R3, [R0] .text:00017FB8 CMP R3, R4 .text:00017FBC BEQ loc_1800C .text:00017FC0 .text:00017FC0 loc_17FC0 ; CODE XREF: __dcigettext+540j .text:00017FC0 MOV R0, R4 .text:00017FC4 BL free .text:00017FC8 B loc_1800C .text:00017FC8 ; --------------------------------------------------------------------------- .text:00017FCC off_17FCC DCD _nl_msg_cat_cntr ; DATA XREF: __dcigettext+50Cr .text:00017FD0 off_17FD0 DCD root ; DATA XREF: __dcigettext+528r .text:00017FD4 off_17FD4 DCD transcmp ; DATA XREF: __dcigettext+52Cr .text:00017FD8 ; --------------------------------------------------------------------------- .text:00017FD8 .text:00017FD8 loc_17FD8 ; CODE XREF: __dcigettext+4C0j .text:00017FD8 LDR R3, [R11,#var_50] .text:00017FDC LDR R2, =_nl_msg_cat_cntr .text:00017FE0 LDR R1, [R3] .text:00017FE4 LDR R3, [R2] .text:00017FE8 STR R3, [R1,#8] .text:00017FEC LDR R0, [R11,#var_50] .text:00017FF0 LDR R2, [R0] .text:00017FF4 STR R10, [R2,#0xC] .text:00017FF8 LDR R3, [R0] .text:00017FFC STR R7, [R3,#0x10] .text:00018000 LDR R3, [R11,#var_2C] .text:00018004 LDR R2, [R0] .text:00018008 STR R3, [R2,#0x14] .text:0001800C .text:0001800C loc_1800C ; CODE XREF: __dcigettext+4DCj .text:0001800C ; __dcigettext+54Cj ... .text:0001800C LDR R2, [R11,#var_3C] .text:00018010 CMP R2, #0 .text:00018014 BEQ loc_18030 .text:00018018 LDR R1, [R11,#arg_0] .text:0001801C MOV R0, R10 .text:00018020 LDR R3, [R11,#var_2C] .text:00018024 MOV R2, R7 .text:00018028 .text:00018028 loc_18028 ; CODE XREF: __dcigettext+ECj .text:00018028 BL plural_lookup .text:0001802C MOV R7, R0 .text:00018030 .text:00018030 loc_18030 ; CODE XREF: __dcigettext+F4j .text:00018030 ; __dcigettext+5A4j .text:00018030 LDR R3, =0 .text:00018034 CMP R3, #0 .text:00018038 BEQ loc_18048 .text:0001803C LDR R0, =_nl_state_lock .text:00018040 MOV LR, PC .text:00018044 MOV PC, R3 .text:00018048 .text:00018048 loc_18048 ; CODE XREF: __dcigettext+5C8j .text:00018048 MOV R0, R7 .text:0001804C .text:0001804C loc_1804C ; CODE XREF: __dcigettext+2Cj .text:0001804C ; __dcigettext+238j ... .text:0001804C B locret_1805C .text:0001804C ; --------------------------------------------------------------------------- .text:00018050 off_18050 DCD _nl_msg_cat_cntr ; DATA XREF: __dcigettext+56Cr .text:00018054 off_18054 DCD 0 ; DATA XREF: __dcigettext:loc_18030r .text:00018058 off_18058 DCD _nl_state_lock ; DATA XREF: __dcigettext+5CCr .text:0001805C ; --------------------------------------------------------------------------- .text:0001805C .text:0001805C locret_1805C ; CODE XREF: __dcigettext:loc_1804Cj .text:0001805C LDMDB R11, {R4-R11,SP,PC} .text:0001805C ; End of function __dcigettext .text:0001805C .text:00018060 .text:00018060 ; =============== S U B R O U T I N E ======================================= .text:00018060 .text:00018060 ; Attributes: bp-based frame .text:00018060 .text:00018060 EXPORT _nl_find_msg .text:00018060 _nl_find_msg ; CODE XREF: __dcigettext+450p .text:00018060 ; __dcigettext+490p ... .text:00018060 .text:00018060 var_50 = -0x50 .text:00018060 var_4C = -0x4C .text:00018060 var_48 = -0x48 .text:00018060 var_44 = -0x44 .text:00018060 var_40 = -0x40 .text:00018060 var_3C = -0x3C .text:00018060 var_38 = -0x38 .text:00018060 var_34 = -0x34 .text:00018060 var_30 = -0x30 .text:00018060 var_2C = -0x2C .text:00018060 .text:00018060 MOV R12, SP .text:00018064 STMFD SP!, {R4-R12,LR,PC} .text:00018068 SUB R11, R12, #4 .text:0001806C SUB SP, SP, #0x28 .text:00018070 STR R0, [R11,#var_38] .text:00018074 LDR R0, [R0,#4] .text:00018078 STR R1, [R11,#var_3C] .text:0001807C MOV R10, R2 .text:00018080 STR R3, [R11,#var_40] .text:00018084 CMP R0, #0 .text:00018088 BNE loc_18094 .text:0001808C LDR R0, [R11,#var_38] .text:00018090 BL _nl_load_domain .text:00018094 .text:00018094 loc_18094 ; CODE XREF: _nl_find_msg+28j .text:00018094 LDR R1, [R11,#var_38] .text:00018098 LDR R6, [R1,#8] .text:0001809C CMP R6, #0 .text:000180A0 BEQ loc_1838C .text:000180A4 LDR R3, [R6,#0x1C] .text:000180A8 CMP R3, #2 .text:000180AC BLS loc_18238 .text:000180B0 LDR R3, [R6,#0x20] .text:000180B4 CMP R3, #0 .text:000180B8 BEQ loc_18238 .text:000180BC MOV R0, R10 .text:000180C0 BL strlen .text:000180C4 MOV R2, R10 .text:000180C8 MOV R5, #0 .text:000180CC LDRB R3, [R10] .text:000180D0 MOV R9, R0 .text:000180D4 CMP R3, R5 .text:000180D8 BEQ loc_180FC .text:000180DC .text:000180DC loc_180DC ; CODE XREF: _nl_find_msg+98j .text:000180DC LDRB R3, [R2],#1 .text:000180E0 ADD R5, R3, R5,LSL#4 .text:000180E4 ANDS R3, R5, #0xF0000000 .text:000180E8 EORNE R5, R5, R3,LSR#24 .text:000180EC EORNE R5, R5, R3 .text:000180F0 LDRB R3, [R2] .text:000180F4 CMP R3, #0 .text:000180F8 BNE loc_180DC .text:000180FC .text:000180FC loc_180FC ; CODE XREF: _nl_find_msg+78j .text:000180FC LDR R4, [R6,#0x1C] .text:00018100 MOV R0, R5 .text:00018104 MOV R1, R4 .text:00018108 BL __umodsi3 .text:0001810C MOV R7, R0 .text:00018110 MOV R0, R5 .text:00018114 SUB R1, R4, #2 .text:00018118 BL __umodsi3 .text:0001811C ADD R8, R0, #1 .text:00018120 .text:00018120 loc_18120 ; CODE XREF: _nl_find_msg+1CCj .text:00018120 ; _nl_find_msg+1D4j .text:00018120 LDR R3, [R6,#0xC] .text:00018124 CMP R3, #0 .text:00018128 MOV R5, R3 .text:0001812C BEQ loc_18154 .text:00018130 LDR R2, [R6,#0x20] .text:00018134 LDR R1, [R2,R7,LSL#2] .text:00018138 AND R3, R1, #0xFF0000 .text:0001813C MOV R3, R3,LSR#8 .text:00018140 ORR R3, R3, R1,LSR#24 .text:00018144 AND R2, R1, #0xFF00 .text:00018148 ORR R3, R3, R2,LSL#8 .text:0001814C ORR R4, R3, R1,LSL#24 .text:00018150 B loc_1815C .text:00018154 ; --------------------------------------------------------------------------- .text:00018154 .text:00018154 loc_18154 ; CODE XREF: _nl_find_msg+CCj .text:00018154 LDR R3, [R6,#0x20] .text:00018158 LDR R4, [R3,R7,LSL#2] .text:0001815C .text:0001815C loc_1815C ; CODE XREF: _nl_find_msg+F0j .text:0001815C CMP R4, #0 .text:00018160 BEQ loc_1838C .text:00018164 CMP R5, #0 .text:00018168 BEQ loc_181A8 .text:0001816C MOV R3, R4,LSL#3 .text:00018170 LDR R2, [R6,#0x14] .text:00018174 MOV R12, R3 .text:00018178 ADD R3, R3, R2 .text:0001817C LDR R1, [R3,#-8] .text:00018180 MOV R0, R2 .text:00018184 AND R3, R1, #0xFF0000 .text:00018188 MOV R3, R3,LSR#8 .text:0001818C ORR R3, R3, R1,LSR#24 .text:00018190 AND R2, R1, #0xFF00 .text:00018194 ORR R3, R3, R2,LSL#8 .text:00018198 ORR R3, R3, R1,LSL#24 .text:0001819C CMP R3, R9 .text:000181A0 BCS loc_181C8 .text:000181A4 B loc_1821C .text:000181A8 ; --------------------------------------------------------------------------- .text:000181A8 .text:000181A8 loc_181A8 ; CODE XREF: _nl_find_msg+108j .text:000181A8 MOV R3, R4,LSL#3 .text:000181AC LDR R1, [R6,#0x14] .text:000181B0 MOV R12, R3 .text:000181B4 ADD R3, R3, R1 .text:000181B8 LDR R2, [R3,#-8] .text:000181BC MOV R0, R1 .text:000181C0 CMP R2, R9 .text:000181C4 BCC loc_1821C .text:000181C8 .text:000181C8 loc_181C8 ; CODE XREF: _nl_find_msg+140j .text:000181C8 LDR R3, [R6,#0xC] .text:000181CC LDR LR, [R6] .text:000181D0 CMP R3, #0 .text:000181D4 BEQ loc_18200 .text:000181D8 ADD R2, R12, R0 .text:000181DC LDR R1, [R2,#-4] .text:000181E0 AND R3, R1, #0xFF0000 .text:000181E4 MOV R3, R3,LSR#8 .text:000181E8 ORR R3, R3, R1,LSR#24 .text:000181EC AND R2, R1, #0xFF00 .text:000181F0 ORR R3, R3, R2,LSL#8 .text:000181F4 ORR R3, R3, R1,LSL#24 .text:000181F8 ADD R1, LR, R3 .text:000181FC B loc_1820C .text:00018200 ; --------------------------------------------------------------------------- .text:00018200 .text:00018200 loc_18200 ; CODE XREF: _nl_find_msg+174j .text:00018200 ADD R3, R12, R0 .text:00018204 LDR R2, [R3,#-4] .text:00018208 ADD R1, LR, R2 .text:0001820C .text:0001820C loc_1820C ; CODE XREF: _nl_find_msg+19Cj .text:0001820C MOV R0, R10 .text:00018210 BL strcmp .text:00018214 CMP R0, #0 .text:00018218 BEQ loc_182BC .text:0001821C .text:0001821C loc_1821C ; CODE XREF: _nl_find_msg+144j .text:0001821C ; _nl_find_msg+164j .text:0001821C LDR R3, [R6,#0x1C] .text:00018220 RSB R3, R8, R3 .text:00018224 CMP R7, R3 .text:00018228 RSBCS R7, R3, R7 .text:0001822C BCS loc_18120 .text:00018230 ADD R7, R7, R8 .text:00018234 B loc_18120 .text:00018238 ; --------------------------------------------------------------------------- .text:00018238 .text:00018238 loc_18238 ; CODE XREF: _nl_find_msg+4Cj .text:00018238 ; _nl_find_msg+58j .text:00018238 LDR R4, [R6,#0x10] .text:0001823C MOV R5, #0 .text:00018240 .text:00018240 loc_18240 ; CODE XREF: _nl_find_msg+24Cj .text:00018240 ; _nl_find_msg+258j .text:00018240 CMP R5, R4 .text:00018244 BCS loc_1838C .text:00018248 ADD R3, R5, R4 .text:0001824C LDR R2, [R6,#0xC] .text:00018250 MOV R8, R3,LSR#1 .text:00018254 LDR R0, [R6] .text:00018258 CMP R2, #0 .text:0001825C BEQ loc_1828C .text:00018260 LDR R2, [R6,#0x14] .text:00018264 ADD R2, R2, R8,LSL#3 .text:00018268 LDR R1, [R2,#4] .text:0001826C AND R3, R1, #0xFF0000 .text:00018270 MOV R3, R3,LSR#8 .text:00018274 ORR R3, R3, R1,LSR#24 .text:00018278 AND R2, R1, #0xFF00 .text:0001827C ORR R3, R3, R2,LSL#8 .text:00018280 ORR R3, R3, R1,LSL#24 .text:00018284 ADD R1, R0, R3 .text:00018288 B loc_1829C .text:0001828C ; --------------------------------------------------------------------------- .text:0001828C .text:0001828C loc_1828C ; CODE XREF: _nl_find_msg+1FCj .text:0001828C LDR R3, [R6,#0x14] .text:00018290 ADD R3, R3, R8,LSL#3 .text:00018294 LDR R2, [R3,#4] .text:00018298 ADD R1, R0, R2 .text:0001829C .text:0001829C loc_1829C ; CODE XREF: _nl_find_msg+228j .text:0001829C MOV R0, R10 .text:000182A0 BL strcmp .text:000182A4 CMP R0, #0 .text:000182A8 MOVLT R4, R8 .text:000182AC BLT loc_18240 .text:000182B0 BLE loc_182C0 .text:000182B4 ADD R5, R8, #1 .text:000182B8 B loc_18240 .text:000182BC ; --------------------------------------------------------------------------- .text:000182BC .text:000182BC loc_182BC ; CODE XREF: _nl_find_msg+1B8j .text:000182BC SUB R8, R4, #1 .text:000182C0 .text:000182C0 loc_182C0 ; CODE XREF: _nl_find_msg+250j .text:000182C0 LDR R3, [R6,#0xC] .text:000182C4 LDR R0, [R6] .text:000182C8 CMP R3, #0 .text:000182CC MOV R5, R3 .text:000182D0 BEQ loc_1830C .text:000182D4 MOV R3, R8,LSL#3 .text:000182D8 LDR R2, [R6,#0x18] .text:000182DC MOV LR, R3 .text:000182E0 ADD R3, R3, R2 .text:000182E4 LDR R1, [R3,#4] .text:000182E8 MOV R12, R2 .text:000182EC AND R3, R1, #0xFF0000 .text:000182F0 MOV R3, R3,LSR#8 .text:000182F4 ORR R3, R3, R1,LSR#24 .text:000182F8 AND R2, R1, #0xFF00 .text:000182FC ORR R3, R3, R2,LSL#8 .text:00018300 ORR R3, R3, R1,LSL#24 .text:00018304 ADD R0, R0, R3 .text:00018308 B loc_18328 .text:0001830C ; --------------------------------------------------------------------------- .text:0001830C .text:0001830C loc_1830C ; CODE XREF: _nl_find_msg+270j .text:0001830C MOV R3, R8,LSL#3 .text:00018310 LDR R1, [R6,#0x18] .text:00018314 MOV LR, R3 .text:00018318 ADD R3, R3, R1 .text:0001831C LDR R2, [R3,#4] .text:00018320 MOV R12, R1 .text:00018324 ADD R0, R0, R2 .text:00018328 .text:00018328 loc_18328 ; CODE XREF: _nl_find_msg+2A8j .text:00018328 STR R0, [R11,#var_44] .text:0001832C CMP R5, #0 .text:00018330 BEQ loc_1835C .text:00018334 LDR R3, [LR,R12] .text:00018338 AND R2, R3, #0xFF0000 .text:0001833C MOV R2, R2,LSR#8 .text:00018340 ORR R2, R2, R3,LSR#24 .text:00018344 AND R1, R3, #0xFF00 .text:00018348 ORR R2, R2, R1,LSL#8 .text:0001834C ORR R2, R2, R3,LSL#24 .text:00018350 ADD R2, R2, #1 .text:00018354 STR R2, [R11,#var_48] .text:00018358 B loc_18368 .text:0001835C ; --------------------------------------------------------------------------- .text:0001835C .text:0001835C loc_1835C ; CODE XREF: _nl_find_msg+2D0j .text:0001835C LDR R3, [LR,R12] .text:00018360 ADD R3, R3, #1 .text:00018364 STR R3, [R11,#var_48] .text:00018368 .text:00018368 loc_18368 ; CODE XREF: _nl_find_msg+2F8j .text:00018368 LDR R2, [R11,#var_3C] .text:0001836C CMP R2, #0 .text:00018370 LDR R2, [R6,#0x24] .text:00018374 BEQ loc_18394 .text:00018378 LDR R12, [R11,#var_3C] .text:0001837C LDR R3, [R12,#8] .text:00018380 CMP R2, R3 .text:00018384 BNE loc_1839C .text:00018388 B loc_183B4 .text:0001838C ; --------------------------------------------------------------------------- .text:0001838C .text:0001838C loc_1838C ; CODE XREF: _nl_find_msg+40j .text:0001838C ; _nl_find_msg+100j ... .text:0001838C MOV R0, #0 .text:00018390 B loc_18628 .text:00018394 ; --------------------------------------------------------------------------- .text:00018394 .text:00018394 loc_18394 ; CODE XREF: _nl_find_msg+314j .text:00018394 CMP R2, #0 .text:00018398 BEQ loc_183B4 .text:0001839C .text:0001839C loc_1839C ; CODE XREF: _nl_find_msg+324j .text:0001839C MOV R0, R6 .text:000183A0 BL _nl_free_domain_conv .text:000183A4 LDR R0, [R11,#var_38] .text:000183A8 LDR R2, [R11,#var_3C] .text:000183AC MOV R1, R6 .text:000183B0 BL _nl_init_domain_conv .text:000183B4 .text:000183B4 loc_183B4 ; CODE XREF: _nl_find_msg+328j .text:000183B4 ; _nl_find_msg+338j .text:000183B4 LDR R3, [R6,#0x28] .text:000183B8 CMN R3, #1 .text:000183BC BEQ loc_18618 .text:000183C0 LDR R3, [R6,#0x2C] .text:000183C4 CMP R3, #0 .text:000183C8 BNE loc_183E8 .text:000183CC LDR R0, [R6,#0x10] .text:000183D0 MOV R1, #4 .text:000183D4 BL calloc .text:000183D8 CMP R0, #0 .text:000183DC STR R0, [R6,#0x2C] .text:000183E0 MOVEQ R3, 0xFFFFFFFF .text:000183E4 STREQ R3, [R6,#0x2C] .text:000183E8 .text:000183E8 loc_183E8 ; CODE XREF: _nl_find_msg+368j .text:000183E8 LDR R3, [R6,#0x2C] .text:000183EC CMN R3, #1 .text:000183F0 BEQ loc_18618 .text:000183F4 LDR R4, [R3,R8,LSL#2] .text:000183F8 CMP R4, #0 .text:000183FC BNE loc_18600 .text:00018400 LDR R3, =0 .text:00018404 CMP R3, #0 .text:00018408 BEQ loc_18418 .text:0001840C LDR R0, =lock.93 .text:00018410 MOV LR, PC .text:00018414 MOV PC, R3 .text:00018418 .text:00018418 loc_18418 ; CODE XREF: _nl_find_msg+3A8j .text:00018418 LDR R1, [R11,#var_44] .text:0001841C STR R1, [R11,#var_2C] .text:00018420 LDR R2, =freemem.94 .text:00018424 MOV R9, R4 .text:00018428 LDR R3, [R2] .text:0001842C MOV R7, R9 .text:00018430 LDR R10, =freemem_size.95 .text:00018434 ADD R3, R3, #4 .text:00018438 STR R3, [R11,#var_30] .text:0001843C .text:0001843C loc_1843C ; CODE XREF: _nl_find_msg+51Cj .text:0001843C LDR R1, [R10] .text:00018440 CMP R1, #3 .text:00018444 BLS loc_184B8 .text:00018448 LDR R0, [R6,#0x28] .text:0001844C LDR R2, [R11,#var_30] .text:00018450 SUB R3, R11, #-var_34 .text:00018454 STR R3, [SP,#0x50+var_4C] .text:00018458 ADD R2, R2, R1 .text:0001845C SUB R2, R2, #4 .text:00018460 STR R2, [SP,#0x50+var_50] .text:00018464 LDR R2, [R11,#var_2C] .text:00018468 LDR R3, [R11,#var_48] .text:0001846C SUB R1, R11, #-var_2C .text:00018470 ADD R2, R2, R3 .text:00018474 SUB R3, R11, #-var_30 .text:00018478 BL __gconv .text:0001847C MOV R3, R0 .text:00018480 CMP R3, #4 .text:00018484 CMPNE R0, #0 .text:00018488 BEQ loc_18598 .text:0001848C CMP R3, #5 .text:00018490 BEQ loc_184B0 .text:00018494 LDR R12, =0 .text:00018498 CMP R12, #0 .text:0001849C BEQ loc_18618 .text:000184A0 LDR R0, =lock.93 .text:000184A4 MOV LR, PC .text:000184A8 MOV PC, R12 .text:000184AC B loc_18618 .text:000184B0 ; --------------------------------------------------------------------------- .text:000184B0 .text:000184B0 loc_184B0 ; CODE XREF: _nl_find_msg+430j .text:000184B0 LDR R1, [R11,#var_44] .text:000184B4 STR R1, [R11,#var_2C] .text:000184B8 .text:000184B8 loc_184B8 ; CODE XREF: _nl_find_msg+3E4j .text:000184B8 CMP R9, #0 .text:000184BC BLE loc_18504 .text:000184C0 ADD R7, R7, #0xFF0 .text:000184C4 STR R7, [R10] .text:000184C8 LDR R5, =transmem_list .text:000184CC ADD R9, R9, #1 .text:000184D0 LDR R0, [R5] .text:000184D4 MOV R1, R7 .text:000184D8 BL realloc .text:000184DC SUBS R4, R0, #0 .text:000184E0 LDRNE R3, [R5] .text:000184E4 LDRNE R2, [R3] .text:000184E8 STRNE R2, [R5] .text:000184EC BNE loc_1851C .text:000184F0 LDR R0, [R5] .text:000184F4 LDR R3, [R0] .text:000184F8 STR R3, [R5] .text:000184FC BL free .text:00018500 B loc_1851C .text:00018504 ; --------------------------------------------------------------------------- .text:00018504 .text:00018504 loc_18504 ; CODE XREF: _nl_find_msg+45Cj .text:00018504 MOV R7, #0xFF0 .text:00018508 STR R7, [R10] .text:0001850C MOV R9, #1 .text:00018510 MOV R0, R7 .text:00018514 BL malloc .text:00018518 MOV R4, R0 .text:0001851C .text:0001851C loc_1851C ; CODE XREF: _nl_find_msg+48Cj .text:0001851C ; _nl_find_msg+4A0j .text:0001851C CMP R4, #0 .text:00018520 BNE loc_1854C .text:00018524 LDR R2, =freemem.94 .text:00018528 LDR R3, =0 .text:0001852C STR R4, [R2] .text:00018530 CMP R3, #0 .text:00018534 STR R4, [R10] .text:00018538 BEQ loc_18618 .text:0001853C LDR R0, =lock.93 .text:00018540 MOV LR, PC .text:00018544 MOV PC, R3 .text:00018548 B loc_18618 .text:0001854C ; --------------------------------------------------------------------------- .text:0001854C .text:0001854C loc_1854C ; CODE XREF: _nl_find_msg+4C0j .text:0001854C LDR R1, =transmem_list .text:00018550 LDR R3, [R1] .text:00018554 STR R3, [R4] .text:00018558 STR R4, [R1] .text:0001855C LDR R12, =freemem.94 .text:00018560 ADD R2, R4, #4 .text:00018564 STR R2, [R12] .text:00018568 ADD R2, R2, #4 .text:0001856C STR R2, [R11,#var_30] .text:00018570 LDR R3, [R10] .text:00018574 SUB R3, R3, #4 .text:00018578 STR R3, [R10] .text:0001857C B loc_1843C .text:0001857C ; --------------------------------------------------------------------------- .text:00018580 off_18580 DCD 0 ; DATA XREF: _nl_find_msg+3A0r .text:00018584 off_18584 DCD lock.93 ; DATA XREF: _nl_find_msg+3ACr .text:00018584 ; _nl_find_msg+440r ... .text:00018588 off_18588 DCD freemem.94 ; DATA XREF: _nl_find_msg+3C0r .text:00018588 ; _nl_find_msg+4C4r ... .text:0001858C off_1858C DCD freemem_size.95 ; DATA XREF: _nl_find_msg+3D0r .text:00018590 off_18590 DCD 0 ; DATA XREF: _nl_find_msg+434r .text:00018590 ; _nl_find_msg+4C8r .text:00018594 off_18594 DCD transmem_list ; DATA XREF: _nl_find_msg+468r .text:00018594 ; _nl_find_msg:loc_1854Cr .text:00018598 ; --------------------------------------------------------------------------- .text:00018598 .text:00018598 loc_18598 ; CODE XREF: _nl_find_msg+428j .text:00018598 LDR R2, =freemem.94 .text:0001859C LDR R3, [R11,#var_30] .text:000185A0 LDR R1, [R2] .text:000185A4 RSB R3, R1, R3 .text:000185A8 SUB R3, R3, #4 .text:000185AC STR R3, [R1] .text:000185B0 LDR R12, =freemem.94 .text:000185B4 LDR R2, [R6,#0x2C] .text:000185B8 LDR R3, [R12] .text:000185BC STR R3, [R2,R8,LSL#2] .text:000185C0 LDR R0, [R11,#var_30] .text:000185C4 LDR R3, [R12] .text:000185C8 LDR R1, [R10] .text:000185CC RSB R3, R3, R0 .text:000185D0 RSB R1, R3, R1 .text:000185D4 AND R2, R1, #3 .text:000185D8 ADD R0, R0, R2 .text:000185DC STR R0, [R12] .text:000185E0 LDR R2, =0 .text:000185E4 BIC R1, R1, #3 .text:000185E8 STR R1, [R10] .text:000185EC CMP R2, #0 .text:000185F0 BEQ loc_18600 .text:000185F4 LDR R0, =lock.93 .text:000185F8 MOV LR, PC .text:000185FC MOV PC, R2 .text:00018600 .text:00018600 loc_18600 ; CODE XREF: _nl_find_msg+39Cj .text:00018600 ; _nl_find_msg+590j .text:00018600 LDR R3, [R6,#0x2C] .text:00018604 LDR R2, [R3,R8,LSL#2] .text:00018608 ADD R3, R2, #4 .text:0001860C STR R3, [R11,#var_44] .text:00018610 LDR R2, [R2] .text:00018614 STR R2, [R11,#var_48] .text:00018618 .text:00018618 loc_18618 ; CODE XREF: _nl_find_msg+35Cj .text:00018618 ; _nl_find_msg+390j ... .text:00018618 LDR R1, [R11,#var_48] .text:0001861C SUB R0, R11, #-var_44 .text:00018620 LDMIA R0, {R0,R12} .text:00018624 STR R1, [R12] .text:00018628 .text:00018628 loc_18628 ; CODE XREF: _nl_find_msg+330j .text:00018628 B locret_18638 .text:00018628 ; --------------------------------------------------------------------------- .text:0001862C off_1862C DCD freemem.94 ; DATA XREF: _nl_find_msg:loc_18598r .text:0001862C ; _nl_find_msg+550r .text:00018630 off_18630 DCD 0 ; DATA XREF: _nl_find_msg+580r .text:00018634 off_18634 DCD lock.93 ; DATA XREF: _nl_find_msg+594r .text:00018638 ; --------------------------------------------------------------------------- .text:00018638 .text:00018638 locret_18638 ; CODE XREF: _nl_find_msg:loc_18628j .text:00018638 LDMDB R11, {R4-R11,SP,PC} .text:00018638 ; End of function _nl_find_msg .text:00018638 .text:0001863C .text:0001863C ; =============== S U B R O U T I N E ======================================= .text:0001863C .text:0001863C ; Attributes: bp-based frame .text:0001863C .text:0001863C plural_lookup ; CODE XREF: __dcigettext:loc_18028p .text:0001863C MOV R12, SP .text:00018640 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00018644 SUB R11, R12, #4 .text:00018648 LDR R4, [R0,#8] .text:0001864C MOV R5, R2 .text:00018650 LDR R0, [R4,#0x30] .text:00018654 MOV R6, R3 .text:00018658 BL plural_eval .text:0001865C LDR R3, [R4,#0x34] .text:00018660 MOV R1, R5 .text:00018664 CMP R0, R3 .text:00018668 MOVCC R4, R0 .text:0001866C MOVCS R4, #0 .text:00018670 MOV R2, R4 .text:00018674 SUB R4, R4, #1 .text:00018678 CMP R2, #0 .text:0001867C BEQ loc_186B0 .text:00018680 ADD R6, R1, R6 .text:00018684 .text:00018684 loc_18684 ; CODE XREF: plural_lookup+70j .text:00018684 MOV R0, R1 .text:00018688 MOV R1, #0 .text:0001868C BL rawmemchr .text:00018690 ADD R1, R0, #1 .text:00018694 CMP R1, R6 .text:00018698 MOVCS R0, R5 .text:0001869C LDMCSDB R11, {R4-R6,R11,SP,PC} .text:000186A0 MOV R3, R4 .text:000186A4 SUB R4, R4, #1 .text:000186A8 CMP R3, #0 .text:000186AC BNE loc_18684 .text:000186B0 .text:000186B0 loc_186B0 ; CODE XREF: plural_lookup+40j .text:000186B0 MOV R0, R1 .text:000186B4 LDMDB R11, {R4-R6,R11,SP,PC} .text:000186B4 ; End of function plural_lookup .text:000186B4 .text:000186B8 .text:000186B8 ; =============== S U B R O U T I N E ======================================= .text:000186B8 .text:000186B8 ; Attributes: bp-based frame .text:000186B8 .text:000186B8 plural_eval ; CODE XREF: plural_lookup+1Cp .text:000186B8 ; plural_eval+64p ... .text:000186B8 MOV R12, SP .text:000186BC STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000186C0 SUB R11, R12, #4 .text:000186C4 MOV R5, R0 .text:000186C8 MOV R6, R1 .text:000186CC .text:000186CC loc_186CC ; CODE XREF: plural_eval+1ECj .text:000186CC LDR R3, [R5] .text:000186D0 CMP R3, #3 ; switch 4 cases .text:000186D4 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:000186D8 B loc_188A8 ; jumptable 000186D4 default case .text:000186D8 ; --------------------------------------------------------------------------- .text:000186DC DCD loc_186EC ; jump table for switch statement .text:000186DC DCD loc_18714 .text:000186DC DCD loc_18730 .text:000186DC DCD loc_18884 .text:000186EC ; --------------------------------------------------------------------------- .text:000186EC .text:000186EC loc_186EC ; CODE XREF: plural_eval+1Cj .text:000186EC ; DATA XREF: plural_eval+24o .text:000186EC LDR R3, [R5,#4] ; jumptable 000186D4 case 0 .text:000186F0 CMP R3, #0 .text:000186F4 BEQ loc_18704 .text:000186F8 CMP R3, #1 .text:000186FC BEQ loc_1870C .text:00018700 B loc_188A8 ; jumptable 000186D4 default case .text:00018704 ; --------------------------------------------------------------------------- .text:00018704 .text:00018704 loc_18704 ; CODE XREF: plural_eval+3Cj .text:00018704 MOV R0, R6 .text:00018708 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001870C ; --------------------------------------------------------------------------- .text:0001870C .text:0001870C loc_1870C ; CODE XREF: plural_eval+44j .text:0001870C LDR R0, [R5,#8] .text:00018710 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018714 ; --------------------------------------------------------------------------- .text:00018714 .text:00018714 loc_18714 ; CODE XREF: plural_eval+1Cj .text:00018714 ; DATA XREF: plural_eval+24o .text:00018714 LDR R0, [R5,#8] ; jumptable 000186D4 case 1 .text:00018718 MOV R1, R6 .text:0001871C BL plural_eval .text:00018720 CMP R0, #0 .text:00018724 MOVNE R0, #0 .text:00018728 MOVEQ R0, #1 .text:0001872C LDMDB R11, {R4-R7,R11,SP,PC} .text:00018730 ; --------------------------------------------------------------------------- .text:00018730 .text:00018730 loc_18730 ; CODE XREF: plural_eval+1Cj .text:00018730 ; DATA XREF: plural_eval+24o .text:00018730 LDR R0, [R5,#8] ; jumptable 000186D4 case 2 .text:00018734 MOV R1, R6 .text:00018738 BL plural_eval .text:0001873C LDR R3, [R5,#4] .text:00018740 MOV R4, R0 .text:00018744 CMP R3, #0xF .text:00018748 BNE loc_18778 .text:0001874C MOV R7, #0 .text:00018750 CMP R4, R7 .text:00018754 BNE loc_1876C .text:00018758 LDR R0, [R5,#0xC] .text:0001875C MOV R1, R6 .text:00018760 BL plural_eval .text:00018764 CMP R0, R7 .text:00018768 BEQ loc_18770 .text:0001876C .text:0001876C loc_1876C ; CODE XREF: plural_eval+9Cj .text:0001876C MOV R7, #1 .text:00018770 .text:00018770 loc_18770 ; CODE XREF: plural_eval+B0j .text:00018770 MOV R0, R7 .text:00018774 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018778 ; --------------------------------------------------------------------------- .text:00018778 .text:00018778 loc_18778 ; CODE XREF: plural_eval+90j .text:00018778 CMP R3, #0xE .text:0001877C BNE loc_187A4 .text:00018780 MOV R0, #0 .text:00018784 CMP R4, R0 .text:00018788 LDMEQDB R11, {R4-R7,R11,SP,PC} .text:0001878C LDR R0, [R5,#0xC] .text:00018790 MOV R1, R6 .text:00018794 BL plural_eval .text:00018798 SUBS R0, R0, #0 .text:0001879C MOVNE R0, #1 .text:000187A0 LDMDB R11, {R4-R7,R11,SP,PC} .text:000187A4 ; --------------------------------------------------------------------------- .text:000187A4 .text:000187A4 loc_187A4 ; CODE XREF: plural_eval+C4j .text:000187A4 LDR R0, [R5,#0xC] .text:000187A8 MOV R1, R6 .text:000187AC BL plural_eval .text:000187B0 LDR R3, [R5,#4] .text:000187B4 MOV R1, R0 .text:000187B8 SUB R3, R3, #3 .text:000187BC CMP R3, #0xA ; switch 11 cases .text:000187C0 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:000187C4 B loc_18880 ; jumptable 000187C0 default case .text:000187C4 ; --------------------------------------------------------------------------- .text:000187C8 DCD loc_187F4 ; jump table for switch statement .text:000187C8 DCD loc_187FC .text:000187C8 DCD loc_18808 .text:000187C8 DCD loc_18814 .text:000187C8 DCD loc_1881C .text:000187C8 DCD loc_18824 .text:000187C8 DCD loc_18834 .text:000187C8 DCD loc_18844 .text:000187C8 DCD loc_18854 .text:000187C8 DCD loc_18864 .text:000187C8 DCD loc_18874 .text:000187F4 ; --------------------------------------------------------------------------- .text:000187F4 .text:000187F4 loc_187F4 ; CODE XREF: plural_eval+108j .text:000187F4 ; DATA XREF: plural_eval+110o .text:000187F4 MUL R0, R1, R4 ; jumptable 000187C0 case 0 .text:000187F8 LDMDB R11, {R4-R7,R11,SP,PC} .text:000187FC ; --------------------------------------------------------------------------- .text:000187FC .text:000187FC loc_187FC ; CODE XREF: plural_eval+108j .text:000187FC ; DATA XREF: plural_eval+110o .text:000187FC MOV R0, R4 ; jumptable 000187C0 case 1 .text:00018800 BL __udivsi3 .text:00018804 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018808 ; --------------------------------------------------------------------------- .text:00018808 .text:00018808 loc_18808 ; CODE XREF: plural_eval+108j .text:00018808 ; DATA XREF: plural_eval+110o .text:00018808 MOV R0, R4 ; jumptable 000187C0 case 2 .text:0001880C BL __umodsi3 .text:00018810 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018814 ; --------------------------------------------------------------------------- .text:00018814 .text:00018814 loc_18814 ; CODE XREF: plural_eval+108j .text:00018814 ; DATA XREF: plural_eval+110o .text:00018814 ADD R0, R4, R1 ; jumptable 000187C0 case 3 .text:00018818 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001881C ; --------------------------------------------------------------------------- .text:0001881C .text:0001881C loc_1881C ; CODE XREF: plural_eval+108j .text:0001881C ; DATA XREF: plural_eval+110o .text:0001881C RSB R0, R1, R4 ; jumptable 000187C0 case 4 .text:00018820 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018824 ; --------------------------------------------------------------------------- .text:00018824 .text:00018824 loc_18824 ; CODE XREF: plural_eval+108j .text:00018824 ; DATA XREF: plural_eval+110o .text:00018824 CMP R4, R1 ; jumptable 000187C0 case 5 .text:00018828 MOVCS R0, #0 .text:0001882C MOVCC R0, #1 .text:00018830 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018834 ; --------------------------------------------------------------------------- .text:00018834 .text:00018834 loc_18834 ; CODE XREF: plural_eval+108j .text:00018834 ; DATA XREF: plural_eval+110o .text:00018834 CMP R4, R1 ; jumptable 000187C0 case 6 .text:00018838 MOVLS R0, #0 .text:0001883C MOVHI R0, #1 .text:00018840 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018844 ; --------------------------------------------------------------------------- .text:00018844 .text:00018844 loc_18844 ; CODE XREF: plural_eval+108j .text:00018844 ; DATA XREF: plural_eval+110o .text:00018844 CMP R4, R1 ; jumptable 000187C0 case 7 .text:00018848 MOVHI R0, #0 .text:0001884C MOVLS R0, #1 .text:00018850 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018854 ; --------------------------------------------------------------------------- .text:00018854 .text:00018854 loc_18854 ; CODE XREF: plural_eval+108j .text:00018854 ; DATA XREF: plural_eval+110o .text:00018854 CMP R4, R1 ; jumptable 000187C0 case 8 .text:00018858 MOVCC R0, #0 .text:0001885C MOVCS R0, #1 .text:00018860 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018864 ; --------------------------------------------------------------------------- .text:00018864 .text:00018864 loc_18864 ; CODE XREF: plural_eval+108j .text:00018864 ; DATA XREF: plural_eval+110o .text:00018864 CMP R4, R1 ; jumptable 000187C0 case 9 .text:00018868 MOVNE R0, #0 .text:0001886C MOVEQ R0, #1 .text:00018870 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018874 ; --------------------------------------------------------------------------- .text:00018874 .text:00018874 loc_18874 ; CODE XREF: plural_eval+108j .text:00018874 ; DATA XREF: plural_eval+110o .text:00018874 SUBS R0, R4, R1 ; jumptable 000187C0 case 10 .text:00018878 MOVNE R0, #1 .text:0001887C LDMDB R11, {R4-R7,R11,SP,PC} .text:00018880 ; --------------------------------------------------------------------------- .text:00018880 .text:00018880 loc_18880 ; CODE XREF: plural_eval+10Cj .text:00018880 B loc_188A8 ; jumptable 000187C0 default case .text:00018884 ; --------------------------------------------------------------------------- .text:00018884 .text:00018884 loc_18884 ; CODE XREF: plural_eval+1Cj .text:00018884 ; DATA XREF: plural_eval+24o .text:00018884 LDR R0, [R5,#8] ; jumptable 000186D4 case 3 .text:00018888 MOV R1, R6 .text:0001888C BL plural_eval .text:00018890 CMP R0, #0 .text:00018894 MOVEQ R0, #8 .text:00018898 MOVNE R0, #4 .text:0001889C ADD R3, R5, #8 .text:000188A0 LDR R5, [R3,R0] .text:000188A4 B loc_186CC .text:000188A8 ; --------------------------------------------------------------------------- .text:000188A8 .text:000188A8 loc_188A8 ; CODE XREF: plural_eval+20j .text:000188A8 ; plural_eval+48j ... .text:000188A8 MOV R0, #0 ; jumptable 000186D4 default case .text:000188AC LDMDB R11, {R4-R7,R11,SP,PC} .text:000188AC ; End of function plural_eval .text:000188AC .text:000188B0 .text:000188B0 ; =============== S U B R O U T I N E ======================================= .text:000188B0 .text:000188B0 ; Attributes: bp-based frame .text:000188B0 .text:000188B0 category_to_name ; CODE XREF: __dcigettext+268p .text:000188B0 MOV R12, SP .text:000188B4 STMFD SP!, {R11,R12,LR,PC} .text:000188B8 SUB R11, R12, #4 .text:000188BC CMP R0, #6 ; switch 7 cases .text:000188C0 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:000188C4 B loc_1891C ; jumptable 000188C0 default case .text:000188C4 ; --------------------------------------------------------------------------- .text:000188C8 DCD loc_188EC ; jump table for switch statement .text:000188C8 DCD loc_188FC .text:000188C8 DCD loc_18904 .text:000188C8 DCD loc_188E4 .text:000188C8 DCD loc_188F4 .text:000188C8 DCD loc_1890C .text:000188C8 DCD loc_18914 .text:000188E4 ; --------------------------------------------------------------------------- .text:000188E4 .text:000188E4 loc_188E4 ; CODE XREF: category_to_name+10j .text:000188E4 ; DATA XREF: category_to_name+18o .text:000188E4 LDR R0, =aLc_collate ; jumptable 000188C0 case 3 .text:000188E8 LDMDB R11, {R11,SP,PC} .text:000188EC ; --------------------------------------------------------------------------- .text:000188EC .text:000188EC loc_188EC ; CODE XREF: category_to_name+10j .text:000188EC ; DATA XREF: category_to_name+18o .text:000188EC LDR R0, =aLc_ctype ; jumptable 000188C0 case 0 .text:000188F0 LDMDB R11, {R11,SP,PC} .text:000188F4 ; --------------------------------------------------------------------------- .text:000188F4 .text:000188F4 loc_188F4 ; CODE XREF: category_to_name+10j .text:000188F4 ; DATA XREF: category_to_name+18o .text:000188F4 LDR R0, =aLc_monetary ; jumptable 000188C0 case 4 .text:000188F8 LDMDB R11, {R11,SP,PC} .text:000188FC ; --------------------------------------------------------------------------- .text:000188FC .text:000188FC loc_188FC ; CODE XREF: category_to_name+10j .text:000188FC ; DATA XREF: category_to_name+18o .text:000188FC LDR R0, =aLc_numeric ; jumptable 000188C0 case 1 .text:00018900 LDMDB R11, {R11,SP,PC} .text:00018904 ; --------------------------------------------------------------------------- .text:00018904 .text:00018904 loc_18904 ; CODE XREF: category_to_name+10j .text:00018904 ; DATA XREF: category_to_name+18o .text:00018904 LDR R0, =aLc_time ; jumptable 000188C0 case 2 .text:00018908 LDMDB R11, {R11,SP,PC} .text:0001890C ; --------------------------------------------------------------------------- .text:0001890C .text:0001890C loc_1890C ; CODE XREF: category_to_name+10j .text:0001890C ; DATA XREF: category_to_name+18o .text:0001890C LDR R0, =aLc_messages ; jumptable 000188C0 case 5 .text:00018910 LDMDB R11, {R11,SP,PC} .text:00018914 ; --------------------------------------------------------------------------- .text:00018914 .text:00018914 loc_18914 ; CODE XREF: category_to_name+10j .text:00018914 ; DATA XREF: category_to_name+18o .text:00018914 LDR R0, =aLc_all ; jumptable 000188C0 case 6 .text:00018918 LDMDB R11, {R11,SP,PC} .text:0001891C ; --------------------------------------------------------------------------- .text:0001891C .text:0001891C loc_1891C ; CODE XREF: category_to_name+14j .text:0001891C LDR R0, =aLc_xxx ; jumptable 000188C0 default case .text:00018920 LDMDB R11, {R11,SP,PC} .text:00018920 ; End of function category_to_name .text:00018920 .text:00018920 ; --------------------------------------------------------------------------- .text:00018924 off_18924 DCD aLc_collate ; DATA XREF: category_to_name:loc_188E4r .text:00018924 ; "LC_COLLATE" .text:00018928 off_18928 DCD aLc_ctype ; DATA XREF: category_to_name:loc_188ECr .text:00018928 ; "LC_CTYPE" .text:0001892C off_1892C DCD aLc_monetary ; DATA XREF: category_to_name:loc_188F4r .text:0001892C ; "LC_MONETARY" .text:00018930 off_18930 DCD aLc_numeric ; DATA XREF: category_to_name:loc_188FCr .text:00018930 ; "LC_NUMERIC" .text:00018934 off_18934 DCD aLc_time ; DATA XREF: category_to_name:loc_18904r .text:00018934 ; "LC_TIME" .text:00018938 off_18938 DCD aLc_messages ; DATA XREF: category_to_name:loc_1890Cr .text:00018938 ; "LC_MESSAGES" .text:0001893C off_1893C DCD aLc_all ; DATA XREF: category_to_name:loc_18914r .text:0001893C ; "LC_ALL" .text:00018940 off_18940 DCD aLc_xxx ; DATA XREF: category_to_name:loc_1891Cr .text:00018940 ; "LC_XXX" .text:00018944 .text:00018944 ; =============== S U B R O U T I N E ======================================= .text:00018944 .text:00018944 ; Attributes: bp-based frame .text:00018944 .text:00018944 guess_category_value ; CODE XREF: __dcigettext+278p .text:00018944 MOV R12, SP .text:00018948 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0001894C MOV R5, R0 .text:00018950 LDR R0, =aLanguage ; "LANGUAGE" .text:00018954 SUB R11, R12, #4 .text:00018958 BL getenv .text:0001895C SUBS R4, R0, #0 .text:00018960 BEQ loc_18974 .text:00018964 LDRB R3, [R4] .text:00018968 CMP R3, #0 .text:0001896C MOVNE R4, R0 .text:00018970 MOVEQ R4, #0 .text:00018974 .text:00018974 loc_18974 ; CODE XREF: guess_category_value+1Cj .text:00018974 MOV R0, R5 .text:00018978 MOV R1, #0 .text:0001897C BL setlocale .text:00018980 CMP R4, #0 .text:00018984 MOV R2, R0 .text:00018988 BEQ loc_189A8 .text:0001898C LDRB R3, [R2] .text:00018990 SUB R1, R3, #0x43 .text:00018994 CMP R3, #0x43 .text:00018998 LDREQB R1, [R2,#1] .text:0001899C CMP R1, #0 .text:000189A0 MOV R0, R4 .text:000189A4 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:000189A8 .text:000189A8 loc_189A8 ; CODE XREF: guess_category_value+44j .text:000189A8 MOV R0, R2 .text:000189AC LDMDB R11, {R4,R5,R11,SP,PC} .text:000189AC ; End of function guess_category_value .text:000189AC .text:000189AC ; --------------------------------------------------------------------------- .text:000189B0 off_189B0 DCD aLanguage ; DATA XREF: guess_category_value+Cr .text:000189B0 ; "LANGUAGE" .text:000189B4 .text:000189B4 ; =============== S U B R O U T I N E ======================================= .text:000189B4 .text:000189B4 ; Attributes: bp-based frame .text:000189B4 .text:000189B4 free_mem .text:000189B4 MOV R12, SP .text:000189B8 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:000189BC LDR R2, =_nl_domain_bindings .text:000189C0 LDR R7, =root .text:000189C4 LDR R3, [R2] .text:000189C8 SUB R11, R12, #4 .text:000189CC LDR R8, =transmem_list .text:000189D0 CMP R3, #0 .text:000189D4 BEQ loc_18A18 .text:000189D8 MOV R5, R2 .text:000189DC LDR R6, =_nl_default_dirname ; "/usr/local/arm/2.95.3/arm-linux/share/l"... .text:000189E0 .text:000189E0 loc_189E0 ; CODE XREF: free_mem+60j .text:000189E0 LDR R4, [R5] .text:000189E4 LDR R3, [R4] .text:000189E8 STR R3, [R5] .text:000189EC LDR R0, [R4,#4] .text:000189F0 CMP R0, R6 .text:000189F4 BEQ loc_189FC .text:000189F8 BL free .text:000189FC .text:000189FC loc_189FC ; CODE XREF: free_mem+40j .text:000189FC LDR R0, [R4,#0xC] .text:00018A00 BL free .text:00018A04 MOV R0, R4 .text:00018A08 BL free .text:00018A0C LDR R3, [R5] .text:00018A10 CMP R3, #0 .text:00018A14 BNE loc_189E0 .text:00018A18 .text:00018A18 loc_18A18 ; CODE XREF: free_mem+20j .text:00018A18 LDR R3, =_nl_current_default_domain .text:00018A1C LDR R2, =_nl_default_default_domain ; "messages" .text:00018A20 LDR R0, [R3] .text:00018A24 CMP R0, R2 .text:00018A28 BEQ loc_18A30 .text:00018A2C BL free .text:00018A30 .text:00018A30 loc_18A30 ; CODE XREF: free_mem+74j .text:00018A30 LDR R0, [R7] .text:00018A34 LDR R1, =free .text:00018A38 BL tdestroy .text:00018A3C LDR R2, [R8] .text:00018A40 MOV R3, #0 .text:00018A44 STR R3, [R7] .text:00018A48 CMP R2, R3 .text:00018A4C LDMEQDB R11, {R4-R8,R11,SP,PC} .text:00018A50 MOV R4, R8 .text:00018A54 .text:00018A54 loc_18A54 ; CODE XREF: free_mem+B8j .text:00018A54 LDR R0, [R4] .text:00018A58 LDR R3, [R0] .text:00018A5C STR R3, [R4] .text:00018A60 BL free .text:00018A64 LDR R3, [R4] .text:00018A68 CMP R3, #0 .text:00018A6C BNE loc_18A54 .text:00018A70 LDMDB R11, {R4-R8,R11,SP,PC} .text:00018A70 ; End of function free_mem .text:00018A70 .text:00018A70 ; --------------------------------------------------------------------------- .text:00018A74 off_18A74 DCD _nl_domain_bindings ; DATA XREF: free_mem+8r .text:00018A78 off_18A78 DCD root ; DATA XREF: free_mem+Cr .text:00018A7C off_18A7C DCD transmem_list ; DATA XREF: free_mem+18r .text:00018A80 off_18A80 DCD _nl_default_dirname ; DATA XREF: free_mem+28r .text:00018A80 ; "/usr/local/arm/2.95.3/arm-linux/share/l"... .text:00018A84 off_18A84 DCD _nl_current_default_domain .text:00018A84 ; DATA XREF: free_mem:loc_18A18r .text:00018A88 off_18A88 DCD _nl_default_default_domain ; DATA XREF: free_mem+68r .text:00018A88 ; "messages" .text:00018A8C off_18A8C DCD free ; DATA XREF: free_mem+80r .text:00018A90 .text:00018A90 ; =============== S U B R O U T I N E ======================================= .text:00018A90 .text:00018A90 ; Attributes: bp-based frame .text:00018A90 .text:00018A90 EXPORT _nl_find_domain .text:00018A90 _nl_find_domain ; CODE XREF: __dcigettext+430p .text:00018A90 .text:00018A90 var_74 = -0x74 .text:00018A90 var_70 = -0x70 .text:00018A90 var_6C = -0x6C .text:00018A90 var_68 = -0x68 .text:00018A90 var_64 = -0x64 .text:00018A90 var_60 = -0x60 .text:00018A90 var_5C = -0x5C .text:00018A90 var_58 = -0x58 .text:00018A90 var_54 = -0x54 .text:00018A90 var_50 = -0x50 .text:00018A90 var_4C = -0x4C .text:00018A90 var_48 = -0x48 .text:00018A90 var_44 = -0x44 .text:00018A90 var_40 = -0x40 .text:00018A90 var_3C = -0x3C .text:00018A90 var_38 = -0x38 .text:00018A90 var_34 = -0x34 .text:00018A90 var_30 = -0x30 .text:00018A90 var_2C = -0x2C .text:00018A90 .text:00018A90 MOV R12, SP .text:00018A94 STMFD SP!, {R4-R12,LR,PC} .text:00018A98 SUB R11, R12, #4 .text:00018A9C MOV R8, R1 .text:00018AA0 MOV R5, R0 .text:00018AA4 MOV R9, R2 .text:00018AA8 MOV R10, R3 .text:00018AAC SUB SP, SP, #0x4C .text:00018AB0 BL strlen .text:00018AB4 STR R8, [SP,#0x74+var_74] .text:00018AB8 MOV R3, #0 .text:00018ABC STR R3, [SP,#0x74+var_70] .text:00018AC0 STR R3, [SP,#0x74+var_6C] .text:00018AC4 STR R3, [SP,#0x74+var_68] .text:00018AC8 STR R3, [SP,#0x74+var_64] .text:00018ACC STR R3, [SP,#0x74+var_60] .text:00018AD0 STR R3, [SP,#0x74+var_5C] .text:00018AD4 STR R3, [SP,#0x74+var_58] .text:00018AD8 STR R9, [SP,#0x74+var_54] .text:00018ADC STR R3, [SP,#0x74+var_50] .text:00018AE0 MOV R1, R5 .text:00018AE4 LDR R4, =_nl_loaded_domains .text:00018AE8 ADD R2, R0, #1 .text:00018AEC MOV R0, R4 .text:00018AF0 BL _nl_make_l10nflist .text:00018AF4 SUBS R6, R0, #0 .text:00018AF8 BEQ loc_18B74 .text:00018AFC LDR R3, [R6,#4] .text:00018B00 CMP R3, #0 .text:00018B04 BNE loc_18B14 .text:00018B08 MOV R0, R6 .text:00018B0C MOV R1, R10 .text:00018B10 BL _nl_load_domain .text:00018B14 .text:00018B14 loc_18B14 ; CODE XREF: _nl_find_domain+74j .text:00018B14 LDR R3, [R6,#8] .text:00018B18 CMP R3, #0 .text:00018B1C BNE loc_18CE0 .text:00018B20 MOV R7, R3 .text:00018B24 ADD R5, R6, #0x10 .text:00018B28 B loc_18B30 .text:00018B2C ; --------------------------------------------------------------------------- .text:00018B2C .text:00018B2C loc_18B2C ; CODE XREF: _nl_find_domain+D0j .text:00018B2C ADD R7, R7, #1 .text:00018B30 .text:00018B30 loc_18B30 ; CODE XREF: _nl_find_domain+98j .text:00018B30 MOV R4, R7,LSL#2 .text:00018B34 LDR R0, [R5,R4] .text:00018B38 CMP R0, #0 .text:00018B3C BEQ loc_18B64 .text:00018B40 LDR R3, [R0,#4] .text:00018B44 CMP R3, #0 .text:00018B48 BNE loc_18B54 .text:00018B4C MOV R1, R10 .text:00018B50 BL _nl_load_domain .text:00018B54 .text:00018B54 loc_18B54 ; CODE XREF: _nl_find_domain+B8j .text:00018B54 LDR R3, [R5,R4] .text:00018B58 LDR R2, [R3,#8] .text:00018B5C CMP R2, #0 .text:00018B60 BEQ loc_18B2C .text:00018B64 .text:00018B64 loc_18B64 ; CODE XREF: _nl_find_domain+ACj .text:00018B64 CMP R7, #0 .text:00018B68 MOVGE R0, R6 .text:00018B6C MOVLT R0, #0 .text:00018B70 B locret_18CE4 .text:00018B74 ; --------------------------------------------------------------------------- .text:00018B74 .text:00018B74 loc_18B74 ; CODE XREF: _nl_find_domain+68j .text:00018B74 MOV R0, R8 .text:00018B78 BL _nl_expand_alias .text:00018B7C CMP R0, #0 .text:00018B80 STR R0, [R11,#var_4C] .text:00018B84 BEQ loc_18B94 .text:00018B88 BL strdup .text:00018B8C SUBS R8, R0, #0 .text:00018B90 BEQ loc_18C44 .text:00018B94 .text:00018B94 loc_18B94 ; CODE XREF: _nl_find_domain+F4j .text:00018B94 SUB R3, R11, #-var_38 .text:00018B98 STR R3, [SP,#0x74+var_74] .text:00018B9C SUB R2, R11, #-var_3C .text:00018BA0 STR R2, [SP,#0x74+var_70] .text:00018BA4 SUB R3, R11, #-var_40 .text:00018BA8 STR R3, [SP,#0x74+var_6C] .text:00018BAC SUB R2, R11, #-var_44 .text:00018BB0 STR R2, [SP,#0x74+var_68] .text:00018BB4 SUB R3, R11, #-var_48 .text:00018BB8 STR R3, [SP,#0x74+var_64] .text:00018BBC MOV R0, R8 .text:00018BC0 SUB R1, R11, #-var_2C .text:00018BC4 SUB R2, R11, #-var_30 .text:00018BC8 SUB R3, R11, #-var_34 .text:00018BCC BL _nl_explode_name .text:00018BD0 MOV R7, R0 .text:00018BD4 MOV R0, R5 .text:00018BD8 BL strlen .text:00018BDC STR R9, [SP,#0x74+var_54] .text:00018BE0 MOV R3, #1 .text:00018BE4 STR R3, [SP,#0x74+var_50] .text:00018BE8 LDR R2, [R11,#var_2C] .text:00018BEC STR R2, [SP,#0x74+var_74] .text:00018BF0 LDR R3, [R11,#var_34] .text:00018BF4 STR R3, [SP,#0x74+var_70] .text:00018BF8 LDR R2, [R11,#var_38] .text:00018BFC STR R2, [SP,#0x74+var_6C] .text:00018C00 LDR R3, [R11,#var_3C] .text:00018C04 STR R3, [SP,#0x74+var_68] .text:00018C08 LDR R2, [R11,#var_30] .text:00018C0C STR R2, [SP,#0x74+var_64] .text:00018C10 LDR R3, [R11,#var_40] .text:00018C14 STR R3, [SP,#0x74+var_60] .text:00018C18 LDR R2, [R11,#var_44] .text:00018C1C STR R2, [SP,#0x74+var_5C] .text:00018C20 LDR R3, [R11,#var_48] .text:00018C24 STR R3, [SP,#0x74+var_58] .text:00018C28 MOV R1, R5 .text:00018C2C ADD R2, R0, #1 .text:00018C30 MOV R0, R4 .text:00018C34 MOV R3, R7 .text:00018C38 BL _nl_make_l10nflist .text:00018C3C SUBS R6, R0, #0 .text:00018C40 BNE loc_18C4C .text:00018C44 .text:00018C44 loc_18C44 ; CODE XREF: _nl_find_domain+100j .text:00018C44 MOV R0, #0 .text:00018C48 B locret_18CE4 .text:00018C4C ; --------------------------------------------------------------------------- .text:00018C4C .text:00018C4C loc_18C4C ; CODE XREF: _nl_find_domain+1B0j .text:00018C4C LDR R3, [R6,#4] .text:00018C50 CMP R3, #0 .text:00018C54 BNE loc_18C64 .text:00018C58 MOV R0, R6 .text:00018C5C MOV R1, R10 .text:00018C60 BL _nl_load_domain .text:00018C64 .text:00018C64 loc_18C64 ; CODE XREF: _nl_find_domain+1C4j .text:00018C64 LDR R3, [R6,#8] .text:00018C68 AND R9, R7, #8 .text:00018C6C CMP R3, #0 .text:00018C70 BNE loc_18CBC .text:00018C74 MOV R7, R3 .text:00018C78 ADD R5, R6, #0x10 .text:00018C7C B loc_18C88 .text:00018C7C ; --------------------------------------------------------------------------- .text:00018C80 off_18C80 DCD _nl_loaded_domains ; DATA XREF: _nl_find_domain+54r .text:00018C84 ; --------------------------------------------------------------------------- .text:00018C84 .text:00018C84 loc_18C84 ; CODE XREF: _nl_find_domain+228j .text:00018C84 ADD R7, R7, #1 .text:00018C88 .text:00018C88 loc_18C88 ; CODE XREF: _nl_find_domain+1ECj .text:00018C88 MOV R4, R7,LSL#2 .text:00018C8C LDR R0, [R5,R4] .text:00018C90 CMP R0, #0 .text:00018C94 BEQ loc_18CBC .text:00018C98 LDR R3, [R0,#4] .text:00018C9C CMP R3, #0 .text:00018CA0 BNE loc_18CAC .text:00018CA4 MOV R1, R10 .text:00018CA8 BL _nl_load_domain .text:00018CAC .text:00018CAC loc_18CAC ; CODE XREF: _nl_find_domain+210j .text:00018CAC LDR R3, [R5,R4] .text:00018CB0 LDR R2, [R3,#8] .text:00018CB4 CMP R2, #0 .text:00018CB8 BEQ loc_18C84 .text:00018CBC .text:00018CBC loc_18CBC ; CODE XREF: _nl_find_domain+1E0j .text:00018CBC ; _nl_find_domain+204j .text:00018CBC LDR R3, [R11,#var_4C] .text:00018CC0 CMP R3, #0 .text:00018CC4 BEQ loc_18CD0 .text:00018CC8 MOV R0, R8 .text:00018CCC BL free .text:00018CD0 .text:00018CD0 loc_18CD0 ; CODE XREF: _nl_find_domain+234j .text:00018CD0 CMP R9, #0 .text:00018CD4 BEQ loc_18CE0 .text:00018CD8 LDR R0, [R11,#var_3C] .text:00018CDC BL free .text:00018CE0 .text:00018CE0 loc_18CE0 ; CODE XREF: _nl_find_domain+8Cj .text:00018CE0 ; _nl_find_domain+244j .text:00018CE0 MOV R0, R6 .text:00018CE4 .text:00018CE4 locret_18CE4 ; CODE XREF: _nl_find_domain+E0j .text:00018CE4 ; _nl_find_domain+1B8j .text:00018CE4 LDMDB R11, {R4-R11,SP,PC} .text:00018CE4 ; End of function _nl_find_domain .text:00018CE4 .text:00018CE8 .text:00018CE8 ; =============== S U B R O U T I N E ======================================= .text:00018CE8 .text:00018CE8 ; Attributes: bp-based frame .text:00018CE8 .text:00018CE8 free_mem_0 .text:00018CE8 MOV R12, SP .text:00018CEC STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00018CF0 LDR R3, =_nl_loaded_domains .text:00018CF4 LDR R4, [R3] .text:00018CF8 SUB R11, R12, #4 .text:00018CFC CMP R4, #0 .text:00018D00 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00018D04 .text:00018D04 loc_18D04 ; CODE XREF: free_mem_0+48j .text:00018D04 LDR R0, [R4,#8] .text:00018D08 MOV R5, R4 .text:00018D0C CMP R0, #0 .text:00018D10 BEQ loc_18D18 .text:00018D14 BL _nl_unload_domain .text:00018D18 .text:00018D18 loc_18D18 ; CODE XREF: free_mem_0+28j .text:00018D18 LDR R0, [R5] .text:00018D1C LDR R4, [R4,#0xC] .text:00018D20 BL free .text:00018D24 MOV R0, R5 .text:00018D28 BL free .text:00018D2C CMP R4, #0 .text:00018D30 BNE loc_18D04 .text:00018D34 LDMDB R11, {R4,R5,R11,SP,PC} .text:00018D34 ; End of function free_mem_0 .text:00018D34 .text:00018D34 ; --------------------------------------------------------------------------- .text:00018D38 off_18D38 DCD _nl_loaded_domains ; DATA XREF: free_mem_0+8r .text:00018D3C .text:00018D3C ; =============== S U B R O U T I N E ======================================= .text:00018D3C .text:00018D3C ; Attributes: bp-based frame .text:00018D3C .text:00018D3C EXPORT _nl_init_domain_conv .text:00018D3C _nl_init_domain_conv ; CODE XREF: _nl_find_msg+350p .text:00018D3C ; _nl_load_domain+340p .text:00018D3C .text:00018D3C var_30 = -0x30 .text:00018D3C var_2C = -0x2C .text:00018D3C .text:00018D3C MOV R12, SP .text:00018D40 STMFD SP!, {R4-R12,LR,PC} .text:00018D44 SUB R11, R12, #4 .text:00018D48 MOV R3, #0 .text:00018D4C MOV R7, R1 .text:00018D50 SUBS R4, R2, #0 .text:00018D54 SUB SP, SP, #8 .text:00018D58 LDRNE R3, [R4,#8] .text:00018D5C STR R3, [R7,#0x24] .text:00018D60 MOV R3, 0xFFFFFFFF .text:00018D64 STR R3, [R7,#0x28] .text:00018D68 MOV R5, #0 .text:00018D6C STR R5, [R7,#0x2C] .text:00018D70 MOV R1, R4 .text:00018D74 LDR R2, =dword_569C4 .text:00018D78 SUB R3, R11, #-var_2C .text:00018D7C BL _nl_find_msg .text:00018D80 SUBS R9, R0, #0 .text:00018D84 BEQ loc_18FD4 .text:00018D88 LDR R1, =aCharset ; "charset=" .text:00018D8C MOV R0, R9 .text:00018D90 BL strstr .text:00018D94 SUBS R1, R0, #0 .text:00018D98 BEQ loc_18FD4 .text:00018D9C ADD R1, R1, #8 .text:00018DA0 MOV R2, R5 .text:00018DA4 LDRB R3, [R1,R2] .text:00018DA8 LDR R10, =aTranslit ; "TRANSLIT" .text:00018DAC ADD R0, R7, #0x28 .text:00018DB0 STR R0, [R11,#var_30] .text:00018DB4 AND R3, R3, #0xFF .text:00018DB8 CMP R3, R5 .text:00018DBC B loc_18DCC .text:00018DC0 ; --------------------------------------------------------------------------- .text:00018DC0 .text:00018DC0 loc_18DC0 ; CODE XREF: _nl_init_domain_conv+A8j .text:00018DC0 ADD R2, R2, #1 .text:00018DC4 LDRB R3, [R1,R2] .text:00018DC8 CMP R3, #0 .text:00018DCC .text:00018DCC loc_18DCC ; CODE XREF: _nl_init_domain_conv+80j .text:00018DCC BEQ loc_18DE8 .text:00018DD0 CMP R3, #0x20 .text:00018DD4 BEQ loc_18DE8 .text:00018DD8 CMP R3, #9 .text:00018DDC BEQ loc_18DE8 .text:00018DE0 CMP R3, #0xA .text:00018DE4 BNE loc_18DC0 .text:00018DE8 .text:00018DE8 loc_18DE8 ; CODE XREF: _nl_init_domain_conv:loc_18DCCj .text:00018DE8 ; _nl_init_domain_conv+98j ... .text:00018DE8 ADD R3, R2, #4 .text:00018DEC BIC R3, R3, #3 .text:00018DF0 RSB SP, R3, SP .text:00018DF4 MOV R0, SP .text:00018DF8 MOV R5, SP .text:00018DFC BL mempcpy .text:00018E00 CMP R4, #0 .text:00018E04 MOV R3, #0 .text:00018E08 STRB R3, [R0] .text:00018E0C BEQ loc_18E30 .text:00018E10 LDR R0, [R4,#0xC] .text:00018E14 CMP R0, R3 .text:00018E18 BEQ loc_18E30 .text:00018E1C MOV R1, R0 .text:00018E20 B loc_18E5C .text:00018E20 ; --------------------------------------------------------------------------- .text:00018E24 off_18E24 DCD dword_569C4 ; DATA XREF: _nl_init_domain_conv+38r .text:00018E28 off_18E28 DCD aCharset ; DATA XREF: _nl_init_domain_conv+4Cr .text:00018E28 ; "charset=" .text:00018E2C off_18E2C DCD aTranslit ; DATA XREF: _nl_init_domain_conv+6Cr .text:00018E2C ; "TRANSLIT" .text:00018E30 ; --------------------------------------------------------------------------- .text:00018E30 .text:00018E30 loc_18E30 ; CODE XREF: _nl_init_domain_conv+D0j .text:00018E30 ; _nl_init_domain_conv+DCj .text:00018E30 LDR R0, =aOutput_charset ; "OUTPUT_CHARSET" .text:00018E34 BL getenv .text:00018E38 SUBS R1, R0, #0 .text:00018E3C BEQ loc_18E4C .text:00018E40 LDRB R3, [R1] .text:00018E44 CMP R3, #0 .text:00018E48 BNE loc_18E5C .text:00018E4C .text:00018E4C loc_18E4C ; CODE XREF: _nl_init_domain_conv+100j .text:00018E4C LDR R3, =_nl_current .text:00018E50 LDR R2, [R3] .text:00018E54 LDR R1, [R2] .text:00018E58 LDR R1, [R1,#0x58] .text:00018E5C .text:00018E5C loc_18E5C ; CODE XREF: _nl_init_domain_conv+E4j .text:00018E5C ; _nl_init_domain_conv+10Cj .text:00018E5C MOV R12, R1 .text:00018E60 MOV LR, #0 .text:00018E64 CMP R10, LR .text:00018E68 LDRB R3, [R1] .text:00018E6C MOVNE R6, #8 .text:00018E70 MOVEQ R6, LR .text:00018E74 CMP R3, LR .text:00018E78 MOV R4, R3 .text:00018E7C BEQ loc_18E98 .text:00018E80 .text:00018E80 loc_18E80 ; CODE XREF: _nl_init_domain_conv+158j .text:00018E80 LDRB R2, [R12] .text:00018E84 LDRB R3, [R12,#1]! .text:00018E88 CMP R2, #0x2F .text:00018E8C ADDEQ LR, LR, #1 .text:00018E90 CMP R3, #0 .text:00018E94 BNE loc_18E80 .text:00018E98 .text:00018E98 loc_18E98 ; CODE XREF: _nl_init_domain_conv+140j .text:00018E98 RSB R3, R1, R12 .text:00018E9C CMP R6, #0 .text:00018EA0 ADDNE R3, R3, #0xE .text:00018EA4 ADDEQ R3, R3, #6 .text:00018EA8 BIC R3, R3, #3 .text:00018EAC RSB SP, R3, SP .text:00018EB0 MOV R0, SP .text:00018EB4 MOV R12, R1 .text:00018EB8 CMP R4, #0 .text:00018EBC MOV R8, SP .text:00018EC0 BEQ loc_18EE4 .text:00018EC4 LDR R4, =__ctype_toupper .text:00018EC8 .text:00018EC8 loc_18EC8 ; CODE XREF: _nl_init_domain_conv+1A4j .text:00018EC8 LDRB R1, [R12] .text:00018ECC LDR R3, [R4] .text:00018ED0 LDRB R2, [R3,R1,LSL#2] .text:00018ED4 STRB R2, [R0],#1 .text:00018ED8 LDRB R3, [R12,#1]! .text:00018EDC CMP R3, #0 .text:00018EE0 BNE loc_18EC8 .text:00018EE4 .text:00018EE4 loc_18EE4 ; CODE XREF: _nl_init_domain_conv+184j .text:00018EE4 CMP LR, #1 .text:00018EE8 BHI loc_18F14 .text:00018EEC CMP LR, #0 .text:00018EF0 MOV R3, #0x2F .text:00018EF4 STRB R3, [R0],#1 .text:00018EF8 BNE loc_18F14 .text:00018EFC CMP R10, #0 .text:00018F00 STRB R3, [R0],#1 .text:00018F04 BEQ loc_18F14 .text:00018F08 MOV R1, R10 .text:00018F0C MOV R2, R6 .text:00018F10 BL mempcpy .text:00018F14 .text:00018F14 loc_18F14 ; CODE XREF: _nl_init_domain_conv+1ACj .text:00018F14 ; _nl_init_domain_conv+1BCj ... .text:00018F14 MOV R2, #0 .text:00018F18 STRB R2, [R0] .text:00018F1C MOV R0, R5 .text:00018F20 MOV R1, R2 .text:00018F24 LDRB R3, [R5] .text:00018F28 MOV R12, R1 .text:00018F2C CMP R3, R2 .text:00018F30 BEQ loc_18F4C .text:00018F34 .text:00018F34 loc_18F34 ; CODE XREF: _nl_init_domain_conv+20Cj .text:00018F34 LDRB R2, [R0] .text:00018F38 LDRB R3, [R0,#1]! .text:00018F3C CMP R2, #0x2F .text:00018F40 ADDEQ R1, R1, #1 .text:00018F44 CMP R3, #0 .text:00018F48 BNE loc_18F34 .text:00018F4C .text:00018F4C loc_18F4C ; CODE XREF: _nl_init_domain_conv+1F4j .text:00018F4C RSB R3, R5, R0 .text:00018F50 ADD R3, R3, #6 .text:00018F54 BIC R3, R3, #3 .text:00018F58 RSB SP, R3, SP .text:00018F5C MOV R0, R5 .text:00018F60 MOV R12, SP .text:00018F64 LDRB R3, [R0] .text:00018F68 MOV R4, SP .text:00018F6C CMP R3, #0 .text:00018F70 BEQ loc_18F94 .text:00018F74 LDR R3, =__ctype_toupper .text:00018F78 LDR LR, [R3] .text:00018F7C .text:00018F7C loc_18F7C ; CODE XREF: _nl_init_domain_conv+254j .text:00018F7C LDRB R3, [R0] .text:00018F80 LDRB R2, [LR,R3,LSL#2] .text:00018F84 STRB R2, [R12],#1 .text:00018F88 LDRB R3, [R0,#1]! .text:00018F8C CMP R3, #0 .text:00018F90 BNE loc_18F7C .text:00018F94 .text:00018F94 loc_18F94 ; CODE XREF: _nl_init_domain_conv+234j .text:00018F94 CMP R1, #1 .text:00018F98 BHI loc_18FAC .text:00018F9C CMP R1, #0 .text:00018FA0 MOV R3, #0x2F .text:00018FA4 STRB R3, [R12],#1 .text:00018FA8 STREQB R3, [R12],#1 .text:00018FAC .text:00018FAC loc_18FAC ; CODE XREF: _nl_init_domain_conv+25Cj .text:00018FAC MOV R3, #0 .text:00018FB0 STRB R3, [R12] .text:00018FB4 MOV R0, R8 .text:00018FB8 MOV R1, R4 .text:00018FBC LDR R2, [R11,#var_30] .text:00018FC0 ADD R3, R3, #1 .text:00018FC4 BL __gconv_open .text:00018FC8 CMP R0, #0 .text:00018FCC MOVNE R3, 0xFFFFFFFF .text:00018FD0 STRNE R3, [R7,#0x28] .text:00018FD4 .text:00018FD4 loc_18FD4 ; CODE XREF: _nl_init_domain_conv+48j .text:00018FD4 ; _nl_init_domain_conv+5Cj .text:00018FD4 MOV R0, R9 .text:00018FD8 B locret_18FE8 .text:00018FD8 ; --------------------------------------------------------------------------- .text:00018FDC off_18FDC DCD aOutput_charset ; DATA XREF: _nl_init_domain_conv:loc_18E30r .text:00018FDC ; "OUTPUT_CHARSET" .text:00018FE0 off_18FE0 DCD _nl_current ; DATA XREF: _nl_init_domain_conv:loc_18E4Cr .text:00018FE4 off_18FE4 DCD __ctype_toupper ; DATA XREF: _nl_init_domain_conv+188r .text:00018FE4 ; _nl_init_domain_conv+238r .text:00018FE8 ; --------------------------------------------------------------------------- .text:00018FE8 .text:00018FE8 locret_18FE8 ; CODE XREF: _nl_init_domain_conv+29Cj .text:00018FE8 LDMDB R11, {R4-R11,SP,PC} .text:00018FE8 ; End of function _nl_init_domain_conv .text:00018FE8 .text:00018FEC .text:00018FEC ; =============== S U B R O U T I N E ======================================= .text:00018FEC .text:00018FEC ; Attributes: bp-based frame .text:00018FEC .text:00018FEC EXPORT _nl_free_domain_conv .text:00018FEC _nl_free_domain_conv ; CODE XREF: _nl_find_msg+340p .text:00018FEC ; _nl_unload_domain+28p .text:00018FEC MOV R12, SP .text:00018FF0 STMFD SP!, {R4,R11,R12,LR,PC} .text:00018FF4 MOV R4, R0 .text:00018FF8 LDR R0, [R4,#0x2C] .text:00018FFC SUB R11, R12, #4 .text:00019000 CMP R0, #0 .text:00019004 CMNNE R0, #1 .text:00019008 BEQ loc_19010 .text:0001900C BL free .text:00019010 .text:00019010 loc_19010 ; CODE XREF: _nl_free_domain_conv+1Cj .text:00019010 LDR R0, [R4,#0x28] .text:00019014 CMN R0, #1 .text:00019018 LDMEQDB R11, {R4,R11,SP,PC} .text:0001901C BL __gconv_close .text:00019020 LDMDB R11, {R4,R11,SP,PC} .text:00019020 ; End of function _nl_free_domain_conv .text:00019020 .text:00019024 .text:00019024 ; =============== S U B R O U T I N E ======================================= .text:00019024 .text:00019024 ; Attributes: bp-based frame .text:00019024 .text:00019024 EXPORT _nl_load_domain .text:00019024 _nl_load_domain ; CODE XREF: _nl_find_msg+30p .text:00019024 ; _nl_find_domain+80p ... .text:00019024 .text:00019024 var_9C = -0x9C .text:00019024 var_98 = -0x98 .text:00019024 var_94 = -0x94 .text:00019024 var_90 = -0x90 .text:00019024 var_8C = -0x8C .text:00019024 var_88 = -0x88 .text:00019024 var_28 = -0x28 .text:00019024 .text:00019024 MOV R12, SP .text:00019028 STMFD SP!, {R4-R12,LR,PC} .text:0001902C SUB R11, R12, #4 .text:00019030 SUB SP, SP, #0x7C .text:00019034 STR R0, [R11,#var_98] .text:00019038 MOV R4, #1 .text:0001903C STR R4, [R0,#4] .text:00019040 LDR R2, [R11,#var_98] .text:00019044 MOV R9, #0 .text:00019048 STR R9, [R2,#8] .text:0001904C LDR R0, [R2] .text:00019050 STR R1, [R11,#var_9C] .text:00019054 CMP R0, R9 .text:00019058 BEQ locret_19468 .text:0001905C MOV R1, R9 .text:00019060 BL open .text:00019064 MOV R8, R0 .text:00019068 CMN R8, #1 .text:0001906C BEQ locret_19468 .text:00019070 MOV R0, #3 .text:00019074 MOV R1, R8 .text:00019078 SUB R2, R11, #-var_88 .text:0001907C BL __fxstat64 .text:00019080 CMP R0, R9 .text:00019084 BNE loc_19140 .text:00019088 MOV R3, 0xFFFFFFCC .text:0001908C SUB R2, R11, #-var_28 .text:00019090 LDR R10, [R2,R3] .text:00019094 ADD R3, R3, R11 .text:00019098 SUB R3, R3, #0x28 .text:0001909C MOV R6, R10 .text:000190A0 MOV R7, #0 .text:000190A4 CMP R6, R10 .text:000190A8 BNE loc_19140 .text:000190AC LDR R3, [R3,#4] .text:000190B0 CMP R7, R3 .text:000190B4 BNE loc_19140 .text:000190B8 CMP R10, #0x1B .text:000190BC BLS loc_19140 .text:000190C0 STMEA SP, {R8,R9} .text:000190C4 MOV R0, R9 .text:000190C8 MOV R1, R6 .text:000190CC MOV R2, R4 .text:000190D0 MOV R3, #2 .text:000190D4 BL mmap .text:000190D8 MOV R5, R0 .text:000190DC CMN R5, #1 .text:000190E0 BEQ loc_190F0 .text:000190E4 MOV R0, R8 .text:000190E8 MOV R9, R4 .text:000190EC BL close .text:000190F0 .text:000190F0 loc_190F0 ; CODE XREF: _nl_load_domain+BCj .text:000190F0 CMN R5, #1 .text:000190F4 BNE loc_19164 .text:000190F8 MOV R0, R6 .text:000190FC BL malloc .text:00019100 SUBS R5, R0, #0 .text:00019104 BEQ locret_19468 .text:00019108 MOV R4, R6 .text:0001910C MOV R6, R5 .text:00019110 .text:00019110 loc_19110 ; CODE XREF: _nl_load_domain+134j .text:00019110 MOV R0, R8 .text:00019114 MOV R1, R6 .text:00019118 MOV R2, R4 .text:0001911C BL read .text:00019120 CMP R0, #0 .text:00019124 BGT loc_1914C .text:00019128 CMN R0, #1 .text:0001912C BNE loc_19140 .text:00019130 BL __errno_location .text:00019134 LDR R3, [R0] .text:00019138 CMP R3, #4 .text:0001913C BEQ loc_19154 .text:00019140 .text:00019140 loc_19140 ; CODE XREF: _nl_load_domain+60j .text:00019140 ; _nl_load_domain+84j ... .text:00019140 MOV R0, R8 .text:00019144 BL close .text:00019148 B locret_19468 .text:0001914C ; --------------------------------------------------------------------------- .text:0001914C .text:0001914C loc_1914C ; CODE XREF: _nl_load_domain+100j .text:0001914C ADD R6, R6, R0 .text:00019150 RSB R4, R0, R4 .text:00019154 .text:00019154 loc_19154 ; CODE XREF: _nl_load_domain+118j .text:00019154 CMP R4, #0 .text:00019158 BNE loc_19110 .text:0001915C MOV R0, R8 .text:00019160 BL close .text:00019164 .text:00019164 loc_19164 ; CODE XREF: _nl_load_domain+D0j .text:00019164 LDR R2, [R5] .text:00019168 LDR R4, =0x950412DE .text:0001916C LDR R3, =0xDE120495 .text:00019170 CMP R2, R4 .text:00019174 CMPNE R2, R3 .text:00019178 BEQ loc_191A0 .text:0001917C CMP R9, #0 .text:00019180 BEQ loc_19194 .text:00019184 MOV R0, R5 .text:00019188 MOV R1, R10 .text:0001918C BL munmap .text:00019190 B locret_19468 .text:00019194 ; --------------------------------------------------------------------------- .text:00019194 .text:00019194 loc_19194 ; CODE XREF: _nl_load_domain+15Cj .text:00019194 MOV R0, R5 .text:00019198 BL free .text:0001919C B locret_19468 .text:000191A0 ; --------------------------------------------------------------------------- .text:000191A0 .text:000191A0 loc_191A0 ; CODE XREF: _nl_load_domain+154j .text:000191A0 MOV R0, #0x38 .text:000191A4 BL malloc .text:000191A8 SUBS R6, R0, #0 .text:000191AC BEQ locret_19468 .text:000191B0 LDR R3, [R11,#var_98] .text:000191B4 STR R6, [R3,#8] .text:000191B8 STMIA R6, {R5,R9,R10} .text:000191BC LDR R3, [R5] .text:000191C0 SUBS R3, R3, R4 .text:000191C4 MOVNE R3, #1 .text:000191C8 CMP R3, #0 .text:000191CC STR R3, [R6,#0xC] .text:000191D0 BEQ loc_191F4 .text:000191D4 LDR R3, [R5,#4] .text:000191D8 AND R2, R3, #0xFF0000 .text:000191DC MOV R2, R2,LSR#8 .text:000191E0 ORR R2, R2, R3,LSR#24 .text:000191E4 AND R1, R3, #0xFF00 .text:000191E8 ORR R2, R2, R1,LSL#8 .text:000191EC ORR R3, R2, R3,LSL#24 .text:000191F0 B loc_191F8 .text:000191F4 ; --------------------------------------------------------------------------- .text:000191F4 .text:000191F4 loc_191F4 ; CODE XREF: _nl_load_domain+1ACj .text:000191F4 LDR R3, [R5,#4] .text:000191F8 .text:000191F8 loc_191F8 ; CODE XREF: _nl_load_domain+1CCj .text:000191F8 CMP R3, #0 .text:000191FC BNE loc_19320 .text:00019200 LDR R3, [R6,#0xC] .text:00019204 CMP R3, #0 .text:00019208 BEQ loc_1922C .text:0001920C LDR R3, [R5,#8] .text:00019210 AND R2, R3, #0xFF0000 .text:00019214 MOV R2, R2,LSR#8 .text:00019218 ORR R2, R2, R3,LSR#24 .text:0001921C AND R1, R3, #0xFF00 .text:00019220 ORR R2, R2, R1,LSL#8 .text:00019224 ORR R2, R2, R3,LSL#24 .text:00019228 B loc_19230 .text:0001922C ; --------------------------------------------------------------------------- .text:0001922C .text:0001922C loc_1922C ; CODE XREF: _nl_load_domain+1E4j .text:0001922C LDR R2, [R5,#8] .text:00019230 .text:00019230 loc_19230 ; CODE XREF: _nl_load_domain+204j .text:00019230 LDR R3, [R6,#0xC] .text:00019234 STR R2, [R6,#0x10] .text:00019238 CMP R3, #0 .text:0001923C BEQ loc_19264 .text:00019240 LDR R3, [R5,#0xC] .text:00019244 AND R2, R3, #0xFF0000 .text:00019248 MOV R2, R2,LSR#8 .text:0001924C ORR R2, R2, R3,LSR#24 .text:00019250 AND R1, R3, #0xFF00 .text:00019254 ORR R2, R2, R1,LSL#8 .text:00019258 ORR R2, R2, R3,LSL#24 .text:0001925C ADD R2, R5, R2 .text:00019260 B loc_1926C .text:00019264 ; --------------------------------------------------------------------------- .text:00019264 .text:00019264 loc_19264 ; CODE XREF: _nl_load_domain+218j .text:00019264 LDR R3, [R5,#0xC] .text:00019268 ADD R2, R5, R3 .text:0001926C .text:0001926C loc_1926C ; CODE XREF: _nl_load_domain+23Cj .text:0001926C LDR R3, [R6,#0xC] .text:00019270 STR R2, [R6,#0x14] .text:00019274 CMP R3, #0 .text:00019278 BEQ loc_192A0 .text:0001927C LDR R3, [R5,#0x10] .text:00019280 AND R2, R3, #0xFF0000 .text:00019284 MOV R2, R2,LSR#8 .text:00019288 ORR R2, R2, R3,LSR#24 .text:0001928C AND R1, R3, #0xFF00 .text:00019290 ORR R2, R2, R1,LSL#8 .text:00019294 ORR R2, R2, R3,LSL#24 .text:00019298 ADD R2, R5, R2 .text:0001929C B loc_192A8 .text:000192A0 ; --------------------------------------------------------------------------- .text:000192A0 .text:000192A0 loc_192A0 ; CODE XREF: _nl_load_domain+254j .text:000192A0 LDR R3, [R5,#0x10] .text:000192A4 ADD R2, R5, R3 .text:000192A8 .text:000192A8 loc_192A8 ; CODE XREF: _nl_load_domain+278j .text:000192A8 LDR R3, [R6,#0xC] .text:000192AC STR R2, [R6,#0x18] .text:000192B0 CMP R3, #0 .text:000192B4 BEQ loc_192D8 .text:000192B8 LDR R3, [R5,#0x14] .text:000192BC AND R2, R3, #0xFF0000 .text:000192C0 MOV R2, R2,LSR#8 .text:000192C4 ORR R2, R2, R3,LSR#24 .text:000192C8 AND R1, R3, #0xFF00 .text:000192CC ORR R2, R2, R1,LSL#8 .text:000192D0 ORR R2, R2, R3,LSL#24 .text:000192D4 B loc_192DC .text:000192D8 ; --------------------------------------------------------------------------- .text:000192D8 .text:000192D8 loc_192D8 ; CODE XREF: _nl_load_domain+290j .text:000192D8 LDR R2, [R5,#0x14] .text:000192DC .text:000192DC loc_192DC ; CODE XREF: _nl_load_domain+2B0j .text:000192DC LDR R3, [R6,#0xC] .text:000192E0 STR R2, [R6,#0x1C] .text:000192E4 CMP R3, #0 .text:000192E8 BEQ loc_19310 .text:000192EC LDR R3, [R5,#0x18] .text:000192F0 AND R2, R3, #0xFF0000 .text:000192F4 MOV R2, R2,LSR#8 .text:000192F8 ORR R2, R2, R3,LSR#24 .text:000192FC AND R1, R3, #0xFF00 .text:00019300 ORR R2, R2, R1,LSL#8 .text:00019304 ORR R2, R2, R3,LSL#24 .text:00019308 ADD R0, R5, R2 .text:0001930C B loc_19318 .text:00019310 ; --------------------------------------------------------------------------- .text:00019310 .text:00019310 loc_19310 ; CODE XREF: _nl_load_domain+2C4j .text:00019310 LDR R3, [R5,#0x18] .text:00019314 ADD R0, R5, R3 .text:00019318 .text:00019318 loc_19318 ; CODE XREF: _nl_load_domain+2E8j .text:00019318 STR R0, [R6,#0x20] .text:0001931C B loc_19358 .text:00019320 ; --------------------------------------------------------------------------- .text:00019320 .text:00019320 loc_19320 ; CODE XREF: _nl_load_domain+1D8j .text:00019320 CMP R9, #0 .text:00019324 BEQ loc_19338 .text:00019328 MOV R0, R5 .text:0001932C MOV R1, R10 .text:00019330 BL munmap .text:00019334 B loc_19340 .text:00019338 ; --------------------------------------------------------------------------- .text:00019338 .text:00019338 loc_19338 ; CODE XREF: _nl_load_domain+300j .text:00019338 MOV R0, R5 .text:0001933C BL free .text:00019340 .text:00019340 loc_19340 ; CODE XREF: _nl_load_domain+310j .text:00019340 MOV R0, R6 .text:00019344 BL free .text:00019348 LDR R2, [R11,#var_98] .text:0001934C MOV R3, #0 .text:00019350 STR R3, [R2,#8] .text:00019354 B locret_19468 .text:00019358 ; --------------------------------------------------------------------------- .text:00019358 .text:00019358 loc_19358 ; CODE XREF: _nl_load_domain+2F8j .text:00019358 LDR R0, [R11,#var_98] .text:0001935C LDR R2, [R11,#var_9C] .text:00019360 MOV R1, R6 .text:00019364 BL _nl_init_domain_conv .text:00019368 SUBS R4, R0, #0 .text:0001936C BEQ loc_19450 .text:00019370 LDR R1, =aPlural ; "plural=" .text:00019374 MOV R0, R4 .text:00019378 BL strstr .text:0001937C MOV R5, R0 .text:00019380 LDR R1, =aNplurals ; "nplurals=" .text:00019384 MOV R0, R4 .text:00019388 BL strstr .text:0001938C MOV R4, R0 .text:00019390 CMP R4, #0 .text:00019394 CMPNE R5, #0 .text:00019398 BEQ loc_19450 .text:0001939C LDRB R3, [R4,#9]! .text:000193A0 SUB R12, R11, #-var_8C .text:000193A4 CMP R3, #0 .text:000193A8 BEQ loc_193F4 .text:000193AC LDR R0, =__ctype_b .text:000193B0 LDRB R3, [R4] .text:000193B4 LDR R2, [R0] .text:000193B8 MOV R3, R3,LSL#1 .text:000193BC ADD R3, R3, R2 .text:000193C0 LDRB R1, [R3,#1] .text:000193C4 TST R1, #0x20 .text:000193C8 BEQ loc_193F4 .text:000193CC .text:000193CC loc_193CC ; CODE XREF: _nl_load_domain+3CCj .text:000193CC LDRB R3, [R4,#1]! .text:000193D0 CMP R3, #0 .text:000193D4 BEQ loc_193F4 .text:000193D8 LDRB R3, [R4] .text:000193DC LDR R1, [R0] .text:000193E0 MOV R3, R3,LSL#1 .text:000193E4 ADD R3, R3, R1 .text:000193E8 LDRB R2, [R3,#1] .text:000193EC TST R2, #0x20 .text:000193F0 BNE loc_193CC .text:000193F4 .text:000193F4 loc_193F4 ; CODE XREF: _nl_load_domain+384j .text:000193F4 ; _nl_load_domain+3A4j ... .text:000193F4 MOV R0, R4 .text:000193F8 MOV R1, R12 .text:000193FC MOV R2, #0xA .text:00019400 MOV R3, #0 .text:00019404 BL __strtoul_internal .text:00019408 STR R0, [R6,#0x34] .text:0001940C LDR R3, [R11,#var_8C] .text:00019410 CMP R4, R3 .text:00019414 BEQ loc_19450 .text:00019418 ADD R5, R5, #7 .text:0001941C STR R5, [R11,#var_94] .text:00019420 SUB R0, R11, #-var_94 .text:00019424 BL __gettextparse .text:00019428 CMP R0, #0 .text:0001942C BNE loc_19450 .text:00019430 LDR R3, [R11,#var_90] .text:00019434 STR R3, [R6,#0x30] .text:00019438 B locret_19468 .text:00019438 ; --------------------------------------------------------------------------- .text:0001943C dword_1943C DCD 0x950412DE ; DATA XREF: _nl_load_domain+144r .text:00019440 dword_19440 DCD 0xDE120495 ; DATA XREF: _nl_load_domain+148r .text:00019444 off_19444 DCD aPlural ; DATA XREF: _nl_load_domain+34Cr .text:00019444 ; "plural=" .text:00019448 off_19448 DCD aNplurals ; DATA XREF: _nl_load_domain+35Cr .text:00019448 ; "nplurals=" .text:0001944C off_1944C DCD __ctype_b ; DATA XREF: _nl_load_domain+388r .text:00019450 ; --------------------------------------------------------------------------- .text:00019450 .text:00019450 loc_19450 ; CODE XREF: _nl_load_domain+348j .text:00019450 ; _nl_load_domain+374j ... .text:00019450 MOV R3, #2 .text:00019454 STR R3, [R6,#0x34] .text:00019458 LDR R2, =germanic_plural .text:0001945C STR R2, [R6,#0x30] .text:00019460 B locret_19468 .text:00019460 ; --------------------------------------------------------------------------- .text:00019464 off_19464 DCD germanic_plural ; DATA XREF: _nl_load_domain+434r .text:00019468 ; --------------------------------------------------------------------------- .text:00019468 .text:00019468 locret_19468 ; CODE XREF: _nl_load_domain+34j .text:00019468 ; _nl_load_domain+48j ... .text:00019468 LDMDB R11, {R4-R11,SP,PC} .text:00019468 ; End of function _nl_load_domain .text:00019468 .text:0001946C .text:0001946C ; =============== S U B R O U T I N E ======================================= .text:0001946C .text:0001946C ; Attributes: bp-based frame .text:0001946C .text:0001946C EXPORT _nl_unload_domain .text:0001946C _nl_unload_domain ; CODE XREF: free_mem_0+2Cp .text:0001946C MOV R12, SP .text:00019470 STMFD SP!, {R4,R11,R12,LR,PC} .text:00019474 LDR R3, =germanic_plural .text:00019478 MOV R4, R0 .text:0001947C LDR R0, [R4,#0x30] .text:00019480 SUB R11, R12, #4 .text:00019484 CMP R0, R3 .text:00019488 BEQ loc_19490 .text:0001948C BL __gettext_free_exp .text:00019490 .text:00019490 loc_19490 ; CODE XREF: _nl_unload_domain+1Cj .text:00019490 MOV R0, R4 .text:00019494 BL _nl_free_domain_conv .text:00019498 LDR R3, [R4,#4] .text:0001949C CMP R3, #0 .text:000194A0 BEQ loc_194B4 .text:000194A4 LDR R0, [R4] .text:000194A8 LDR R1, [R4,#8] .text:000194AC BL munmap .text:000194B0 B loc_194BC .text:000194B4 ; --------------------------------------------------------------------------- .text:000194B4 .text:000194B4 loc_194B4 ; CODE XREF: _nl_unload_domain+34j .text:000194B4 LDR R0, [R4] .text:000194B8 BL free .text:000194BC .text:000194BC loc_194BC ; CODE XREF: _nl_unload_domain+44j .text:000194BC MOV R0, R4 .text:000194C0 BL free .text:000194C4 LDMDB R11, {R4,R11,SP,PC} .text:000194C4 ; End of function _nl_unload_domain .text:000194C4 .text:000194C4 ; --------------------------------------------------------------------------- .text:000194C8 off_194C8 DCD germanic_plural ; DATA XREF: _nl_unload_domain+8r .text:000194CC .text:000194CC ; =============== S U B R O U T I N E ======================================= .text:000194CC .text:000194CC ; Attributes: bp-based frame .text:000194CC .text:000194CC EXPORT _nl_expand_alias .text:000194CC _nl_expand_alias ; CODE XREF: _nl_find_domain+E8p .text:000194CC ; _nl_find_locale+108p .text:000194CC .text:000194CC var_30 = -0x30 .text:000194CC var_2C = -0x2C .text:000194CC .text:000194CC MOV R12, SP .text:000194D0 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:000194D4 SUB R11, R12, #4 .text:000194D8 MOV R6, #0 .text:000194DC LDR R3, =0 .text:000194E0 MOV R7, R0 .text:000194E4 CMP R3, R6 .text:000194E8 SUB SP, SP, #0xC .text:000194EC BEQ loc_194FC .text:000194F0 LDR R0, =lock_1 .text:000194F4 MOV LR, PC .text:000194F8 MOV PC, R3 .text:000194FC .text:000194FC loc_194FC ; CODE XREF: _nl_expand_alias+20j .text:000194FC LDR R8, =nmap .text:00019500 LDR R10, =0 .text:00019504 .text:00019504 loc_19504 ; CODE XREF: _nl_expand_alias+14Cj .text:00019504 LDR R12, [R8] .text:00019508 STR R7, [R11,#var_2C] .text:0001950C CMP R12, #0 .text:00019510 BEQ loc_19538 .text:00019514 LDR R3, =alias_compare .text:00019518 STR R3, [SP,#0x30+var_30] .text:0001951C SUB R0, R11, #-var_2C .text:00019520 LDR R2, =map_0 .text:00019524 MOV R3, #8 .text:00019528 LDR R1, [R2] .text:0001952C MOV R2, R12 .text:00019530 BL bsearch .text:00019534 B loc_1953C .text:00019538 ; --------------------------------------------------------------------------- .text:00019538 .text:00019538 loc_19538 ; CODE XREF: _nl_expand_alias+44j .text:00019538 MOV R0, R12 .text:0001953C .text:0001953C loc_1953C ; CODE XREF: _nl_expand_alias+68j .text:0001953C CMP R0, #0 .text:00019540 BEQ loc_19564 .text:00019544 LDR R6, [R0,#4] .text:00019548 B loc_1961C .text:00019548 ; --------------------------------------------------------------------------- .text:0001954C off_1954C DCD 0 ; DATA XREF: _nl_expand_alias+10r .text:00019550 off_19550 DCD lock_1 ; DATA XREF: _nl_expand_alias+24r .text:00019554 off_19554 DCD nmap ; DATA XREF: _nl_expand_alias:loc_194FCr .text:00019558 dword_19558 DCD 0 ; DATA XREF: _nl_expand_alias+34r .text:0001955C off_1955C DCD alias_compare ; DATA XREF: _nl_expand_alias+48r .text:00019560 off_19560 DCD map_0 ; DATA XREF: _nl_expand_alias+54r .text:00019564 ; --------------------------------------------------------------------------- .text:00019564 .text:00019564 loc_19564 ; CODE XREF: _nl_expand_alias+74j .text:00019564 LDR R3, =locale_alias_path.123 .text:00019568 LDR R2, [R3] .text:0001956C MOV LR, R0 .text:00019570 LDRB R1, [R2] .text:00019574 MOV R4, R3 .text:00019578 CMP R1, #0 .text:0001957C BEQ loc_19614 .text:00019580 MOV R5, R4 .text:00019584 .text:00019584 loc_19584 ; CODE XREF: _nl_expand_alias+144j .text:00019584 LDR R3, [R5] .text:00019588 LDRB R2, [R3] .text:0001958C CMP R2, #0x3A .text:00019590 BNE loc_195B0 .text:00019594 LDR R12, =locale_alias_path.123 .text:00019598 .text:00019598 loc_19598 ; CODE XREF: _nl_expand_alias+E0j .text:00019598 LDR R3, [R12] .text:0001959C ADD R2, R3, #1 .text:000195A0 STR R2, [R12] .text:000195A4 LDRB R1, [R3,#1] .text:000195A8 CMP R1, #0x3A .text:000195AC BEQ loc_19598 .text:000195B0 .text:000195B0 loc_195B0 ; CODE XREF: _nl_expand_alias+C4j .text:000195B0 LDR R0, [R5] .text:000195B4 LDRB R3, [R0] .text:000195B8 CMP R3, #0 .text:000195BC CMPNE R3, #0x3A .text:000195C0 BEQ loc_195E4 .text:000195C4 LDR R12, =locale_alias_path.123 .text:000195C8 .text:000195C8 loc_195C8 ; CODE XREF: _nl_expand_alias+114j .text:000195C8 LDR R1, [R12] .text:000195CC ADD R2, R1, #1 .text:000195D0 STR R2, [R12] .text:000195D4 LDRB R3, [R1,#1] .text:000195D8 CMP R3, #0 .text:000195DC CMPNE R3, #0x3A .text:000195E0 BNE loc_195C8 .text:000195E4 .text:000195E4 loc_195E4 ; CODE XREF: _nl_expand_alias+F4j .text:000195E4 LDR R1, [R4] .text:000195E8 CMP R0, R1 .text:000195EC BCS loc_195FC .text:000195F0 RSB R1, R0, R1 .text:000195F4 BL read_alias_file .text:000195F8 MOV LR, R0 .text:000195FC .text:000195FC loc_195FC ; CODE XREF: _nl_expand_alias+120j .text:000195FC CMP LR, #0 .text:00019600 BNE loc_19614 .text:00019604 LDR R3, [R4] .text:00019608 LDRB R2, [R3] .text:0001960C CMP R2, #0 .text:00019610 BNE loc_19584 .text:00019614 .text:00019614 loc_19614 ; CODE XREF: _nl_expand_alias+B0j .text:00019614 ; _nl_expand_alias+134j .text:00019614 CMP LR, #0 .text:00019618 BNE loc_19504 .text:0001961C .text:0001961C loc_1961C ; CODE XREF: _nl_expand_alias+7Cj .text:0001961C CMP R10, #0 .text:00019620 BEQ loc_19630 .text:00019624 LDR R0, =lock_1 .text:00019628 MOV LR, PC .text:0001962C MOV PC, R10 .text:00019630 .text:00019630 loc_19630 ; CODE XREF: _nl_expand_alias+154j .text:00019630 MOV R0, R6 .text:00019634 B locret_19640 .text:00019634 ; --------------------------------------------------------------------------- .text:00019638 off_19638 DCD locale_alias_path.123 .text:00019638 ; DATA XREF: _nl_expand_alias:loc_19564r .text:00019638 ; _nl_expand_alias+C8r ... .text:0001963C off_1963C DCD lock_1 ; DATA XREF: _nl_expand_alias+158r .text:00019640 ; --------------------------------------------------------------------------- .text:00019640 .text:00019640 locret_19640 ; CODE XREF: _nl_expand_alias+168j .text:00019640 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00019640 ; End of function _nl_expand_alias .text:00019640 .text:00019644 .text:00019644 ; =============== S U B R O U T I N E ======================================= .text:00019644 .text:00019644 ; Attributes: bp-based frame .text:00019644 .text:00019644 read_alias_file ; CODE XREF: _nl_expand_alias+128p .text:00019644 .text:00019644 var_4000 = -0x4000 .text:00019644 var_2000 = -0x2000 .text:00019644 .text:00019644 MOV R12, SP .text:00019648 STMFD SP!, {R4-R12,LR,PC} .text:0001964C SUB R11, R12, #4 .text:00019650 MOV R2, R1 .text:00019654 ADD R3, R2, #0x11 .text:00019658 BIC R3, R3, #3 .text:0001965C MOV R1, R0 .text:00019660 SUB SP, SP, #0x4000 .text:00019664 SUB SP, SP, #0xC .text:00019668 RSB SP, R3, SP .text:0001966C MOV R0, SP .text:00019670 BL mempcpy .text:00019674 LDR R1, =aliasfile.127 ; "/locale.alias" .text:00019678 MOV R2, #0xE .text:0001967C BL mempcpy .text:00019680 LDR R1, =aR ; "r" .text:00019684 MOV R0, SP .text:00019688 BL fopen .text:0001968C CMP R0, #0 .text:00019690 SUB R1, R11, #-var_4000 .text:00019694 STR R0, [R1,#-0x2C] .text:00019698 BNE loc_196B4 .text:0001969C MOV R2, R1 .text:000196A0 LDR R0, [R2,#-0x2C] .text:000196A4 B loc_19AD8 .text:000196A8 ; --------------------------------------------------------------------------- .text:000196A8 .text:000196A8 loc_196A8 ; CODE XREF: read_alias_file+2E8j .text:000196A8 SUB R3, R11, #-var_4000 .text:000196AC LDR R0, [R3,#-0x30] .text:000196B0 B loc_19AD8 .text:000196B4 ; --------------------------------------------------------------------------- .text:000196B4 .text:000196B4 loc_196B4 ; CODE XREF: read_alias_file+54j .text:000196B4 MOV LR, #0 .text:000196B8 SUB R12, R11, #-var_4000 .text:000196BC STR LR, [R12,#-0x30] .text:000196C0 B loc_19A58 .text:000196C4 ; --------------------------------------------------------------------------- .text:000196C4 .text:000196C4 loc_196C4 ; CODE XREF: read_alias_file+450j .text:000196C4 MOV R0, R4 .text:000196C8 MOV R1, #0xA .text:000196CC BL strchr .text:000196D0 CMP R0, #0 .text:000196D4 LDR R6, =__ctype_b .text:000196D8 BNE loc_19714 .text:000196DC SUB R4, R11, #-var_4000 .text:000196E0 SUB R4, R4, #0x28 .text:000196E4 .text:000196E4 loc_196E4 ; CODE XREF: read_alias_file+CCj .text:000196E4 MOV R0, R4 .text:000196E8 MOV R1, #0x2000 .text:000196EC SUB R3, R11, #-var_4000 .text:000196F0 LDR R2, [R3,#-0x2C] .text:000196F4 BL fgets_unlocked .text:000196F8 CMP R0, #0 .text:000196FC BEQ loc_19714 .text:00019700 MOV R0, R4 .text:00019704 MOV R1, #0xA .text:00019708 BL strchr .text:0001970C CMP R0, #0 .text:00019710 BEQ loc_196E4 .text:00019714 .text:00019714 loc_19714 ; CODE XREF: read_alias_file+94j .text:00019714 ; read_alias_file+B8j .text:00019714 LDR R12, =__ctype_b .text:00019718 MOV R0, R5 .text:0001971C LDRB R3, [R0] .text:00019720 LDR R1, [R12] .text:00019724 MOV R3, R3,LSL#1 .text:00019728 ADD R3, R3, R1 .text:0001972C LDRB R2, [R3,#1] .text:00019730 TST R2, #0x20 .text:00019734 BEQ loc_19754 .text:00019738 LDR R1, [R6] .text:0001973C .text:0001973C loc_1973C ; CODE XREF: read_alias_file+10Cj .text:0001973C LDRB R3, [R0,#1]! .text:00019740 MOV R3, R3,LSL#1 .text:00019744 ADD R3, R3, R1 .text:00019748 LDRB R2, [R3,#1] .text:0001974C TST R2, #0x20 .text:00019750 BNE loc_1973C .text:00019754 .text:00019754 loc_19754 ; CODE XREF: read_alias_file+F0j .text:00019754 LDRB R3, [R0] .text:00019758 CMP R3, #0 .text:0001975C CMPNE R3, #0x23 .text:00019760 BEQ loc_19A58 .text:00019764 SUB LR, R11, #-var_4000 .text:00019768 STR R0, [LR,#-0x34] .text:0001976C MOV R1, LR .text:00019770 LDR R1, [R1,#-0x34] .text:00019774 LDRB R3, [R1,#1]! .text:00019778 MOV R0, R1 .text:0001977C CMP R3, #0 .text:00019780 BEQ loc_197B8 .text:00019784 LDR LR, =__ctype_b .text:00019788 LDR R1, [LR] .text:0001978C B loc_197A4 .text:00019790 ; --------------------------------------------------------------------------- .text:00019790 .text:00019790 loc_19790 ; CODE XREF: read_alias_file+170j .text:00019790 LDRB R3, [R0,#1]! .text:00019794 CMP R3, #0 .text:00019798 BEQ loc_197B8 .text:0001979C LDRB R3, [R0] .text:000197A0 LDR R1, [R6] .text:000197A4 .text:000197A4 loc_197A4 ; CODE XREF: read_alias_file+148j .text:000197A4 MOV R3, R3,LSL#1 .text:000197A8 ADD R3, R3, R1 .text:000197AC LDRB R2, [R3,#1] .text:000197B0 TST R2, #0x20 .text:000197B4 BEQ loc_19790 .text:000197B8 .text:000197B8 loc_197B8 ; CODE XREF: read_alias_file+13Cj .text:000197B8 ; read_alias_file+154j .text:000197B8 LDRB R3, [R0] .text:000197BC CMP R3, #0 .text:000197C0 MOVNE R3, #0 .text:000197C4 STRNEB R3, [R0],#1 .text:000197C8 LDR R2, =__ctype_b .text:000197CC LDRB R3, [R0] .text:000197D0 LDR R1, [R2] .text:000197D4 MOV R3, R3,LSL#1 .text:000197D8 ADD R3, R3, R1 .text:000197DC LDRB R2, [R3,#1] .text:000197E0 TST R2, #0x20 .text:000197E4 BEQ loc_19804 .text:000197E8 LDR R1, [R6] .text:000197EC .text:000197EC loc_197EC ; CODE XREF: read_alias_file+1BCj .text:000197EC LDRB R3, [R0,#1]! .text:000197F0 MOV R3, R3,LSL#1 .text:000197F4 ADD R3, R3, R1 .text:000197F8 LDRB R2, [R3,#1] .text:000197FC TST R2, #0x20 .text:00019800 BNE loc_197EC .text:00019804 .text:00019804 loc_19804 ; CODE XREF: read_alias_file+1A0j .text:00019804 LDRB R3, [R0] .text:00019808 CMP R3, #0 .text:0001980C BEQ loc_19A58 .text:00019810 MOV R8, R0 .text:00019814 LDR R5, =nmap .text:00019818 LDRB R3, [R0,#1]! .text:0001981C LDR R12, =maxmap .text:00019820 CMP R3, #0 .text:00019824 BEQ loc_1986C .text:00019828 LDR LR, =__ctype_b .text:0001982C LDR R2, [LR] .text:00019830 MOV R3, R3,LSL#1 .text:00019834 ADD R3, R3, R2 .text:00019838 LDRB R1, [R3,#1] .text:0001983C TST R1, #0x20 .text:00019840 BNE loc_1986C .text:00019844 .text:00019844 loc_19844 ; CODE XREF: read_alias_file+224j .text:00019844 LDRB R3, [R0,#1]! .text:00019848 CMP R3, #0 .text:0001984C BEQ loc_1986C .text:00019850 LDRB R3, [R0] .text:00019854 LDR R1, [R6] .text:00019858 MOV R3, R3,LSL#1 .text:0001985C ADD R3, R3, R1 .text:00019860 LDRB R2, [R3,#1] .text:00019864 TST R2, #0x20 .text:00019868 BEQ loc_19844 .text:0001986C .text:0001986C loc_1986C ; CODE XREF: read_alias_file+1E0j .text:0001986C ; read_alias_file+1FCj ... .text:0001986C LDRB R2, [R0] .text:00019870 CMP R2, #0xA .text:00019874 BNE loc_1989C .text:00019878 MOV R3, #0 .text:0001987C STRB R3, [R0],#1 .text:00019880 STRB R2, [R0] .text:00019884 B loc_198A8 .text:00019884 ; --------------------------------------------------------------------------- .text:00019888 off_19888 DCD aliasfile.127 ; DATA XREF: read_alias_file+30r .text:00019888 ; "/locale.alias" .text:0001988C off_1988C DCD aR ; DATA XREF: read_alias_file+3Cr .text:0001988C ; "r" .text:00019890 off_19890 DCD __ctype_b ; DATA XREF: read_alias_file+90r .text:00019890 ; read_alias_file:loc_19714r ... .text:00019894 off_19894 DCD nmap ; DATA XREF: read_alias_file+1D0r .text:00019898 off_19898 DCD maxmap ; DATA XREF: read_alias_file+1D8r .text:0001989C ; --------------------------------------------------------------------------- .text:0001989C .text:0001989C loc_1989C ; CODE XREF: read_alias_file+230j .text:0001989C CMP R2, #0 .text:000198A0 MOVNE R3, #0 .text:000198A4 STRNEB R3, [R0] .text:000198A8 .text:000198A8 loc_198A8 ; CODE XREF: read_alias_file+240j .text:000198A8 LDR R2, [R5] .text:000198AC LDR R3, [R12] .text:000198B0 CMP R2, R3 .text:000198B4 BCC loc_198CC .text:000198B8 BL extend_alias_table .text:000198BC CMP R0, #0 .text:000198C0 SUB R1, R11, #-var_4000 .text:000198C4 LDR R0, [R1,#-0x30] .text:000198C8 BNE loc_19AD8 .text:000198CC .text:000198CC loc_198CC ; CODE XREF: read_alias_file+270j .text:000198CC SUB R2, R11, #-var_4000 .text:000198D0 LDR R0, [R2,#-0x34] .text:000198D4 BL strlen .text:000198D8 ADD R6, R0, #1 .text:000198DC MOV R0, R8 .text:000198E0 BL strlen .text:000198E4 LDR R12, =string_space_act .text:000198E8 LDR R2, =string_space_max .text:000198EC LDR R3, [R12] .text:000198F0 ADD R7, R0, #1 .text:000198F4 LDR R1, [R2] .text:000198F8 ADD R3, R3, R6 .text:000198FC ADD R3, R3, R7 .text:00019900 CMP R3, R1 .text:00019904 BLS loc_199A8 .text:00019908 ADD R3, R6, R7 .text:0001990C LDR LR, =string_space .text:00019910 CMP R3, #0x400 .text:00019914 ADDCS R4, R1, R3 .text:00019918 ADDCC R4, R1, #0x400 .text:0001991C LDR R0, [LR] .text:00019920 MOV R1, R4 .text:00019924 BL realloc .text:00019928 SUBS LR, R0, #0 .text:0001992C BEQ loc_196A8 .text:00019930 LDR R1, =string_space .text:00019934 LDR R3, [R1] .text:00019938 CMP R3, LR .text:0001993C BEQ loc_19998 .text:00019940 LDR R3, [R5] .text:00019944 MOV R12, #0 .text:00019948 CMP R12, R3 .text:0001994C BCS loc_19998 .text:00019950 LDR R9, =map_0 .text:00019954 MOV R10, R1 .text:00019958 LDR R5, =nmap .text:0001995C .text:0001995C loc_1995C ; CODE XREF: read_alias_file+350j .text:0001995C LDR R0, [R9] .text:00019960 LDR R1, [R10] .text:00019964 MOV R2, R12,LSL#3 .text:00019968 LDR R3, [R2,R0] .text:0001996C RSB R1, R1, LR .text:00019970 ADD R3, R3, R1 .text:00019974 STR R3, [R2,R0] .text:00019978 ADD R2, R2, R0 .text:0001997C LDR R3, [R2,#4] .text:00019980 ADD R3, R3, R1 .text:00019984 STR R3, [R2,#4] .text:00019988 LDR R1, [R5] .text:0001998C ADD R12, R12, #1 .text:00019990 CMP R12, R1 .text:00019994 BCC loc_1995C .text:00019998 .text:00019998 loc_19998 ; CODE XREF: read_alias_file+2F8j .text:00019998 ; read_alias_file+308j .text:00019998 LDR R2, =string_space .text:0001999C STR LR, [R2] .text:000199A0 LDR R3, =string_space_max .text:000199A4 STR R4, [R3] .text:000199A8 .text:000199A8 loc_199A8 ; CODE XREF: read_alias_file+2C0j .text:000199A8 LDR R12, =string_space .text:000199AC SUB LR, R11, #-var_4000 .text:000199B0 LDR R1, [LR,#-0x34] .text:000199B4 LDR R2, =string_space_act .text:000199B8 LDR LR, =map_0 .text:000199BC LDR R3, [R12] .text:000199C0 LDR R0, [R2] .text:000199C4 LDR R12, =nmap .text:000199C8 LDR R5, [LR] .text:000199CC MOV R2, R6 .text:000199D0 LDR R4, [R12] .text:000199D4 ADD R0, R3, R0 .text:000199D8 MOV R4, R4,LSL#3 .text:000199DC BL memcpy .text:000199E0 STR R0, [R4,R5] .text:000199E4 LDR R1, =string_space_act .text:000199E8 LDR R0, [R1] .text:000199EC ADD R0, R0, R6 .text:000199F0 STR R0, [R1] .text:000199F4 LDR R2, =nmap .text:000199F8 LDR LR, =string_space .text:000199FC LDR R12, [R2] .text:00019A00 LDR R3, [LR] .text:00019A04 MOV R1, R8 .text:00019A08 LDR LR, =map_0 .text:00019A0C MOV R2, R7 .text:00019A10 LDR R4, [LR] .text:00019A14 ADD R0, R3, R0 .text:00019A18 ADD R4, R4, R12,LSL#3 .text:00019A1C BL memcpy .text:00019A20 STR R0, [R4,#4] .text:00019A24 LDR R1, =string_space_act .text:00019A28 LDR R3, [R1] .text:00019A2C ADD R3, R3, R7 .text:00019A30 STR R3, [R1] .text:00019A34 LDR R3, =nmap .text:00019A38 SUB R12, R11, #-var_4000 .text:00019A3C LDR R12, [R12,#-0x30] .text:00019A40 LDR R2, [R3] .text:00019A44 ADD LR, R12, #1 .text:00019A48 SUB R12, R11, #-var_4000 .text:00019A4C STR LR, [R12,#-0x30] .text:00019A50 ADD R2, R2, #1 .text:00019A54 STR R2, [R3] .text:00019A58 .text:00019A58 loc_19A58 ; CODE XREF: read_alias_file+7Cj .text:00019A58 ; read_alias_file+11Cj ... .text:00019A58 SUB LR, R11, #-var_4000 .text:00019A5C SUB LR, LR, #0x2C .text:00019A60 LDR LR, [LR] .text:00019A64 LDR R3, [LR] .text:00019A68 TST R3, #0x10 .text:00019A6C BNE loc_19A98 .text:00019A70 SUB R4, R11, #-var_2000 .text:00019A74 SUB R4, R4, #0x28 .text:00019A78 MOV R0, R4 .text:00019A7C MOV R1, #0x2000 .text:00019A80 SUB R3, R11, #-var_4000 .text:00019A84 LDR R2, [R3,#-0x2C] .text:00019A88 BL fgets_unlocked .text:00019A8C CMP R0, #0 .text:00019A90 MOV R5, R4 .text:00019A94 BNE loc_196C4 .text:00019A98 .text:00019A98 loc_19A98 ; CODE XREF: read_alias_file+428j .text:00019A98 SUB R12, R11, #-var_4000 .text:00019A9C LDR R0, [R12,#-0x2C] .text:00019AA0 BL fclose .text:00019AA4 SUB LR, R11, #-var_4000 .text:00019AA8 LDR LR, [LR,#-0x30] .text:00019AAC CMP LR, #0 .text:00019AB0 BEQ loc_19AD0 .text:00019AB4 LDR R3, =map_0 .text:00019AB8 LDR R2, =nmap .text:00019ABC LDR R0, [R3] .text:00019AC0 LDR R1, [R2] .text:00019AC4 LDR R3, =alias_compare .text:00019AC8 MOV R2, #8 .text:00019ACC BL qsort .text:00019AD0 .text:00019AD0 loc_19AD0 ; CODE XREF: read_alias_file+46Cj .text:00019AD0 SUB R1, R11, #-var_4000 .text:00019AD4 LDR R0, [R1,#-0x30] .text:00019AD8 .text:00019AD8 loc_19AD8 ; CODE XREF: read_alias_file+60j .text:00019AD8 ; read_alias_file+6Cj ... .text:00019AD8 B locret_19AF4 .text:00019AD8 ; --------------------------------------------------------------------------- .text:00019ADC off_19ADC DCD string_space_act ; DATA XREF: read_alias_file+2A0r .text:00019ADC ; read_alias_file+370r ... .text:00019AE0 off_19AE0 DCD string_space_max ; DATA XREF: read_alias_file+2A4r .text:00019AE0 ; read_alias_file+35Cr .text:00019AE4 off_19AE4 DCD string_space ; DATA XREF: read_alias_file+2C8r .text:00019AE4 ; read_alias_file+2ECr ... .text:00019AE8 off_19AE8 DCD map_0 ; DATA XREF: read_alias_file+30Cr .text:00019AE8 ; read_alias_file+374r ... .text:00019AEC off_19AEC DCD nmap ; DATA XREF: read_alias_file+314r .text:00019AEC ; read_alias_file+380r ... .text:00019AF0 off_19AF0 DCD alias_compare ; DATA XREF: read_alias_file+480r .text:00019AF4 ; --------------------------------------------------------------------------- .text:00019AF4 .text:00019AF4 locret_19AF4 ; CODE XREF: read_alias_file:loc_19AD8j .text:00019AF4 LDMDB R11, {R4-R11,SP,PC} .text:00019AF4 ; End of function read_alias_file .text:00019AF4 .text:00019AF8 .text:00019AF8 ; =============== S U B R O U T I N E ======================================= .text:00019AF8 .text:00019AF8 ; Attributes: bp-based frame .text:00019AF8 .text:00019AF8 extend_alias_table ; CODE XREF: read_alias_file+274p .text:00019AF8 MOV R12, SP .text:00019AFC STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00019B00 LDR R6, =maxmap .text:00019B04 LDR R5, =map_0 .text:00019B08 LDR R3, [R6] .text:00019B0C SUB R11, R12, #4 .text:00019B10 LDR R0, [R5] .text:00019B14 CMP R3, #0 .text:00019B18 MOVEQ R4, #0x64 .text:00019B1C MOVNE R4, R3,LSL#1 .text:00019B20 MOV R1, R4,LSL#3 .text:00019B24 BL realloc .text:00019B28 CMP R0, #0 .text:00019B2C STRNE R0, [R5] .text:00019B30 MOVNE R0, #0 .text:00019B34 STRNE R4, [R6] .text:00019B38 LDMNEDB R11, {R4-R6,R11,SP,PC} .text:00019B3C MOV R0, 0xFFFFFFFF .text:00019B40 LDMDB R11, {R4-R6,R11,SP,PC} .text:00019B40 ; End of function extend_alias_table .text:00019B40 .text:00019B40 ; --------------------------------------------------------------------------- .text:00019B44 off_19B44 DCD maxmap ; DATA XREF: extend_alias_table+8r .text:00019B48 off_19B48 DCD map_0 ; DATA XREF: extend_alias_table+Cr .text:00019B4C .text:00019B4C ; =============== S U B R O U T I N E ======================================= .text:00019B4C .text:00019B4C ; Attributes: bp-based frame .text:00019B4C .text:00019B4C free_mem_1 .text:00019B4C MOV R12, SP .text:00019B50 STMFD SP!, {R11,R12,LR,PC} .text:00019B54 LDR R3, =string_space .text:00019B58 LDR R0, [R3] .text:00019B5C SUB R11, R12, #4 .text:00019B60 CMP R0, #0 .text:00019B64 BEQ loc_19B6C .text:00019B68 BL free .text:00019B6C .text:00019B6C loc_19B6C ; CODE XREF: free_mem_1+18j .text:00019B6C LDR R3, =map_0 .text:00019B70 LDR R0, [R3] .text:00019B74 CMP R0, #0 .text:00019B78 LDMEQDB R11, {R11,SP,PC} .text:00019B7C BL free .text:00019B80 LDMDB R11, {R11,SP,PC} .text:00019B80 ; End of function free_mem_1 .text:00019B80 .text:00019B80 ; --------------------------------------------------------------------------- .text:00019B84 off_19B84 DCD string_space ; DATA XREF: free_mem_1+8r .text:00019B88 off_19B88 DCD map_0 ; DATA XREF: free_mem_1:loc_19B6Cr .text:00019B8C .text:00019B8C ; =============== S U B R O U T I N E ======================================= .text:00019B8C .text:00019B8C ; Attributes: bp-based frame .text:00019B8C .text:00019B8C alias_compare ; DATA XREF: _nl_expand_alias+48o .text:00019B8C ; _nl_expand_alias:off_1955Co ... .text:00019B8C MOV R12, SP .text:00019B90 STMFD SP!, {R11,R12,LR,PC} .text:00019B94 LDR R0, [R0] .text:00019B98 LDR R1, [R1] .text:00019B9C SUB R11, R12, #4 .text:00019BA0 BL strcasecmp .text:00019BA4 LDMDB R11, {R11,SP,PC} .text:00019BA4 ; End of function alias_compare .text:00019BA4 .text:00019BA8 .text:00019BA8 ; =============== S U B R O U T I N E ======================================= .text:00019BA8 .text:00019BA8 ; Attributes: bp-based frame .text:00019BA8 .text:00019BA8 EXPORT _nl_make_l10nflist .text:00019BA8 _nl_make_l10nflist ; CODE XREF: _nl_find_domain+60p .text:00019BA8 ; _nl_find_domain+1A8p ... .text:00019BA8 .text:00019BA8 var_68 = -0x68 .text:00019BA8 var_64 = -0x64 .text:00019BA8 var_60 = -0x60 .text:00019BA8 var_5C = -0x5C .text:00019BA8 var_58 = -0x58 .text:00019BA8 var_54 = -0x54 .text:00019BA8 var_50 = -0x50 .text:00019BA8 var_4C = -0x4C .text:00019BA8 var_48 = -0x48 .text:00019BA8 var_44 = -0x44 .text:00019BA8 var_40 = -0x40 .text:00019BA8 var_3C = -0x3C .text:00019BA8 var_38 = -0x38 .text:00019BA8 var_34 = -0x34 .text:00019BA8 var_30 = -0x30 .text:00019BA8 var_2C = -0x2C .text:00019BA8 arg_0 = 4 .text:00019BA8 arg_4 = 8 .text:00019BA8 arg_8 = 0xC .text:00019BA8 arg_C = 0x10 .text:00019BA8 arg_10 = 0x14 .text:00019BA8 arg_14 = 0x18 .text:00019BA8 arg_18 = 0x1C .text:00019BA8 arg_1C = 0x20 .text:00019BA8 arg_20 = 0x24 .text:00019BA8 arg_24 = 0x28 .text:00019BA8 .text:00019BA8 MOV R12, SP .text:00019BAC STMFD SP!, {R4-R12,LR,PC} .text:00019BB0 SUB R11, R12, #4 .text:00019BB4 SUB SP, SP, #0x40 .text:00019BB8 STR R0, [R11,#var_2C] .text:00019BBC STR R1, [R11,#var_30] .text:00019BC0 STR R2, [R11,#var_34] .text:00019BC4 LDR R0, [R11,#arg_0] .text:00019BC8 MOV R10, R3 .text:00019BCC BL strlen .text:00019BD0 LDR R1, [R11,#var_34] .text:00019BD4 TST R10, #0x20 .text:00019BD8 ADD R4, R1, R0 .text:00019BDC BEQ loc_19BF0 .text:00019BE0 LDR R0, [R11,#arg_4] .text:00019BE4 ADD R4, R4, #1 .text:00019BE8 BL strlen .text:00019BEC ADD R4, R4, R0 .text:00019BF0 .text:00019BF0 loc_19BF0 ; CODE XREF: _nl_make_l10nflist+34j .text:00019BF0 ANDS R3, R10, #0x10 .text:00019BF4 STR R3, [R11,#var_3C] .text:00019BF8 BEQ loc_19C0C .text:00019BFC LDR R0, [R11,#arg_8] .text:00019C00 ADD R4, R4, #1 .text:00019C04 BL strlen .text:00019C08 ADD R4, R4, R0 .text:00019C0C .text:00019C0C loc_19C0C ; CODE XREF: _nl_make_l10nflist+50j .text:00019C0C ANDS R3, R10, #8 .text:00019C10 MOV R9, R3 .text:00019C14 BEQ loc_19C28 .text:00019C18 LDR R0, [R11,#arg_C] .text:00019C1C ADD R4, R4, #1 .text:00019C20 BL strlen .text:00019C24 ADD R4, R4, R0 .text:00019C28 .text:00019C28 loc_19C28 ; CODE XREF: _nl_make_l10nflist+6Cj .text:00019C28 ANDS R3, R10, #0xC0 .text:00019C2C MOV R7, R3 .text:00019C30 BEQ loc_19C44 .text:00019C34 LDR R0, [R11,#arg_10] .text:00019C38 ADD R4, R4, #1 .text:00019C3C BL strlen .text:00019C40 ADD R4, R4, R0 .text:00019C44 .text:00019C44 loc_19C44 ; CODE XREF: _nl_make_l10nflist+88j .text:00019C44 ANDS R3, R10, #4 .text:00019C48 STR R3, [R11,#var_38] .text:00019C4C BEQ loc_19C64 .text:00019C50 LDR R0, [R11,#arg_14] .text:00019C54 ADD R4, R4, #1 .text:00019C58 BL strlen .text:00019C5C ADD R5, R4, R0 .text:00019C60 B loc_19C68 .text:00019C64 ; --------------------------------------------------------------------------- .text:00019C64 .text:00019C64 loc_19C64 ; CODE XREF: _nl_make_l10nflist+A4j .text:00019C64 MOV R5, R4 .text:00019C68 .text:00019C68 loc_19C68 ; CODE XREF: _nl_make_l10nflist+B8j .text:00019C68 LDR R0, [R11,#arg_20] .text:00019C6C BL strlen .text:00019C70 MOV R6, R0 .text:00019C74 ANDS R3, R10, #3 .text:00019C78 MOV R8, R3 .text:00019C7C BEQ loc_19CD0 .text:00019C80 TST R10, #2 .text:00019C84 BEQ loc_19C98 .text:00019C88 LDR R0, [R11,#arg_18] .text:00019C8C BL strlen .text:00019C90 ADD R3, R0, #2 .text:00019C94 B loc_19C9C .text:00019C98 ; --------------------------------------------------------------------------- .text:00019C98 .text:00019C98 loc_19C98 ; CODE XREF: _nl_make_l10nflist+DCj .text:00019C98 MOV R3, #1 .text:00019C9C .text:00019C9C loc_19C9C ; CODE XREF: _nl_make_l10nflist+ECj .text:00019C9C TST R10, #1 .text:00019CA0 BEQ loc_19CC4 .text:00019CA4 LDR R0, [R11,#arg_1C] .text:00019CA8 ADD R4, R3, #1 .text:00019CAC BL strlen .text:00019CB0 ADD R4, R4, R0 .text:00019CB4 ADD R4, R5, R4 .text:00019CB8 ADD R4, R6, R4 .text:00019CBC ADD R0, R4, #2 .text:00019CC0 B loc_19CD8 .text:00019CC4 ; --------------------------------------------------------------------------- .text:00019CC4 .text:00019CC4 loc_19CC4 ; CODE XREF: _nl_make_l10nflist+F8j .text:00019CC4 ADD R3, R5, R3 .text:00019CC8 ADD R3, R6, R3 .text:00019CCC B loc_19CD4 .text:00019CD0 ; --------------------------------------------------------------------------- .text:00019CD0 .text:00019CD0 loc_19CD0 ; CODE XREF: _nl_make_l10nflist+D4j .text:00019CD0 ADD R3, R6, R5 .text:00019CD4 .text:00019CD4 loc_19CD4 ; CODE XREF: _nl_make_l10nflist+124j .text:00019CD4 ADD R0, R3, #2 .text:00019CD8 .text:00019CD8 loc_19CD8 ; CODE XREF: _nl_make_l10nflist+118j .text:00019CD8 BL malloc .text:00019CDC SUBS R4, R0, #0 .text:00019CE0 BEQ loc_19EF8 .text:00019CE4 LDR R1, [R11,#var_30] .text:00019CE8 LDR R2, [R11,#var_34] .text:00019CEC MOV R0, R4 .text:00019CF0 BL memcpy .text:00019CF4 MOV R0, R4 .text:00019CF8 LDR R1, [R11,#var_34] .text:00019CFC MOV R2, #0x3A .text:00019D00 BL argz_stringify .text:00019D04 LDR R3, [R11,#var_34] .text:00019D08 SUB R2, R3, #1 .text:00019D0C MOV R3, #0x2F .text:00019D10 STRB R3, [R4,R2] .text:00019D14 ADD R0, R4, R2 .text:00019D18 LDR R1, [R11,#arg_0] .text:00019D1C ADD R0, R0, #1 .text:00019D20 BL stpcpy .text:00019D24 TST R10, #0x20 .text:00019D28 BEQ loc_19D3C .text:00019D2C MOV R3, #0x5F .text:00019D30 STRB R3, [R0],#1 .text:00019D34 LDR R1, [R11,#arg_4] .text:00019D38 BL stpcpy .text:00019D3C .text:00019D3C loc_19D3C ; CODE XREF: _nl_make_l10nflist+180j .text:00019D3C LDR R12, [R11,#var_3C] .text:00019D40 CMP R12, #0 .text:00019D44 BEQ loc_19D58 .text:00019D48 MOV R3, #0x2E .text:00019D4C STRB R3, [R0],#1 .text:00019D50 LDR R1, [R11,#arg_8] .text:00019D54 BL stpcpy .text:00019D58 .text:00019D58 loc_19D58 ; CODE XREF: _nl_make_l10nflist+19Cj .text:00019D58 CMP R9, #0 .text:00019D5C BEQ loc_19D70 .text:00019D60 MOV R3, #0x2E .text:00019D64 STRB R3, [R0],#1 .text:00019D68 LDR R1, [R11,#arg_C] .text:00019D6C BL stpcpy .text:00019D70 .text:00019D70 loc_19D70 ; CODE XREF: _nl_make_l10nflist+1B4j .text:00019D70 CMP R7, #0 .text:00019D74 BEQ loc_19DA8 .text:00019D78 MOV R2, R0 .text:00019D7C ADD R0, R0, #1 .text:00019D80 TST R10, #0x40 .text:00019D84 BEQ loc_19D98 .text:00019D88 MOV R3, #0x2B .text:00019D8C B loc_19D9C .text:00019D90 ; --------------------------------------------------------------------------- .text:00019D90 .text:00019D90 loc_19D90 ; CODE XREF: _nl_make_l10nflist+294j .text:00019D90 MOV R8, #0 .text:00019D94 B loc_19E50 .text:00019D98 ; --------------------------------------------------------------------------- .text:00019D98 .text:00019D98 loc_19D98 ; CODE XREF: _nl_make_l10nflist+1DCj .text:00019D98 MOV R3, #0x40 .text:00019D9C .text:00019D9C loc_19D9C ; CODE XREF: _nl_make_l10nflist+1E4j .text:00019D9C STRB R3, [R2] .text:00019DA0 LDR R1, [R11,#arg_10] .text:00019DA4 BL stpcpy .text:00019DA8 .text:00019DA8 loc_19DA8 ; CODE XREF: _nl_make_l10nflist+1CCj .text:00019DA8 LDR R1, [R11,#var_38] .text:00019DAC CMP R1, #0 .text:00019DB0 BEQ loc_19DC4 .text:00019DB4 MOV R3, #0x2B .text:00019DB8 STRB R3, [R0],#1 .text:00019DBC LDR R1, [R11,#arg_14] .text:00019DC0 BL stpcpy .text:00019DC4 .text:00019DC4 loc_19DC4 ; CODE XREF: _nl_make_l10nflist+208j .text:00019DC4 CMP R8, #0 .text:00019DC8 BEQ loc_19DFC .text:00019DCC TST R10, #2 .text:00019DD0 MOV R3, #0x2C .text:00019DD4 STRB R3, [R0],#1 .text:00019DD8 BEQ loc_19DE4 .text:00019DDC LDR R1, [R11,#arg_18] .text:00019DE0 BL stpcpy .text:00019DE4 .text:00019DE4 loc_19DE4 ; CODE XREF: _nl_make_l10nflist+230j .text:00019DE4 TST R10, #1 .text:00019DE8 BEQ loc_19DFC .text:00019DEC MOV R3, #0x5F .text:00019DF0 STRB R3, [R0],#1 .text:00019DF4 LDR R1, [R11,#arg_1C] .text:00019DF8 BL stpcpy .text:00019DFC .text:00019DFC loc_19DFC ; CODE XREF: _nl_make_l10nflist+220j .text:00019DFC ; _nl_make_l10nflist+240j .text:00019DFC MOV R3, #0x2F .text:00019E00 STRB R3, [R0],#1 .text:00019E04 LDR R1, [R11,#arg_20] .text:00019E08 BL stpcpy .text:00019E0C LDR R2, [R11,#var_2C] .text:00019E10 LDR R8, [R2] .text:00019E14 MOV R6, #0 .text:00019E18 CMP R8, R6 .text:00019E1C BEQ loc_19E50 .text:00019E20 .text:00019E20 loc_19E20 ; CODE XREF: _nl_make_l10nflist+2A4j .text:00019E20 LDR R0, [R8] .text:00019E24 CMP R0, #0 .text:00019E28 BEQ loc_19E44 .text:00019E2C MOV R1, R4 .text:00019E30 BL strcmp .text:00019E34 CMP R0, #0 .text:00019E38 BEQ loc_19E50 .text:00019E3C BLT loc_19D90 .text:00019E40 MOV R6, R8 .text:00019E44 .text:00019E44 loc_19E44 ; CODE XREF: _nl_make_l10nflist+280j .text:00019E44 LDR R8, [R8,#0xC] .text:00019E48 CMP R8, #0 .text:00019E4C BNE loc_19E20 .text:00019E50 .text:00019E50 loc_19E50 ; CODE XREF: _nl_make_l10nflist+1ECj .text:00019E50 ; _nl_make_l10nflist+274j ... .text:00019E50 LDR R3, [R11,#arg_24] .text:00019E54 CMP R3, #0 .text:00019E58 MOVNE R3, #0 .text:00019E5C MOVEQ R3, #1 .text:00019E60 CMP R8, #0 .text:00019E64 MOVEQ R5, R3 .text:00019E68 MOVNE R5, #1 .text:00019E6C CMP R5, #0 .text:00019E70 BEQ loc_19E84 .text:00019E74 MOV R0, R4 .text:00019E78 BL free .text:00019E7C MOV R0, R8 .text:00019E80 B locret_1A0A0 .text:00019E84 ; --------------------------------------------------------------------------- .text:00019E84 .text:00019E84 loc_19E84 ; CODE XREF: _nl_make_l10nflist+2C8j .text:00019E84 LDR R0, [R11,#var_30] .text:00019E88 LDR R1, [R11,#var_34] .text:00019E8C BL argz_count .text:00019E90 BIC R2, R10, #0x5500 .text:00019E94 BIC R2, R2, #0x55 .text:00019E98 BIC R3, R10, #0x2A80 .text:00019E9C BIC R3, R3, #0x2A .text:00019EA0 MOV R3, R3,LSL#17 .text:00019EA4 MOV R3, R3,LSR#17 .text:00019EA8 ADD R2, R3, R2,ASR#1 .text:00019EAC BIC R1, R2, #0x3300 .text:00019EB0 BIC R1, R1, #0x33 .text:00019EB4 BIC R3, R2, #0xCC0 .text:00019EB8 BIC R3, R3, #0xC .text:00019EBC MOV R3, R3,LSL#18 .text:00019EC0 MOV R3, R3,LSR#18 .text:00019EC4 ADD R2, R3, R1,ASR#2 .text:00019EC8 ADD R2, R2, R2,ASR#4 .text:00019ECC BIC R2, R2, #0xF0 .text:00019ED0 MOV R2, R2,LSL#20 .text:00019ED4 MOV R2, R2,LSR#20 .text:00019ED8 ADD R3, R2, R2,LSR#8 .text:00019EDC AND R2, R3, #0xFF .text:00019EE0 MOV R0, R0,LSL R2 .text:00019EE4 MOV R0, R0,LSL#2 .text:00019EE8 ADD R0, R0, #0x14 .text:00019EEC BL malloc .text:00019EF0 SUBS R8, R0, #0 .text:00019EF4 BNE loc_19F00 .text:00019EF8 .text:00019EF8 loc_19EF8 ; CODE XREF: _nl_make_l10nflist+138j .text:00019EF8 MOV R0, #0 .text:00019EFC B locret_1A0A0 .text:00019F00 ; --------------------------------------------------------------------------- .text:00019F00 .text:00019F00 loc_19F00 ; CODE XREF: _nl_make_l10nflist+34Cj .text:00019F00 STR R4, [R8] .text:00019F04 LDR R0, [R11,#var_30] .text:00019F08 LDR R1, [R11,#var_34] .text:00019F0C MOV R4, R5 .text:00019F10 BL argz_count .text:00019F14 CMP R0, #1 .text:00019F18 BNE loc_19F28 .text:00019F1C AND R3, R10, #0x18 .text:00019F20 CMP R3, #0x18 .text:00019F24 BNE loc_19F2C .text:00019F28 .text:00019F28 loc_19F28 ; CODE XREF: _nl_make_l10nflist+370j .text:00019F28 MOV R4, #1 .text:00019F2C .text:00019F2C loc_19F2C ; CODE XREF: _nl_make_l10nflist+37Cj .text:00019F2C STR R4, [R8,#4] .text:00019F30 CMP R6, #0 .text:00019F34 MOV R3, #0 .text:00019F38 STR R3, [R8,#8] .text:00019F3C BNE loc_19F54 .text:00019F40 LDR R12, [R11,#var_2C] .text:00019F44 LDR R3, [R12] .text:00019F48 STR R3, [R8,#0xC] .text:00019F4C STR R8, [R12] .text:00019F50 B loc_19F60 .text:00019F54 ; --------------------------------------------------------------------------- .text:00019F54 .text:00019F54 loc_19F54 ; CODE XREF: _nl_make_l10nflist+394j .text:00019F54 LDR R3, [R6,#0xC] .text:00019F58 STR R3, [R8,#0xC] .text:00019F5C STR R8, [R6,#0xC] .text:00019F60 .text:00019F60 loc_19F60 ; CODE XREF: _nl_make_l10nflist+3A8j .text:00019F60 LDR R0, [R11,#var_30] .text:00019F64 LDR R1, [R11,#var_34] .text:00019F68 MOV R9, #0 .text:00019F6C BL argz_count .text:00019F70 CMP R0, #1 .text:00019F74 MOVNE R6, R10 .text:00019F78 SUBEQ R6, R10, #1 .text:00019F7C CMP R6, R9 .text:00019F80 ADD R0, R8, #0x10 .text:00019F84 STR R0, [R11,#var_40] .text:00019F88 BLT loc_1A090 .text:00019F8C .text:00019F8C loc_19F8C ; CODE XREF: _nl_make_l10nflist+4E4j .text:00019F8C SUB R7, R6, #1 .text:00019F90 BICS R0, R6, R10 .text:00019F94 BNE loc_1A088 .text:00019F98 TST R6, #0x47 .text:00019F9C BEQ loc_19FA8 .text:00019FA0 TST R6, #0x98 .text:00019FA4 BNE loc_1A088 .text:00019FA8 .text:00019FA8 loc_19FA8 ; CODE XREF: _nl_make_l10nflist+3F4j .text:00019FA8 AND R3, R6, #0x18 .text:00019FAC CMP R3, #0x18 .text:00019FB0 SUB R7, R6, #1 .text:00019FB4 BEQ loc_1A088 .text:00019FB8 MOV R5, R0 .text:00019FBC B loc_1A038 .text:00019FC0 ; --------------------------------------------------------------------------- .text:00019FC0 .text:00019FC0 loc_19FC0 ; CODE XREF: _nl_make_l10nflist+4DCj .text:00019FC0 MOV R0, R5 .text:00019FC4 BL strlen .text:00019FC8 LDR R1, [R11,#arg_0] .text:00019FCC STR R1, [SP,#0x68+var_68] .text:00019FD0 LDR R2, [R11,#arg_4] .text:00019FD4 STR R2, [SP,#0x68+var_64] .text:00019FD8 LDR R3, [R11,#arg_8] .text:00019FDC STR R3, [SP,#0x68+var_60] .text:00019FE0 LDR R12, [R11,#arg_C] .text:00019FE4 STR R12, [SP,#0x68+var_5C] .text:00019FE8 LDR R1, [R11,#arg_10] .text:00019FEC STR R1, [SP,#0x68+var_58] .text:00019FF0 LDR R2, [R11,#arg_14] .text:00019FF4 STR R2, [SP,#0x68+var_54] .text:00019FF8 LDR R3, [R11,#arg_18] .text:00019FFC STR R3, [SP,#0x68+var_50] .text:0001A000 LDR R12, [R11,#arg_1C] .text:0001A004 STR R12, [SP,#0x68+var_4C] .text:0001A008 LDR R1, [R11,#arg_20] .text:0001A00C MOV R3, #1 .text:0001A010 STR R3, [SP,#0x68+var_44] .text:0001A014 STR R1, [SP,#0x68+var_48] .text:0001A018 ADD R2, R0, R3 .text:0001A01C MOV R3, R6 .text:0001A020 LDR R0, [R11,#var_2C] .text:0001A024 MOV R1, R5 .text:0001A028 BL _nl_make_l10nflist .text:0001A02C LDR R2, [R11,#var_40] .text:0001A030 STR R0, [R2,R9,LSL#2] .text:0001A034 ADD R9, R9, #1 .text:0001A038 .text:0001A038 loc_1A038 ; CODE XREF: _nl_make_l10nflist+414j .text:0001A038 SUBS R0, R5, #0 .text:0001A03C BEQ loc_1A070 .text:0001A040 LDR R3, [R11,#var_30] .text:0001A044 LDR R12, [R11,#var_34] .text:0001A048 ADD R4, R3, R12 .text:0001A04C CMP R5, R4 .text:0001A050 BCS loc_1A060 .text:0001A054 MOV R1, #0 .text:0001A058 BL rawmemchr .text:0001A05C ADD R0, R0, #1 .text:0001A060 .text:0001A060 loc_1A060 ; CODE XREF: _nl_make_l10nflist+4A8j .text:0001A060 CMP R0, R4 .text:0001A064 MOVCC R5, R0 .text:0001A068 MOVCS R5, #0 .text:0001A06C B loc_1A080 .text:0001A070 ; --------------------------------------------------------------------------- .text:0001A070 .text:0001A070 loc_1A070 ; CODE XREF: _nl_make_l10nflist+494j .text:0001A070 SUB R0, R11, #-var_34 .text:0001A074 LDMIA R0, {R0,R5} .text:0001A078 CMP R0, #0 .text:0001A07C MOVEQ R5, #0 .text:0001A080 .text:0001A080 loc_1A080 ; CODE XREF: _nl_make_l10nflist+4C4j .text:0001A080 CMP R5, #0 .text:0001A084 BNE loc_19FC0 .text:0001A088 .text:0001A088 loc_1A088 ; CODE XREF: _nl_make_l10nflist+3ECj .text:0001A088 ; _nl_make_l10nflist+3FCj ... .text:0001A088 SUBS R6, R7, #0 .text:0001A08C BGE loc_19F8C .text:0001A090 .text:0001A090 loc_1A090 ; CODE XREF: _nl_make_l10nflist+3E0j .text:0001A090 MOV R0, R8 .text:0001A094 LDR R1, [R11,#var_40] .text:0001A098 MOV R3, #0 .text:0001A09C STR R3, [R1,R9,LSL#2] .text:0001A0A0 .text:0001A0A0 locret_1A0A0 ; CODE XREF: _nl_make_l10nflist+2D8j .text:0001A0A0 ; _nl_make_l10nflist+354j .text:0001A0A0 LDMDB R11, {R4-R11,SP,PC} .text:0001A0A0 ; End of function _nl_make_l10nflist .text:0001A0A0 .text:0001A0A4 .text:0001A0A4 ; =============== S U B R O U T I N E ======================================= .text:0001A0A4 .text:0001A0A4 ; Attributes: bp-based frame .text:0001A0A4 .text:0001A0A4 EXPORT _nl_normalize_codeset .text:0001A0A4 _nl_normalize_codeset ; CODE XREF: _nl_explode_name+140p .text:0001A0A4 MOV R12, SP .text:0001A0A8 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0001A0AC SUB R11, R12, #4 .text:0001A0B0 MOV R12, #0 .text:0001A0B4 MOV R4, #1 .text:0001A0B8 MOV LR, R12 .text:0001A0BC MOV R5, R1 .text:0001A0C0 CMP LR, R5 .text:0001A0C4 MOV R7, R0 .text:0001A0C8 BCS loc_1A10C .text:0001A0CC LDR R3, =__ctype_b .text:0001A0D0 LDR R0, [R3] .text:0001A0D4 .text:0001A0D4 loc_1A0D4 ; CODE XREF: _nl_normalize_codeset+64j .text:0001A0D4 LDRB R3, [R7,LR] .text:0001A0D8 MOV R3, R3,LSL#1 .text:0001A0DC LDRB R1, [R3,R0] .text:0001A0E0 ADD R3, R3, R0 .text:0001A0E4 LDRB R2, [R3,#1] .text:0001A0E8 ORR R3, R1, R2,LSL#8 .text:0001A0EC TST R3, #8 .text:0001A0F0 BEQ loc_1A100 .text:0001A0F4 ADD R12, R12, #1 .text:0001A0F8 TST R3, #0x400 .text:0001A0FC MOVNE R4, #0 .text:0001A100 .text:0001A100 loc_1A100 ; CODE XREF: _nl_normalize_codeset+4Cj .text:0001A100 ADD LR, LR, #1 .text:0001A104 CMP LR, R5 .text:0001A108 BCC loc_1A0D4 .text:0001A10C .text:0001A10C loc_1A10C ; CODE XREF: _nl_normalize_codeset+24j .text:0001A10C CMP R4, #0 .text:0001A110 ADDNE R0, R12, #4 .text:0001A114 ADDEQ R0, R12, #1 .text:0001A118 BL malloc .text:0001A11C SUBS R6, R0, #0 .text:0001A120 BEQ loc_1A1A4 .text:0001A124 CMP R4, #0 .text:0001A128 BEQ loc_1A140 .text:0001A12C LDR R1, =aIso ; "iso" .text:0001A130 MOV R0, R6 .text:0001A134 BL stpcpy .text:0001A138 MOV R4, R0 .text:0001A13C B loc_1A144 .text:0001A140 ; --------------------------------------------------------------------------- .text:0001A140 .text:0001A140 loc_1A140 ; CODE XREF: _nl_normalize_codeset+84j .text:0001A140 MOV R4, R6 .text:0001A144 .text:0001A144 loc_1A144 ; CODE XREF: _nl_normalize_codeset+98j .text:0001A144 MOV LR, #0 .text:0001A148 CMP LR, R5 .text:0001A14C BCS loc_1A19C .text:0001A150 LDR R10, =__ctype_b .text:0001A154 LDR R8, =__ctype_tolower .text:0001A158 .text:0001A158 loc_1A158 ; CODE XREF: _nl_normalize_codeset+F4j .text:0001A158 LDRB R12, [R7,LR] .text:0001A15C LDR R1, [R10] .text:0001A160 MOV R3, R12,LSL#1 .text:0001A164 LDRB R0, [R3,R1] .text:0001A168 ADD R3, R3, R1 .text:0001A16C LDRB R2, [R3,#1] .text:0001A170 ORR R3, R0, R2,LSL#8 .text:0001A174 TST R3, #0x400 .text:0001A178 LDRNE R3, [R8] .text:0001A17C LDRNE R2, [R3,R12,LSL#2] .text:0001A180 STRNEB R2, [R4],#1 .text:0001A184 BNE loc_1A190 .text:0001A188 TST R3, #0x800 .text:0001A18C STRNEB R12, [R4],#1 .text:0001A190 .text:0001A190 loc_1A190 ; CODE XREF: _nl_normalize_codeset+E0j .text:0001A190 ADD LR, LR, #1 .text:0001A194 CMP LR, R5 .text:0001A198 BCC loc_1A158 .text:0001A19C .text:0001A19C loc_1A19C ; CODE XREF: _nl_normalize_codeset+A8j .text:0001A19C MOV R3, #0 .text:0001A1A0 STRB R3, [R4] .text:0001A1A4 .text:0001A1A4 loc_1A1A4 ; CODE XREF: _nl_normalize_codeset+7Cj .text:0001A1A4 MOV R0, R6 .text:0001A1A8 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0001A1A8 ; End of function _nl_normalize_codeset .text:0001A1A8 .text:0001A1A8 ; --------------------------------------------------------------------------- .text:0001A1AC off_1A1AC DCD __ctype_b ; DATA XREF: _nl_normalize_codeset+28r .text:0001A1AC ; _nl_normalize_codeset+ACr .text:0001A1B0 off_1A1B0 DCD aIso ; DATA XREF: _nl_normalize_codeset+88r .text:0001A1B0 ; "iso" .text:0001A1B4 off_1A1B4 DCD __ctype_tolower ; DATA XREF: _nl_normalize_codeset+B0r .text:0001A1B8 .text:0001A1B8 ; =============== S U B R O U T I N E ======================================= .text:0001A1B8 .text:0001A1B8 ; Attributes: bp-based frame .text:0001A1B8 .text:0001A1B8 EXPORT _nl_find_language .text:0001A1B8 _nl_find_language ; CODE XREF: _nl_explode_name+5Cp .text:0001A1B8 MOV R12, SP .text:0001A1BC STMFD SP!, {R11,R12,LR,PC} .text:0001A1C0 LDRB R3, [R0] .text:0001A1C4 SUB R11, R12, #4 .text:0001A1C8 CMP R3, #0 .text:0001A1CC CMPNE R3, #0x5F .text:0001A1D0 LDMEQDB R11, {R11,SP,PC} .text:0001A1D4 CMP R3, #0x40 .text:0001A1D8 LDMEQDB R11, {R11,SP,PC} .text:0001A1DC CMP R3, #0x2B .text:0001A1E0 LDMEQDB R11, {R11,SP,PC} .text:0001A1E4 CMP R3, #0x2C .text:0001A1E8 LDMEQDB R11, {R11,SP,PC} .text:0001A1EC .text:0001A1EC loc_1A1EC ; CODE XREF: _nl_find_language+5Cj .text:0001A1EC LDRB R3, [R0,#1]! .text:0001A1F0 AND R3, R3, #0xFF .text:0001A1F4 CMP R3, #0 .text:0001A1F8 CMPNE R3, #0x5F .text:0001A1FC LDMEQDB R11, {R11,SP,PC} .text:0001A200 CMP R3, #0x40 .text:0001A204 LDMEQDB R11, {R11,SP,PC} .text:0001A208 CMP R3, #0x2B .text:0001A20C LDMEQDB R11, {R11,SP,PC} .text:0001A210 CMP R3, #0x2C .text:0001A214 BNE loc_1A1EC .text:0001A218 LDMDB R11, {R11,SP,PC} .text:0001A218 ; End of function _nl_find_language .text:0001A218 .text:0001A21C .text:0001A21C ; =============== S U B R O U T I N E ======================================= .text:0001A21C .text:0001A21C ; Attributes: bp-based frame .text:0001A21C .text:0001A21C EXPORT _nl_explode_name .text:0001A21C _nl_explode_name ; CODE XREF: _nl_find_domain+13Cp .text:0001A21C ; _nl_find_locale+170p .text:0001A21C .text:0001A21C arg_0 = 4 .text:0001A21C arg_4 = 8 .text:0001A21C arg_8 = 0xC .text:0001A21C arg_C = 0x10 .text:0001A21C arg_10 = 0x14 .text:0001A21C .text:0001A21C MOV R12, SP .text:0001A220 STMFD SP!, {R4-R12,LR,PC} .text:0001A224 MOV R9, R2 .text:0001A228 MOV R2, #0 .text:0001A22C STR R2, [R9] .text:0001A230 MOV R10, R3 .text:0001A234 STR R2, [R10] .text:0001A238 SUB R11, R12, #4 .text:0001A23C LDR R3, [R11,#arg_0] .text:0001A240 STR R2, [R3] .text:0001A244 LDR R8, [R11,#arg_4] .text:0001A248 STR R2, [R8] .text:0001A24C LDR R3, [R11,#arg_8] .text:0001A250 STR R2, [R3] .text:0001A254 LDR R3, [R11,#arg_C] .text:0001A258 STR R2, [R3] .text:0001A25C LDR R3, [R11,#arg_10] .text:0001A260 STR R2, [R3] .text:0001A264 MOV R5, R0 .text:0001A268 MOV R4, R1 .text:0001A26C STR R5, [R4] .text:0001A270 MOV R6, R2 .text:0001A274 MOV R7, R6 .text:0001A278 BL _nl_find_language .text:0001A27C LDR R3, [R4] .text:0001A280 MOV R5, R0 .text:0001A284 CMP R3, R5 .text:0001A288 BNE loc_1A29C .text:0001A28C MOV R1, R6 .text:0001A290 BL rawmemchr .text:0001A294 MOV R5, R0 .text:0001A298 B loc_1A38C .text:0001A29C ; --------------------------------------------------------------------------- .text:0001A29C .text:0001A29C loc_1A29C ; CODE XREF: _nl_explode_name+6Cj .text:0001A29C LDRB R3, [R5] .text:0001A2A0 CMP R3, #0x5F .text:0001A2A4 BNE loc_1A38C .text:0001A2A8 STRB R6, [R5],#1 .text:0001A2AC STR R5, [R10] .text:0001A2B0 ORR R0, R6, #0x20 .text:0001A2B4 B loc_1A2BC .text:0001A2B8 ; --------------------------------------------------------------------------- .text:0001A2B8 .text:0001A2B8 loc_1A2B8 ; CODE XREF: _nl_explode_name+D0j .text:0001A2B8 ADD R5, R5, #1 .text:0001A2BC .text:0001A2BC loc_1A2BC ; CODE XREF: _nl_explode_name+98j .text:0001A2BC LDRB R3, [R5] .text:0001A2C0 CMP R3, #0 .text:0001A2C4 CMPNE R3, #0x2E .text:0001A2C8 BEQ loc_1A2F0 .text:0001A2CC AND R3, R3, #0xFF .text:0001A2D0 CMP R3, #0x40 .text:0001A2D4 BEQ loc_1A2F0 .text:0001A2D8 CMP R3, #0x2B .text:0001A2DC BEQ loc_1A2F0 .text:0001A2E0 CMP R3, #0x2C .text:0001A2E4 BEQ loc_1A2F0 .text:0001A2E8 CMP R3, #0x5F .text:0001A2EC BNE loc_1A2B8 .text:0001A2F0 .text:0001A2F0 loc_1A2F0 ; CODE XREF: _nl_explode_name+ACj .text:0001A2F0 ; _nl_explode_name+B8j ... .text:0001A2F0 LDRB R3, [R5] .text:0001A2F4 MOV R6, R0 .text:0001A2F8 CMP R3, #0x2E .text:0001A2FC BNE loc_1A38C .text:0001A300 MOV R3, #0 .text:0001A304 STRB R3, [R5],#1 .text:0001A308 LDR R3, [R11,#arg_0] .text:0001A30C STR R5, [R3] .text:0001A310 MOV R7, #1 .text:0001A314 LDRB R3, [R5] .text:0001A318 ORR R1, R6, #0x10 .text:0001A31C CMP R3, #0 .text:0001A320 CMPNE R3, #0x40 .text:0001A324 BEQ loc_1A338 .text:0001A328 .text:0001A328 loc_1A328 ; CODE XREF: _nl_explode_name+118j .text:0001A328 LDRB R3, [R5,#1]! .text:0001A32C CMP R3, #0 .text:0001A330 CMPNE R3, #0x40 .text:0001A334 BNE loc_1A328 .text:0001A338 .text:0001A338 loc_1A338 ; CODE XREF: _nl_explode_name+108j .text:0001A338 LDR R3, [R11,#arg_0] .text:0001A33C LDR R0, [R3] .text:0001A340 MOV R6, R1 .text:0001A344 CMP R0, R5 .text:0001A348 BEQ loc_1A38C .text:0001A34C LDRB R3, [R0] .text:0001A350 CMP R3, #0 .text:0001A354 BEQ loc_1A38C .text:0001A358 RSB R1, R0, R5 .text:0001A35C BL _nl_normalize_codeset .text:0001A360 MOV R1, R0 .text:0001A364 STR R1, [R8] .text:0001A368 LDR R3, [R11,#arg_0] .text:0001A36C LDR R0, [R3] .text:0001A370 BL strcmp .text:0001A374 CMP R0, #0 .text:0001A378 BNE loc_1A388 .text:0001A37C LDR R0, [R8] .text:0001A380 BL free .text:0001A384 B loc_1A38C .text:0001A388 ; --------------------------------------------------------------------------- .text:0001A388 .text:0001A388 loc_1A388 ; CODE XREF: _nl_explode_name+15Cj .text:0001A388 ORR R6, R6, #8 .text:0001A38C .text:0001A38C loc_1A38C ; CODE XREF: _nl_explode_name+7Cj .text:0001A38C ; _nl_explode_name+88j ... .text:0001A38C LDRB R2, [R5] .text:0001A390 CMP R2, #0x40 .text:0001A394 BEQ loc_1A3A8 .text:0001A398 CMP R7, #1 .text:0001A39C BEQ loc_1A40C .text:0001A3A0 CMP R2, #0x2B .text:0001A3A4 BNE loc_1A40C .text:0001A3A8 .text:0001A3A8 loc_1A3A8 ; CODE XREF: _nl_explode_name+178j .text:0001A3A8 MOV R3, #0 .text:0001A3AC STRB R3, [R5],#1 .text:0001A3B0 CMP R2, #0x40 .text:0001A3B4 MOVNE R7, #2 .text:0001A3B8 MOVEQ R7, #1 .text:0001A3BC CMP R7, #2 .text:0001A3C0 ORR R0, R6, #0xC0 .text:0001A3C4 STR R5, [R9] .text:0001A3C8 BNE loc_1A408 .text:0001A3CC LDRB R12, [R5] .text:0001A3D0 CMP R12, R3 .text:0001A3D4 B loc_1A3EC .text:0001A3D8 ; --------------------------------------------------------------------------- .text:0001A3D8 .text:0001A3D8 loc_1A3D8 ; CODE XREF: _nl_explode_name+1E8j .text:0001A3D8 ADD R5, R5, #1 .text:0001A3DC CMP R7, #2 .text:0001A3E0 BNE loc_1A408 .text:0001A3E4 LDRB R12, [R5] .text:0001A3E8 CMP R12, #0 .text:0001A3EC .text:0001A3EC loc_1A3EC ; CODE XREF: _nl_explode_name+1B8j .text:0001A3EC BEQ loc_1A408 .text:0001A3F0 CMP R12, #0x2B .text:0001A3F4 BEQ loc_1A408 .text:0001A3F8 CMP R12, #0x2C .text:0001A3FC BEQ loc_1A408 .text:0001A400 CMP R12, #0x5F .text:0001A404 BNE loc_1A3D8 .text:0001A408 .text:0001A408 loc_1A408 ; CODE XREF: _nl_explode_name+1ACj .text:0001A408 ; _nl_explode_name+1C4j ... .text:0001A408 MOV R6, R0 .text:0001A40C .text:0001A40C loc_1A40C ; CODE XREF: _nl_explode_name+180j .text:0001A40C ; _nl_explode_name+188j .text:0001A40C CMP R7, #1 .text:0001A410 BEQ loc_1A4D0 .text:0001A414 LDRB R2, [R5] .text:0001A418 SUB R3, R2, #0x2B .text:0001A41C CMP R2, #0x5F .text:0001A420 CMPNE R3, #1 .text:0001A424 BHI loc_1A4D0 .text:0001A428 MOV R7, #2 .text:0001A42C CMP R2, #0x2B .text:0001A430 BNE loc_1A46C .text:0001A434 MOV R3, #0 .text:0001A438 STRB R3, [R5],#1 .text:0001A43C LDR R3, [R11,#arg_8] .text:0001A440 STR R5, [R3] .text:0001A444 LDRB R12, [R5] .text:0001A448 ORR R0, R6, #4 .text:0001A44C B loc_1A454 .text:0001A450 ; --------------------------------------------------------------------------- .text:0001A450 .text:0001A450 loc_1A450 ; CODE XREF: _nl_explode_name+248j .text:0001A450 LDRB R12, [R5,#1]! .text:0001A454 .text:0001A454 loc_1A454 ; CODE XREF: _nl_explode_name+230j .text:0001A454 CMP R12, #0 .text:0001A458 CMPNE R12, #0x2C .text:0001A45C BEQ loc_1A468 .text:0001A460 CMP R12, #0x5F .text:0001A464 BNE loc_1A450 .text:0001A468 .text:0001A468 loc_1A468 ; CODE XREF: _nl_explode_name+240j .text:0001A468 MOV R6, R0 .text:0001A46C .text:0001A46C loc_1A46C ; CODE XREF: _nl_explode_name+214j .text:0001A46C LDRB R3, [R5] .text:0001A470 CMP R3, #0x2C .text:0001A474 BNE loc_1A4B4 .text:0001A478 MOV R3, #0 .text:0001A47C STRB R3, [R5],#1 .text:0001A480 LDR R3, [R11,#arg_C] .text:0001A484 STR R5, [R3] .text:0001A488 LDRB R3, [R5] .text:0001A48C ORR R0, R6, #2 .text:0001A490 CMP R3, #0 .text:0001A494 CMPNE R3, #0x5F .text:0001A498 BEQ loc_1A4AC .text:0001A49C .text:0001A49C loc_1A49C ; CODE XREF: _nl_explode_name+28Cj .text:0001A49C LDRB R3, [R5,#1]! .text:0001A4A0 CMP R3, #0 .text:0001A4A4 CMPNE R3, #0x5F .text:0001A4A8 BNE loc_1A49C .text:0001A4AC .text:0001A4AC loc_1A4AC ; CODE XREF: _nl_explode_name+27Cj .text:0001A4AC MOV R6, R0 .text:0001A4B0 LDRB R3, [R5] .text:0001A4B4 .text:0001A4B4 loc_1A4B4 ; CODE XREF: _nl_explode_name+258j .text:0001A4B4 CMP R3, #0x5F .text:0001A4B8 BNE loc_1A4D0 .text:0001A4BC MOV R3, #0 .text:0001A4C0 STRB R3, [R5],#1 .text:0001A4C4 LDR R3, [R11,#arg_10] .text:0001A4C8 ORR R6, R6, #1 .text:0001A4CC STR R5, [R3] .text:0001A4D0 .text:0001A4D0 loc_1A4D0 ; CODE XREF: _nl_explode_name+1F4j .text:0001A4D0 ; _nl_explode_name+208j ... .text:0001A4D0 CMP R7, #1 .text:0001A4D4 BNE loc_1A530 .text:0001A4D8 LDR R3, [R10] .text:0001A4DC CMP R3, #0 .text:0001A4E0 BEQ loc_1A4F4 .text:0001A4E4 LDRB R2, [R3] .text:0001A4E8 BIC R3, R6, #0x20 .text:0001A4EC CMP R2, #0 .text:0001A4F0 MOVEQ R6, R3 .text:0001A4F4 .text:0001A4F4 loc_1A4F4 ; CODE XREF: _nl_explode_name+2C4j .text:0001A4F4 LDR R3, [R11,#arg_0] .text:0001A4F8 LDR R0, [R3] .text:0001A4FC CMP R0, #0 .text:0001A500 BEQ loc_1A514 .text:0001A504 LDRB R2, [R0] .text:0001A508 BIC R3, R6, #0x10 .text:0001A50C CMP R2, #0 .text:0001A510 MOVEQ R6, R3 .text:0001A514 .text:0001A514 loc_1A514 ; CODE XREF: _nl_explode_name+2E4j .text:0001A514 LDR R2, [R9] .text:0001A518 CMP R2, #0 .text:0001A51C BEQ loc_1A530 .text:0001A520 LDRB R2, [R2] .text:0001A524 BIC R3, R6, #0x80 .text:0001A528 CMP R2, #0 .text:0001A52C MOVEQ R6, R3 .text:0001A530 .text:0001A530 loc_1A530 ; CODE XREF: _nl_explode_name+2B8j .text:0001A530 ; _nl_explode_name+300j .text:0001A530 MOV R0, R6 .text:0001A534 LDMDB R11, {R4-R11,SP,PC} .text:0001A534 ; End of function _nl_explode_name .text:0001A534 .text:0001A538 .text:0001A538 ; =============== S U B R O U T I N E ======================================= .text:0001A538 .text:0001A538 ; Attributes: bp-based frame .text:0001A538 .text:0001A538 new_exp ; CODE XREF: new_exp_2+24p .text:0001A538 ; __gettextparse:loc_1A96Cp ... .text:0001A538 MOV R12, SP .text:0001A53C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0001A540 SUB R11, R12, #4 .text:0001A544 MOV R5, R0 .text:0001A548 SUBS R4, R5, #1 .text:0001A54C MOV R7, R1 .text:0001A550 MOV R6, R2 .text:0001A554 BMI loc_1A56C .text:0001A558 .text:0001A558 loc_1A558 ; CODE XREF: new_exp+30j .text:0001A558 LDR R3, [R6,R4,LSL#2] .text:0001A55C CMP R3, #0 .text:0001A560 BEQ loc_1A5A4 .text:0001A564 SUBS R4, R4, #1 .text:0001A568 BPL loc_1A558 .text:0001A56C .text:0001A56C loc_1A56C ; CODE XREF: new_exp+1Cj .text:0001A56C MOV R0, #0x14 .text:0001A570 BL malloc .text:0001A574 CMP R0, #0 .text:0001A578 BEQ loc_1A5A4 .text:0001A57C STR R5, [R0] .text:0001A580 SUBS R4, R5, #1 .text:0001A584 STR R7, [R0,#4] .text:0001A588 LDMMIDB R11, {R4-R7,R11,SP,PC} .text:0001A58C ADD R2, R0, #8 .text:0001A590 .text:0001A590 loc_1A590 ; CODE XREF: new_exp+64j .text:0001A590 LDR R3, [R6,R4,LSL#2] .text:0001A594 STR R3, [R2,R4,LSL#2] .text:0001A598 SUBS R4, R4, #1 .text:0001A59C BPL loc_1A590 .text:0001A5A0 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001A5A4 ; --------------------------------------------------------------------------- .text:0001A5A4 .text:0001A5A4 loc_1A5A4 ; CODE XREF: new_exp+28j .text:0001A5A4 ; new_exp+40j .text:0001A5A4 SUBS R4, R5, #1 .text:0001A5A8 BMI loc_1A5BC .text:0001A5AC .text:0001A5AC loc_1A5AC ; CODE XREF: new_exp+80j .text:0001A5AC LDR R0, [R6,R4,LSL#2] .text:0001A5B0 BL __gettext_free_exp .text:0001A5B4 SUBS R4, R4, #1 .text:0001A5B8 BPL loc_1A5AC .text:0001A5BC .text:0001A5BC loc_1A5BC ; CODE XREF: new_exp+70j .text:0001A5BC MOV R0, #0 .text:0001A5C0 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001A5C0 ; End of function new_exp .text:0001A5C0 .text:0001A5C4 .text:0001A5C4 ; =============== S U B R O U T I N E ======================================= .text:0001A5C4 .text:0001A5C4 ; Attributes: bp-based frame .text:0001A5C4 .text:0001A5C4 new_exp_2 ; CODE XREF: __gettextparse:loc_1A934p .text:0001A5C4 .text:0001A5C4 var_14 = -0x14 .text:0001A5C4 var_10 = -0x10 .text:0001A5C4 .text:0001A5C4 MOV R12, SP .text:0001A5C8 STMFD SP!, {R11,R12,LR,PC} .text:0001A5CC SUB R11, R12, #4 .text:0001A5D0 SUB SP, SP, #8 .text:0001A5D4 STR R1, [R11,#var_14] .text:0001A5D8 STR R2, [R11,#var_10] .text:0001A5DC MOV R1, R0 .text:0001A5E0 MOV R0, #2 .text:0001A5E4 SUB R2, R11, #-var_14 .text:0001A5E8 BL new_exp .text:0001A5EC LDMDB R11, {R11,SP,PC} .text:0001A5EC ; End of function new_exp_2 .text:0001A5EC .text:0001A5F0 .text:0001A5F0 ; =============== S U B R O U T I N E ======================================= .text:0001A5F0 .text:0001A5F0 ; Attributes: bp-based frame .text:0001A5F0 .text:0001A5F0 EXPORT __gettextparse .text:0001A5F0 __gettextparse ; CODE XREF: _nl_load_domain+400p .text:0001A5F0 .text:0001A5F0 var_500 = -0x500 .text:0001A5F0 var_4FC = -0x4FC .text:0001A5F0 var_4F8 = -0x4F8 .text:0001A5F0 var_4F4 = -0x4F4 .text:0001A5F0 var_4F0 = -0x4F0 .text:0001A5F0 var_4EC = -0x4EC .text:0001A5F0 var_4E8 = -0x4E8 .text:0001A5F0 var_4E4 = -0x4E4 .text:0001A5F0 var_4E0 = -0x4E0 .text:0001A5F0 var_4DC = -0x4DC .text:0001A5F0 var_4D0 = -0x4D0 .text:0001A5F0 var_1B8 = -0x1B8 .text:0001A5F0 .text:0001A5F0 MOV R12, SP .text:0001A5F4 STMFD SP!, {R4-R12,LR,PC} .text:0001A5F8 SUB R11, R12, #4 .text:0001A5FC SUB SP, SP, #0x4D0 .text:0001A600 SUB SP, SP, #8 .text:0001A604 STR R0, [R11,#var_4F0] .text:0001A608 SUB R2, R11, #-var_4D0 .text:0001A60C SUB R2, R2, #8 .text:0001A610 STR R2, [R11,#var_4F8] .text:0001A614 MOV R3, #0xC8 .text:0001A618 STR R3, [R11,#var_4FC] .text:0001A61C MOV R8, #0 .text:0001A620 STR R8, [R11,#var_4F4] .text:0001A624 SUB R10, R11, #-var_1B8 .text:0001A628 MOV R2, 0xFFFFFFFE .text:0001A62C LDR R5, [R11,#var_4F8] .text:0001A630 ADD R6, R10, R2 .text:0001A634 STR R2, [R11,#var_500] .text:0001A638 .text:0001A638 loc_1A638 ; CODE XREF: __gettextparse+488j .text:0001A638 ; __gettextparse+584j .text:0001A638 STRB R8, [R6,#2]! .text:0001A63C LDR R3, [R11,#var_4FC] .text:0001A640 MOV R2, R8,ASR#8 .text:0001A644 STRB R2, [R6,#1] .text:0001A648 MOV R0, R3,LSL#1 .text:0001A64C ADD R3, R10, R0 .text:0001A650 SUB R3, R3, #2 .text:0001A654 CMP R6, R3 .text:0001A658 BCC loc_1A724 .text:0001A65C MOV R3, 0x270F .text:0001A664 LDR R2, [R11,#var_4FC] .text:0001A668 MOV R1, R10 .text:0001A66C LDR R9, [R11,#var_4F8] .text:0001A670 CMP R2, R3 .text:0001A674 RSB R3, R10, R6 .text:0001A678 MOV R3, R3,ASR#1 .text:0001A67C ADD R5, R3, #1 .text:0001A680 BLE loc_1A6B0 .text:0001A684 LDR R0, =aParserStackOve ; "parser stack overflow" .text:0001A688 BL __gettexterror .text:0001A68C MOV R3, #0 .text:0001A690 CMP R3, R3 .text:0001A694 BEQ loc_1A6A8 .text:0001A698 MOV R0, R10 .text:0001A69C BL free .text:0001A6A0 LDR R0, [R11,#var_4F8] .text:0001A6A4 BL free .text:0001A6A8 .text:0001A6A8 loc_1A6A8 ; CODE XREF: __gettextparse+A4j .text:0001A6A8 MOV R0, #2 .text:0001A6AC B locret_1ABD0 .text:0001A6B0 ; --------------------------------------------------------------------------- .text:0001A6B0 .text:0001A6B0 loc_1A6B0 ; CODE XREF: __gettextparse+90j .text:0001A6B0 MOV R3, 0x2710 .text:0001A6B8 CMP R0, R3 .text:0001A6BC MOVGE R0, R3 .text:0001A6C0 SUB SP, SP, R0,LSL#1 .text:0001A6C4 STR R0, [R11,#var_4FC] .text:0001A6C8 MOV R10, SP .text:0001A6CC MOV R0, SP .text:0001A6D0 MOV R4, R5,LSL#1 .text:0001A6D4 MOV R2, R4 .text:0001A6D8 BL memcpy .text:0001A6DC LDR R2, [R11,#var_4FC] .text:0001A6E0 SUB SP, SP, R2,LSL#2 .text:0001A6E4 STR SP, [R11,#var_4F8] .text:0001A6E8 MOV R1, R9 .text:0001A6EC MOV R5, R5,LSL#2 .text:0001A6F0 MOV R0, SP .text:0001A6F4 MOV R2, R5 .text:0001A6F8 BL memcpy .text:0001A6FC ADD R4, R10, R4 .text:0001A700 ADD R2, SP, R5 .text:0001A704 SUB R5, R2, #4 .text:0001A708 LDR R2, [R11,#var_4FC] .text:0001A70C SUB R6, R4, #2 .text:0001A710 MOV R3, R2,LSL#1 .text:0001A714 ADD R3, R10, R3 .text:0001A718 SUB R3, R3, #2 .text:0001A71C CMP R6, R3 .text:0001A720 BCS loc_1ABB0 .text:0001A724 .text:0001A724 loc_1A724 ; CODE XREF: __gettextparse+68j .text:0001A724 LDR R1, =yypact .text:0001A728 MOV R0, R8,LSL#1 .text:0001A72C ADD R2, R0, R1 .text:0001A730 LDRB R3, [R2,#1] .text:0001A734 MOV R9, R0 .text:0001A738 LDRB R12, [R0,R1] .text:0001A73C MOV R3, R3,LSL#24 .text:0001A740 ORR R4, R12, R3,ASR#16 .text:0001A744 CMN R4, #0x8000 .text:0001A748 BEQ loc_1A838 .text:0001A74C LDR R3, [R11,#var_500] .text:0001A750 CMN R3, #2 .text:0001A754 BNE loc_1A76C .text:0001A758 SUB R0, R11, #-var_4E0 .text:0001A75C LDR R1, [R11,#var_4F0] .text:0001A760 SUB R0, R0, #8 .text:0001A764 BL __gettextlex .text:0001A768 STR R0, [R11,#var_500] .text:0001A76C .text:0001A76C loc_1A76C ; CODE XREF: __gettextparse+164j .text:0001A76C LDR R2, [R11,#var_500] .text:0001A770 CMP R2, #0 .text:0001A774 MOVLE R3, #0 .text:0001A778 MOVLE LR, R3 .text:0001A77C STRLE R3, [R11,#var_500] .text:0001A780 BLE loc_1A7A0 .text:0001A784 MOV R3, #0x104 .text:0001A788 LDR R2, [R11,#var_500] .text:0001A78C ADD R3, R3, #1 .text:0001A790 CMP R2, R3 .text:0001A794 LDRLS R3, =yytranslate .text:0001A798 LDRLSB LR, [R3,R2] .text:0001A79C MOVHI LR, #0x12 .text:0001A7A0 .text:0001A7A0 loc_1A7A0 ; CODE XREF: __gettextparse+190j .text:0001A7A0 ADD R4, R4, LR .text:0001A7A4 CMP R4, #0x35 .text:0001A7A8 BHI loc_1A838 .text:0001A7AC LDR R0, =yycheck .text:0001A7B0 MOV R12, R4,LSL#1 .text:0001A7B4 ADD R1, R12, R0 .text:0001A7B8 LDRB R3, [R1,#1] .text:0001A7BC LDRB R2, [R12,R0] .text:0001A7C0 MOV R3, R3,LSL#24 .text:0001A7C4 ORR R2, R2, R3,ASR#16 .text:0001A7C8 CMP R2, LR .text:0001A7CC BNE loc_1A838 .text:0001A7D0 LDR R1, =yytable .text:0001A7D4 ADD R2, R12, R1 .text:0001A7D8 LDRB R3, [R2,#1] .text:0001A7DC LDRB R0, [R12,R1] .text:0001A7E0 MOV R3, R3,LSL#24 .text:0001A7E4 ORR R4, R0, R3,ASR#16 .text:0001A7E8 CMP R4, #0 .text:0001A7EC BGE loc_1A800 .text:0001A7F0 CMN R4, #0x8000 .text:0001A7F4 BEQ loc_1AA7C .text:0001A7F8 RSB R4, R4, #0 .text:0001A7FC B loc_1A854 .text:0001A800 ; --------------------------------------------------------------------------- .text:0001A800 .text:0001A800 loc_1A800 ; CODE XREF: __gettextparse+1FCj .text:0001A800 BEQ loc_1AA7C .text:0001A804 CMP R4, #0x1B .text:0001A808 BEQ loc_1AB78 .text:0001A80C LDR R3, [R11,#var_500] .text:0001A810 LDR R2, [R11,#var_4F4] .text:0001A814 CMP R3, #0 .text:0001A818 MOVNE R3, 0xFFFFFFFE .text:0001A81C STR R3, [R11,#var_500] .text:0001A820 MOV R3, R2 .text:0001A824 CMP R3, #0 .text:0001A828 SUBNE R2, R2, #1 .text:0001A82C MOVEQ R2, #0 .text:0001A830 STR R2, [R11,#var_4F4] .text:0001A834 B loc_1AB68 .text:0001A838 ; --------------------------------------------------------------------------- .text:0001A838 .text:0001A838 loc_1A838 ; CODE XREF: __gettextparse+158j .text:0001A838 ; __gettextparse+1B8j ... .text:0001A838 LDR R0, =yydefact .text:0001A83C ADD R2, R9, R0 .text:0001A840 LDRB R3, [R2,#1] .text:0001A844 LDRB R1, [R9,R0] .text:0001A848 MOV R3, R3,LSL#24 .text:0001A84C ORRS R4, R1, R3,ASR#16 .text:0001A850 BEQ loc_1AA7C .text:0001A854 .text:0001A854 loc_1A854 ; CODE XREF: __gettextparse+20Cj .text:0001A854 ; __gettextparse+568j .text:0001A854 LDR R12, =yyr2 .text:0001A858 MOV R1, R4,LSL#1 .text:0001A85C ADD R2, R1, R12 .text:0001A860 LDRB R3, [R2,#1] .text:0001A864 MOV R9, R1 .text:0001A868 LDRB R0, [R1,R12] .text:0001A86C MOV R3, R3,LSL#24 .text:0001A870 ORR R8, R0, R3,ASR#16 .text:0001A874 CMP R8, #0 .text:0001A878 RSBGT R3, R8, #1 .text:0001A87C LDRGT R7, [R5,R3,LSL#2] .text:0001A880 SUB R3, R4, #1 .text:0001A884 CMP R3, #0xB ; switch 12 cases .text:0001A888 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0001A88C B loc_1A99C ; jumptable 0001A888 default case .text:0001A88C ; --------------------------------------------------------------------------- .text:0001A890 DCD loc_1A8C0 ; jump table for switch statement .text:0001A890 DCD loc_1A8D8 .text:0001A890 DCD loc_1A908 .text:0001A890 DCD loc_1A918 .text:0001A890 DCD loc_1A928 .text:0001A890 DCD loc_1A928 .text:0001A890 DCD loc_1A928 .text:0001A890 DCD loc_1A928 .text:0001A890 DCD loc_1A940 .text:0001A890 DCD loc_1A960 .text:0001A890 DCD loc_1A978 .text:0001A890 DCD loc_1A998 .text:0001A8C0 ; --------------------------------------------------------------------------- .text:0001A8C0 .text:0001A8C0 loc_1A8C0 ; CODE XREF: __gettextparse+298j .text:0001A8C0 ; DATA XREF: __gettextparse+2A0o .text:0001A8C0 LDR R3, [R5] ; jumptable 0001A888 case 0 .text:0001A8C4 CMP R3, #0 .text:0001A8C8 BEQ loc_1ABB0 .text:0001A8CC LDR R2, [R11,#var_4F0] .text:0001A8D0 STR R3, [R2,#4] .text:0001A8D4 B loc_1A99C ; jumptable 0001A888 default case .text:0001A8D8 ; --------------------------------------------------------------------------- .text:0001A8D8 .text:0001A8D8 loc_1A8D8 ; CODE XREF: __gettextparse+298j .text:0001A8D8 ; DATA XREF: __gettextparse+2A0o .text:0001A8D8 LDR R3, [R5,#-0x10] ; jumptable 0001A888 case 1 .text:0001A8DC LDR R2, [R5,#-8] .text:0001A8E0 LDR R1, [R5] .text:0001A8E4 STR R3, [R11,#var_4E4] .text:0001A8E8 STR R2, [R11,#var_4E0] .text:0001A8EC MOV R0, #3 .text:0001A8F0 STR R1, [R11,#var_4DC] .text:0001A8F4 MOV R1, #0x10 .text:0001A8F8 SUB R2, R11, #-var_4D0 .text:0001A8FC SUB R2, R2, #8 .text:0001A900 SUB R2, R2, #0xC .text:0001A904 B loc_1A96C .text:0001A908 ; --------------------------------------------------------------------------- .text:0001A908 .text:0001A908 loc_1A908 ; CODE XREF: __gettextparse+298j .text:0001A908 ; DATA XREF: __gettextparse+2A0o .text:0001A908 LDR R1, [R5,#-8] ; jumptable 0001A888 case 2 .text:0001A90C LDR R2, [R5] .text:0001A910 MOV R0, #0xF .text:0001A914 B loc_1A934 .text:0001A918 ; --------------------------------------------------------------------------- .text:0001A918 .text:0001A918 loc_1A918 ; CODE XREF: __gettextparse+298j .text:0001A918 ; DATA XREF: __gettextparse+2A0o .text:0001A918 LDR R1, [R5,#-8] ; jumptable 0001A888 case 3 .text:0001A91C LDR R2, [R5] .text:0001A920 MOV R0, #0xE .text:0001A924 B loc_1A934 .text:0001A928 ; --------------------------------------------------------------------------- .text:0001A928 .text:0001A928 loc_1A928 ; CODE XREF: __gettextparse+298j .text:0001A928 ; DATA XREF: __gettextparse+2A0o .text:0001A928 LDR R0, [R5,#-4] ; jumptable 0001A888 cases 4-7 .text:0001A92C LDR R1, [R5,#-8] .text:0001A930 LDR R2, [R5] .text:0001A934 .text:0001A934 loc_1A934 ; CODE XREF: __gettextparse+324j .text:0001A934 ; __gettextparse+334j .text:0001A934 BL new_exp_2 .text:0001A938 MOV R7, R0 .text:0001A93C B loc_1A99C ; jumptable 0001A888 default case .text:0001A940 ; --------------------------------------------------------------------------- .text:0001A940 .text:0001A940 loc_1A940 ; CODE XREF: __gettextparse+298j .text:0001A940 ; DATA XREF: __gettextparse+2A0o .text:0001A940 LDR R3, [R5] ; jumptable 0001A888 case 8 .text:0001A944 MOV R0, #1 .text:0001A948 STR R3, [R11,#var_4EC] .text:0001A94C MOV R1, #2 .text:0001A950 SUB R2, R11, #-var_4E0 .text:0001A954 SUB R2, R2, #8 .text:0001A958 SUB R2, R2, #4 .text:0001A95C B loc_1A96C .text:0001A960 ; --------------------------------------------------------------------------- .text:0001A960 .text:0001A960 loc_1A960 ; CODE XREF: __gettextparse+298j .text:0001A960 ; DATA XREF: __gettextparse+2A0o .text:0001A960 MOV R0, #0 ; jumptable 0001A888 case 9 .text:0001A964 MOV R1, R0 .text:0001A968 MOV R2, R0 .text:0001A96C .text:0001A96C loc_1A96C ; CODE XREF: __gettextparse+314j .text:0001A96C ; __gettextparse+36Cj .text:0001A96C BL new_exp .text:0001A970 MOV R7, R0 .text:0001A974 B loc_1A99C ; jumptable 0001A888 default case .text:0001A978 ; --------------------------------------------------------------------------- .text:0001A978 .text:0001A978 loc_1A978 ; CODE XREF: __gettextparse+298j .text:0001A978 ; DATA XREF: __gettextparse+2A0o .text:0001A978 MOV R0, #0 ; jumptable 0001A888 case 10 .text:0001A97C MOV R1, #1 .text:0001A980 MOV R2, R0 .text:0001A984 BL new_exp .text:0001A988 SUBS R7, R0, #0 .text:0001A98C LDRNE R3, [R5] .text:0001A990 STRNE R3, [R7,#8] .text:0001A994 B loc_1A99C ; jumptable 0001A888 default case .text:0001A998 ; --------------------------------------------------------------------------- .text:0001A998 .text:0001A998 loc_1A998 ; CODE XREF: __gettextparse+298j .text:0001A998 ; DATA XREF: __gettextparse+2A0o .text:0001A998 LDR R7, [R5,#-4] ; jumptable 0001A888 case 11 .text:0001A99C .text:0001A99C loc_1A99C ; CODE XREF: __gettextparse+29Cj .text:0001A99C ; __gettextparse+2E4j ... .text:0001A99C SUB R5, R5, R8,LSL#2 ; jumptable 0001A888 default case .text:0001A9A0 STR R7, [R5,#4]! .text:0001A9A4 LDR R1, =yyr1 .text:0001A9A8 LDR R12, =yypgoto .text:0001A9AC ADD R2, R9, R1 .text:0001A9B0 LDRB R3, [R2,#1] .text:0001A9B4 LDRB R0, [R9,R1] .text:0001A9B8 MOV R3, R3,LSL#24 .text:0001A9BC ORR R4, R0, R3,ASR#16 .text:0001A9C0 SUB R2, R4, #0x10 .text:0001A9C4 MOV R2, R2,LSL#1 .text:0001A9C8 ADD R3, R2, R12 .text:0001A9CC LDRB R1, [R3,#1] .text:0001A9D0 SUB R6, R6, R8,LSL#1 .text:0001A9D4 LDRB R0, [R2,R12] .text:0001A9D8 MOV R1, R1,LSL#24 .text:0001A9DC LDRB LR, [R6,#1] .text:0001A9E0 ORR R0, R0, R1,ASR#16 .text:0001A9E4 LDRB R12, [R6] .text:0001A9E8 MOV R3, LR,LSL#24 .text:0001A9EC ORR R3, R12, R3,ASR#16 .text:0001A9F0 ADD R8, R0, R3 .text:0001A9F4 CMP R8, #0x35 .text:0001A9F8 BHI loc_1AA58 .text:0001A9FC LDR R3, =yycheck .text:0001AA00 MOV R0, R8,LSL#1 .text:0001AA04 LDRB R1, [R0,R3] .text:0001AA08 ADD R3, R0, R3 .text:0001AA0C LDRB R2, [R3,#1] .text:0001AA10 ORR R3, R12, LR,LSL#8 .text:0001AA14 ORR R1, R1, R2,LSL#8 .text:0001AA18 CMP R1, R3 .text:0001AA1C BNE loc_1AA58 .text:0001AA20 LDR R1, =yytable .text:0001AA24 ADD R2, R0, R1 .text:0001AA28 LDRB R3, [R2,#1] .text:0001AA2C LDRB R0, [R0,R1] .text:0001AA30 B loc_1AA70 .text:0001AA30 ; --------------------------------------------------------------------------- .text:0001AA34 off_1AA34 DCD aParserStackOve ; DATA XREF: __gettextparse+94r .text:0001AA34 ; "parser stack overflow" .text:0001AA38 off_1AA38 DCD yypact ; DATA XREF: __gettextparse:loc_1A724r .text:0001AA3C off_1AA3C DCD yytranslate ; DATA XREF: __gettextparse+1A4r .text:0001AA40 off_1AA40 DCD yycheck ; DATA XREF: __gettextparse+1BCr .text:0001AA40 ; __gettextparse+40Cr .text:0001AA44 off_1AA44 DCD yytable ; DATA XREF: __gettextparse+1E0r .text:0001AA44 ; __gettextparse+430r .text:0001AA48 off_1AA48 DCD yydefact ; DATA XREF: __gettextparse:loc_1A838r .text:0001AA4C off_1AA4C DCD yyr2 ; DATA XREF: __gettextparse:loc_1A854r .text:0001AA50 off_1AA50 DCD yyr1 ; DATA XREF: __gettextparse+3B4r .text:0001AA54 off_1AA54 DCD yypgoto ; DATA XREF: __gettextparse+3B8r .text:0001AA58 ; --------------------------------------------------------------------------- .text:0001AA58 .text:0001AA58 loc_1AA58 ; CODE XREF: __gettextparse+408j .text:0001AA58 ; __gettextparse+42Cj .text:0001AA58 SUB R2, R4, #0x10 .text:0001AA5C LDR R12, =yydefgoto .text:0001AA60 MOV R2, R2,LSL#1 .text:0001AA64 ADD R1, R2, R12 .text:0001AA68 LDRB R3, [R1,#1] .text:0001AA6C LDRB R0, [R2,R12] .text:0001AA70 .text:0001AA70 loc_1AA70 ; CODE XREF: __gettextparse+440j .text:0001AA70 MOV R3, R3,LSL#24 .text:0001AA74 ORR R8, R0, R3,ASR#16 .text:0001AA78 B loc_1A638 .text:0001AA7C ; --------------------------------------------------------------------------- .text:0001AA7C .text:0001AA7C loc_1AA7C ; CODE XREF: __gettextparse+204j .text:0001AA7C ; __gettextparse:loc_1A800j ... .text:0001AA7C LDR R3, [R11,#var_4F4] .text:0001AA80 CMP R3, #0 .text:0001AA84 BNE loc_1AA90 .text:0001AA88 LDR R0, =aParseError ; "parse error" .text:0001AA8C BL __gettexterror .text:0001AA90 .text:0001AA90 loc_1AA90 ; CODE XREF: __gettextparse+494j .text:0001AA90 LDR R2, [R11,#var_4F4] .text:0001AA94 CMP R2, #3 .text:0001AA98 BNE loc_1AAB0 .text:0001AA9C LDR R3, [R11,#var_500] .text:0001AAA0 CMP R3, #0 .text:0001AAA4 BEQ loc_1ABB0 .text:0001AAA8 MOV R2, 0xFFFFFFFE .text:0001AAAC STR R2, [R11,#var_500] .text:0001AAB0 .text:0001AAB0 loc_1AAB0 ; CODE XREF: __gettextparse+4A8j .text:0001AAB0 MOV R3, #3 .text:0001AAB4 STR R3, [R11,#var_4F4] .text:0001AAB8 B loc_1AAD8 .text:0001AABC ; --------------------------------------------------------------------------- .text:0001AABC .text:0001AABC loc_1AABC ; CODE XREF: __gettextparse+50Cj .text:0001AABC ; __gettextparse+518j ... .text:0001AABC CMP R6, R10 .text:0001AAC0 BEQ loc_1ABB0 .text:0001AAC4 LDRB R2, [R6,#-2]! .text:0001AAC8 LDRB R3, [R6,#1] .text:0001AACC SUB R5, R5, #4 .text:0001AAD0 MOV R3, R3,LSL#24 .text:0001AAD4 ORR R8, R2, R3,ASR#16 .text:0001AAD8 .text:0001AAD8 loc_1AAD8 ; CODE XREF: __gettextparse+4C8j .text:0001AAD8 LDR R3, =yypact .text:0001AADC MOV R1, R8,LSL#1 .text:0001AAE0 ADD R2, R1, R3 .text:0001AAE4 LDRB R3, [R2,#1] .text:0001AAE8 LDR R2, =yypact .text:0001AAEC LDRB R0, [R1,R2] .text:0001AAF0 MOV R3, R3,LSL#24 .text:0001AAF4 ORR R4, R0, R3,ASR#16 .text:0001AAF8 CMN R4, #0x8000 .text:0001AAFC BEQ loc_1AABC .text:0001AB00 ADD R4, R4, #1 .text:0001AB04 CMP R4, #0x35 .text:0001AB08 BHI loc_1AABC .text:0001AB0C LDR R3, =yycheck .text:0001AB10 MOV R0, R4,LSL#1 .text:0001AB14 LDRB R2, [R0,R3] .text:0001AB18 ADD R3, R0, R3 .text:0001AB1C LDRB R1, [R3,#1] .text:0001AB20 ORR R2, R2, R1,LSL#8 .text:0001AB24 CMP R2, #1 .text:0001AB28 BNE loc_1AABC .text:0001AB2C LDR R1, =yytable .text:0001AB30 ADD R2, R0, R1 .text:0001AB34 LDRB R3, [R2,#1] .text:0001AB38 LDRB R0, [R0,R1] .text:0001AB3C MOV R3, R3,LSL#24 .text:0001AB40 ORR R4, R0, R3,ASR#16 .text:0001AB44 CMP R4, #0 .text:0001AB48 BGE loc_1AB5C .text:0001AB4C CMN R4, #0x8000 .text:0001AB50 BEQ loc_1AABC .text:0001AB54 RSB R4, R4, #0 .text:0001AB58 B loc_1A854 .text:0001AB5C ; --------------------------------------------------------------------------- .text:0001AB5C .text:0001AB5C loc_1AB5C ; CODE XREF: __gettextparse+558j .text:0001AB5C BEQ loc_1AABC .text:0001AB60 CMP R4, #0x1B .text:0001AB64 BEQ loc_1AB78 .text:0001AB68 .text:0001AB68 loc_1AB68 ; CODE XREF: __gettextparse+244j .text:0001AB68 LDR R3, [R11,#var_4E8] .text:0001AB6C MOV R8, R4 .text:0001AB70 STR R3, [R5,#4]! .text:0001AB74 B loc_1A638 .text:0001AB78 ; --------------------------------------------------------------------------- .text:0001AB78 .text:0001AB78 loc_1AB78 ; CODE XREF: __gettextparse+218j .text:0001AB78 ; __gettextparse+574j .text:0001AB78 MOV R3, #0 .text:0001AB7C CMP R3, R3 .text:0001AB80 BEQ loc_1AB94 .text:0001AB84 MOV R0, R10 .text:0001AB88 BL free .text:0001AB8C LDR R0, [R11,#var_4F8] .text:0001AB90 BL free .text:0001AB94 .text:0001AB94 loc_1AB94 ; CODE XREF: __gettextparse+590j .text:0001AB94 MOV R0, #0 .text:0001AB98 B locret_1ABD0 .text:0001AB98 ; --------------------------------------------------------------------------- .text:0001AB9C off_1AB9C DCD yydefgoto ; DATA XREF: __gettextparse+46Cr .text:0001ABA0 off_1ABA0 DCD aParseError ; DATA XREF: __gettextparse+498r .text:0001ABA0 ; "parse error" .text:0001ABA4 off_1ABA4 DCD yypact ; DATA XREF: __gettextparse:loc_1AAD8r .text:0001ABA4 ; __gettextparse+4F8r .text:0001ABA8 off_1ABA8 DCD yycheck ; DATA XREF: __gettextparse+51Cr .text:0001ABAC off_1ABAC DCD yytable ; DATA XREF: __gettextparse+53Cr .text:0001ABB0 ; --------------------------------------------------------------------------- .text:0001ABB0 .text:0001ABB0 loc_1ABB0 ; CODE XREF: __gettextparse+130j .text:0001ABB0 ; __gettextparse+2D8j ... .text:0001ABB0 MOV R2, #0 .text:0001ABB4 CMP R2, R2 .text:0001ABB8 BEQ loc_1ABCC .text:0001ABBC MOV R0, R10 .text:0001ABC0 BL free .text:0001ABC4 LDR R0, [R11,#var_4F8] .text:0001ABC8 BL free .text:0001ABCC .text:0001ABCC loc_1ABCC ; CODE XREF: __gettextparse+5C8j .text:0001ABCC MOV R0, #1 .text:0001ABD0 .text:0001ABD0 locret_1ABD0 ; CODE XREF: __gettextparse+BCj .text:0001ABD0 ; __gettextparse+5A8j .text:0001ABD0 LDMDB R11, {R4-R11,SP,PC} .text:0001ABD0 ; End of function __gettextparse .text:0001ABD0 .text:0001ABD4 .text:0001ABD4 ; =============== S U B R O U T I N E ======================================= .text:0001ABD4 .text:0001ABD4 ; Attributes: bp-based frame .text:0001ABD4 .text:0001ABD4 EXPORT __gettext_free_exp .text:0001ABD4 __gettext_free_exp ; CODE XREF: _nl_unload_domain+20p .text:0001ABD4 ; new_exp+78p ... .text:0001ABD4 MOV R12, SP .text:0001ABD8 STMFD SP!, {R4,R11,R12,LR,PC} .text:0001ABDC SUB R11, R12, #4 .text:0001ABE0 SUBS R4, R0, #0 .text:0001ABE4 LDMEQDB R11, {R4,R11,SP,PC} .text:0001ABE8 LDR R3, [R4] .text:0001ABEC CMP R3, #2 .text:0001ABF0 BEQ loc_1AC14 .text:0001ABF4 BGT loc_1AC04 .text:0001ABF8 CMP R3, #1 .text:0001ABFC BEQ loc_1AC1C .text:0001AC00 B loc_1AC24 .text:0001AC04 ; --------------------------------------------------------------------------- .text:0001AC04 .text:0001AC04 loc_1AC04 ; CODE XREF: __gettext_free_exp+20j .text:0001AC04 CMP R3, #3 .text:0001AC08 BNE loc_1AC24 .text:0001AC0C LDR R0, [R4,#0x10] .text:0001AC10 BL __gettext_free_exp .text:0001AC14 .text:0001AC14 loc_1AC14 ; CODE XREF: __gettext_free_exp+1Cj .text:0001AC14 LDR R0, [R4,#0xC] .text:0001AC18 BL __gettext_free_exp .text:0001AC1C .text:0001AC1C loc_1AC1C ; CODE XREF: __gettext_free_exp+28j .text:0001AC1C LDR R0, [R4,#8] .text:0001AC20 BL __gettext_free_exp .text:0001AC24 .text:0001AC24 loc_1AC24 ; CODE XREF: __gettext_free_exp+2Cj .text:0001AC24 ; __gettext_free_exp+34j .text:0001AC24 MOV R0, R4 .text:0001AC28 BL free .text:0001AC2C LDMDB R11, {R4,R11,SP,PC} .text:0001AC2C ; End of function __gettext_free_exp .text:0001AC2C .text:0001AC30 .text:0001AC30 ; =============== S U B R O U T I N E ======================================= .text:0001AC30 .text:0001AC30 ; Attributes: bp-based frame .text:0001AC30 .text:0001AC30 __gettextlex ; CODE XREF: __gettextparse+174p .text:0001AC30 MOV R12, SP .text:0001AC34 STMFD SP!, {R4,R11,R12,LR,PC} .text:0001AC38 SUB R11, R12, #4 .text:0001AC3C MOV R4, R1 .text:0001AC40 LDR R12, [R4] .text:0001AC44 LDRB R3, [R12] .text:0001AC48 MOV LR, R0 .text:0001AC4C B loc_1AC58 .text:0001AC50 ; --------------------------------------------------------------------------- .text:0001AC50 .text:0001AC50 loc_1AC50 ; CODE XREF: __gettextlex+38j .text:0001AC50 LDRB R3, [R12,#1]! .text:0001AC54 AND R3, R3, #0xFF .text:0001AC58 .text:0001AC58 loc_1AC58 ; CODE XREF: __gettextlex+1Cj .text:0001AC58 CMP R3, #0 .text:0001AC5C BEQ loc_1AFB0 .text:0001AC60 CMP R3, #0x20 .text:0001AC64 CMPNE R3, #9 .text:0001AC68 BEQ loc_1AC50 .text:0001AC6C LDRB R0, [R12],#1 .text:0001AC70 CMP R0, #0x7C ; switch 125 cases .text:0001AC74 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:0001AC78 B loc_1AFBC ; jumptable 0001AC74 default case .text:0001AC78 ; --------------------------------------------------------------------------- .text:0001AC7C DCD loc_1AFA4, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC ; jump table for switch statement .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFA4, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AED4, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AF6C, loc_1AEF8, loc_1AFBC .text:0001AC7C DCD loc_1AFC0, loc_1AFC0, loc_1AF4C, loc_1AF7C, loc_1AFBC .text:0001AC7C DCD loc_1AF90, loc_1AFBC, loc_1AF5C, loc_1AE70, loc_1AE70 .text:0001AC7C DCD loc_1AE70, loc_1AE70, loc_1AE70, loc_1AE70, loc_1AE70 .text:0001AC7C DCD loc_1AE70, loc_1AE70, loc_1AE70, loc_1AFC0, loc_1AFA4 .text:0001AC7C DCD loc_1AF0C, loc_1AEB0, loc_1AF28, loc_1AFC0, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFC0, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC .text:0001AC7C DCD loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AFBC, loc_1AEF8 .text:0001AE70 ; --------------------------------------------------------------------------- .text:0001AE70 .text:0001AE70 loc_1AE70 ; CODE XREF: __gettextlex+44j .text:0001AE70 ; DATA XREF: __gettextlex+4Co .text:0001AE70 LDRB R3, [R12] ; jumptable 0001AC74 cases 48-57 .text:0001AE74 SUB R2, R0, #0x30 .text:0001AE78 B loc_1AE94 .text:0001AE7C ; --------------------------------------------------------------------------- .text:0001AE7C .text:0001AE7C loc_1AE7C ; CODE XREF: __gettextlex+26Cj .text:0001AE7C ADD R3, R2, R2,LSL#2 .text:0001AE80 MOV R2, R3,LSL#1 .text:0001AE84 LDRB R1, [R12] .text:0001AE88 SUB R2, R2, #0x30 .text:0001AE8C LDRB R3, [R12,#1]! .text:0001AE90 ADD R2, R2, R1 .text:0001AE94 .text:0001AE94 loc_1AE94 ; CODE XREF: __gettextlex+248j .text:0001AE94 SUB R3, R3, #0x30 .text:0001AE98 CMP R3, #9 .text:0001AE9C BLS loc_1AE7C .text:0001AEA0 MOV R0, 0x105 .text:0001AEA8 STR R2, [LR] .text:0001AEAC B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AEB0 ; --------------------------------------------------------------------------- .text:0001AEB0 .text:0001AEB0 loc_1AEB0 ; CODE XREF: __gettextlex+44j .text:0001AEB0 ; DATA XREF: __gettextlex+4Co .text:0001AEB0 LDRB R3, [R12] ; jumptable 0001AC74 case 61 .text:0001AEB4 CMP R3, #0x3D .text:0001AEB8 BNE loc_1AFBC ; jumptable 0001AC74 default case .text:0001AEBC ADD R12, R12, #1 .text:0001AEC0 MOV R0, 0x101 .text:0001AEC8 MOV R3, #0xC .text:0001AECC STR R3, [LR] .text:0001AED0 B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AED4 ; --------------------------------------------------------------------------- .text:0001AED4 .text:0001AED4 loc_1AED4 ; CODE XREF: __gettextlex+44j .text:0001AED4 ; DATA XREF: __gettextlex+4Co .text:0001AED4 LDRB R3, [R12] ; jumptable 0001AC74 case 33 .text:0001AED8 CMP R3, #0x3D .text:0001AEDC BNE loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AEE0 ADD R12, R12, #1 .text:0001AEE4 MOV R0, 0x101 .text:0001AEEC MOV R3, #0xD .text:0001AEF0 STR R3, [LR] .text:0001AEF4 B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AEF8 ; --------------------------------------------------------------------------- .text:0001AEF8 .text:0001AEF8 loc_1AEF8 ; CODE XREF: __gettextlex+44j .text:0001AEF8 ; DATA XREF: __gettextlex+4Co .text:0001AEF8 LDRB R3, [R12] ; jumptable 0001AC74 cases 38,124 .text:0001AEFC CMP R3, R0 .text:0001AF00 BNE loc_1AFBC ; jumptable 0001AC74 default case .text:0001AF04 ADD R12, R12, #1 .text:0001AF08 B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AF0C ; --------------------------------------------------------------------------- .text:0001AF0C .text:0001AF0C loc_1AF0C ; CODE XREF: __gettextlex+44j .text:0001AF0C ; DATA XREF: __gettextlex+4Co .text:0001AF0C LDRB R3, [R12] ; jumptable 0001AC74 case 60 .text:0001AF10 CMP R3, #0x3D .text:0001AF14 ADDEQ R12, R12, #1 .text:0001AF18 MOVEQ R3, #0xA .text:0001AF1C BEQ loc_1AF3C .text:0001AF20 MOV R3, #8 .text:0001AF24 B loc_1AF3C .text:0001AF28 ; --------------------------------------------------------------------------- .text:0001AF28 .text:0001AF28 loc_1AF28 ; CODE XREF: __gettextlex+44j .text:0001AF28 ; DATA XREF: __gettextlex+4Co .text:0001AF28 LDRB R3, [R12] ; jumptable 0001AC74 case 62 .text:0001AF2C CMP R3, #0x3D .text:0001AF30 ADDEQ R12, R12, #1 .text:0001AF34 MOVEQ R3, #0xB .text:0001AF38 MOVNE R3, #9 .text:0001AF3C .text:0001AF3C loc_1AF3C ; CODE XREF: __gettextlex+2ECj .text:0001AF3C ; __gettextlex+2F4j .text:0001AF3C STR R3, [LR] .text:0001AF40 MOV R0, 0x102 .text:0001AF48 B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AF4C ; --------------------------------------------------------------------------- .text:0001AF4C .text:0001AF4C loc_1AF4C ; CODE XREF: __gettextlex+44j .text:0001AF4C ; DATA XREF: __gettextlex+4Co .text:0001AF4C MOV R0, #0x104 ; jumptable 0001AC74 case 42 .text:0001AF50 MOV R3, #3 .text:0001AF54 STR R3, [LR] .text:0001AF58 B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AF5C ; --------------------------------------------------------------------------- .text:0001AF5C .text:0001AF5C loc_1AF5C ; CODE XREF: __gettextlex+44j .text:0001AF5C ; DATA XREF: __gettextlex+4Co .text:0001AF5C MOV R0, #0x104 ; jumptable 0001AC74 case 47 .text:0001AF60 MOV R3, #4 .text:0001AF64 STR R3, [LR] .text:0001AF68 B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AF6C ; --------------------------------------------------------------------------- .text:0001AF6C .text:0001AF6C loc_1AF6C ; CODE XREF: __gettextlex+44j .text:0001AF6C ; DATA XREF: __gettextlex+4Co .text:0001AF6C MOV R0, #0x104 ; jumptable 0001AC74 case 37 .text:0001AF70 MOV R3, #5 .text:0001AF74 STR R3, [LR] .text:0001AF78 B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AF7C ; --------------------------------------------------------------------------- .text:0001AF7C .text:0001AF7C loc_1AF7C ; CODE XREF: __gettextlex+44j .text:0001AF7C ; DATA XREF: __gettextlex+4Co .text:0001AF7C MOV R0, 0x103 ; jumptable 0001AC74 case 43 .text:0001AF84 MOV R3, #6 .text:0001AF88 STR R3, [LR] .text:0001AF8C B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AF90 ; --------------------------------------------------------------------------- .text:0001AF90 .text:0001AF90 loc_1AF90 ; CODE XREF: __gettextlex+44j .text:0001AF90 ; DATA XREF: __gettextlex+4Co .text:0001AF90 MOV R0, 0x103 ; jumptable 0001AC74 case 45 .text:0001AF98 MOV R3, #7 .text:0001AF9C STR R3, [LR] .text:0001AFA0 B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AFA4 ; --------------------------------------------------------------------------- .text:0001AFA4 .text:0001AFA4 loc_1AFA4 ; CODE XREF: __gettextlex+44j .text:0001AFA4 ; DATA XREF: __gettextlex+4Co .text:0001AFA4 SUB R12, R12, #1 ; jumptable 0001AC74 cases 0,10,59 .text:0001AFA8 MOV R0, #0 .text:0001AFAC B loc_1AFC0 ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AFB0 ; --------------------------------------------------------------------------- .text:0001AFB0 .text:0001AFB0 loc_1AFB0 ; CODE XREF: __gettextlex+2Cj .text:0001AFB0 MOV R0, R3 .text:0001AFB4 STR R12, [R4] .text:0001AFB8 LDMDB R11, {R4,R11,SP,PC} .text:0001AFBC ; --------------------------------------------------------------------------- .text:0001AFBC .text:0001AFBC loc_1AFBC ; CODE XREF: __gettextlex+44j .text:0001AFBC ; __gettextlex+48j ... .text:0001AFBC MOV R0, #0x100 ; jumptable 0001AC74 default case .text:0001AFC0 .text:0001AFC0 loc_1AFC0 ; CODE XREF: __gettextlex+44j .text:0001AFC0 ; __gettextlex+27Cj ... .text:0001AFC0 STR R12, [R4] ; jumptable 0001AC74 cases 40,41,58,63,110 .text:0001AFC4 LDMDB R11, {R4,R11,SP,PC} .text:0001AFC4 ; End of function __gettextlex .text:0001AFC4 .text:0001AFC8 .text:0001AFC8 ; =============== S U B R O U T I N E ======================================= .text:0001AFC8 .text:0001AFC8 ; Attributes: bp-based frame .text:0001AFC8 .text:0001AFC8 __gettexterror ; CODE XREF: __gettextparse+98p .text:0001AFC8 ; __gettextparse+49Cp .text:0001AFC8 MOV R12, SP .text:0001AFCC STMFD SP!, {R11,R12,LR,PC} .text:0001AFD0 SUB R11, R12, #4 .text:0001AFD4 LDMDB R11, {R11,SP,PC} .text:0001AFD4 ; End of function __gettexterror .text:0001AFD4 .text:0001AFD8 .text:0001AFD8 ; =============== S U B R O U T I N E ======================================= .text:0001AFD8 .text:0001AFD8 ; Attributes: bp-based frame .text:0001AFD8 .text:0001AFD8 EXPORT __setfpucw .text:0001AFD8 __setfpucw ; CODE XREF: init+54p .text:0001AFD8 MOV R12, SP .text:0001AFDC STMFD SP!, {R11,R12,LR,PC} .text:0001AFE0 SUB R11, R12, #4 .text:0001AFE4 MRC p1, 1, R3,c0,c0, 0 .text:0001AFE8 BIC R3, R3, #0x1F0000 .text:0001AFEC BIC R3, R3, #0x1F00 .text:0001AFF0 BIC R3, R3, #0x1F .text:0001AFF4 BIC R0, R0, #0xFF000000 .text:0001AFF8 BIC R0, R0, #0xE00000 .text:0001AFFC BIC R0, R0, #0xE000 .text:0001B000 BIC R0, R0, #0xE0 .text:0001B004 ORR R3, R3, R0 .text:0001B008 MCR p1, 1, R3,c0,c0, 0 .text:0001B00C LDMDB R11, {R11,SP,PC} .text:0001B00C ; End of function __setfpucw .text:0001B00C .text:0001B010 .text:0001B010 ; =============== S U B R O U T I N E ======================================= .text:0001B010 .text:0001B010 .text:0001B010 ; int setjmp(jmp_buf env) .text:0001B010 EXPORT _setjmp .text:0001B010 _setjmp ; CODE XREF: _dl_catch_error+58p .text:0001B010 MOV R1, #0 .text:0001B014 B __sigsetjmp .text:0001B014 ; End of function _setjmp .text:0001B014 .text:0001B014 ; --------------------------------------------------------------------------- .text:0001B018 ALIGN 0x10 .text:0001B020 .text:0001B020 ; =============== S U B R O U T I N E ======================================= .text:0001B020 .text:0001B020 ; Attributes: noreturn bp-based frame .text:0001B020 .text:0001B020 WEAK siglongjmp .text:0001B020 siglongjmp ; CODE XREF: _dl_signal_error+C8p .text:0001B020 MOV R12, SP ; Alternative name is '_longjmp' .text:0001B024 STMFD SP!, {R11,R12,LR,PC} .text:0001B028 SUB R11, R12, #4 .text:0001B02C MOV R4, R0 .text:0001B030 MOV R5, R1 .text:0001B034 BL _longjmp_unwind .text:0001B038 LDR R3, [R4,#0x58] .text:0001B03C CMP R3, #0 .text:0001B040 BEQ loc_1B054 .text:0001B044 MOV R0, #2 .text:0001B048 ADD R1, R4, #0x5C .text:0001B04C MOV R2, #0 .text:0001B050 BL sigprocmask .text:0001B054 .text:0001B054 loc_1B054 ; CODE XREF: siglongjmp+20j .text:0001B054 MOV R0, R4 ; env .text:0001B058 CMP R5, #0 .text:0001B05C MOVNE R1, R5 .text:0001B060 MOVEQ R1, #1 ; val .text:0001B064 BL __longjmp .text:0001B064 ; End of function siglongjmp .text:0001B064 .text:0001B068 ; --------------------------------------------------------------------------- .text:0001B068 LDMDB R11, {R4,R5,R11,SP,PC} .text:0001B068 ; --------------------------------------------------------------------------- .text:0001B06C ALIGN 0x10 .text:0001B070 .text:0001B070 ; =============== S U B R O U T I N E ======================================= .text:0001B070 .text:0001B070 ; Attributes: noreturn .text:0001B070 .text:0001B070 ; void _longjmp(struct __jmp_buf_tag *env, int val) .text:0001B070 EXPORT __longjmp .text:0001B070 __longjmp ; CODE XREF: siglongjmp+44p .text:0001B070 MOV R12, R0 .text:0001B074 MOVS R0, R1 .text:0001B078 MOVEQ R0, #1 .text:0001B07C LDC p2, c4, [R12],#0x30 .text:0001B080 LDMIA R12, {R4-R11,SP,PC} .text:0001B080 ; End of function __longjmp .text:0001B080 .text:0001B080 ; --------------------------------------------------------------------------- .text:0001B084 ALIGN 0x10 .text:0001B090 .text:0001B090 ; =============== S U B R O U T I N E ======================================= .text:0001B090 .text:0001B090 ; Attributes: bp-based frame .text:0001B090 .text:0001B090 EXPORT _longjmp_unwind .text:0001B090 _longjmp_unwind ; CODE XREF: siglongjmp+14p .text:0001B090 MOV R12, SP .text:0001B094 STMFD SP!, {R11,R12,LR,PC} .text:0001B098 SUB R11, R12, #4 .text:0001B09C LDMDB R11, {R11,SP,PC} .text:0001B09C ; End of function _longjmp_unwind .text:0001B09C .text:0001B0A0 .text:0001B0A0 ; =============== S U B R O U T I N E ======================================= .text:0001B0A0 .text:0001B0A0 ; Attributes: bp-based frame .text:0001B0A0 .text:0001B0A0 WEAK raise .text:0001B0A0 raise ; CODE XREF: abort+C8p .text:0001B0A0 ; abort+170p .text:0001B0A0 MOV R12, SP .text:0001B0A4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0001B0A8 SUB R11, R12, #4 .text:0001B0AC MOV R4, R0 .text:0001B0B0 BL getpid .text:0001B0B4 MOV R1, R4 .text:0001B0B8 BL kill .text:0001B0BC LDMDB R11, {R4,R11,SP,PC} .text:0001B0BC ; End of function raise .text:0001B0BC .text:0001B0C0 .text:0001B0C0 ; =============== S U B R O U T I N E ======================================= .text:0001B0C0 .text:0001B0C0 ; Attributes: bp-based frame .text:0001B0C0 .text:0001B0C0 WEAK sigaction .text:0001B0C0 sigaction ; CODE XREF: abort+140p .text:0001B0C0 ; system+70p ... .text:0001B0C0 .text:0001B0C0 var_15C = -0x15C .text:0001B0C0 var_158 = -0x158 .text:0001B0C0 var_154 = -0x154 .text:0001B0C0 var_150 = -0x150 .text:0001B0C0 var_D0 = -0xD0 .text:0001B0C0 var_CC = -0xCC .text:0001B0C0 var_C8 = -0xC8 .text:0001B0C0 var_C4 = -0xC4 .text:0001B0C0 var_44 = -0x44 .text:0001B0C0 var_40 = -0x40 .text:0001B0C0 var_3C = -0x3C .text:0001B0C0 var_38 = -0x38 .text:0001B0C0 var_34 = -0x34 .text:0001B0C0 var_30 = -0x30 .text:0001B0C0 var_2C = -0x2C .text:0001B0C0 var_28 = -0x28 .text:0001B0C0 .text:0001B0C0 MOV R12, SP ; Alternative name is '__sigaction' .text:0001B0C4 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0001B0C8 SUB R11, R12, #4 .text:0001B0CC MOV R8, R0 .text:0001B0D0 MOV R5, R1 .text:0001B0D4 MOV R6, R2 .text:0001B0D8 LDR R12, =__libc_missing_rt_sigs .text:0001B0DC SUB SP, SP, #0x138 .text:0001B0E0 LDR R3, [R12] .text:0001B0E4 MOV R10, R12 .text:0001B0E8 CMP R3, #0 .text:0001B0EC BNE loc_1B1F4 .text:0001B0F0 BL __errno_location .text:0001B0F4 CMP R5, #0 .text:0001B0F8 LDR R7, [R0] .text:0001B0FC BEQ loc_1B14C .text:0001B100 MOV R1, R5 .text:0001B104 LDR R3, [R1],#4 .text:0001B108 STR R3, [R11,#var_D0] .text:0001B10C SUB R0, R11, #-var_C4 .text:0001B110 MOV R2, #0x80 .text:0001B114 BL memcpy .text:0001B118 LDR R1, [R5,#0x84] .text:0001B11C TST R1, #0xC000000 .text:0001B120 STR R1, [R11,#var_CC] .text:0001B124 LDRNE R3, [R5,#0x88] .text:0001B128 STRNE R3, [R11,#var_C8] .text:0001B12C BNE loc_1B14C .text:0001B130 ORR R3, R1, #0x4000000 .text:0001B134 STR R3, [R11,#var_CC] .text:0001B138 LDR R2, =__default_sa_restorer .text:0001B13C LDR R3, =__default_rt_sa_restorer .text:0001B140 TST R1, #4 .text:0001B144 MOVNE R2, R3 .text:0001B148 STR R2, [R11,#var_C8] .text:0001B14C .text:0001B14C loc_1B14C ; CODE XREF: sigaction+3Cj .text:0001B14C ; sigaction+6Cj .text:0001B14C CMP R6, #0 .text:0001B150 MOV R3, #8 .text:0001B154 SUB R2, R11, #-var_15C .text:0001B158 MOVEQ R2, R6 .text:0001B15C CMP R5, #0 .text:0001B160 SUB R1, R11, #-var_D0 .text:0001B164 MOVEQ R1, R5 .text:0001B168 MOV R0, R8 .text:0001B16C SVC 0x9000AE .text:0001B170 MOV R4, R0 .text:0001B174 CMN R4, #0x1000 .text:0001B178 BLS loc_1B18C .text:0001B17C BL __errno_location .text:0001B180 RSB R3, R4, #0 .text:0001B184 MOV R4, 0xFFFFFFFF .text:0001B188 STR R3, [R0] .text:0001B18C .text:0001B18C loc_1B18C ; CODE XREF: sigaction+B8j .text:0001B18C CMP R4, #0 .text:0001B190 BGE loc_1B1A4 .text:0001B194 BL __errno_location .text:0001B198 LDR R3, [R0] .text:0001B19C CMP R3, #0x26 .text:0001B1A0 BEQ loc_1B1E4 .text:0001B1A4 .text:0001B1A4 loc_1B1A4 ; CODE XREF: sigaction+D0j .text:0001B1A4 MVN R3, R4 .text:0001B1A8 MOV R3, R3,LSR#31 .text:0001B1AC CMP R6, #0 .text:0001B1B0 MOVEQ R3, #0 .text:0001B1B4 CMP R3, #0 .text:0001B1B8 BEQ loc_1B2C4 .text:0001B1BC LDR R3, [R11,#var_15C] .text:0001B1C0 MOV R0, R6 .text:0001B1C4 STR R3, [R0],#4 .text:0001B1C8 SUB R1, R11, #-var_150 .text:0001B1CC MOV R2, #0x80 .text:0001B1D0 BL memcpy .text:0001B1D4 LDR R3, [R11,#var_158] .text:0001B1D8 STR R3, [R6,#0x84] .text:0001B1DC LDR R2, [R11,#var_154] .text:0001B1E0 B loc_1B2C0 .text:0001B1E4 ; --------------------------------------------------------------------------- .text:0001B1E4 .text:0001B1E4 loc_1B1E4 ; CODE XREF: sigaction+E0j .text:0001B1E4 BL __errno_location .text:0001B1E8 STR R7, [R0] .text:0001B1EC MOV R3, #1 .text:0001B1F0 STR R3, [R10] .text:0001B1F4 .text:0001B1F4 loc_1B1F4 ; CODE XREF: sigaction+2Cj .text:0001B1F4 CMP R5, #0 .text:0001B1F8 BEQ loc_1B250 .text:0001B1FC LDR R3, [R5] .text:0001B200 STR R3, [R11,#var_34] .text:0001B204 LDR R2, [R5,#4] .text:0001B208 STR R2, [R11,#var_30] .text:0001B20C LDR R1, [R5,#0x84] .text:0001B210 TST R1, #0xC000000 .text:0001B214 STR R1, [R11,#var_2C] .text:0001B218 BEQ loc_1B234 .text:0001B21C LDR R3, [R5,#0x88] .text:0001B220 STR R3, [R11,#var_28] .text:0001B224 B loc_1B250 .text:0001B224 ; --------------------------------------------------------------------------- .text:0001B228 off_1B228 DCD __libc_missing_rt_sigs ; DATA XREF: sigaction+18r .text:0001B22C off_1B22C DCD __default_sa_restorer ; DATA XREF: sigaction+78r .text:0001B230 off_1B230 DCD __default_rt_sa_restorer ; DATA XREF: sigaction+7Cr .text:0001B234 ; --------------------------------------------------------------------------- .text:0001B234 .text:0001B234 loc_1B234 ; CODE XREF: sigaction+158j .text:0001B234 ORR R3, R1, #0x4000000 .text:0001B238 STR R3, [R11,#var_2C] .text:0001B23C LDR R2, =__default_sa_restorer .text:0001B240 LDR R3, =__default_rt_sa_restorer .text:0001B244 TST R1, #4 .text:0001B248 MOVNE R2, R3 .text:0001B24C STR R2, [R11,#var_28] .text:0001B250 .text:0001B250 loc_1B250 ; CODE XREF: sigaction+138j .text:0001B250 ; sigaction+164j .text:0001B250 CMP R6, #0 .text:0001B254 SUB R2, R11, #-var_44 .text:0001B258 MOVEQ R2, R6 .text:0001B25C CMP R5, #0 .text:0001B260 SUB R1, R11, #-var_34 .text:0001B264 MOVEQ R1, R5 .text:0001B268 MOV R0, R8 .text:0001B26C SVC 0x900043 .text:0001B270 MOV R4, R0 .text:0001B274 CMN R4, #0x1000 .text:0001B278 BLS loc_1B28C .text:0001B27C BL __errno_location .text:0001B280 RSB R3, R4, #0 .text:0001B284 MOV R4, 0xFFFFFFFF .text:0001B288 STR R3, [R0] .text:0001B28C .text:0001B28C loc_1B28C ; CODE XREF: sigaction+1B8j .text:0001B28C MVN R3, R4 .text:0001B290 MOV R3, R3,LSR#31 .text:0001B294 CMP R6, #0 .text:0001B298 MOVEQ R3, #0 .text:0001B29C CMP R3, #0 .text:0001B2A0 BEQ loc_1B2C4 .text:0001B2A4 LDR R3, [R11,#var_44] .text:0001B2A8 STR R3, [R6] .text:0001B2AC LDR R2, [R11,#var_40] .text:0001B2B0 STR R2, [R6,#4] .text:0001B2B4 LDR R3, [R11,#var_3C] .text:0001B2B8 STR R3, [R6,#0x84] .text:0001B2BC LDR R2, [R11,#var_38] .text:0001B2C0 .text:0001B2C0 loc_1B2C0 ; CODE XREF: sigaction+120j .text:0001B2C0 STR R2, [R6,#0x88] .text:0001B2C4 .text:0001B2C4 loc_1B2C4 ; CODE XREF: sigaction+F8j .text:0001B2C4 ; sigaction+1E0j .text:0001B2C4 MOV R0, R4 .text:0001B2C8 B locret_1B2D4 .text:0001B2C8 ; --------------------------------------------------------------------------- .text:0001B2CC off_1B2CC DCD __default_sa_restorer ; DATA XREF: sigaction+17Cr .text:0001B2D0 off_1B2D0 DCD __default_rt_sa_restorer ; DATA XREF: sigaction+180r .text:0001B2D4 ; --------------------------------------------------------------------------- .text:0001B2D4 .text:0001B2D4 locret_1B2D4 ; CODE XREF: sigaction+208j .text:0001B2D4 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0001B2D4 ; End of function sigaction .text:0001B2D4 .text:0001B2D8 .text:0001B2D8 ; =============== S U B R O U T I N E ======================================= .text:0001B2D8 .text:0001B2D8 ; Attributes: bp-based frame .text:0001B2D8 .text:0001B2D8 WEAK sigprocmask .text:0001B2D8 sigprocmask ; CODE XREF: abort+78p .text:0001B2D8 ; system+108p ... .text:0001B2D8 MOV R12, SP .text:0001B2DC STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0001B2E0 SUB R11, R12, #4 .text:0001B2E4 MOV R8, R0 .text:0001B2E8 LDR R10, =__libc_missing_rt_sigs .text:0001B2EC MOV R7, R1 .text:0001B2F0 LDR R3, [R10] .text:0001B2F4 MOV R5, R2 .text:0001B2F8 CMP R3, #0 .text:0001B2FC BNE loc_1B368 .text:0001B300 BL __errno_location .text:0001B304 MOV R2, R5 .text:0001B308 MOV R1, R7 .text:0001B30C LDR R6, [R0] .text:0001B310 MOV R0, R8 .text:0001B314 MOV R3, #8 .text:0001B318 SVC 0x9000AF .text:0001B31C MOV R4, R0 .text:0001B320 CMN R4, #0x1000 .text:0001B324 BLS loc_1B338 .text:0001B328 BL __errno_location .text:0001B32C RSB R3, R4, #0 .text:0001B330 MOV R4, 0xFFFFFFFF .text:0001B334 STR R3, [R0] .text:0001B338 .text:0001B338 loc_1B338 ; CODE XREF: sigprocmask+4Cj .text:0001B338 CMP R4, #0 .text:0001B33C BGE loc_1B350 .text:0001B340 BL __errno_location .text:0001B344 LDR R3, [R0] .text:0001B348 CMP R3, #0x26 .text:0001B34C BEQ loc_1B358 .text:0001B350 .text:0001B350 loc_1B350 ; CODE XREF: sigprocmask+64j .text:0001B350 MOV R0, R4 .text:0001B354 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0001B358 ; --------------------------------------------------------------------------- .text:0001B358 .text:0001B358 loc_1B358 ; CODE XREF: sigprocmask+74j .text:0001B358 BL __errno_location .text:0001B35C STR R6, [R0] .text:0001B360 MOV R3, #1 .text:0001B364 STR R3, [R10] .text:0001B368 .text:0001B368 loc_1B368 ; CODE XREF: sigprocmask+24j .text:0001B368 MOV R2, R5 .text:0001B36C MOV R1, R7 .text:0001B370 MOV R0, R8 .text:0001B374 SVC 0x90007E .text:0001B378 MOV R4, R0 .text:0001B37C CMN R4, #0x1000 .text:0001B380 BLS loc_1B394 .text:0001B384 BL __errno_location .text:0001B388 RSB R3, R4, #0 .text:0001B38C MOV R4, 0xFFFFFFFF .text:0001B390 STR R3, [R0] .text:0001B394 .text:0001B394 loc_1B394 ; CODE XREF: sigprocmask+A8j .text:0001B394 MOV R0, R4 .text:0001B398 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0001B398 ; End of function sigprocmask .text:0001B398 .text:0001B398 ; --------------------------------------------------------------------------- .text:0001B39C off_1B39C DCD __libc_missing_rt_sigs ; DATA XREF: sigprocmask+10r .text:0001B3A0 .text:0001B3A0 ; =============== S U B R O U T I N E ======================================= .text:0001B3A0 .text:0001B3A0 .text:0001B3A0 WEAK kill .text:0001B3A0 kill ; CODE XREF: raise+18p .text:0001B3A0 SVC 0x900025 .text:0001B3A4 CMN R0, #0x1000 .text:0001B3A8 MOVCC PC, LR .text:0001B3AC B __syscall_error .text:0001B3AC ; End of function kill .text:0001B3AC .text:0001B3B0 .text:0001B3B0 ; =============== S U B R O U T I N E ======================================= .text:0001B3B0 .text:0001B3B0 .text:0001B3B0 EXPORT __default_sa_restorer .text:0001B3B0 __default_sa_restorer ; DATA XREF: sigaction+78o .text:0001B3B0 ; sigaction:off_1B22Co ... .text:0001B3B0 SVC 0x900077 .text:0001B3B4 ANDEQ R0, R0, R0 .text:0001B3B8 ANDEQ R0, R0, R0 .text:0001B3BC ANDEQ R0, R0, R0 .text:0001B3BC ; End of function __default_sa_restorer .text:0001B3BC .text:0001B3C0 .text:0001B3C0 ; =============== S U B R O U T I N E ======================================= .text:0001B3C0 .text:0001B3C0 .text:0001B3C0 EXPORT __default_rt_sa_restorer .text:0001B3C0 __default_rt_sa_restorer ; DATA XREF: sigaction+7Co .text:0001B3C0 ; sigaction:off_1B230o ... .text:0001B3C0 SVC 0x9000AD .text:0001B3C4 NOP .text:0001B3C8 NOP .text:0001B3CC NOP .text:0001B3CC ; End of function __default_rt_sa_restorer .text:0001B3CC .text:0001B3D0 .text:0001B3D0 ; =============== S U B R O U T I N E ======================================= .text:0001B3D0 .text:0001B3D0 ; Attributes: bp-based frame .text:0001B3D0 .text:0001B3D0 EXPORT bsearch .text:0001B3D0 bsearch ; CODE XREF: _nl_expand_alias+64p .text:0001B3D0 .text:0001B3D0 arg_0 = 4 .text:0001B3D0 .text:0001B3D0 MOV R12, SP .text:0001B3D4 STMFD SP!, {R4-R12,LR,PC} .text:0001B3D8 SUB R11, R12, #4 .text:0001B3DC MOV R7, #0 .text:0001B3E0 MOV R6, R2 .text:0001B3E4 CMP R7, R6 .text:0001B3E8 MOV R9, R0 .text:0001B3EC MOV R10, R1 .text:0001B3F0 MOV R8, R3 .text:0001B3F4 BCS loc_1B438 .text:0001B3F8 .text:0001B3F8 loc_1B3F8 ; CODE XREF: bsearch+64j .text:0001B3F8 ADD R3, R7, R6 .text:0001B3FC MOV R4, R3,LSR#1 .text:0001B400 MLA R5, R8, R4, R10 .text:0001B404 MOV R0, R9 .text:0001B408 LDR R3, [R11,#arg_0] .text:0001B40C MOV R1, R5 .text:0001B410 MOV LR, PC .text:0001B414 MOV PC, R3 .text:0001B418 CMP R0, #0 .text:0001B41C MOVLT R6, R4 .text:0001B420 BLT loc_1B430 .text:0001B424 MOVLE R0, R5 .text:0001B428 LDMLEDB R11, {R4-R11,SP,PC} .text:0001B42C ADD R7, R4, #1 .text:0001B430 .text:0001B430 loc_1B430 ; CODE XREF: bsearch+50j .text:0001B430 CMP R7, R6 .text:0001B434 BCC loc_1B3F8 .text:0001B438 .text:0001B438 loc_1B438 ; CODE XREF: bsearch+24j .text:0001B438 MOV R0, #0 .text:0001B43C LDMDB R11, {R4-R11,SP,PC} .text:0001B43C ; End of function bsearch .text:0001B43C .text:0001B440 .text:0001B440 ; =============== S U B R O U T I N E ======================================= .text:0001B440 .text:0001B440 ; Attributes: bp-based frame .text:0001B440 .text:0001B440 msort_with_tmp ; CODE XREF: msort_with_tmp+48p .text:0001B440 ; msort_with_tmp+64p ... .text:0001B440 .text:0001B440 var_34 = -0x34 .text:0001B440 var_30 = -0x30 .text:0001B440 var_2C = -0x2C .text:0001B440 arg_0 = 4 .text:0001B440 .text:0001B440 MOV R12, SP .text:0001B444 STMFD SP!, {R4-R12,LR,PC} .text:0001B448 SUB R11, R12, #4 .text:0001B44C SUB SP, SP, #0xC .text:0001B450 STR R1, [R11,#var_30] .text:0001B454 MOV R10, R2 .text:0001B458 MOV R9, R3 .text:0001B45C STR R0, [R11,#var_2C] .text:0001B460 CMP R1, #1 .text:0001B464 BLS locret_1B594 .text:0001B468 MOV R4, R1,LSR#1 .text:0001B46C MOV R7, R0 .text:0001B470 MLA R7, R10, R4, R7 .text:0001B474 RSB R5, R4, R1 .text:0001B478 LDR R1, [R11,#arg_0] .text:0001B47C STR R1, [SP,#0x34+var_34] .text:0001B480 MOV R8, R0 .text:0001B484 MOV R1, R4 .text:0001B488 BL msort_with_tmp .text:0001B48C LDR R2, [R11,#arg_0] .text:0001B490 STR R2, [SP,#0x34+var_34] .text:0001B494 MOV R1, R5 .text:0001B498 MOV R3, R9 .text:0001B49C MOV R2, R10 .text:0001B4A0 MOV R0, R7 .text:0001B4A4 BL msort_with_tmp .text:0001B4A8 CMP R10, #4 .text:0001B4AC LDR R6, [R11,#arg_0] .text:0001B4B0 BNE loc_1B558 .text:0001B4B4 LDR R3, [R11,#var_2C] .text:0001B4B8 TST R3, #3 .text:0001B4BC BNE loc_1B558 .text:0001B4C0 CMP R4, #0 .text:0001B4C4 CMPNE R5, #0 .text:0001B4C8 BEQ loc_1B564 .text:0001B4CC .text:0001B4CC loc_1B4CC ; CODE XREF: msort_with_tmp+BCj .text:0001B4CC MOV R0, R8 .text:0001B4D0 MOV R1, R7 .text:0001B4D4 MOV LR, PC .text:0001B4D8 MOV PC, R9 .text:0001B4DC CMP R0, #0 .text:0001B4E0 LDRLE R3, [R8],#4 .text:0001B4E4 SUBLE R4, R4, #1 .text:0001B4E8 LDRGT R3, [R7],#4 .text:0001B4EC SUBGT R5, R5, #1 .text:0001B4F0 STR R3, [R6],#4 .text:0001B4F4 CMP R4, #0 .text:0001B4F8 CMPNE R5, #0 .text:0001B4FC BNE loc_1B4CC .text:0001B500 B loc_1B564 .text:0001B504 ; --------------------------------------------------------------------------- .text:0001B504 .text:0001B504 loc_1B504 ; CODE XREF: msort_with_tmp+120j .text:0001B504 MOV R0, R8 .text:0001B508 MOV R1, R7 .text:0001B50C MOV LR, PC .text:0001B510 MOV PC, R9 .text:0001B514 CMP R0, #0 .text:0001B518 BGT loc_1B53C .text:0001B51C MOV R0, R6 .text:0001B520 MOV R1, R8 .text:0001B524 MOV R2, R10 .text:0001B528 BL mempcpy .text:0001B52C MOV R6, R0 .text:0001B530 ADD R8, R8, R10 .text:0001B534 SUB R4, R4, #1 .text:0001B538 B loc_1B558 .text:0001B53C ; --------------------------------------------------------------------------- .text:0001B53C .text:0001B53C loc_1B53C ; CODE XREF: msort_with_tmp+D8j .text:0001B53C MOV R0, R6 .text:0001B540 MOV R1, R7 .text:0001B544 MOV R2, R10 .text:0001B548 BL mempcpy .text:0001B54C MOV R6, R0 .text:0001B550 ADD R7, R7, R10 .text:0001B554 SUB R5, R5, #1 .text:0001B558 .text:0001B558 loc_1B558 ; CODE XREF: msort_with_tmp+70j .text:0001B558 ; msort_with_tmp+7Cj ... .text:0001B558 CMP R4, #0 .text:0001B55C CMPNE R5, #0 .text:0001B560 BNE loc_1B504 .text:0001B564 .text:0001B564 loc_1B564 ; CODE XREF: msort_with_tmp+88j .text:0001B564 ; msort_with_tmp+C0j .text:0001B564 CMP R4, #0 .text:0001B568 BEQ loc_1B57C .text:0001B56C MUL R2, R10, R4 .text:0001B570 MOV R0, R6 .text:0001B574 MOV R1, R8 .text:0001B578 BL memcpy .text:0001B57C .text:0001B57C loc_1B57C ; CODE XREF: msort_with_tmp+128j .text:0001B57C LDR R1, [R11,#var_30] .text:0001B580 RSB R3, R5, R1 .text:0001B584 MUL R2, R10, R3 .text:0001B588 LDR R0, [R11,#var_2C] .text:0001B58C LDR R1, [R11,#arg_0] .text:0001B590 BL memcpy .text:0001B594 .text:0001B594 locret_1B594 ; CODE XREF: msort_with_tmp+24j .text:0001B594 LDMDB R11, {R4-R11,SP,PC} .text:0001B594 ; End of function msort_with_tmp .text:0001B594 .text:0001B598 .text:0001B598 ; =============== S U B R O U T I N E ======================================= .text:0001B598 .text:0001B598 ; Attributes: bp-based frame .text:0001B598 .text:0001B598 EXPORT qsort .text:0001B598 qsort ; CODE XREF: read_alias_file+488p .text:0001B598 .text:0001B598 var_2C = -0x2C .text:0001B598 var_28 = -0x28 .text:0001B598 .text:0001B598 MOV R12, SP .text:0001B59C STMFD SP!, {R4-R12,LR,PC} .text:0001B5A0 MOV R6, R1 .text:0001B5A4 MOV R8, R2 .text:0001B5A8 MUL R5, R8, R6 .text:0001B5AC SUB R11, R12, #4 .text:0001B5B0 MOV R7, R0 .text:0001B5B4 MOV R10, R3 .text:0001B5B8 SUB SP, SP, #4 .text:0001B5BC CMP R5, #0x400 .text:0001B5C0 BCS loc_1B5E8 .text:0001B5C4 ADD R3, R5, #3 .text:0001B5C8 BIC R3, R3, #3 .text:0001B5CC RSB SP, R3, SP .text:0001B5D0 ADD R2, SP, #0x2C+var_28 .text:0001B5D4 STR R2, [SP,#0x2C+var_2C] .text:0001B5D8 MOV R2, R8 .text:0001B5DC MOV R3, R10 .text:0001B5E0 BL msort_with_tmp .text:0001B5E4 B locret_1B6B8 .text:0001B5E8 ; --------------------------------------------------------------------------- .text:0001B5E8 .text:0001B5E8 loc_1B5E8 ; CODE XREF: qsort+28j .text:0001B5E8 LDR R2, =phys_pages.87 .text:0001B5EC LDR R9, =pagesize.88 .text:0001B5F0 LDR R3, [R2] .text:0001B5F4 MOV R4, R2 .text:0001B5F8 CMP R3, #0 .text:0001B5FC BNE loc_1B638 .text:0001B600 MOV R0, #0x55 .text:0001B604 BL sysconf .text:0001B608 CMN R0, #1 .text:0001B60C STR R0, [R4] .text:0001B610 MOVEQ R3, 0x7FFFFFFF .text:0001B614 STREQ R3, [R4] .text:0001B618 LDR R3, [R4] .text:0001B61C CMP R3, #0 .text:0001B620 ADDLT R3, R3, #3 .text:0001B624 MOV R3, R3,ASR#2 .text:0001B628 STR R3, [R4] .text:0001B62C MOV R0, #0x1E .text:0001B630 BL sysconf .text:0001B634 STR R0, [R9] .text:0001B638 .text:0001B638 loc_1B638 ; CODE XREF: qsort+64j .text:0001B638 LDR R1, [R9] .text:0001B63C MOV R0, R5 .text:0001B640 BL __udivsi3 .text:0001B644 LDR R3, [R4] .text:0001B648 CMP R0, R3 .text:0001B64C BHI loc_1B670 .text:0001B650 BL __errno_location .text:0001B654 LDR R4, [R0] .text:0001B658 MOV R0, R5 .text:0001B65C BL malloc .text:0001B660 SUBS R5, R0, #0 .text:0001B664 BNE loc_1B690 .text:0001B668 BL __errno_location .text:0001B66C STR R4, [R0] .text:0001B670 .text:0001B670 loc_1B670 ; CODE XREF: qsort+B4j .text:0001B670 MOV R0, R7 .text:0001B674 MOV R1, R6 .text:0001B678 MOV R2, R8 .text:0001B67C MOV R3, R10 .text:0001B680 BL _quicksort .text:0001B684 B locret_1B6B8 .text:0001B684 ; --------------------------------------------------------------------------- .text:0001B688 off_1B688 DCD phys_pages.87 ; DATA XREF: qsort:loc_1B5E8r .text:0001B68C off_1B68C DCD pagesize.88 ; DATA XREF: qsort+54r .text:0001B690 ; --------------------------------------------------------------------------- .text:0001B690 .text:0001B690 loc_1B690 ; CODE XREF: qsort+CCj .text:0001B690 BL __errno_location .text:0001B694 STR R4, [R0] .text:0001B698 STR R5, [SP,#0x2C+var_2C] .text:0001B69C MOV R0, R7 .text:0001B6A0 MOV R1, R6 .text:0001B6A4 MOV R2, R8 .text:0001B6A8 MOV R3, R10 .text:0001B6AC BL msort_with_tmp .text:0001B6B0 MOV R0, R5 .text:0001B6B4 BL free .text:0001B6B8 .text:0001B6B8 locret_1B6B8 ; CODE XREF: qsort+4Cj .text:0001B6B8 ; qsort+ECj .text:0001B6B8 LDMDB R11, {R4-R11,SP,PC} .text:0001B6B8 ; End of function qsort .text:0001B6B8 .text:0001B6BC .text:0001B6BC ; =============== S U B R O U T I N E ======================================= .text:0001B6BC .text:0001B6BC ; Attributes: bp-based frame .text:0001B6BC .text:0001B6BC EXPORT getenv .text:0001B6BC getenv ; CODE XREF: ptmalloc_init+14Cp .text:0001B6BC ; ptmalloc_init+178p ... .text:0001B6BC MOV R12, SP .text:0001B6C0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0001B6C4 SUB R11, R12, #4 .text:0001B6C8 MOV R5, R0 .text:0001B6CC BL strlen .text:0001B6D0 LDR R3, =environ .text:0001B6D4 LDR R12, [R3] .text:0001B6D8 MOV R6, R0 .text:0001B6DC CMP R12, #0 .text:0001B6E0 BEQ loc_1B6F0 .text:0001B6E4 LDRB R3, [R5] .text:0001B6E8 CMP R3, #0 .text:0001B6EC BNE loc_1B6F8 .text:0001B6F0 .text:0001B6F0 loc_1B6F0 ; CODE XREF: getenv+24j .text:0001B6F0 MOV R0, #0 .text:0001B6F4 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B6F8 ; --------------------------------------------------------------------------- .text:0001B6F8 .text:0001B6F8 loc_1B6F8 ; CODE XREF: getenv+30j .text:0001B6F8 LDRB R3, [R5,#1] .text:0001B6FC CMP R3, #0 .text:0001B700 BNE loc_1B758 .text:0001B704 LDRB R2, [R5] .text:0001B708 MOV R4, R12 .text:0001B70C LDR R3, [R4] .text:0001B710 ORR R7, R2, #0x3D00 .text:0001B714 CMP R3, #0 .text:0001B718 BEQ loc_1B7CC .text:0001B71C .text:0001B71C loc_1B71C ; CODE XREF: getenv+80j .text:0001B71C LDR R0, [R4] .text:0001B720 LDRB R3, [R0] .text:0001B724 LDRB R2, [R0,#1] .text:0001B728 ORR R3, R3, R2,LSL#8 .text:0001B72C CMP R7, R3 .text:0001B730 BEQ loc_1B744 .text:0001B734 LDR R3, [R4,#4]! .text:0001B738 CMP R3, #0 .text:0001B73C BNE loc_1B71C .text:0001B740 B loc_1B7CC .text:0001B744 ; --------------------------------------------------------------------------- .text:0001B744 .text:0001B744 loc_1B744 ; CODE XREF: getenv+74j .text:0001B744 ADD R0, R0, #2 .text:0001B748 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B74C ; --------------------------------------------------------------------------- .text:0001B74C .text:0001B74C loc_1B74C ; CODE XREF: getenv+100j .text:0001B74C ADD R0, R6, #3 .text:0001B750 ADD R0, R1, R0 .text:0001B754 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B758 ; --------------------------------------------------------------------------- .text:0001B758 .text:0001B758 loc_1B758 ; CODE XREF: getenv+44j .text:0001B758 LDRB R1, [R5] .text:0001B75C SUB R6, R6, #2 .text:0001B760 LDRB R2, [R5,#1] .text:0001B764 ADD R5, R5, #2 .text:0001B768 MOV R4, R12 .text:0001B76C LDR R3, [R4] .text:0001B770 ORR R7, R1, R2,LSL#8 .text:0001B774 CMP R3, #0 .text:0001B778 BEQ loc_1B7CC .text:0001B77C .text:0001B77C loc_1B77C ; CODE XREF: getenv+10Cj .text:0001B77C LDR R0, [R4] .text:0001B780 LDRB R3, [R0] .text:0001B784 LDRB R2, [R0,#1] .text:0001B788 ORR R3, R3, R2,LSL#8 .text:0001B78C CMP R7, R3 .text:0001B790 BNE loc_1B7C0 .text:0001B794 ADD R0, R0, #2 .text:0001B798 MOV R1, R5 .text:0001B79C MOV R2, R6 .text:0001B7A0 BL strncmp .text:0001B7A4 CMP R0, #0 .text:0001B7A8 BNE loc_1B7C0 .text:0001B7AC LDR R1, [R4] .text:0001B7B0 ADD R3, R6, R1 .text:0001B7B4 LDRB R2, [R3,#2] .text:0001B7B8 CMP R2, #0x3D .text:0001B7BC BEQ loc_1B74C .text:0001B7C0 .text:0001B7C0 loc_1B7C0 ; CODE XREF: getenv+D4j .text:0001B7C0 ; getenv+ECj .text:0001B7C0 LDR R3, [R4,#4]! .text:0001B7C4 CMP R3, #0 .text:0001B7C8 BNE loc_1B77C .text:0001B7CC .text:0001B7CC loc_1B7CC ; CODE XREF: getenv+5Cj .text:0001B7CC ; getenv+84j ... .text:0001B7CC MOV R0, #0 .text:0001B7D0 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B7D0 ; End of function getenv .text:0001B7D0 .text:0001B7D0 ; --------------------------------------------------------------------------- .text:0001B7D4 off_1B7D4 DCD environ ; DATA XREF: getenv+14r .text:0001B7D8 .text:0001B7D8 ; =============== S U B R O U T I N E ======================================= .text:0001B7D8 .text:0001B7D8 ; Attributes: bp-based frame .text:0001B7D8 .text:0001B7D8 EXPORT __add_to_environ .text:0001B7D8 __add_to_environ ; CODE XREF: setenv+14p .text:0001B7D8 .text:0001B7D8 var_30 = -0x30 .text:0001B7D8 var_2C = -0x2C .text:0001B7D8 .text:0001B7D8 MOV R12, SP .text:0001B7DC STMFD SP!, {R4-R12,LR,PC} .text:0001B7E0 SUB R11, R12, #4 .text:0001B7E4 SUB SP, SP, #8 .text:0001B7E8 STR R1, [R11,#var_2C] .text:0001B7EC STR R2, [R11,#var_30] .text:0001B7F0 MOV R10, R0 .text:0001B7F4 MOV R4, R3 .text:0001B7F8 BL strlen .text:0001B7FC LDR R2, [R11,#var_2C] .text:0001B800 MOV R6, R0 .text:0001B804 CMP R2, #0 .text:0001B808 BEQ loc_1B81C .text:0001B80C MOV R0, R2 .text:0001B810 BL strlen .text:0001B814 ADD R9, R0, #1 .text:0001B818 B loc_1B820 .text:0001B81C ; --------------------------------------------------------------------------- .text:0001B81C .text:0001B81C loc_1B81C ; CODE XREF: __add_to_environ+30j .text:0001B81C LDR R9, [R11,#var_2C] .text:0001B820 .text:0001B820 loc_1B820 ; CODE XREF: __add_to_environ+40j .text:0001B820 LDR R3, =0 .text:0001B824 CMP R3, #0 .text:0001B828 BEQ loc_1B838 .text:0001B82C LDR R0, =envlock .text:0001B830 MOV LR, PC .text:0001B834 MOV PC, R3 .text:0001B838 .text:0001B838 loc_1B838 ; CODE XREF: __add_to_environ+50j .text:0001B838 LDR R3, =environ .text:0001B83C LDR R5, [R3] .text:0001B840 MOV R8, #0 .text:0001B844 CMP R5, R8 .text:0001B848 BEQ loc_1B890 .text:0001B84C LDR R3, [R5] .text:0001B850 CMP R3, R8 .text:0001B854 BEQ loc_1B890 .text:0001B858 .text:0001B858 loc_1B858 ; CODE XREF: __add_to_environ+B4j .text:0001B858 MOV R1, R10 .text:0001B85C LDR R0, [R5] .text:0001B860 MOV R2, R6 .text:0001B864 BL strncmp .text:0001B868 CMP R0, #0 .text:0001B86C BNE loc_1B880 .text:0001B870 LDR R3, [R5] .text:0001B874 LDRB R2, [R3,R6] .text:0001B878 CMP R2, #0x3D .text:0001B87C BEQ loc_1B890 .text:0001B880 .text:0001B880 loc_1B880 ; CODE XREF: __add_to_environ+94j .text:0001B880 LDR R3, [R5,#4]! .text:0001B884 ADD R8, R8, #1 .text:0001B888 CMP R3, #0 .text:0001B88C BNE loc_1B858 .text:0001B890 .text:0001B890 loc_1B890 ; CODE XREF: __add_to_environ+70j .text:0001B890 ; __add_to_environ+7Cj ... .text:0001B890 CMP R5, #0 .text:0001B894 BEQ loc_1B8A4 .text:0001B898 LDR R3, [R5] .text:0001B89C CMP R3, #0 .text:0001B8A0 BNE loc_1B9F4 .text:0001B8A4 .text:0001B8A4 loc_1B8A4 ; CODE XREF: __add_to_environ+BCj .text:0001B8A4 LDR R4, =last_environ .text:0001B8A8 ADD R1, R8, #2 .text:0001B8AC LDR R0, [R4] .text:0001B8B0 MOV R1, R1,LSL#2 .text:0001B8B4 BL realloc .text:0001B8B8 SUBS R5, R0, #0 .text:0001B8BC BNE loc_1B8DC .text:0001B8C0 LDR R3, =0 .text:0001B8C4 CMP R3, #0 .text:0001B8C8 BEQ loc_1BA9C .text:0001B8CC LDR R0, =envlock .text:0001B8D0 MOV LR, PC .text:0001B8D4 MOV PC, R3 .text:0001B8D8 B loc_1BA9C .text:0001B8DC ; --------------------------------------------------------------------------- .text:0001B8DC .text:0001B8DC loc_1B8DC ; CODE XREF: __add_to_environ+E4j .text:0001B8DC LDR R2, [R11,#var_30] .text:0001B8E0 CMP R2, #0 .text:0001B8E4 STRNE R2, [R5,R8,LSL#2] .text:0001B8E8 BNE loc_1B9AC .text:0001B8EC ADD R2, R9, #1 .text:0001B8F0 ADD R7, R6, R2 .text:0001B8F4 ADD R3, R7, #3 .text:0001B8F8 BIC R3, R3, #3 .text:0001B8FC RSB SP, R3, SP .text:0001B900 MOV R0, SP .text:0001B904 MOV R1, R10 .text:0001B908 MOV R2, R6 .text:0001B90C BL mempcpy .text:0001B910 LDR R1, =asc_56D00 ; "=" .text:0001B914 MOV R2, #1 .text:0001B918 BL mempcpy .text:0001B91C LDR R1, [R11,#var_2C] .text:0001B920 MOV R2, R9 .text:0001B924 BL mempcpy .text:0001B928 LDR R6, =known_values .text:0001B92C MOV R0, SP .text:0001B930 LDR R10, =strcmp .text:0001B934 MOV R1, R6 .text:0001B938 MOV R2, R10 .text:0001B93C BL tfind .text:0001B940 CMP R0, #0 .text:0001B944 LDR R2, [R11,#var_30] .text:0001B948 LDRNE R2, [R0] .text:0001B94C CMP R2, #0 .text:0001B950 STR R2, [R5,R8,LSL#2] .text:0001B954 BNE loc_1B9AC .text:0001B958 MOV R0, R7 .text:0001B95C BL malloc .text:0001B960 CMP R0, #0 .text:0001B964 STR R0, [R5,R8,LSL#2] .text:0001B968 BNE loc_1B990 .text:0001B96C BL __errno_location .text:0001B970 LDR R3, =0 .text:0001B974 CMP R3, #0 .text:0001B978 MOV R3, #0xC .text:0001B97C STR R3, [R0] .text:0001B980 BEQ loc_1BA9C .text:0001B984 LDR R0, =envlock .text:0001B988 LDR R2, =0 .text:0001B98C B loc_1BA94 .text:0001B990 ; --------------------------------------------------------------------------- .text:0001B990 .text:0001B990 loc_1B990 ; CODE XREF: __add_to_environ+190j .text:0001B990 MOV R1, SP .text:0001B994 MOV R2, R7 .text:0001B998 BL memcpy .text:0001B99C MOV R1, R6 .text:0001B9A0 LDR R0, [R5,R8,LSL#2] .text:0001B9A4 MOV R2, R10 .text:0001B9A8 BL tsearch .text:0001B9AC .text:0001B9AC loc_1B9AC ; CODE XREF: __add_to_environ+110j .text:0001B9AC ; __add_to_environ+17Cj .text:0001B9AC LDR R3, =environ .text:0001B9B0 LDR R2, =last_environ .text:0001B9B4 LDR R1, [R3] .text:0001B9B8 LDR R3, [R2] .text:0001B9BC MOV R4, R8,LSL#2 .text:0001B9C0 CMP R1, R3 .text:0001B9C4 BEQ loc_1B9D4 .text:0001B9C8 MOV R0, R5 .text:0001B9CC MOV R2, R4 .text:0001B9D0 BL memcpy .text:0001B9D4 .text:0001B9D4 loc_1B9D4 ; CODE XREF: __add_to_environ+1ECj .text:0001B9D4 ADD R2, R4, R5 .text:0001B9D8 MOV R3, #0 .text:0001B9DC STR R3, [R2,#4] .text:0001B9E0 LDR R3, =environ .text:0001B9E4 STR R5, [R3] .text:0001B9E8 LDR R2, =last_environ .text:0001B9EC STR R5, [R2] .text:0001B9F0 B loc_1BAE8 .text:0001B9F4 ; --------------------------------------------------------------------------- .text:0001B9F4 .text:0001B9F4 loc_1B9F4 ; CODE XREF: __add_to_environ+C8j .text:0001B9F4 CMP R4, #0 .text:0001B9F8 BEQ loc_1BAE8 .text:0001B9FC LDR R3, [R11,#var_30] .text:0001BA00 CMP R3, #0 .text:0001BA04 MOVNE R4, R3 .text:0001BA08 BNE loc_1BAE4 .text:0001BA0C ADD R2, R9, #1 .text:0001BA10 ADD R7, R6, R2 .text:0001BA14 ADD R3, R7, #3 .text:0001BA18 BIC R3, R3, #3 .text:0001BA1C RSB SP, R3, SP .text:0001BA20 MOV R0, SP .text:0001BA24 MOV R1, R10 .text:0001BA28 MOV R2, R6 .text:0001BA2C BL mempcpy .text:0001BA30 LDR R1, =asc_56D00 ; "=" .text:0001BA34 MOV R2, #1 .text:0001BA38 BL mempcpy .text:0001BA3C LDR R1, [R11,#var_2C] .text:0001BA40 MOV R2, R9 .text:0001BA44 BL mempcpy .text:0001BA48 LDR R8, =known_values .text:0001BA4C MOV R0, SP .text:0001BA50 LDR R6, =strcmp .text:0001BA54 MOV R1, R8 .text:0001BA58 MOV R2, R6 .text:0001BA5C BL tfind .text:0001BA60 CMP R0, #0 .text:0001BA64 LDR R2, [R11,#var_30] .text:0001BA68 LDRNE R2, [R0] .text:0001BA6C SUBS R4, R2, #0 .text:0001BA70 BNE loc_1BAE4 .text:0001BA74 MOV R0, R7 .text:0001BA78 BL malloc .text:0001BA7C SUBS R4, R0, #0 .text:0001BA80 BNE loc_1BAC4 .text:0001BA84 LDR R2, =0 .text:0001BA88 CMP R2, #0 .text:0001BA8C BEQ loc_1BA9C .text:0001BA90 LDR R0, =envlock .text:0001BA94 .text:0001BA94 loc_1BA94 ; CODE XREF: __add_to_environ+1B4j .text:0001BA94 MOV LR, PC .text:0001BA98 MOV PC, R2 .text:0001BA9C .text:0001BA9C loc_1BA9C ; CODE XREF: __add_to_environ+F0j .text:0001BA9C ; __add_to_environ+100j ... .text:0001BA9C MOV R0, 0xFFFFFFFF .text:0001BAA0 B loc_1BB04 .text:0001BAA0 ; --------------------------------------------------------------------------- .text:0001BAA4 off_1BAA4 DCD 0 ; DATA XREF: __add_to_environ:loc_1B820r .text:0001BAA8 off_1BAA8 DCD envlock ; DATA XREF: __add_to_environ+54r .text:0001BAA8 ; __add_to_environ+F4r ... .text:0001BAAC off_1BAAC DCD environ ; DATA XREF: __add_to_environ:loc_1B838r .text:0001BAAC ; __add_to_environ:loc_1B9ACr ... .text:0001BAB0 off_1BAB0 DCD last_environ ; DATA XREF: __add_to_environ:loc_1B8A4r .text:0001BAB0 ; __add_to_environ+1D8r ... .text:0001BAB4 off_1BAB4 DCD 0 ; DATA XREF: __add_to_environ+E8r .text:0001BAB4 ; __add_to_environ+198r ... .text:0001BAB8 off_1BAB8 DCD asc_56D00 ; DATA XREF: __add_to_environ+138r .text:0001BAB8 ; __add_to_environ+258r .text:0001BAB8 ; "=" .text:0001BABC off_1BABC DCD known_values ; DATA XREF: __add_to_environ+150r .text:0001BABC ; __add_to_environ+270r .text:0001BAC0 off_1BAC0 DCD strcmp ; DATA XREF: __add_to_environ+158r .text:0001BAC0 ; __add_to_environ+278r .text:0001BAC4 ; --------------------------------------------------------------------------- .text:0001BAC4 .text:0001BAC4 loc_1BAC4 ; CODE XREF: __add_to_environ+2A8j .text:0001BAC4 MOV R0, R4 .text:0001BAC8 MOV R1, SP .text:0001BACC MOV R2, R7 .text:0001BAD0 BL memcpy .text:0001BAD4 MOV R0, R4 .text:0001BAD8 MOV R1, R8 .text:0001BADC MOV R2, R6 .text:0001BAE0 BL tsearch .text:0001BAE4 .text:0001BAE4 loc_1BAE4 ; CODE XREF: __add_to_environ+230j .text:0001BAE4 ; __add_to_environ+298j .text:0001BAE4 STR R4, [R5] .text:0001BAE8 .text:0001BAE8 loc_1BAE8 ; CODE XREF: __add_to_environ+218j .text:0001BAE8 ; __add_to_environ+220j .text:0001BAE8 LDR R3, =0 .text:0001BAEC CMP R3, #0 .text:0001BAF0 BEQ loc_1BB00 .text:0001BAF4 LDR R0, =envlock .text:0001BAF8 MOV LR, PC .text:0001BAFC MOV PC, R3 .text:0001BB00 .text:0001BB00 loc_1BB00 ; CODE XREF: __add_to_environ+318j .text:0001BB00 MOV R0, #0 .text:0001BB04 .text:0001BB04 loc_1BB04 ; CODE XREF: __add_to_environ+2C8j .text:0001BB04 B locret_1BB10 .text:0001BB04 ; --------------------------------------------------------------------------- .text:0001BB08 off_1BB08 DCD 0 ; DATA XREF: __add_to_environ:loc_1BAE8r .text:0001BB0C off_1BB0C DCD envlock ; DATA XREF: __add_to_environ+31Cr .text:0001BB10 ; --------------------------------------------------------------------------- .text:0001BB10 .text:0001BB10 locret_1BB10 ; CODE XREF: __add_to_environ:loc_1BB04j .text:0001BB10 LDMDB R11, {R4-R11,SP,PC} .text:0001BB10 ; End of function __add_to_environ .text:0001BB10 .text:0001BB14 .text:0001BB14 ; =============== S U B R O U T I N E ======================================= .text:0001BB14 .text:0001BB14 ; Attributes: bp-based frame .text:0001BB14 .text:0001BB14 WEAK setenv .text:0001BB14 setenv .text:0001BB14 MOV R12, SP ; Alternative name is '__setenv' .text:0001BB18 STMFD SP!, {R11,R12,LR,PC} .text:0001BB1C SUB R11, R12, #4 .text:0001BB20 MOV R3, R2 .text:0001BB24 MOV R2, #0 .text:0001BB28 BL __add_to_environ .text:0001BB2C LDMDB R11, {R11,SP,PC} .text:0001BB2C ; End of function setenv .text:0001BB2C .text:0001BB30 .text:0001BB30 ; =============== S U B R O U T I N E ======================================= .text:0001BB30 .text:0001BB30 ; Attributes: bp-based frame .text:0001BB30 .text:0001BB30 WEAK unsetenv .text:0001BB30 unsetenv ; CODE XREF: non_dynamic_init+F4p .text:0001BB30 ; non_dynamic_init+118p .text:0001BB30 MOV R12, SP ; Alternative name is '__unsetenv' .text:0001BB34 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0001BB38 SUB R11, R12, #4 .text:0001BB3C SUBS R6, R0, #0 .text:0001BB40 BEQ loc_1BB64 .text:0001BB44 LDRB R3, [R6] .text:0001BB48 CMP R3, #0 .text:0001BB4C BEQ loc_1BB64 .text:0001BB50 MOV R0, R6 .text:0001BB54 MOV R1, #0x3D .text:0001BB58 BL strchr .text:0001BB5C CMP R0, #0 .text:0001BB60 BEQ loc_1BB78 .text:0001BB64 .text:0001BB64 loc_1BB64 ; CODE XREF: unsetenv+10j .text:0001BB64 ; unsetenv+1Cj .text:0001BB64 BL __errno_location .text:0001BB68 MOV R3, #0x16 .text:0001BB6C STR R3, [R0] .text:0001BB70 MOV R0, 0xFFFFFFFF .text:0001BB74 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001BB78 ; --------------------------------------------------------------------------- .text:0001BB78 .text:0001BB78 loc_1BB78 ; CODE XREF: unsetenv+30j .text:0001BB78 MOV R0, R6 .text:0001BB7C BL strlen .text:0001BB80 LDR R3, =0 .text:0001BB84 MOV R5, R0 .text:0001BB88 CMP R3, #0 .text:0001BB8C BEQ loc_1BB9C .text:0001BB90 LDR R0, =envlock .text:0001BB94 MOV LR, PC .text:0001BB98 MOV PC, R3 .text:0001BB9C .text:0001BB9C loc_1BB9C ; CODE XREF: unsetenv+5Cj .text:0001BB9C LDR R3, =environ .text:0001BBA0 LDR R4, [R3] .text:0001BBA4 LDR R2, [R4] .text:0001BBA8 LDR R7, =0 .text:0001BBAC CMP R2, #0 .text:0001BBB0 BEQ loc_1BC04 .text:0001BBB4 .text:0001BBB4 loc_1BBB4 ; CODE XREF: unsetenv+D0j .text:0001BBB4 MOV R1, R6 .text:0001BBB8 LDR R0, [R4] .text:0001BBBC MOV R2, R5 .text:0001BBC0 BL strncmp .text:0001BBC4 CMP R0, #0 .text:0001BBC8 BNE loc_1BBF4 .text:0001BBCC LDR R3, [R4] .text:0001BBD0 LDRB R2, [R3,R5] .text:0001BBD4 CMP R2, #0x3D .text:0001BBD8 BNE loc_1BBF4 .text:0001BBDC MOV R2, R4 .text:0001BBE0 .text:0001BBE0 loc_1BBE0 ; CODE XREF: unsetenv+BCj .text:0001BBE0 LDR R3, [R2,#4] .text:0001BBE4 CMP R3, #0 .text:0001BBE8 STR R3, [R2],#4 .text:0001BBEC BNE loc_1BBE0 .text:0001BBF0 B loc_1BBF8 .text:0001BBF4 ; --------------------------------------------------------------------------- .text:0001BBF4 .text:0001BBF4 loc_1BBF4 ; CODE XREF: unsetenv+98j .text:0001BBF4 ; unsetenv+A8j .text:0001BBF4 ADD R4, R4, #4 .text:0001BBF8 .text:0001BBF8 loc_1BBF8 ; CODE XREF: unsetenv+C0j .text:0001BBF8 LDR R3, [R4] .text:0001BBFC CMP R3, #0 .text:0001BC00 BNE loc_1BBB4 .text:0001BC04 .text:0001BC04 loc_1BC04 ; CODE XREF: unsetenv+80j .text:0001BC04 CMP R7, #0 .text:0001BC08 BEQ loc_1BC18 .text:0001BC0C LDR R0, =envlock .text:0001BC10 MOV LR, PC .text:0001BC14 MOV PC, R7 .text:0001BC18 .text:0001BC18 loc_1BC18 ; CODE XREF: unsetenv+D8j .text:0001BC18 MOV R0, #0 .text:0001BC1C LDMDB R11, {R4-R7,R11,SP,PC} .text:0001BC1C ; End of function unsetenv .text:0001BC1C .text:0001BC1C ; --------------------------------------------------------------------------- .text:0001BC20 off_1BC20 DCD 0 ; DATA XREF: unsetenv+50r .text:0001BC24 off_1BC24 DCD envlock ; DATA XREF: unsetenv+60r .text:0001BC24 ; unsetenv+DCr .text:0001BC28 off_1BC28 DCD environ ; DATA XREF: unsetenv:loc_1BB9Cr .text:0001BC2C dword_1BC2C DCD 0 ; DATA XREF: unsetenv+78r .text:0001BC30 .text:0001BC30 ; =============== S U B R O U T I N E ======================================= .text:0001BC30 .text:0001BC30 ; Attributes: bp-based frame .text:0001BC30 .text:0001BC30 WEAK clearenv .text:0001BC30 clearenv ; CODE XREF: free_mem_2+10p .text:0001BC30 MOV R12, SP ; Alternative name is '__clearenv' .text:0001BC34 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0001BC38 LDR R3, =0 .text:0001BC3C SUB R11, R12, #4 .text:0001BC40 CMP R3, #0 .text:0001BC44 BEQ loc_1BC54 .text:0001BC48 LDR R0, =envlock .text:0001BC4C MOV LR, PC .text:0001BC50 MOV PC, R3 .text:0001BC54 .text:0001BC54 loc_1BC54 ; CODE XREF: clearenv+14j .text:0001BC54 LDR R2, =environ .text:0001BC58 LDR R4, =last_environ .text:0001BC5C LDR R0, [R2] .text:0001BC60 LDR R3, [R4] .text:0001BC64 MOV R5, R2 .text:0001BC68 CMP R0, R3 .text:0001BC6C BNE loc_1BC84 .text:0001BC70 CMP R0, #0 .text:0001BC74 BEQ loc_1BC84 .text:0001BC78 BL free .text:0001BC7C MOV R3, #0 .text:0001BC80 STR R3, [R4] .text:0001BC84 .text:0001BC84 loc_1BC84 ; CODE XREF: clearenv+3Cj .text:0001BC84 ; clearenv+44j .text:0001BC84 LDR R3, =0 .text:0001BC88 MOV R4, #0 .text:0001BC8C STR R4, [R5] .text:0001BC90 CMP R3, R4 .text:0001BC94 BEQ loc_1BCA4 .text:0001BC98 LDR R0, =envlock .text:0001BC9C MOV LR, PC .text:0001BCA0 MOV PC, R3 .text:0001BCA4 .text:0001BCA4 loc_1BCA4 ; CODE XREF: clearenv+64j .text:0001BCA4 MOV R0, R4 .text:0001BCA8 LDMDB R11, {R4,R5,R11,SP,PC} .text:0001BCA8 ; End of function clearenv .text:0001BCA8 .text:0001BCA8 ; --------------------------------------------------------------------------- .text:0001BCAC off_1BCAC DCD 0 ; DATA XREF: clearenv+8r .text:0001BCB0 off_1BCB0 DCD envlock ; DATA XREF: clearenv+18r .text:0001BCB0 ; clearenv+68r .text:0001BCB4 off_1BCB4 DCD environ ; DATA XREF: clearenv:loc_1BC54r .text:0001BCB8 off_1BCB8 DCD last_environ ; DATA XREF: clearenv+28r .text:0001BCBC off_1BCBC DCD 0 ; DATA XREF: clearenv:loc_1BC84r .text:0001BCC0 .text:0001BCC0 ; =============== S U B R O U T I N E ======================================= .text:0001BCC0 .text:0001BCC0 ; Attributes: bp-based frame .text:0001BCC0 .text:0001BCC0 free_mem_2 .text:0001BCC0 MOV R12, SP .text:0001BCC4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0001BCC8 SUB R11, R12, #4 .text:0001BCCC LDR R4, =known_values .text:0001BCD0 BL clearenv .text:0001BCD4 LDR R1, =free .text:0001BCD8 LDR R0, [R4] .text:0001BCDC BL tdestroy .text:0001BCE0 MOV R3, #0 .text:0001BCE4 STR R3, [R4] .text:0001BCE8 LDMDB R11, {R4,R11,SP,PC} .text:0001BCE8 ; End of function free_mem_2 .text:0001BCE8 .text:0001BCE8 ; --------------------------------------------------------------------------- .text:0001BCEC off_1BCEC DCD known_values ; DATA XREF: free_mem_2+Cr .text:0001BCF0 off_1BCF0 DCD free ; DATA XREF: free_mem_2+14r .text:0001BCF4 .text:0001BCF4 ; =============== S U B R O U T I N E ======================================= .text:0001BCF4 .text:0001BCF4 ; Attributes: bp-based frame .text:0001BCF4 .text:0001BCF4 EXPORT __strtol_internal .text:0001BCF4 __strtol_internal ; CODE XREF: ptmalloc_init+164p .text:0001BCF4 ; ptmalloc_init+190p ... .text:0001BCF4 .text:0001BCF4 var_44 = -0x44 .text:0001BCF4 var_40 = -0x40 .text:0001BCF4 var_3C = -0x3C .text:0001BCF4 var_38 = -0x38 .text:0001BCF4 var_34 = -0x34 .text:0001BCF4 var_30 = -0x30 .text:0001BCF4 var_2C = -0x2C .text:0001BCF4 .text:0001BCF4 MOV R12, SP .text:0001BCF8 STMFD SP!, {R4-R12,LR,PC} .text:0001BCFC SUB R11, R12, #4 .text:0001BD00 MOV R9, R2 .text:0001BD04 MOV R2, #0 .text:0001BD08 SUB SP, SP, #0x1C .text:0001BD0C STR R2, [R11,#var_40] .text:0001BD10 STR R0, [R11,#var_2C] .text:0001BD14 MOV R8, R2 .text:0001BD18 CMP R3, R2 .text:0001BD1C STR R1, [R11,#var_30] .text:0001BD20 BEQ loc_1BD60 .text:0001BD24 LDR R3, =_nl_current_LC_NUMERIC .text:0001BD28 LDR R2, [R3] .text:0001BD2C LDR R3, [R2,#0x28] .text:0001BD30 STR R3, [R11,#var_44] .text:0001BD34 LDRB R3, [R3] .text:0001BD38 CMP R3, #0xFF .text:0001BD3C CMPNE R3, #0 .text:0001BD40 STREQ R8, [R11,#var_44] .text:0001BD44 BEQ loc_1BD68 .text:0001BD48 LDR R8, [R2,#0x24] .text:0001BD4C LDRB R3, [R8] .text:0001BD50 CMP R3, #0 .text:0001BD54 LDREQ R8, [R11,#var_40] .text:0001BD58 STREQ R8, [R11,#var_44] .text:0001BD5C B loc_1BD68 .text:0001BD60 ; --------------------------------------------------------------------------- .text:0001BD60 .text:0001BD60 loc_1BD60 ; CODE XREF: __strtol_internal+2Cj .text:0001BD60 LDR R0, [R11,#var_40] .text:0001BD64 STR R0, [R11,#var_44] .text:0001BD68 .text:0001BD68 loc_1BD68 ; CODE XREF: __strtol_internal+50j .text:0001BD68 ; __strtol_internal+68j .text:0001BD68 CMP R9, #1 .text:0001BD6C MOVEQ R3, #1 .text:0001BD70 MOVNE R3, R9,LSR#31 .text:0001BD74 CMP R3, #0 .text:0001BD78 BNE loc_1BD84 .text:0001BD7C CMP R9, #0x24 .text:0001BD80 BLE loc_1BD94 .text:0001BD84 .text:0001BD84 loc_1BD84 ; CODE XREF: __strtol_internal+84j .text:0001BD84 BL __errno_location .text:0001BD88 MOV R3, #0x16 .text:0001BD8C STR R3, [R0] .text:0001BD90 B loc_1C39C .text:0001BD94 ; --------------------------------------------------------------------------- .text:0001BD94 .text:0001BD94 loc_1BD94 ; CODE XREF: __strtol_internal+8Cj .text:0001BD94 LDR R1, [R11,#var_2C] .text:0001BD98 LDR R5, [R11,#var_2C] .text:0001BD9C LDRB R3, [R1] .text:0001BDA0 LDR R1, =__ctype_b .text:0001BDA4 LDR R0, [R1] .text:0001BDA8 MOV R3, R3,LSL#1 .text:0001BDAC ADD R3, R3, R0 .text:0001BDB0 LDRB R2, [R3,#1] .text:0001BDB4 MOV R4, R1 .text:0001BDB8 STR R5, [R11,#var_3C] .text:0001BDBC TST R2, #0x20 .text:0001BDC0 BEQ loc_1BDE0 .text:0001BDC4 MOV R1, R0 .text:0001BDC8 .text:0001BDC8 loc_1BDC8 ; CODE XREF: __strtol_internal+E8j .text:0001BDC8 LDRB R3, [R5,#1]! .text:0001BDCC MOV R3, R3,LSL#1 .text:0001BDD0 ADD R3, R3, R1 .text:0001BDD4 LDRB R2, [R3,#1] .text:0001BDD8 TST R2, #0x20 .text:0001BDDC BNE loc_1BDC8 .text:0001BDE0 .text:0001BDE0 loc_1BDE0 ; CODE XREF: __strtol_internal+CCj .text:0001BDE0 LDRB R3, [R5] .text:0001BDE4 CMP R3, #0 .text:0001BDE8 BEQ loc_1C330 .text:0001BDEC CMP R3, #0x2D .text:0001BDF0 MOVEQ R2, #1 .text:0001BDF4 ADDEQ R5, R5, R2 .text:0001BDF8 STREQ R2, [R11,#var_34] .text:0001BDFC BEQ loc_1BE18 .text:0001BE00 CMP R3, #0x2B .text:0001BE04 MOVEQ R3, #0 .text:0001BE08 ADDEQ R5, R5, #1 .text:0001BE0C STREQ R3, [R11,#var_34] .text:0001BE10 MOVNE R0, #0 .text:0001BE14 STRNE R0, [R11,#var_34] .text:0001BE18 .text:0001BE18 loc_1BE18 ; CODE XREF: __strtol_internal+108j .text:0001BE18 LDRB R3, [R5] .text:0001BE1C CMP R3, #0x30 .text:0001BE20 BNE loc_1BE5C .text:0001BE24 CMP R9, #0x10 .text:0001BE28 CMPNE R9, #0 .text:0001BE2C BNE loc_1BE50 .text:0001BE30 LDR R1, =__ctype_toupper .text:0001BE34 LDRB R0, [R5,#1] .text:0001BE38 LDR R3, [R1] .text:0001BE3C LDR R2, [R3,R0,LSL#2] .text:0001BE40 CMP R2, #0x58 .text:0001BE44 ADDEQ R5, R5, #2 .text:0001BE48 MOVEQ R9, #0x10 .text:0001BE4C BEQ loc_1BE64 .text:0001BE50 .text:0001BE50 loc_1BE50 ; CODE XREF: __strtol_internal+138j .text:0001BE50 CMP R9, #0 .text:0001BE54 MOVEQ R9, #8 .text:0001BE58 B loc_1BE64 .text:0001BE5C ; --------------------------------------------------------------------------- .text:0001BE5C .text:0001BE5C loc_1BE5C ; CODE XREF: __strtol_internal+12Cj .text:0001BE5C CMP R9, #0 .text:0001BE60 MOVEQ R9, #0xA .text:0001BE64 .text:0001BE64 loc_1BE64 ; CODE XREF: __strtol_internal+158j .text:0001BE64 ; __strtol_internal+164j .text:0001BE64 LDR R1, [R11,#var_44] .text:0001BE68 CMP R9, #0xA .text:0001BE6C STR R5, [R11,#var_3C] .text:0001BE70 MOVNE R1, #0 .text:0001BE74 CMP R1, #0 .text:0001BE78 STR R1, [R11,#var_44] .text:0001BE7C BEQ loc_1C190 .text:0001BE80 MOV R0, R8 .text:0001BE84 BL strlen .text:0001BE88 STR R0, [R11,#var_40] .text:0001BE8C MOV R1, #0 .text:0001BE90 LDR R7, [R11,#var_3C] .text:0001BE94 CMP R1, R0 .text:0001BE98 BCS loc_1BECC .text:0001BE9C LDRB R2, [R8] .text:0001BEA0 LDRB R3, [R7] .text:0001BEA4 CMP R2, R3 .text:0001BEA8 BNE loc_1BECC .text:0001BEAC .text:0001BEAC loc_1BEAC ; CODE XREF: __strtol_internal+1D4j .text:0001BEAC LDR R2, [R11,#var_40] .text:0001BEB0 ADD R1, R1, #1 .text:0001BEB4 CMP R1, R2 .text:0001BEB8 BCS loc_1BECC .text:0001BEBC LDRB R2, [R8,R1] .text:0001BEC0 LDRB R3, [R5,R1] .text:0001BEC4 CMP R2, R3 .text:0001BEC8 BEQ loc_1BEAC .text:0001BECC .text:0001BECC loc_1BECC ; CODE XREF: __strtol_internal+1A4j .text:0001BECC ; __strtol_internal+1B4j ... .text:0001BECC LDR R3, [R11,#var_40] .text:0001BED0 CMP R1, R3 .text:0001BED4 BCS loc_1C194 .text:0001BED8 LDRB R12, [R5] .text:0001BEDC CMP R12, #0 .text:0001BEE0 BEQ loc_1BF78 .text:0001BEE4 .text:0001BEE4 loc_1BEE4 ; CODE XREF: __strtol_internal+280j .text:0001BEE4 SUB R3, R12, #0x30 .text:0001BEE8 CMP R3, #9 .text:0001BEEC BLS loc_1BF6C .text:0001BEF0 LDR R0, [R11,#var_40] .text:0001BEF4 MOV R1, #0 .text:0001BEF8 CMP R1, R0 .text:0001BEFC BCS loc_1BF30 .text:0001BF00 LDRB R2, [R8] .text:0001BF04 LDRB R3, [R7] .text:0001BF08 CMP R2, R3 .text:0001BF0C BNE loc_1BF30 .text:0001BF10 .text:0001BF10 loc_1BF10 ; CODE XREF: __strtol_internal+238j .text:0001BF10 LDR R2, [R11,#var_40] .text:0001BF14 ADD R1, R1, #1 .text:0001BF18 CMP R1, R2 .text:0001BF1C BCS loc_1BF30 .text:0001BF20 LDRB R2, [R8,R1] .text:0001BF24 LDRB R3, [R7,R1] .text:0001BF28 CMP R2, R3 .text:0001BF2C BEQ loc_1BF10 .text:0001BF30 .text:0001BF30 loc_1BF30 ; CODE XREF: __strtol_internal+208j .text:0001BF30 ; __strtol_internal+218j ... .text:0001BF30 LDR R3, [R11,#var_40] .text:0001BF34 CMP R1, R3 .text:0001BF38 BCS loc_1BF6C .text:0001BF3C LDR R3, [R4] .text:0001BF40 MOV R2, R12,LSL#1 .text:0001BF44 ADD R2, R2, R3 .text:0001BF48 LDRB R1, [R2,#1] .text:0001BF4C TST R1, #4 .text:0001BF50 BEQ loc_1BF78 .text:0001BF54 LDR R3, =__ctype_toupper .text:0001BF58 LDR R1, [R3] .text:0001BF5C LDR R2, [R1,R12,LSL#2] .text:0001BF60 SUB R2, R2, #0x37 .text:0001BF64 CMP R2, R9 .text:0001BF68 BGE loc_1BF78 .text:0001BF6C .text:0001BF6C loc_1BF6C ; CODE XREF: __strtol_internal+1F8j .text:0001BF6C ; __strtol_internal+244j .text:0001BF6C LDRB R12, [R7,#1]! .text:0001BF70 CMP R12, #0 .text:0001BF74 BNE loc_1BEE4 .text:0001BF78 .text:0001BF78 loc_1BF78 ; CODE XREF: __strtol_internal+1ECj .text:0001BF78 ; __strtol_internal+25Cj ... .text:0001BF78 LDR R0, [R11,#var_44] .text:0001BF7C MOV R6, R7 .text:0001BF80 CMP R0, #0 .text:0001BF84 BEQ loc_1C194 .text:0001BF88 MOV R0, R8 .text:0001BF8C BL strlen .text:0001BF90 CMP R7, R5 .text:0001BF94 MOV R7, R0 .text:0001BF98 BLS loc_1C180 .text:0001BF9C .text:0001BF9C loc_1BF9C ; CODE XREF: __strtol_internal+488j .text:0001BF9C SUB R12, R6, #1 .text:0001BFA0 CMP R12, R5 .text:0001BFA4 LDR R4, [R11,#var_44] .text:0001BFA8 BCC loc_1C01C .text:0001BFAC SUB R10, R7, #2 .text:0001BFB0 LDRB R0, [R8] .text:0001BFB4 .text:0001BFB4 loc_1BFB4 ; CODE XREF: __strtol_internal+324j .text:0001BFB4 ADD R3, R7, R12 .text:0001BFB8 LDRB R2, [R3,#-1] .text:0001BFBC CMP R2, R0 .text:0001BFC0 BNE loc_1C010 .text:0001BFC4 MOV LR, #1 .text:0001BFC8 LDRB R2, [R8,LR] .text:0001BFCC CMP R2, #0 .text:0001BFD0 BEQ loc_1C004 .text:0001BFD4 LDRB R3, [R12,R10] .text:0001BFD8 CMP R2, R3 .text:0001BFDC BNE loc_1C004 .text:0001BFE0 SUB R1, R7, #2 .text:0001BFE4 .text:0001BFE4 loc_1BFE4 ; CODE XREF: __strtol_internal+30Cj .text:0001BFE4 ADD LR, LR, #1 .text:0001BFE8 LDRB R2, [R8,LR] .text:0001BFEC SUB R1, R1, #1 .text:0001BFF0 CMP R2, #0 .text:0001BFF4 BEQ loc_1C004 .text:0001BFF8 LDRB R3, [R12,R1] .text:0001BFFC CMP R2, R3 .text:0001C000 BEQ loc_1BFE4 .text:0001C004 .text:0001C004 loc_1C004 ; CODE XREF: __strtol_internal+2DCj .text:0001C004 ; __strtol_internal+2E8j ... .text:0001C004 LDRB R3, [R8,LR] .text:0001C008 CMP R3, #0 .text:0001C00C BEQ loc_1C01C .text:0001C010 .text:0001C010 loc_1C010 ; CODE XREF: __strtol_internal+2CCj .text:0001C010 SUB R12, R12, #1 .text:0001C014 CMP R12, R5 .text:0001C018 BCS loc_1BFB4 .text:0001C01C .text:0001C01C loc_1C01C ; CODE XREF: __strtol_internal+2B4j .text:0001C01C ; __strtol_internal+318j .text:0001C01C CMP R12, R5 .text:0001C020 BCC loc_1C0C4 .text:0001C024 LDR R2, [R11,#var_44] .text:0001C028 LDRB R1, [R2] .text:0001C02C RSB R2, R12, R6 .text:0001C030 ADD R3, R1, #1 .text:0001C034 CMP R2, R3 .text:0001C038 BNE loc_1C16C .text:0001C03C SUB R10, R12, #1 .text:0001C040 .text:0001C040 loc_1C040 ; CODE XREF: __strtol_internal+3CCj .text:0001C040 ; __strtol_internal+46Cj .text:0001C040 ADD R4, R4, #1 .text:0001C044 MOV R3, R4 .text:0001C048 LDRB R2, [R3],#-1 .text:0001C04C CMP R2, #0 .text:0001C050 MOVEQ R4, R3 .text:0001C054 LDRB R1, [R4] .text:0001C058 SUB R12, R12, #1 .text:0001C05C CMP R1, #0xFF .text:0001C060 BNE loc_1C0CC .text:0001C064 CMP R12, R5 .text:0001C068 BCC loc_1C0BC .text:0001C06C .text:0001C06C loc_1C06C ; CODE XREF: __strtol_internal+3C4j .text:0001C06C LDRB R1, [R8] .text:0001C070 MOV LR, #0 .text:0001C074 CMP R1, LR .text:0001C078 BEQ loc_1C0A4 .text:0001C07C ADD R2, R7, R12 .text:0001C080 B loc_1C098 .text:0001C084 ; --------------------------------------------------------------------------- .text:0001C084 .text:0001C084 loc_1C084 ; CODE XREF: __strtol_internal+3ACj .text:0001C084 ADD LR, LR, #1 .text:0001C088 LDRB R1, [R8,LR] .text:0001C08C SUB R2, R2, #1 .text:0001C090 CMP R1, #0 .text:0001C094 BEQ loc_1C0A4 .text:0001C098 .text:0001C098 loc_1C098 ; CODE XREF: __strtol_internal+38Cj .text:0001C098 LDRB R3, [R2,#-1] .text:0001C09C CMP R1, R3 .text:0001C0A0 BEQ loc_1C084 .text:0001C0A4 .text:0001C0A4 loc_1C0A4 ; CODE XREF: __strtol_internal+384j .text:0001C0A4 ; __strtol_internal+3A0j .text:0001C0A4 LDRB R3, [R8,LR] .text:0001C0A8 CMP R3, #0 .text:0001C0AC BEQ loc_1C0BC .text:0001C0B0 SUB R12, R12, #1 .text:0001C0B4 CMP R12, R5 .text:0001C0B8 BCS loc_1C06C .text:0001C0BC .text:0001C0BC loc_1C0BC ; CODE XREF: __strtol_internal+374j .text:0001C0BC ; __strtol_internal+3B8j .text:0001C0BC CMP R12, R5 .text:0001C0C0 BCS loc_1C040 .text:0001C0C4 .text:0001C0C4 loc_1C0C4 ; CODE XREF: __strtol_internal+32Cj .text:0001C0C4 ; __strtol_internal+454j .text:0001C0C4 MOV R7, R6 .text:0001C0C8 B loc_1C194 .text:0001C0CC ; --------------------------------------------------------------------------- .text:0001C0CC .text:0001C0CC loc_1C0CC ; CODE XREF: __strtol_internal+36Cj .text:0001C0CC CMP R12, R5 .text:0001C0D0 MOV R0, R12 .text:0001C0D4 BCC loc_1C134 .text:0001C0D8 .text:0001C0D8 loc_1C0D8 ; CODE XREF: __strtol_internal+43Cj .text:0001C0D8 LDRB R1, [R8] .text:0001C0DC MOV LR, #0 .text:0001C0E0 CMP R1, LR .text:0001C0E4 BEQ loc_1C11C .text:0001C0E8 ADD R2, R7, R12 .text:0001C0EC B loc_1C110 .text:0001C0EC ; --------------------------------------------------------------------------- .text:0001C0F0 off_1C0F0 DCD _nl_current_LC_NUMERIC ; DATA XREF: __strtol_internal+30r .text:0001C0F4 off_1C0F4 DCD __ctype_b ; DATA XREF: __strtol_internal+ACr .text:0001C0F8 off_1C0F8 DCD __ctype_toupper ; DATA XREF: __strtol_internal+13Cr .text:0001C0F8 ; __strtol_internal+260r .text:0001C0FC ; --------------------------------------------------------------------------- .text:0001C0FC .text:0001C0FC loc_1C0FC ; CODE XREF: __strtol_internal+424j .text:0001C0FC ADD LR, LR, #1 .text:0001C100 LDRB R1, [R8,LR] .text:0001C104 SUB R2, R2, #1 .text:0001C108 CMP R1, #0 .text:0001C10C BEQ loc_1C11C .text:0001C110 .text:0001C110 loc_1C110 ; CODE XREF: __strtol_internal+3F8j .text:0001C110 LDRB R3, [R2,#-1] .text:0001C114 CMP R1, R3 .text:0001C118 BEQ loc_1C0FC .text:0001C11C .text:0001C11C loc_1C11C ; CODE XREF: __strtol_internal+3F0j .text:0001C11C ; __strtol_internal+418j .text:0001C11C LDRB R3, [R8,LR] .text:0001C120 CMP R3, #0 .text:0001C124 BEQ loc_1C134 .text:0001C128 SUB R12, R12, #1 .text:0001C12C CMP R12, R5 .text:0001C130 BCS loc_1C0D8 .text:0001C134 .text:0001C134 loc_1C134 ; CODE XREF: __strtol_internal+3E0j .text:0001C134 ; __strtol_internal+430j .text:0001C134 CMP R12, R5 .text:0001C138 BCS loc_1C14C .text:0001C13C LDRB R2, [R4] .text:0001C140 RSB R3, R12, R0 .text:0001C144 CMP R3, R2 .text:0001C148 BLE loc_1C0C4 .text:0001C14C .text:0001C14C loc_1C14C ; CODE XREF: __strtol_internal+444j .text:0001C14C CMP R12, R5 .text:0001C150 BCC loc_1C164 .text:0001C154 LDRB R2, [R4] .text:0001C158 RSB R3, R12, R0 .text:0001C15C CMP R3, R2 .text:0001C160 BEQ loc_1C040 .text:0001C164 .text:0001C164 loc_1C164 ; CODE XREF: __strtol_internal+45Cj .text:0001C164 MOV R6, R10 .text:0001C168 B loc_1C178 .text:0001C16C ; --------------------------------------------------------------------------- .text:0001C16C .text:0001C16C loc_1C16C ; CODE XREF: __strtol_internal+344j .text:0001C16C ADDGT R3, R12, R1 .text:0001C170 ADDGT R6, R3, #1 .text:0001C174 MOVLE R6, R12 .text:0001C178 .text:0001C178 loc_1C178 ; CODE XREF: __strtol_internal+474j .text:0001C178 CMP R6, R5 .text:0001C17C BHI loc_1BF9C .text:0001C180 .text:0001C180 loc_1C180 ; CODE XREF: __strtol_internal+2A4j .text:0001C180 CMP R6, R5 .text:0001C184 MOVCS R7, R6 .text:0001C188 MOVCC R7, R5 .text:0001C18C B loc_1C194 .text:0001C190 ; --------------------------------------------------------------------------- .text:0001C190 .text:0001C190 loc_1C190 ; CODE XREF: __strtol_internal+188j .text:0001C190 LDR R7, [R11,#var_44] .text:0001C194 .text:0001C194 loc_1C194 ; CODE XREF: __strtol_internal+1E0j .text:0001C194 ; __strtol_internal+290j ... .text:0001C194 MOV R4, 0xFFFFFFFF .text:0001C198 MOV R0, R4 .text:0001C19C MOV R1, R9 .text:0001C1A0 BL __udivsi3 .text:0001C1A4 STR R0, [R11,#var_38] .text:0001C1A8 MOV R0, R4 .text:0001C1AC MOV R1, R9 .text:0001C1B0 BL __umodsi3 .text:0001C1B4 MOV LR, #0 .text:0001C1B8 LDRB R12, [R5] .text:0001C1BC MOV R10, LR .text:0001C1C0 CMP R12, LR .text:0001C1C4 BEQ loc_1C2B0 .text:0001C1C8 CMP R5, R7 .text:0001C1CC BEQ loc_1C2B0 .text:0001C1D0 LDR R6, =__ctype_b .text:0001C1D4 LDR R4, =__ctype_toupper .text:0001C1D8 .text:0001C1D8 loc_1C1D8 ; CODE XREF: __strtol_internal+5B8j .text:0001C1D8 SUB R3, R12, #0x30 .text:0001C1DC AND R3, R3, #0xFF .text:0001C1E0 CMP R3, #9 .text:0001C1E4 MOVLS R12, R3 .text:0001C1E8 BLS loc_1C270 .text:0001C1EC LDR R3, [R11,#var_40] .text:0001C1F0 CMP R3, #0 .text:0001C1F4 BEQ loc_1C248 .text:0001C1F8 MOV R1, #0 .text:0001C1FC CMP R1, R3 .text:0001C200 BCS loc_1C234 .text:0001C204 LDRB R2, [R8] .text:0001C208 LDRB R3, [R5] .text:0001C20C CMP R2, R3 .text:0001C210 BNE loc_1C234 .text:0001C214 .text:0001C214 loc_1C214 ; CODE XREF: __strtol_internal+53Cj .text:0001C214 LDR R2, [R11,#var_40] .text:0001C218 ADD R1, R1, #1 .text:0001C21C CMP R1, R2 .text:0001C220 BCS loc_1C234 .text:0001C224 LDRB R2, [R8,R1] .text:0001C228 LDRB R3, [R5,R1] .text:0001C22C CMP R2, R3 .text:0001C230 BEQ loc_1C214 .text:0001C234 .text:0001C234 loc_1C234 ; CODE XREF: __strtol_internal+50Cj .text:0001C234 ; __strtol_internal+51Cj ... .text:0001C234 LDR R3, [R11,#var_40] .text:0001C238 CMP R1, R3 .text:0001C23C SUBEQ R3, R3, #1 .text:0001C240 ADDEQ R5, R5, R3 .text:0001C244 BEQ loc_1C29C .text:0001C248 .text:0001C248 loc_1C248 ; CODE XREF: __strtol_internal+500j .text:0001C248 LDR R3, [R6] .text:0001C24C MOV R2, R12,LSL#1 .text:0001C250 ADD R2, R2, R3 .text:0001C254 LDRB R1, [R2,#1] .text:0001C258 TST R1, #4 .text:0001C25C BEQ loc_1C2B0 .text:0001C260 LDR R2, [R4] .text:0001C264 LDR R3, [R2,R12,LSL#2] .text:0001C268 SUB R3, R3, #0x37 .text:0001C26C AND R12, R3, #0xFF .text:0001C270 .text:0001C270 loc_1C270 ; CODE XREF: __strtol_internal+4F4j .text:0001C270 CMP R12, R9 .text:0001C274 BGE loc_1C2B0 .text:0001C278 LDR R1, [R11,#var_38] .text:0001C27C CMP LR, R1 .text:0001C280 BHI loc_1C290 .text:0001C284 BNE loc_1C298 .text:0001C288 CMP R12, R0 .text:0001C28C BLS loc_1C298 .text:0001C290 .text:0001C290 loc_1C290 ; CODE XREF: __strtol_internal+58Cj .text:0001C290 MOV R10, #1 .text:0001C294 B loc_1C29C .text:0001C298 ; --------------------------------------------------------------------------- .text:0001C298 .text:0001C298 loc_1C298 ; CODE XREF: __strtol_internal+590j .text:0001C298 ; __strtol_internal+598j .text:0001C298 MLA LR, R9, LR, R12 .text:0001C29C .text:0001C29C loc_1C29C ; CODE XREF: __strtol_internal+550j .text:0001C29C ; __strtol_internal+5A0j .text:0001C29C LDRB R12, [R5,#1]! .text:0001C2A0 CMP R12, #0 .text:0001C2A4 BEQ loc_1C2B0 .text:0001C2A8 CMP R5, R7 .text:0001C2AC BNE loc_1C1D8 .text:0001C2B0 .text:0001C2B0 loc_1C2B0 ; CODE XREF: __strtol_internal+4D0j .text:0001C2B0 ; __strtol_internal+4D8j ... .text:0001C2B0 LDR R2, [R11,#var_3C] .text:0001C2B4 CMP R5, R2 .text:0001C2B8 BEQ loc_1C330 .text:0001C2BC LDR R3, [R11,#var_30] .text:0001C2C0 CMP R3, #0 .text:0001C2C4 STRNE R5, [R3] .text:0001C2C8 CMP R10, #0 .text:0001C2CC BNE loc_1C2F4 .text:0001C2D0 LDR R0, [R11,#var_34] .text:0001C2D4 CMP R0, #0 .text:0001C2D8 BEQ loc_1C2E8 .text:0001C2DC CMP LR, #0x80000000 .text:0001C2E0 BHI loc_1C2F0 .text:0001C2E4 B loc_1C2F4 .text:0001C2E8 ; --------------------------------------------------------------------------- .text:0001C2E8 .text:0001C2E8 loc_1C2E8 ; CODE XREF: __strtol_internal+5E4j .text:0001C2E8 CMP LR, #0 .text:0001C2EC BGE loc_1C2F4 .text:0001C2F0 .text:0001C2F0 loc_1C2F0 ; CODE XREF: __strtol_internal+5ECj .text:0001C2F0 MOV R10, #1 .text:0001C2F4 .text:0001C2F4 loc_1C2F4 ; CODE XREF: __strtol_internal+5D8j .text:0001C2F4 ; __strtol_internal+5F0j ... .text:0001C2F4 CMP R10, #0 .text:0001C2F8 BEQ loc_1C31C .text:0001C2FC BL __errno_location .text:0001C300 LDR R1, [R11,#var_34] .text:0001C304 MOV R3, #0x22 .text:0001C308 STR R3, [R0] .text:0001C30C CMP R1, #0 .text:0001C310 MOVEQ R0, 0x7FFFFFFF .text:0001C314 MOVNE R0, #0x80000000 .text:0001C318 B locret_1C3A0 .text:0001C31C ; --------------------------------------------------------------------------- .text:0001C31C .text:0001C31C loc_1C31C ; CODE XREF: __strtol_internal+604j .text:0001C31C LDR R2, [R11,#var_34] .text:0001C320 CMP R2, #0 .text:0001C324 MOVEQ R0, LR .text:0001C328 RSBNE R0, LR, #0 .text:0001C32C B locret_1C3A0 .text:0001C330 ; --------------------------------------------------------------------------- .text:0001C330 .text:0001C330 loc_1C330 ; CODE XREF: __strtol_internal+F4j .text:0001C330 ; __strtol_internal+5C4j .text:0001C330 LDR R3, [R11,#var_30] .text:0001C334 CMP R3, #0 .text:0001C338 BEQ loc_1C39C .text:0001C33C LDR R0, [R11,#var_3C] .text:0001C340 LDR R1, [R11,#var_2C] .text:0001C344 RSB R3, R1, R0 .text:0001C348 CMP R3, #1 .text:0001C34C BLE loc_1C390 .text:0001C350 LDR R1, =__ctype_toupper .text:0001C354 LDRB R0, [R0,#-1] .text:0001C358 LDR R3, [R1] .text:0001C35C LDR R2, [R3,R0,LSL#2] .text:0001C360 CMP R2, #0x58 .text:0001C364 BNE loc_1C390 .text:0001C368 LDR R2, [R11,#var_3C] .text:0001C36C LDRB R3, [R2,#-2] .text:0001C370 CMP R3, #0x30 .text:0001C374 BNE loc_1C390 .text:0001C378 LDR R0, [R11,#var_30] .text:0001C37C SUB R3, R2, #1 .text:0001C380 STR R3, [R0] .text:0001C384 B loc_1C39C .text:0001C384 ; --------------------------------------------------------------------------- .text:0001C388 off_1C388 DCD __ctype_b ; DATA XREF: __strtol_internal+4DCr .text:0001C38C off_1C38C DCD __ctype_toupper ; DATA XREF: __strtol_internal+4E0r .text:0001C38C ; __strtol_internal+65Cr .text:0001C390 ; --------------------------------------------------------------------------- .text:0001C390 .text:0001C390 loc_1C390 ; CODE XREF: __strtol_internal+658j .text:0001C390 ; __strtol_internal+670j ... .text:0001C390 SUB R1, R11, #-var_30 .text:0001C394 LDMIA R1, {R1,R2} .text:0001C398 STR R2, [R1] .text:0001C39C .text:0001C39C loc_1C39C ; CODE XREF: __strtol_internal+9Cj .text:0001C39C ; __strtol_internal+644j ... .text:0001C39C MOV R0, #0 .text:0001C3A0 .text:0001C3A0 locret_1C3A0 ; CODE XREF: __strtol_internal+624j .text:0001C3A0 ; __strtol_internal+638j .text:0001C3A0 LDMDB R11, {R4-R11,SP,PC} .text:0001C3A0 ; End of function __strtol_internal .text:0001C3A0 .text:0001C3A4 .text:0001C3A4 ; =============== S U B R O U T I N E ======================================= .text:0001C3A4 .text:0001C3A4 ; Attributes: bp-based frame .text:0001C3A4 .text:0001C3A4 WEAK strtol .text:0001C3A4 strtol .text:0001C3A4 MOV R12, SP .text:0001C3A8 STMFD SP!, {R11,R12,LR,PC} .text:0001C3AC SUB R11, R12, #4 .text:0001C3B0 MOV R3, #0 .text:0001C3B4 BL __strtol_internal .text:0001C3B8 LDMDB R11, {R11,SP,PC} .text:0001C3B8 ; End of function strtol .text:0001C3B8 .text:0001C3BC .text:0001C3BC ; =============== S U B R O U T I N E ======================================= .text:0001C3BC .text:0001C3BC ; Attributes: bp-based frame .text:0001C3BC .text:0001C3BC EXPORT __strtoul_internal .text:0001C3BC __strtoul_internal ; CODE XREF: _nl_load_domain+3E0p .text:0001C3BC ; strtoul+10p ... .text:0001C3BC .text:0001C3BC var_44 = -0x44 .text:0001C3BC var_40 = -0x40 .text:0001C3BC var_3C = -0x3C .text:0001C3BC var_38 = -0x38 .text:0001C3BC var_34 = -0x34 .text:0001C3BC var_30 = -0x30 .text:0001C3BC var_2C = -0x2C .text:0001C3BC .text:0001C3BC MOV R12, SP .text:0001C3C0 STMFD SP!, {R4-R12,LR,PC} .text:0001C3C4 SUB R11, R12, #4 .text:0001C3C8 MOV R9, R2 .text:0001C3CC MOV R2, #0 .text:0001C3D0 SUB SP, SP, #0x1C .text:0001C3D4 STR R2, [R11,#var_40] .text:0001C3D8 STR R0, [R11,#var_2C] .text:0001C3DC MOV R8, R2 .text:0001C3E0 CMP R3, R2 .text:0001C3E4 STR R1, [R11,#var_30] .text:0001C3E8 BEQ loc_1C428 .text:0001C3EC LDR R3, =_nl_current_LC_NUMERIC .text:0001C3F0 LDR R2, [R3] .text:0001C3F4 LDR R3, [R2,#0x28] .text:0001C3F8 STR R3, [R11,#var_44] .text:0001C3FC LDRB R3, [R3] .text:0001C400 CMP R3, #0xFF .text:0001C404 CMPNE R3, #0 .text:0001C408 STREQ R8, [R11,#var_44] .text:0001C40C BEQ loc_1C430 .text:0001C410 LDR R8, [R2,#0x24] .text:0001C414 LDRB R3, [R8] .text:0001C418 CMP R3, #0 .text:0001C41C LDREQ R8, [R11,#var_40] .text:0001C420 STREQ R8, [R11,#var_44] .text:0001C424 B loc_1C430 .text:0001C428 ; --------------------------------------------------------------------------- .text:0001C428 .text:0001C428 loc_1C428 ; CODE XREF: __strtoul_internal+2Cj .text:0001C428 LDR R0, [R11,#var_40] .text:0001C42C STR R0, [R11,#var_44] .text:0001C430 .text:0001C430 loc_1C430 ; CODE XREF: __strtoul_internal+50j .text:0001C430 ; __strtoul_internal+68j .text:0001C430 CMP R9, #1 .text:0001C434 MOVEQ R3, #1 .text:0001C438 MOVNE R3, R9,LSR#31 .text:0001C43C CMP R3, #0 .text:0001C440 BNE loc_1C44C .text:0001C444 CMP R9, #0x24 .text:0001C448 BLE loc_1C45C .text:0001C44C .text:0001C44C loc_1C44C ; CODE XREF: __strtoul_internal+84j .text:0001C44C BL __errno_location .text:0001C450 MOV R3, #0x16 .text:0001C454 STR R3, [R0] .text:0001C458 B loc_1CA2C .text:0001C45C ; --------------------------------------------------------------------------- .text:0001C45C .text:0001C45C loc_1C45C ; CODE XREF: __strtoul_internal+8Cj .text:0001C45C LDR R1, [R11,#var_2C] .text:0001C460 LDR R5, [R11,#var_2C] .text:0001C464 LDRB R3, [R1] .text:0001C468 LDR R1, =__ctype_b .text:0001C46C LDR R0, [R1] .text:0001C470 MOV R3, R3,LSL#1 .text:0001C474 ADD R3, R3, R0 .text:0001C478 LDRB R2, [R3,#1] .text:0001C47C MOV R4, R1 .text:0001C480 STR R5, [R11,#var_3C] .text:0001C484 TST R2, #0x20 .text:0001C488 BEQ loc_1C4A8 .text:0001C48C MOV R1, R0 .text:0001C490 .text:0001C490 loc_1C490 ; CODE XREF: __strtoul_internal+E8j .text:0001C490 LDRB R3, [R5,#1]! .text:0001C494 MOV R3, R3,LSL#1 .text:0001C498 ADD R3, R3, R1 .text:0001C49C LDRB R2, [R3,#1] .text:0001C4A0 TST R2, #0x20 .text:0001C4A4 BNE loc_1C490 .text:0001C4A8 .text:0001C4A8 loc_1C4A8 ; CODE XREF: __strtoul_internal+CCj .text:0001C4A8 LDRB R3, [R5] .text:0001C4AC CMP R3, #0 .text:0001C4B0 BEQ loc_1C9C0 .text:0001C4B4 CMP R3, #0x2D .text:0001C4B8 MOVEQ R2, #1 .text:0001C4BC ADDEQ R5, R5, R2 .text:0001C4C0 STREQ R2, [R11,#var_34] .text:0001C4C4 BEQ loc_1C4E0 .text:0001C4C8 CMP R3, #0x2B .text:0001C4CC MOVEQ R3, #0 .text:0001C4D0 ADDEQ R5, R5, #1 .text:0001C4D4 STREQ R3, [R11,#var_34] .text:0001C4D8 MOVNE R0, #0 .text:0001C4DC STRNE R0, [R11,#var_34] .text:0001C4E0 .text:0001C4E0 loc_1C4E0 ; CODE XREF: __strtoul_internal+108j .text:0001C4E0 LDRB R3, [R5] .text:0001C4E4 CMP R3, #0x30 .text:0001C4E8 BNE loc_1C524 .text:0001C4EC CMP R9, #0x10 .text:0001C4F0 CMPNE R9, #0 .text:0001C4F4 BNE loc_1C518 .text:0001C4F8 LDR R1, =__ctype_toupper .text:0001C4FC LDRB R0, [R5,#1] .text:0001C500 LDR R3, [R1] .text:0001C504 LDR R2, [R3,R0,LSL#2] .text:0001C508 CMP R2, #0x58 .text:0001C50C ADDEQ R5, R5, #2 .text:0001C510 MOVEQ R9, #0x10 .text:0001C514 BEQ loc_1C52C .text:0001C518 .text:0001C518 loc_1C518 ; CODE XREF: __strtoul_internal+138j .text:0001C518 CMP R9, #0 .text:0001C51C MOVEQ R9, #8 .text:0001C520 B loc_1C52C .text:0001C524 ; --------------------------------------------------------------------------- .text:0001C524 .text:0001C524 loc_1C524 ; CODE XREF: __strtoul_internal+12Cj .text:0001C524 CMP R9, #0 .text:0001C528 MOVEQ R9, #0xA .text:0001C52C .text:0001C52C loc_1C52C ; CODE XREF: __strtoul_internal+158j .text:0001C52C ; __strtoul_internal+164j .text:0001C52C LDR R1, [R11,#var_44] .text:0001C530 CMP R9, #0xA .text:0001C534 STR R5, [R11,#var_3C] .text:0001C538 MOVNE R1, #0 .text:0001C53C CMP R1, #0 .text:0001C540 STR R1, [R11,#var_44] .text:0001C544 BEQ loc_1C858 .text:0001C548 MOV R0, R8 .text:0001C54C BL strlen .text:0001C550 STR R0, [R11,#var_40] .text:0001C554 MOV R1, #0 .text:0001C558 LDR R7, [R11,#var_3C] .text:0001C55C CMP R1, R0 .text:0001C560 BCS loc_1C594 .text:0001C564 LDRB R2, [R8] .text:0001C568 LDRB R3, [R7] .text:0001C56C CMP R2, R3 .text:0001C570 BNE loc_1C594 .text:0001C574 .text:0001C574 loc_1C574 ; CODE XREF: __strtoul_internal+1D4j .text:0001C574 LDR R2, [R11,#var_40] .text:0001C578 ADD R1, R1, #1 .text:0001C57C CMP R1, R2 .text:0001C580 BCS loc_1C594 .text:0001C584 LDRB R2, [R8,R1] .text:0001C588 LDRB R3, [R5,R1] .text:0001C58C CMP R2, R3 .text:0001C590 BEQ loc_1C574 .text:0001C594 .text:0001C594 loc_1C594 ; CODE XREF: __strtoul_internal+1A4j .text:0001C594 ; __strtoul_internal+1B4j ... .text:0001C594 LDR R3, [R11,#var_40] .text:0001C598 CMP R1, R3 .text:0001C59C BCS loc_1C85C .text:0001C5A0 LDRB R12, [R5] .text:0001C5A4 CMP R12, #0 .text:0001C5A8 BEQ loc_1C640 .text:0001C5AC .text:0001C5AC loc_1C5AC ; CODE XREF: __strtoul_internal+280j .text:0001C5AC SUB R3, R12, #0x30 .text:0001C5B0 CMP R3, #9 .text:0001C5B4 BLS loc_1C634 .text:0001C5B8 LDR R0, [R11,#var_40] .text:0001C5BC MOV R1, #0 .text:0001C5C0 CMP R1, R0 .text:0001C5C4 BCS loc_1C5F8 .text:0001C5C8 LDRB R2, [R8] .text:0001C5CC LDRB R3, [R7] .text:0001C5D0 CMP R2, R3 .text:0001C5D4 BNE loc_1C5F8 .text:0001C5D8 .text:0001C5D8 loc_1C5D8 ; CODE XREF: __strtoul_internal+238j .text:0001C5D8 LDR R2, [R11,#var_40] .text:0001C5DC ADD R1, R1, #1 .text:0001C5E0 CMP R1, R2 .text:0001C5E4 BCS loc_1C5F8 .text:0001C5E8 LDRB R2, [R8,R1] .text:0001C5EC LDRB R3, [R7,R1] .text:0001C5F0 CMP R2, R3 .text:0001C5F4 BEQ loc_1C5D8 .text:0001C5F8 .text:0001C5F8 loc_1C5F8 ; CODE XREF: __strtoul_internal+208j .text:0001C5F8 ; __strtoul_internal+218j ... .text:0001C5F8 LDR R3, [R11,#var_40] .text:0001C5FC CMP R1, R3 .text:0001C600 BCS loc_1C634 .text:0001C604 LDR R3, [R4] .text:0001C608 MOV R2, R12,LSL#1 .text:0001C60C ADD R2, R2, R3 .text:0001C610 LDRB R1, [R2,#1] .text:0001C614 TST R1, #4 .text:0001C618 BEQ loc_1C640 .text:0001C61C LDR R3, =__ctype_toupper .text:0001C620 LDR R1, [R3] .text:0001C624 LDR R2, [R1,R12,LSL#2] .text:0001C628 SUB R2, R2, #0x37 .text:0001C62C CMP R2, R9 .text:0001C630 BGE loc_1C640 .text:0001C634 .text:0001C634 loc_1C634 ; CODE XREF: __strtoul_internal+1F8j .text:0001C634 ; __strtoul_internal+244j .text:0001C634 LDRB R12, [R7,#1]! .text:0001C638 CMP R12, #0 .text:0001C63C BNE loc_1C5AC .text:0001C640 .text:0001C640 loc_1C640 ; CODE XREF: __strtoul_internal+1ECj .text:0001C640 ; __strtoul_internal+25Cj ... .text:0001C640 LDR R0, [R11,#var_44] .text:0001C644 MOV R6, R7 .text:0001C648 CMP R0, #0 .text:0001C64C BEQ loc_1C85C .text:0001C650 MOV R0, R8 .text:0001C654 BL strlen .text:0001C658 CMP R7, R5 .text:0001C65C MOV R7, R0 .text:0001C660 BLS loc_1C848 .text:0001C664 .text:0001C664 loc_1C664 ; CODE XREF: __strtoul_internal+488j .text:0001C664 SUB R12, R6, #1 .text:0001C668 CMP R12, R5 .text:0001C66C LDR R4, [R11,#var_44] .text:0001C670 BCC loc_1C6E4 .text:0001C674 SUB R10, R7, #2 .text:0001C678 LDRB R0, [R8] .text:0001C67C .text:0001C67C loc_1C67C ; CODE XREF: __strtoul_internal+324j .text:0001C67C ADD R3, R7, R12 .text:0001C680 LDRB R2, [R3,#-1] .text:0001C684 CMP R2, R0 .text:0001C688 BNE loc_1C6D8 .text:0001C68C MOV LR, #1 .text:0001C690 LDRB R2, [R8,LR] .text:0001C694 CMP R2, #0 .text:0001C698 BEQ loc_1C6CC .text:0001C69C LDRB R3, [R12,R10] .text:0001C6A0 CMP R2, R3 .text:0001C6A4 BNE loc_1C6CC .text:0001C6A8 SUB R1, R7, #2 .text:0001C6AC .text:0001C6AC loc_1C6AC ; CODE XREF: __strtoul_internal+30Cj .text:0001C6AC ADD LR, LR, #1 .text:0001C6B0 LDRB R2, [R8,LR] .text:0001C6B4 SUB R1, R1, #1 .text:0001C6B8 CMP R2, #0 .text:0001C6BC BEQ loc_1C6CC .text:0001C6C0 LDRB R3, [R12,R1] .text:0001C6C4 CMP R2, R3 .text:0001C6C8 BEQ loc_1C6AC .text:0001C6CC .text:0001C6CC loc_1C6CC ; CODE XREF: __strtoul_internal+2DCj .text:0001C6CC ; __strtoul_internal+2E8j ... .text:0001C6CC LDRB R3, [R8,LR] .text:0001C6D0 CMP R3, #0 .text:0001C6D4 BEQ loc_1C6E4 .text:0001C6D8 .text:0001C6D8 loc_1C6D8 ; CODE XREF: __strtoul_internal+2CCj .text:0001C6D8 SUB R12, R12, #1 .text:0001C6DC CMP R12, R5 .text:0001C6E0 BCS loc_1C67C .text:0001C6E4 .text:0001C6E4 loc_1C6E4 ; CODE XREF: __strtoul_internal+2B4j .text:0001C6E4 ; __strtoul_internal+318j .text:0001C6E4 CMP R12, R5 .text:0001C6E8 BCC loc_1C78C .text:0001C6EC LDR R2, [R11,#var_44] .text:0001C6F0 LDRB R1, [R2] .text:0001C6F4 RSB R2, R12, R6 .text:0001C6F8 ADD R3, R1, #1 .text:0001C6FC CMP R2, R3 .text:0001C700 BNE loc_1C834 .text:0001C704 SUB R10, R12, #1 .text:0001C708 .text:0001C708 loc_1C708 ; CODE XREF: __strtoul_internal+3CCj .text:0001C708 ; __strtoul_internal+46Cj .text:0001C708 ADD R4, R4, #1 .text:0001C70C MOV R3, R4 .text:0001C710 LDRB R2, [R3],#-1 .text:0001C714 CMP R2, #0 .text:0001C718 MOVEQ R4, R3 .text:0001C71C LDRB R1, [R4] .text:0001C720 SUB R12, R12, #1 .text:0001C724 CMP R1, #0xFF .text:0001C728 BNE loc_1C794 .text:0001C72C CMP R12, R5 .text:0001C730 BCC loc_1C784 .text:0001C734 .text:0001C734 loc_1C734 ; CODE XREF: __strtoul_internal+3C4j .text:0001C734 LDRB R1, [R8] .text:0001C738 MOV LR, #0 .text:0001C73C CMP R1, LR .text:0001C740 BEQ loc_1C76C .text:0001C744 ADD R2, R7, R12 .text:0001C748 B loc_1C760 .text:0001C74C ; --------------------------------------------------------------------------- .text:0001C74C .text:0001C74C loc_1C74C ; CODE XREF: __strtoul_internal+3ACj .text:0001C74C ADD LR, LR, #1 .text:0001C750 LDRB R1, [R8,LR] .text:0001C754 SUB R2, R2, #1 .text:0001C758 CMP R1, #0 .text:0001C75C BEQ loc_1C76C .text:0001C760 .text:0001C760 loc_1C760 ; CODE XREF: __strtoul_internal+38Cj .text:0001C760 LDRB R3, [R2,#-1] .text:0001C764 CMP R1, R3 .text:0001C768 BEQ loc_1C74C .text:0001C76C .text:0001C76C loc_1C76C ; CODE XREF: __strtoul_internal+384j .text:0001C76C ; __strtoul_internal+3A0j .text:0001C76C LDRB R3, [R8,LR] .text:0001C770 CMP R3, #0 .text:0001C774 BEQ loc_1C784 .text:0001C778 SUB R12, R12, #1 .text:0001C77C CMP R12, R5 .text:0001C780 BCS loc_1C734 .text:0001C784 .text:0001C784 loc_1C784 ; CODE XREF: __strtoul_internal+374j .text:0001C784 ; __strtoul_internal+3B8j .text:0001C784 CMP R12, R5 .text:0001C788 BCS loc_1C708 .text:0001C78C .text:0001C78C loc_1C78C ; CODE XREF: __strtoul_internal+32Cj .text:0001C78C ; __strtoul_internal+454j .text:0001C78C MOV R7, R6 .text:0001C790 B loc_1C85C .text:0001C794 ; --------------------------------------------------------------------------- .text:0001C794 .text:0001C794 loc_1C794 ; CODE XREF: __strtoul_internal+36Cj .text:0001C794 CMP R12, R5 .text:0001C798 MOV R0, R12 .text:0001C79C BCC loc_1C7FC .text:0001C7A0 .text:0001C7A0 loc_1C7A0 ; CODE XREF: __strtoul_internal+43Cj .text:0001C7A0 LDRB R1, [R8] .text:0001C7A4 MOV LR, #0 .text:0001C7A8 CMP R1, LR .text:0001C7AC BEQ loc_1C7E4 .text:0001C7B0 ADD R2, R7, R12 .text:0001C7B4 B loc_1C7D8 .text:0001C7B4 ; --------------------------------------------------------------------------- .text:0001C7B8 off_1C7B8 DCD _nl_current_LC_NUMERIC .text:0001C7B8 ; DATA XREF: __strtoul_internal+30r .text:0001C7BC off_1C7BC DCD __ctype_b ; DATA XREF: __strtoul_internal+ACr .text:0001C7C0 off_1C7C0 DCD __ctype_toupper ; DATA XREF: __strtoul_internal+13Cr .text:0001C7C0 ; __strtoul_internal+260r .text:0001C7C4 ; --------------------------------------------------------------------------- .text:0001C7C4 .text:0001C7C4 loc_1C7C4 ; CODE XREF: __strtoul_internal+424j .text:0001C7C4 ADD LR, LR, #1 .text:0001C7C8 LDRB R1, [R8,LR] .text:0001C7CC SUB R2, R2, #1 .text:0001C7D0 CMP R1, #0 .text:0001C7D4 BEQ loc_1C7E4 .text:0001C7D8 .text:0001C7D8 loc_1C7D8 ; CODE XREF: __strtoul_internal+3F8j .text:0001C7D8 LDRB R3, [R2,#-1] .text:0001C7DC CMP R1, R3 .text:0001C7E0 BEQ loc_1C7C4 .text:0001C7E4 .text:0001C7E4 loc_1C7E4 ; CODE XREF: __strtoul_internal+3F0j .text:0001C7E4 ; __strtoul_internal+418j .text:0001C7E4 LDRB R3, [R8,LR] .text:0001C7E8 CMP R3, #0 .text:0001C7EC BEQ loc_1C7FC .text:0001C7F0 SUB R12, R12, #1 .text:0001C7F4 CMP R12, R5 .text:0001C7F8 BCS loc_1C7A0 .text:0001C7FC .text:0001C7FC loc_1C7FC ; CODE XREF: __strtoul_internal+3E0j .text:0001C7FC ; __strtoul_internal+430j .text:0001C7FC CMP R12, R5 .text:0001C800 BCS loc_1C814 .text:0001C804 LDRB R2, [R4] .text:0001C808 RSB R3, R12, R0 .text:0001C80C CMP R3, R2 .text:0001C810 BLE loc_1C78C .text:0001C814 .text:0001C814 loc_1C814 ; CODE XREF: __strtoul_internal+444j .text:0001C814 CMP R12, R5 .text:0001C818 BCC loc_1C82C .text:0001C81C LDRB R2, [R4] .text:0001C820 RSB R3, R12, R0 .text:0001C824 CMP R3, R2 .text:0001C828 BEQ loc_1C708 .text:0001C82C .text:0001C82C loc_1C82C ; CODE XREF: __strtoul_internal+45Cj .text:0001C82C MOV R6, R10 .text:0001C830 B loc_1C840 .text:0001C834 ; --------------------------------------------------------------------------- .text:0001C834 .text:0001C834 loc_1C834 ; CODE XREF: __strtoul_internal+344j .text:0001C834 ADDGT R3, R12, R1 .text:0001C838 ADDGT R6, R3, #1 .text:0001C83C MOVLE R6, R12 .text:0001C840 .text:0001C840 loc_1C840 ; CODE XREF: __strtoul_internal+474j .text:0001C840 CMP R6, R5 .text:0001C844 BHI loc_1C664 .text:0001C848 .text:0001C848 loc_1C848 ; CODE XREF: __strtoul_internal+2A4j .text:0001C848 CMP R6, R5 .text:0001C84C MOVCS R7, R6 .text:0001C850 MOVCC R7, R5 .text:0001C854 B loc_1C85C .text:0001C858 ; --------------------------------------------------------------------------- .text:0001C858 .text:0001C858 loc_1C858 ; CODE XREF: __strtoul_internal+188j .text:0001C858 LDR R7, [R11,#var_44] .text:0001C85C .text:0001C85C loc_1C85C ; CODE XREF: __strtoul_internal+1E0j .text:0001C85C ; __strtoul_internal+290j ... .text:0001C85C MOV R4, 0xFFFFFFFF .text:0001C860 MOV R0, R4 .text:0001C864 MOV R1, R9 .text:0001C868 BL __udivsi3 .text:0001C86C STR R0, [R11,#var_38] .text:0001C870 MOV R0, R4 .text:0001C874 MOV R1, R9 .text:0001C878 BL __umodsi3 .text:0001C87C MOV LR, #0 .text:0001C880 LDRB R12, [R5] .text:0001C884 MOV R10, LR .text:0001C888 CMP R12, LR .text:0001C88C BEQ loc_1C978 .text:0001C890 CMP R5, R7 .text:0001C894 BEQ loc_1C978 .text:0001C898 LDR R6, =__ctype_b .text:0001C89C LDR R4, =__ctype_toupper .text:0001C8A0 .text:0001C8A0 loc_1C8A0 ; CODE XREF: __strtoul_internal+5B8j .text:0001C8A0 SUB R3, R12, #0x30 .text:0001C8A4 AND R3, R3, #0xFF .text:0001C8A8 CMP R3, #9 .text:0001C8AC MOVLS R12, R3 .text:0001C8B0 BLS loc_1C938 .text:0001C8B4 LDR R3, [R11,#var_40] .text:0001C8B8 CMP R3, #0 .text:0001C8BC BEQ loc_1C910 .text:0001C8C0 MOV R1, #0 .text:0001C8C4 CMP R1, R3 .text:0001C8C8 BCS loc_1C8FC .text:0001C8CC LDRB R2, [R8] .text:0001C8D0 LDRB R3, [R5] .text:0001C8D4 CMP R2, R3 .text:0001C8D8 BNE loc_1C8FC .text:0001C8DC .text:0001C8DC loc_1C8DC ; CODE XREF: __strtoul_internal+53Cj .text:0001C8DC LDR R2, [R11,#var_40] .text:0001C8E0 ADD R1, R1, #1 .text:0001C8E4 CMP R1, R2 .text:0001C8E8 BCS loc_1C8FC .text:0001C8EC LDRB R2, [R8,R1] .text:0001C8F0 LDRB R3, [R5,R1] .text:0001C8F4 CMP R2, R3 .text:0001C8F8 BEQ loc_1C8DC .text:0001C8FC .text:0001C8FC loc_1C8FC ; CODE XREF: __strtoul_internal+50Cj .text:0001C8FC ; __strtoul_internal+51Cj ... .text:0001C8FC LDR R3, [R11,#var_40] .text:0001C900 CMP R1, R3 .text:0001C904 SUBEQ R3, R3, #1 .text:0001C908 ADDEQ R5, R5, R3 .text:0001C90C BEQ loc_1C964 .text:0001C910 .text:0001C910 loc_1C910 ; CODE XREF: __strtoul_internal+500j .text:0001C910 LDR R3, [R6] .text:0001C914 MOV R2, R12,LSL#1 .text:0001C918 ADD R2, R2, R3 .text:0001C91C LDRB R1, [R2,#1] .text:0001C920 TST R1, #4 .text:0001C924 BEQ loc_1C978 .text:0001C928 LDR R2, [R4] .text:0001C92C LDR R3, [R2,R12,LSL#2] .text:0001C930 SUB R3, R3, #0x37 .text:0001C934 AND R12, R3, #0xFF .text:0001C938 .text:0001C938 loc_1C938 ; CODE XREF: __strtoul_internal+4F4j .text:0001C938 CMP R12, R9 .text:0001C93C BGE loc_1C978 .text:0001C940 LDR R1, [R11,#var_38] .text:0001C944 CMP LR, R1 .text:0001C948 BHI loc_1C958 .text:0001C94C BNE loc_1C960 .text:0001C950 CMP R12, R0 .text:0001C954 BLS loc_1C960 .text:0001C958 .text:0001C958 loc_1C958 ; CODE XREF: __strtoul_internal+58Cj .text:0001C958 MOV R10, #1 .text:0001C95C B loc_1C964 .text:0001C960 ; --------------------------------------------------------------------------- .text:0001C960 .text:0001C960 loc_1C960 ; CODE XREF: __strtoul_internal+590j .text:0001C960 ; __strtoul_internal+598j .text:0001C960 MLA LR, R9, LR, R12 .text:0001C964 .text:0001C964 loc_1C964 ; CODE XREF: __strtoul_internal+550j .text:0001C964 ; __strtoul_internal+5A0j .text:0001C964 LDRB R12, [R5,#1]! .text:0001C968 CMP R12, #0 .text:0001C96C BEQ loc_1C978 .text:0001C970 CMP R5, R7 .text:0001C974 BNE loc_1C8A0 .text:0001C978 .text:0001C978 loc_1C978 ; CODE XREF: __strtoul_internal+4D0j .text:0001C978 ; __strtoul_internal+4D8j ... .text:0001C978 LDR R2, [R11,#var_3C] .text:0001C97C CMP R5, R2 .text:0001C980 BEQ loc_1C9C0 .text:0001C984 LDR R3, [R11,#var_30] .text:0001C988 CMP R3, #0 .text:0001C98C STRNE R5, [R3] .text:0001C990 CMP R10, #0 .text:0001C994 BEQ loc_1C9AC .text:0001C998 BL __errno_location .text:0001C99C MOV R3, #0x22 .text:0001C9A0 STR R3, [R0] .text:0001C9A4 MOV R0, 0xFFFFFFFF .text:0001C9A8 B locret_1CA30 .text:0001C9AC ; --------------------------------------------------------------------------- .text:0001C9AC .text:0001C9AC loc_1C9AC ; CODE XREF: __strtoul_internal+5D8j .text:0001C9AC LDR R1, [R11,#var_34] .text:0001C9B0 CMP R1, #0 .text:0001C9B4 MOVEQ R0, LR .text:0001C9B8 RSBNE R0, LR, #0 .text:0001C9BC B locret_1CA30 .text:0001C9C0 ; --------------------------------------------------------------------------- .text:0001C9C0 .text:0001C9C0 loc_1C9C0 ; CODE XREF: __strtoul_internal+F4j .text:0001C9C0 ; __strtoul_internal+5C4j .text:0001C9C0 LDR R2, [R11,#var_30] .text:0001C9C4 CMP R2, #0 .text:0001C9C8 BEQ loc_1CA2C .text:0001C9CC LDR R0, [R11,#var_3C] .text:0001C9D0 LDR R1, [R11,#var_2C] .text:0001C9D4 RSB R3, R1, R0 .text:0001C9D8 CMP R3, #1 .text:0001C9DC BLE loc_1CA20 .text:0001C9E0 LDR R1, =__ctype_toupper .text:0001C9E4 LDRB R0, [R0,#-1] .text:0001C9E8 LDR R3, [R1] .text:0001C9EC LDR R2, [R3,R0,LSL#2] .text:0001C9F0 CMP R2, #0x58 .text:0001C9F4 BNE loc_1CA20 .text:0001C9F8 LDR R2, [R11,#var_3C] .text:0001C9FC LDRB R3, [R2,#-2] .text:0001CA00 CMP R3, #0x30 .text:0001CA04 BNE loc_1CA20 .text:0001CA08 LDR R0, [R11,#var_30] .text:0001CA0C SUB R3, R2, #1 .text:0001CA10 STR R3, [R0] .text:0001CA14 B loc_1CA2C .text:0001CA14 ; --------------------------------------------------------------------------- .text:0001CA18 off_1CA18 DCD __ctype_b ; DATA XREF: __strtoul_internal+4DCr .text:0001CA1C off_1CA1C DCD __ctype_toupper ; DATA XREF: __strtoul_internal+4E0r .text:0001CA1C ; __strtoul_internal+624r .text:0001CA20 ; --------------------------------------------------------------------------- .text:0001CA20 .text:0001CA20 loc_1CA20 ; CODE XREF: __strtoul_internal+620j .text:0001CA20 ; __strtoul_internal+638j ... .text:0001CA20 SUB R1, R11, #-var_30 .text:0001CA24 LDMIA R1, {R1,R2} .text:0001CA28 STR R2, [R1] .text:0001CA2C .text:0001CA2C loc_1CA2C ; CODE XREF: __strtoul_internal+9Cj .text:0001CA2C ; __strtoul_internal+60Cj ... .text:0001CA2C MOV R0, #0 .text:0001CA30 .text:0001CA30 locret_1CA30 ; CODE XREF: __strtoul_internal+5ECj .text:0001CA30 ; __strtoul_internal+600j .text:0001CA30 LDMDB R11, {R4-R11,SP,PC} .text:0001CA30 ; End of function __strtoul_internal .text:0001CA30 .text:0001CA34 .text:0001CA34 ; =============== S U B R O U T I N E ======================================= .text:0001CA34 .text:0001CA34 ; Attributes: bp-based frame .text:0001CA34 .text:0001CA34 WEAK strtoul .text:0001CA34 strtoul .text:0001CA34 MOV R12, SP .text:0001CA38 STMFD SP!, {R11,R12,LR,PC} .text:0001CA3C SUB R11, R12, #4 .text:0001CA40 MOV R3, #0 .text:0001CA44 BL __strtoul_internal .text:0001CA48 LDMDB R11, {R11,SP,PC} .text:0001CA48 ; End of function strtoul .text:0001CA48 .text:0001CA4C .text:0001CA4C ; =============== S U B R O U T I N E ======================================= .text:0001CA4C .text:0001CA4C ; Attributes: bp-based frame .text:0001CA4C .text:0001CA4C _i18n_number_rewrite ; CODE XREF: vfprintf+CDCp .text:0001CA4C ; vfprintf+EE0p ... .text:0001CA4C MOV R12, SP .text:0001CA50 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0001CA54 SUB R11, R12, #4 .text:0001CA58 MOV R6, R0 .text:0001CA5C MOV R12, R1 .text:0001CA60 RSB R2, R6, R12 .text:0001CA64 ADD R3, R2, #3 .text:0001CA68 BIC R3, R3, #3 .text:0001CA6C MOV R1, R6 .text:0001CA70 MOV R6, R12 .text:0001CA74 RSB SP, R3, SP .text:0001CA78 MOV R0, SP .text:0001CA7C MOV R7, SP .text:0001CA80 BL mempcpy .text:0001CA84 SUB R4, R0, #1 .text:0001CA88 CMP R4, SP .text:0001CA8C BCC loc_1CB34 .text:0001CA90 .text:0001CA90 loc_1CA90 ; CODE XREF: _i18n_number_rewrite+E4j .text:0001CA90 LDRB R2, [R4] .text:0001CA94 SUB R3, R2, #0x30 .text:0001CA98 CMP R3, #9 .text:0001CA9C BHI loc_1CB20 .text:0001CAA0 LDRB R2, [R4] .text:0001CAA4 SUB R3, R2, #0x30 .text:0001CAA8 CMP R3, #9 .text:0001CAAC BLS loc_1CAC4 .text:0001CAB0 LDR R0, =a0NN9 ; "0 <= n && n <= 9" .text:0001CAB4 LDR R1, =a__LocaleOutdig ; "../locale/outdigits.h" .text:0001CAB8 LDR R3, =aOutdigit_value ; "outdigit_value" .text:0001CABC MOV R2, #0x24 .text:0001CAC0 BL __assert_fail .text:0001CAC4 ; --------------------------------------------------------------------------- .text:0001CAC4 .text:0001CAC4 loc_1CAC4 ; CODE XREF: _i18n_number_rewrite+60j .text:0001CAC4 SUB R2, R2, #7 .text:0001CAC8 LDR R1, =_nl_current_LC_CTYPE .text:0001CACC MOV R2, R2,LSL#16 .text:0001CAD0 LDR R3, [R1] .text:0001CAD4 MOV R2, R2,LSR#16 .text:0001CAD8 ADD R3, R3, #0x20 .text:0001CADC LDR R5, [R3,R2,LSL#2] .text:0001CAE0 MOV R0, R5 .text:0001CAE4 BL strlen .text:0001CAE8 RSB R1, R0, R6 .text:0001CAEC MOV R3, R0 .text:0001CAF0 SUB R0, R0, #1 .text:0001CAF4 CMP R3, #0 .text:0001CAF8 SUB R12, R4, #1 .text:0001CAFC BEQ loc_1CB18 .text:0001CB00 .text:0001CB00 loc_1CB00 ; CODE XREF: _i18n_number_rewrite+C8j .text:0001CB00 MOV R3, R0 .text:0001CB04 LDRB R2, [R5,R0] .text:0001CB08 CMP R3, #0 .text:0001CB0C STRB R2, [R1,R0] .text:0001CB10 SUB R0, R0, #1 .text:0001CB14 BNE loc_1CB00 .text:0001CB18 .text:0001CB18 loc_1CB18 ; CODE XREF: _i18n_number_rewrite+B0j .text:0001CB18 MOV R6, R1 .text:0001CB1C B loc_1CB28 .text:0001CB20 ; --------------------------------------------------------------------------- .text:0001CB20 .text:0001CB20 loc_1CB20 ; CODE XREF: _i18n_number_rewrite+50j .text:0001CB20 SUB R12, R4, #1 .text:0001CB24 STRB R2, [R6,#-1]! .text:0001CB28 .text:0001CB28 loc_1CB28 ; CODE XREF: _i18n_number_rewrite+D0j .text:0001CB28 MOV R4, R12 .text:0001CB2C CMP R4, R7 .text:0001CB30 BCS loc_1CA90 .text:0001CB34 .text:0001CB34 loc_1CB34 ; CODE XREF: _i18n_number_rewrite+40j .text:0001CB34 MOV R0, R6 .text:0001CB38 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001CB38 ; End of function _i18n_number_rewrite .text:0001CB38 .text:0001CB38 ; --------------------------------------------------------------------------- .text:0001CB3C off_1CB3C DCD a0NN9 ; DATA XREF: _i18n_number_rewrite+64r .text:0001CB3C ; "0 <= n && n <= 9" .text:0001CB40 off_1CB40 DCD a__LocaleOutdig ; DATA XREF: _i18n_number_rewrite+68r .text:0001CB40 ; "../locale/outdigits.h" .text:0001CB44 off_1CB44 DCD aOutdigit_value ; DATA XREF: _i18n_number_rewrite+6Cr .text:0001CB44 ; "outdigit_value" .text:0001CB48 off_1CB48 DCD _nl_current_LC_CTYPE .text:0001CB48 ; DATA XREF: _i18n_number_rewrite+7Cr .text:0001CB4C .text:0001CB4C ; =============== S U B R O U T I N E ======================================= .text:0001CB4C .text:0001CB4C ; Attributes: bp-based frame .text:0001CB4C .text:0001CB4C EXPORT vfprintf .text:0001CB4C vfprintf ; CODE XREF: printf+20p .text:0001CB4C ; buffered_vfprintf+D4p ... .text:0001CB4C .text:0001CB4C var_BCC = -0xBCC .text:0001CB4C var_BC8 = -0xBC8 .text:0001CB4C var_5CC = -0x5CC .text:0001CB4C var_5C8 = -0x5C8 .text:0001CB4C var_5C4 = -0x5C4 .text:0001CB4C var_5C0 = -0x5C0 .text:0001CB4C var_5BC = -0x5BC .text:0001CB4C var_5B8 = -0x5B8 .text:0001CB4C var_5B4 = -0x5B4 .text:0001CB4C var_5B0 = -0x5B0 .text:0001CB4C var_5AC = -0x5AC .text:0001CB4C var_5A8 = -0x5A8 .text:0001CB4C var_5A4 = -0x5A4 .text:0001CB4C var_5A0 = -0x5A0 .text:0001CB4C var_59C = -0x59C .text:0001CB4C var_598 = -0x598 .text:0001CB4C var_594 = -0x594 .text:0001CB4C var_590 = -0x590 .text:0001CB4C var_58C = -0x58C .text:0001CB4C var_588 = -0x588 .text:0001CB4C var_584 = -0x584 .text:0001CB4C var_580 = -0x580 .text:0001CB4C var_57C = -0x57C .text:0001CB4C var_578 = -0x578 .text:0001CB4C var_574 = -0x574 .text:0001CB4C var_570 = -0x570 .text:0001CB4C var_56C = -0x56C .text:0001CB4C var_568 = -0x568 .text:0001CB4C var_564 = -0x564 .text:0001CB4C var_560 = -0x560 .text:0001CB4C var_55C = -0x55C .text:0001CB4C var_558 = -0x558 .text:0001CB4C var_554 = -0x554 .text:0001CB4C var_550 = -0x550 .text:0001CB4C var_54C = -0x54C .text:0001CB4C var_548 = -0x548 .text:0001CB4C var_544 = -0x544 .text:0001CB4C var_540 = -0x540 .text:0001CB4C var_53C = -0x53C .text:0001CB4C var_538 = -0x538 .text:0001CB4C var_534 = -0x534 .text:0001CB4C var_530 = -0x530 .text:0001CB4C var_52C = -0x52C .text:0001CB4C var_528 = -0x528 .text:0001CB4C var_524 = -0x524 .text:0001CB4C var_520 = -0x520 .text:0001CB4C var_51C = -0x51C .text:0001CB4C var_518 = -0x518 .text:0001CB4C var_514 = -0x514 .text:0001CB4C var_510 = -0x510 .text:0001CB4C var_50C = -0x50C .text:0001CB4C var_508 = -0x508 .text:0001CB4C var_504 = -0x504 .text:0001CB4C var_500 = -0x500 .text:0001CB4C var_4FC = -0x4FC .text:0001CB4C var_4F8 = -0x4F8 .text:0001CB4C var_4F4 = -0x4F4 .text:0001CB4C var_4F0 = -0x4F0 .text:0001CB4C var_4EC = -0x4EC .text:0001CB4C var_4E0 = -0x4E0 .text:0001CB4C var_4DC = -0x4DC .text:0001CB4C var_4D0 = -0x4D0 .text:0001CB4C var_4CC = -0x4CC .text:0001CB4C var_4C8 = -0x4C8 .text:0001CB4C var_4C0 = -0x4C0 .text:0001CB4C var_4BC = -0x4BC .text:0001CB4C var_4B8 = -0x4B8 .text:0001CB4C var_4B4 = -0x4B4 .text:0001CB4C var_4B0 = -0x4B0 .text:0001CB4C var_4A8 = -0x4A8 .text:0001CB4C var_4A4 = -0x4A4 .text:0001CB4C var_4A0 = -0x4A0 .text:0001CB4C var_494 = -0x494 .text:0001CB4C var_490 = -0x490 .text:0001CB4C var_484 = -0x484 .text:0001CB4C var_480 = -0x480 .text:0001CB4C var_47C = -0x47C .text:0001CB4C var_478 = -0x478 .text:0001CB4C var_470 = -0x470 .text:0001CB4C var_46C = -0x46C .text:0001CB4C var_468 = -0x468 .text:0001CB4C var_464 = -0x464 .text:0001CB4C var_460 = -0x460 .text:0001CB4C var_45C = -0x45C .text:0001CB4C var_458 = -0x458 .text:0001CB4C var_454 = -0x454 .text:0001CB4C var_450 = -0x450 .text:0001CB4C var_44C = -0x44C .text:0001CB4C var_448 = -0x448 .text:0001CB4C var_444 = -0x444 .text:0001CB4C var_440 = -0x440 .text:0001CB4C var_43C = -0x43C .text:0001CB4C var_438 = -0x438 .text:0001CB4C var_434 = -0x434 .text:0001CB4C var_430 = -0x430 .text:0001CB4C var_42C = -0x42C .text:0001CB4C var_428 = -0x428 .text:0001CB4C var_424 = -0x424 .text:0001CB4C var_420 = -0x420 .text:0001CB4C var_410 = -0x410 .text:0001CB4C var_28 = -0x28 .text:0001CB4C .text:0001CB4C MOV R12, SP .text:0001CB50 STMFD SP!, {R4-R12,LR,PC} .text:0001CB54 SUB R11, R12, #4 .text:0001CB58 SUB SP, SP, #0x5A0 .text:0001CB5C SUB SP, SP, #4 .text:0001CB60 STR R2, [R11,#var_4F0] .text:0001CB64 MOV R10, R0 .text:0001CB68 MOV R5, R1 .text:0001CB6C BL __errno_location .text:0001CB70 LDRB R3, [R10,#0x46] .text:0001CB74 MOV R1, #0 .text:0001CB78 STR R1, [R11,#var_4F4] .text:0001CB7C LDR R0, [R0] .text:0001CB80 CMP R3, R1 .text:0001CB84 STR R0, [R11,#var_508] .text:0001CB88 BNE loc_1CBA8 .text:0001CB8C LDR R3, [R10,#0x5C] .text:0001CB90 MOV R2, 0xFFFFFFFF .text:0001CB94 CMP R3, R1 .text:0001CB98 STREQ R2, [R10,#0x5C] .text:0001CB9C LDR R2, [R10,#0x5C] .text:0001CBA0 CMN R2, #1 .text:0001CBA4 BNE loc_1E78C .text:0001CBA8 .text:0001CBA8 loc_1CBA8 ; CODE XREF: vfprintf+3Cj .text:0001CBA8 LDR R3, [R10] .text:0001CBAC TST R3, #8 .text:0001CBB0 BNE loc_1E780 .text:0001CBB4 CMP R5, #0 .text:0001CBB8 BNE loc_1CBC8 .text:0001CBBC BL __errno_location .text:0001CBC0 MOV R3, #0x16 .text:0001CBC4 B loc_1E788 .text:0001CBC8 ; --------------------------------------------------------------------------- .text:0001CBC8 .text:0001CBC8 loc_1CBC8 ; CODE XREF: vfprintf+6Cj .text:0001CBC8 LDRB R3, [R10,#0x46] .text:0001CBCC CMP R3, #0 .text:0001CBD0 BNE loc_1CBF0 .text:0001CBD4 LDR R3, [R10,#0x5C] .text:0001CBD8 MOV R2, 0xFFFFFFFF .text:0001CBDC CMP R3, #0 .text:0001CBE0 STREQ R2, [R10,#0x5C] .text:0001CBE4 LDR R2, [R10,#0x5C] .text:0001CBE8 CMN R2, #1 .text:0001CBEC BNE loc_1E78C .text:0001CBF0 .text:0001CBF0 loc_1CBF0 ; CODE XREF: vfprintf+84j .text:0001CBF0 LDR R3, [R10] .text:0001CBF4 ANDS R6, R3, #2 .text:0001CBF8 BEQ loc_1CC10 .text:0001CBFC MOV R0, R10 .text:0001CC00 LDR R2, [R11,#var_4F0] .text:0001CC04 MOV R1, R5 .text:0001CC08 BL buffered_vfprintf .text:0001CC0C B loc_20BC4 .text:0001CC10 ; --------------------------------------------------------------------------- .text:0001CC10 .text:0001CC10 loc_1CC10 ; CODE XREF: vfprintf+ACj .text:0001CC10 MOV R2, 0xFFFFFFFF .text:0001CC14 STR R2, [R11,#var_4F8] .text:0001CC18 MOV R9, R6 .text:0001CC1C STR R9, [R11,#var_504] .text:0001CC20 SUB R4, R11, #-var_470 .text:0001CC24 STR R5, [R11,#var_50C] .text:0001CC28 SUB R4, R4, #8 .text:0001CC2C MOV R0, R4 .text:0001CC30 ADD R2, R2, #9 .text:0001CC34 MOV R1, R9 .text:0001CC38 BL memset .text:0001CC3C LDR R5, [R11,#var_50C] .text:0001CC40 LDR R12, [R11,#var_4F0] .text:0001CC44 LDR R7, =0 .text:0001CC48 LDRB R3, [R5] .text:0001CC4C STR R12, [R11,#var_500] .text:0001CC50 CMP R3, #0 .text:0001CC54 CMPNE R3, #0x25 .text:0001CC58 BEQ loc_1CCBC .text:0001CC5C .text:0001CC5C loc_1CC5C ; CODE XREF: vfprintf+16Cj .text:0001CC5C LDR R0, [R11,#var_50C] .text:0001CC60 LDRB R2, [R0] .text:0001CC64 MOV R3, #0 .text:0001CC68 STR R3, [R4] .text:0001CC6C TST R2, #0x80 .text:0001CC70 BEQ loc_1CC9C .text:0001CC74 BL __ctype_get_mb_cur_max .text:0001CC78 MOV R1, R0 .text:0001CC7C LDR R0, [R11,#var_50C] .text:0001CC80 MOV R2, R4 .text:0001CC84 BL mbrlen .text:0001CC88 CMP R0, #0 .text:0001CC8C LDRGT R1, [R11,#var_50C] .text:0001CC90 ADDGT R1, R1, R0 .text:0001CC94 STRGT R1, [R11,#var_50C] .text:0001CC98 BGT loc_1CCA8 .text:0001CC9C .text:0001CC9C loc_1CC9C ; CODE XREF: vfprintf+124j .text:0001CC9C LDR R2, [R11,#var_50C] .text:0001CCA0 ADD R2, R2, #1 .text:0001CCA4 STR R2, [R11,#var_50C] .text:0001CCA8 .text:0001CCA8 loc_1CCA8 ; CODE XREF: vfprintf+14Cj .text:0001CCA8 LDR R12, [R11,#var_50C] .text:0001CCAC LDRB R3, [R12] .text:0001CCB0 CMP R3, #0 .text:0001CCB4 CMPNE R3, #0x25 .text:0001CCB8 BNE loc_1CC5C .text:0001CCBC .text:0001CCBC loc_1CCBC ; CODE XREF: vfprintf+10Cj .text:0001CCBC SUBS R0, R7, #0 .text:0001CCC0 MOVNE R0, #1 .text:0001CCC4 STR R0, [R11,#var_510] .text:0001CCC8 LDR R1, [R11,#var_50C] .text:0001CCCC CMP R0, #0 .text:0001CCD0 STR R1, [R11,#var_480] .text:0001CCD4 BEQ loc_1CCEC .text:0001CCD8 SUB R0, R11, #-var_420 .text:0001CCDC LDR R1, =funlockfile .text:0001CCE0 MOV R2, R10 .text:0001CCE4 MOV LR, PC .text:0001CCE8 MOV PC, R7 .text:0001CCEC .text:0001CCEC loc_1CCEC ; CODE XREF: vfprintf+188j .text:0001CCEC LDR R3, [R10] .text:0001CCF0 TST R3, #0x8000 .text:0001CCF4 BNE loc_1CD00 .text:0001CCF8 MOV R0, R10 .text:0001CCFC BL flockfile .text:0001CD00 .text:0001CD00 loc_1CD00 ; CODE XREF: vfprintf+1A8j .text:0001CD00 MOV R0, R10 .text:0001CD04 LDRB R3, [R10,#0x46] .text:0001CD08 MOV R1, R5 .text:0001CD0C LDR R2, [R11,#var_50C] .text:0001CD10 MOV R3, R3,LSL#24 .text:0001CD14 ADD R3, R10, R3,ASR#24 .text:0001CD18 RSB R4, R5, R2 .text:0001CD1C LDR R12, [R3,#0x94] .text:0001CD20 MOV R2, R4 .text:0001CD24 MOV LR, PC .text:0001CD28 LDR PC, [R12,#0x1C] .text:0001CD2C CMP R0, R4 .text:0001CD30 BNE loc_1E6B4 .text:0001CD34 ADD R9, R6, R0 .text:0001CD38 LDR R3, [R11,#var_480] .text:0001CD3C LDRB R2, [R3] .text:0001CD40 MOV R1, R3 .text:0001CD44 CMP R2, #0 .text:0001CD48 BEQ loc_20B94 .text:0001CD4C .text:0001CD4C loc_1CD4C ; CODE XREF: vfprintf+1C2Cj .text:0001CD4C MOV R3, #0 .text:0001CD50 STR R3, [R11,#var_524] .text:0001CD54 STR R3, [R11,#var_528] .text:0001CD58 STR R3, [R11,#var_52C] .text:0001CD5C MOV R4, 0xFFFFFFFF .text:0001CD60 STR R4, [R11,#var_54C] .text:0001CD64 MOV R12, #0x20 .text:0001CD68 STR R12, [R11,#var_554] .text:0001CD6C STR R3, [R11,#var_530] .text:0001CD70 STR R3, [R11,#var_534] .text:0001CD74 STR R3, [R11,#var_538] .text:0001CD78 STR R3, [R11,#var_53C] .text:0001CD7C STR R3, [R11,#var_540] .text:0001CD80 STR R3, [R11,#var_548] .text:0001CD84 STR R3, [R11,#var_544] .text:0001CD88 STR R3, [R11,#var_550] .text:0001CD8C SUB R0, R11, #-var_28 .text:0001CD90 STR R0, [R11,#var_4FC] .text:0001CD94 ADD R3, R1, #1 .text:0001CD98 STR R3, [R11,#var_480] .text:0001CD9C LDRB R1, [R1,#1] .text:0001CDA0 SUB R2, R1, #0x20 .text:0001CDA4 AND R3, R2, #0xFF .text:0001CDA8 CMP R3, #0x5A .text:0001CDAC STR R1, [R11,#var_558] .text:0001CDB0 BHI loc_1CDC8 .text:0001CDB4 LDR R3, =jump_table.174 .text:0001CDB8 LDR R1, =step0_jumps.175 .text:0001CDBC LDR R2, [R3,R2,LSL#2] .text:0001CDC0 LDR R3, [R1,R2,LSL#2] .text:0001CDC4 B loc_1CDCC .text:0001CDC8 ; --------------------------------------------------------------------------- .text:0001CDC8 .text:0001CDC8 loc_1CDC8 ; CODE XREF: vfprintf+264j .text:0001CDC8 LDR R3, =loc_1E6A8 .text:0001CDCC .text:0001CDCC loc_1CDCC ; CODE XREF: vfprintf+278j .text:0001CDCC MOV PC, R3 .text:0001CDD0 ; --------------------------------------------------------------------------- .text:0001CDD0 MOV R1, #1 .text:0001CDD4 STR R1, [R11,#var_528] .text:0001CDD8 LDR R3, [R11,#var_480] .text:0001CDDC ADD R2, R3, R1 .text:0001CDE0 STR R2, [R11,#var_480] .text:0001CDE4 LDRB R3, [R3,#1] .text:0001CDE8 SUB R2, R3, #0x20 .text:0001CDEC STR R3, [R11,#var_558] .text:0001CDF0 AND R3, R2, #0xFF .text:0001CDF4 CMP R3, #0x5A .text:0001CDF8 BHI loc_1CE10 .text:0001CDFC LDR R3, =jump_table.174 .text:0001CE00 LDR R1, =step0_jumps.175 .text:0001CE04 LDR R2, [R3,R2,LSL#2] .text:0001CE08 LDR R3, [R1,R2,LSL#2] .text:0001CE0C B loc_1CE14 .text:0001CE10 ; --------------------------------------------------------------------------- .text:0001CE10 .text:0001CE10 loc_1CE10 ; CODE XREF: vfprintf+2ACj .text:0001CE10 LDR R3, =loc_1E6A8 .text:0001CE14 .text:0001CE14 loc_1CE14 ; CODE XREF: vfprintf+2C0j .text:0001CE14 MOV PC, R3 .text:0001CE18 ; --------------------------------------------------------------------------- .text:0001CE18 MOV R2, #1 .text:0001CE1C STR R2, [R11,#var_530] .text:0001CE20 LDR R3, [R11,#var_480] .text:0001CE24 ADD R2, R3, R2 .text:0001CE28 STR R2, [R11,#var_480] .text:0001CE2C LDRB R3, [R3,#1] .text:0001CE30 SUB R2, R3, #0x20 .text:0001CE34 STR R3, [R11,#var_558] .text:0001CE38 AND R3, R2, #0xFF .text:0001CE3C CMP R3, #0x5A .text:0001CE40 BHI loc_1CE58 .text:0001CE44 LDR R3, =jump_table.174 .text:0001CE48 LDR R1, =step0_jumps.175 .text:0001CE4C LDR R2, [R3,R2,LSL#2] .text:0001CE50 LDR R3, [R1,R2,LSL#2] .text:0001CE54 B loc_1CE5C .text:0001CE58 ; --------------------------------------------------------------------------- .text:0001CE58 .text:0001CE58 loc_1CE58 ; CODE XREF: vfprintf+2F4j .text:0001CE58 LDR R3, =loc_1E6A8 .text:0001CE5C .text:0001CE5C loc_1CE5C ; CODE XREF: vfprintf+308j .text:0001CE5C MOV PC, R3 .text:0001CE60 ; --------------------------------------------------------------------------- .text:0001CE60 MOV R3, #1 .text:0001CE64 STR R3, [R11,#var_52C] .text:0001CE68 MOV R4, #0x20 .text:0001CE6C STR R4, [R11,#var_554] .text:0001CE70 LDR R3, [R11,#var_480] .text:0001CE74 ADD R2, R3, #1 .text:0001CE78 STR R2, [R11,#var_480] .text:0001CE7C LDRB R3, [R3,#1] .text:0001CE80 SUB R2, R3, #0x20 .text:0001CE84 STR R3, [R11,#var_558] .text:0001CE88 AND R3, R2, #0xFF .text:0001CE8C CMP R3, #0x5A .text:0001CE90 BHI loc_1CEA8 .text:0001CE94 LDR R3, =jump_table.174 .text:0001CE98 LDR R1, =step0_jumps.175 .text:0001CE9C LDR R2, [R3,R2,LSL#2] .text:0001CEA0 LDR R3, [R1,R2,LSL#2] .text:0001CEA4 B loc_1CEAC .text:0001CEA8 ; --------------------------------------------------------------------------- .text:0001CEA8 .text:0001CEA8 loc_1CEA8 ; CODE XREF: vfprintf+344j .text:0001CEA8 LDR R3, =loc_1E6A8 .text:0001CEAC .text:0001CEAC loc_1CEAC ; CODE XREF: vfprintf+358j .text:0001CEAC MOV PC, R3 .text:0001CEB0 ; --------------------------------------------------------------------------- .text:0001CEB0 MOV R12, #1 .text:0001CEB4 STR R12, [R11,#var_524] .text:0001CEB8 LDR R3, [R11,#var_480] .text:0001CEBC ADD R2, R3, R12 .text:0001CEC0 STR R2, [R11,#var_480] .text:0001CEC4 LDRB R3, [R3,#1] .text:0001CEC8 SUB R2, R3, #0x20 .text:0001CECC STR R3, [R11,#var_558] .text:0001CED0 AND R3, R2, #0xFF .text:0001CED4 CMP R3, #0x5A .text:0001CED8 BHI loc_1CEF0 .text:0001CEDC LDR R3, =jump_table.174 .text:0001CEE0 LDR R1, =step0_jumps.175 .text:0001CEE4 LDR R2, [R3,R2,LSL#2] .text:0001CEE8 LDR R3, [R1,R2,LSL#2] .text:0001CEEC B loc_1CEF4 .text:0001CEF0 ; --------------------------------------------------------------------------- .text:0001CEF0 .text:0001CEF0 loc_1CEF0 ; CODE XREF: vfprintf+38Cj .text:0001CEF0 LDR R3, =loc_1E6A8 .text:0001CEF4 .text:0001CEF4 loc_1CEF4 ; CODE XREF: vfprintf+3A0j .text:0001CEF4 MOV PC, R3 .text:0001CEF8 ; --------------------------------------------------------------------------- .text:0001CEF8 LDR R1, [R11,#var_52C] .text:0001CEFC LDR R0, [R11,#var_554] .text:0001CF00 CMP R1, #0 .text:0001CF04 MOVEQ R0, #0x30 .text:0001CF08 STR R0, [R11,#var_554] .text:0001CF0C LDR R3, [R11,#var_480] .text:0001CF10 ADD R2, R3, #1 .text:0001CF14 STR R2, [R11,#var_480] .text:0001CF18 LDRB R3, [R3,#1] .text:0001CF1C SUB R2, R3, #0x20 .text:0001CF20 STR R3, [R11,#var_558] .text:0001CF24 AND R3, R2, #0xFF .text:0001CF28 CMP R3, #0x5A .text:0001CF2C BHI loc_1CF44 .text:0001CF30 LDR R3, =jump_table.174 .text:0001CF34 LDR R1, =step0_jumps.175 .text:0001CF38 LDR R2, [R3,R2,LSL#2] .text:0001CF3C LDR R3, [R1,R2,LSL#2] .text:0001CF40 B loc_1CF48 .text:0001CF44 ; --------------------------------------------------------------------------- .text:0001CF44 .text:0001CF44 loc_1CF44 ; CODE XREF: vfprintf+3E0j .text:0001CF44 LDR R3, =loc_1E6A8 .text:0001CF48 .text:0001CF48 loc_1CF48 ; CODE XREF: vfprintf+3F4j .text:0001CF48 MOV PC, R3 .text:0001CF4C ; --------------------------------------------------------------------------- .text:0001CF4C LDR R3, [R11,#var_4F8] .text:0001CF50 MOV R2, #1 .text:0001CF54 STR R2, [R11,#var_534] .text:0001CF58 CMN R3, #1 .text:0001CF5C BNE loc_1CF9C .text:0001CF60 LDR R3, =_nl_current_LC_NUMERIC .text:0001CF64 LDR R2, [R3] .text:0001CF68 LDR R4, [R2,#0x28] .text:0001CF6C STR R4, [R11,#var_4F8] .text:0001CF70 LDRB R3, [R4] .text:0001CF74 LDR R2, [R2,#0x24] .text:0001CF78 CMP R3, #0xFF .text:0001CF7C CMPNE R3, #0 .text:0001CF80 STR R2, [R11,#var_4F4] .text:0001CF84 BEQ loc_1CF94 .text:0001CF88 LDRB R3, [R2] .text:0001CF8C CMP R3, #0 .text:0001CF90 BNE loc_1CF9C .text:0001CF94 .text:0001CF94 loc_1CF94 ; CODE XREF: vfprintf+438j .text:0001CF94 MOV R12, #0 .text:0001CF98 STR R12, [R11,#var_4F8] .text:0001CF9C .text:0001CF9C loc_1CF9C ; CODE XREF: vfprintf+410j .text:0001CF9C ; vfprintf+444j .text:0001CF9C LDR R3, [R11,#var_480] .text:0001CFA0 ADD R2, R3, #1 .text:0001CFA4 STR R2, [R11,#var_480] .text:0001CFA8 LDRB R3, [R3,#1] .text:0001CFAC SUB R2, R3, #0x20 .text:0001CFB0 STR R3, [R11,#var_558] .text:0001CFB4 AND R3, R2, #0xFF .text:0001CFB8 CMP R3, #0x5A .text:0001CFBC BHI loc_1CFD4 .text:0001CFC0 LDR R3, =jump_table.174 .text:0001CFC4 LDR R1, =step0_jumps.175 .text:0001CFC8 LDR R2, [R3,R2,LSL#2] .text:0001CFCC LDR R3, [R1,R2,LSL#2] .text:0001CFD0 B loc_1CFD8 .text:0001CFD4 ; --------------------------------------------------------------------------- .text:0001CFD4 .text:0001CFD4 loc_1CFD4 ; CODE XREF: vfprintf+470j .text:0001CFD4 LDR R3, =loc_1E6A8 .text:0001CFD8 .text:0001CFD8 loc_1CFD8 ; CODE XREF: vfprintf+484j .text:0001CFD8 MOV PC, R3 .text:0001CFD8 ; --------------------------------------------------------------------------- .text:0001CFDC dword_1CFDC DCD 0 ; DATA XREF: vfprintf+F8r .text:0001CFE0 off_1CFE0 DCD funlockfile ; DATA XREF: vfprintf+190r .text:0001CFE4 off_1CFE4 DCD jump_table.174 ; DATA XREF: vfprintf+268r .text:0001CFE4 ; vfprintf+2B0r ... .text:0001CFE8 off_1CFE8 DCD step0_jumps.175 ; DATA XREF: vfprintf+26Cr .text:0001CFE8 ; vfprintf+2B4r ... .text:0001CFEC off_1CFEC DCD loc_1E6A8 ; DATA XREF: vfprintf:loc_1CDC8r .text:0001CFEC ; vfprintf:loc_1CE10r ... .text:0001CFF0 off_1CFF0 DCD _nl_current_LC_NUMERIC ; DATA XREF: vfprintf+414r .text:0001CFF4 ; --------------------------------------------------------------------------- .text:0001CFF4 MOV R0, #1 .text:0001CFF8 STR R0, [R11,#var_550] .text:0001CFFC LDR R3, [R11,#var_480] .text:0001D000 ADD R2, R3, R0 .text:0001D004 STR R2, [R11,#var_480] .text:0001D008 LDRB R3, [R3,#1] .text:0001D00C SUB R2, R3, #0x20 .text:0001D010 STR R3, [R11,#var_558] .text:0001D014 AND R3, R2, #0xFF .text:0001D018 CMP R3, #0x5A .text:0001D01C BHI loc_1D034 .text:0001D020 LDR R3, =jump_table.174 .text:0001D024 LDR R1, =step0_jumps.175 .text:0001D028 LDR R2, [R3,R2,LSL#2] .text:0001D02C LDR R3, [R1,R2,LSL#2] .text:0001D030 B loc_1D038 .text:0001D034 ; --------------------------------------------------------------------------- .text:0001D034 .text:0001D034 loc_1D034 ; CODE XREF: vfprintf+4D0j .text:0001D034 LDR R3, =loc_1E6A8 .text:0001D038 .text:0001D038 loc_1D038 ; CODE XREF: vfprintf+4E4j .text:0001D038 MOV PC, R3 .text:0001D03C ; --------------------------------------------------------------------------- .text:0001D03C LDR R2, [R11,#var_480] .text:0001D040 ADD R0, R2, #1 .text:0001D044 STR R0, [R11,#var_480] .text:0001D048 STR R0, [R11,#var_47C] .text:0001D04C LDRB R3, [R2,#1] .text:0001D050 SUB R1, R3, #0x30 .text:0001D054 CMP R1, #9 .text:0001D058 BHI loc_1D0C0 .text:0001D05C ADD R3, R0, #1 .text:0001D060 STR R3, [R11,#var_47C] .text:0001D064 SUB LR, R11, #-var_470 .text:0001D068 SUB LR, LR, #8 .text:0001D06C LDRB R3, [R0,#1] .text:0001D070 SUB LR, LR, #4 .text:0001D074 B loc_1D09C .text:0001D078 ; --------------------------------------------------------------------------- .text:0001D078 .text:0001D078 loc_1D078 ; CODE XREF: vfprintf+558j .text:0001D078 LDR R0, [LR] .text:0001D07C MOV R3, R0 .text:0001D080 LDRB R12, [R3],#1 .text:0001D084 STR R3, [LR] .text:0001D088 ADD R2, R1, R1,LSL#2 .text:0001D08C MOV R1, R2,LSL#1 .text:0001D090 SUB R1, R1, #0x30 .text:0001D094 LDRB R3, [R0,#1] .text:0001D098 ADD R1, R1, R12 .text:0001D09C .text:0001D09C loc_1D09C ; CODE XREF: vfprintf+528j .text:0001D09C SUB R3, R3, #0x30 .text:0001D0A0 CMP R3, #9 .text:0001D0A4 BLS loc_1D078 .text:0001D0A8 CMP R1, #0 .text:0001D0AC BEQ loc_1D0C0 .text:0001D0B0 LDR R3, [R11,#var_47C] .text:0001D0B4 LDRB R2, [R3] .text:0001D0B8 CMP R2, #0x24 .text:0001D0BC BEQ loc_1E7B8 .text:0001D0C0 .text:0001D0C0 loc_1D0C0 ; CODE XREF: vfprintf+50Cj .text:0001D0C0 ; vfprintf+560j .text:0001D0C0 LDR R1, [R11,#var_4F0] .text:0001D0C4 LDR R2, [R1],#4 .text:0001D0C8 STR R2, [R11,#var_548] .text:0001D0CC CMP R2, #0 .text:0001D0D0 STR R1, [R11,#var_4F0] .text:0001D0D4 BGE loc_1D0F0 .text:0001D0D8 RSB R2, R2, #0 .text:0001D0DC STR R2, [R11,#var_548] .text:0001D0E0 MOV R3, #0x20 .text:0001D0E4 STR R3, [R11,#var_554] .text:0001D0E8 MOV R4, #1 .text:0001D0EC STR R4, [R11,#var_52C] .text:0001D0F0 .text:0001D0F0 loc_1D0F0 ; CODE XREF: vfprintf+588j .text:0001D0F0 LDR R12, [R11,#var_548] .text:0001D0F4 ADD R1, R12, #0x20 .text:0001D0F8 CMP R1, #0x3E8 .text:0001D0FC BLT loc_1D118 .text:0001D100 ADD R3, R12, #0x23 .text:0001D104 BIC R3, R3, #3 .text:0001D108 RSB SP, R3, SP .text:0001D10C ADD R2, SP, #0x5CC+var_5C8 .text:0001D110 ADD R2, R2, R1 .text:0001D114 STR R2, [R11,#var_4FC] .text:0001D118 .text:0001D118 loc_1D118 ; CODE XREF: vfprintf+5B0j .text:0001D118 LDR R3, [R11,#var_480] .text:0001D11C LDRB R3, [R3] .text:0001D120 SUB R2, R3, #0x20 .text:0001D124 STR R3, [R11,#var_558] .text:0001D128 AND R3, R2, #0xFF .text:0001D12C CMP R3, #0x5A .text:0001D130 BHI loc_1D148 .text:0001D134 LDR R3, =jump_table.174 .text:0001D138 LDR R1, =step1_jumps.176 .text:0001D13C LDR R2, [R3,R2,LSL#2] .text:0001D140 LDR R3, [R1,R2,LSL#2] .text:0001D144 B loc_1D14C .text:0001D148 ; --------------------------------------------------------------------------- .text:0001D148 .text:0001D148 loc_1D148 ; CODE XREF: vfprintf+5E4j .text:0001D148 LDR R3, =loc_1E6A8 .text:0001D14C .text:0001D14C loc_1D14C ; CODE XREF: vfprintf+5F8j .text:0001D14C MOV PC, R3 .text:0001D150 ; --------------------------------------------------------------------------- .text:0001D150 LDR R2, [R11,#var_480] .text:0001D154 MOV R3, R2 .text:0001D158 LDRB R1, [R3],#1 .text:0001D15C STR R3, [R11,#var_480] .text:0001D160 SUB LR, R11, #-var_470 .text:0001D164 SUB LR, LR, #8 .text:0001D168 SUB LR, LR, #8 .text:0001D16C LDRB R3, [R2,#1] .text:0001D170 SUB R2, R1, #0x30 .text:0001D174 B loc_1D19C .text:0001D178 ; --------------------------------------------------------------------------- .text:0001D178 .text:0001D178 loc_1D178 ; CODE XREF: vfprintf+658j .text:0001D178 LDR R0, [LR] .text:0001D17C MOV R3, R0 .text:0001D180 LDRB R12, [R3],#1 .text:0001D184 STR R3, [LR] .text:0001D188 ADD R2, R2, R2,LSL#2 .text:0001D18C MOV R2, R2,LSL#1 .text:0001D190 SUB R1, R2, #0x30 .text:0001D194 LDRB R3, [R0,#1] .text:0001D198 ADD R2, R1, R12 .text:0001D19C .text:0001D19C loc_1D19C ; CODE XREF: vfprintf+628j .text:0001D19C SUB R3, R3, #0x30 .text:0001D1A0 CMP R3, #9 .text:0001D1A4 BLS loc_1D178 .text:0001D1A8 STR R2, [R11,#var_548] .text:0001D1AC ADD R1, R2, #0x20 .text:0001D1B0 CMP R1, #0x3E8 .text:0001D1B4 BLT loc_1D1D0 .text:0001D1B8 ADD R3, R2, #0x23 .text:0001D1BC BIC R3, R3, #3 .text:0001D1C0 RSB SP, R3, SP .text:0001D1C4 ADD R2, SP, #0x5CC+var_5C8 .text:0001D1C8 ADD R2, R2, R1 .text:0001D1CC STR R2, [R11,#var_4FC] .text:0001D1D0 .text:0001D1D0 loc_1D1D0 ; CODE XREF: vfprintf+668j .text:0001D1D0 LDR R2, [R11,#var_480] .text:0001D1D4 LDRB R3, [R2] .text:0001D1D8 CMP R3, #0x24 .text:0001D1DC BEQ loc_1E7B8 .text:0001D1E0 MOV R2, R3 .text:0001D1E4 STR R2, [R11,#var_558] .text:0001D1E8 SUB R2, R2, #0x20 .text:0001D1EC AND R3, R2, #0xFF .text:0001D1F0 CMP R3, #0x5A .text:0001D1F4 BHI loc_1D20C .text:0001D1F8 LDR R3, =jump_table.174 .text:0001D1FC LDR R1, =step1_jumps.176 .text:0001D200 LDR R2, [R3,R2,LSL#2] .text:0001D204 LDR R3, [R1,R2,LSL#2] .text:0001D208 B loc_1D210 .text:0001D20C ; --------------------------------------------------------------------------- .text:0001D20C .text:0001D20C loc_1D20C ; CODE XREF: vfprintf+6A8j .text:0001D20C LDR R3, =loc_1E6A8 .text:0001D210 .text:0001D210 loc_1D210 ; CODE XREF: vfprintf+6BCj .text:0001D210 MOV PC, R3 .text:0001D214 ; --------------------------------------------------------------------------- .text:0001D214 LDR R2, [R11,#var_480] .text:0001D218 ADD R0, R2, #1 .text:0001D21C STR R0, [R11,#var_480] .text:0001D220 LDRB R3, [R2,#1] .text:0001D224 CMP R3, #0x2A .text:0001D228 MOV R3, R0 .text:0001D22C BNE loc_1D2CC .text:0001D230 ADD R0, R3, #1 .text:0001D234 STR R0, [R11,#var_480] .text:0001D238 STR R0, [R11,#var_484] .text:0001D23C LDRB R3, [R3,#1] .text:0001D240 SUB R1, R3, #0x30 .text:0001D244 CMP R1, #9 .text:0001D248 BHI loc_1D2B0 .text:0001D24C ADD R3, R0, #1 .text:0001D250 STR R3, [R11,#var_484] .text:0001D254 SUB LR, R11, #-var_470 .text:0001D258 SUB LR, LR, #8 .text:0001D25C LDRB R3, [R0,#1] .text:0001D260 SUB LR, LR, #0xC .text:0001D264 B loc_1D28C .text:0001D268 ; --------------------------------------------------------------------------- .text:0001D268 .text:0001D268 loc_1D268 ; CODE XREF: vfprintf+748j .text:0001D268 LDR R0, [LR] .text:0001D26C MOV R3, R0 .text:0001D270 LDRB R12, [R3],#1 .text:0001D274 STR R3, [LR] .text:0001D278 ADD R2, R1, R1,LSL#2 .text:0001D27C MOV R1, R2,LSL#1 .text:0001D280 SUB R1, R1, #0x30 .text:0001D284 LDRB R3, [R0,#1] .text:0001D288 ADD R1, R1, R12 .text:0001D28C .text:0001D28C loc_1D28C ; CODE XREF: vfprintf+718j .text:0001D28C SUB R3, R3, #0x30 .text:0001D290 CMP R3, #9 .text:0001D294 BLS loc_1D268 .text:0001D298 CMP R1, #0 .text:0001D29C BEQ loc_1D2B0 .text:0001D2A0 LDR R3, [R11,#var_484] .text:0001D2A4 LDRB R2, [R3] .text:0001D2A8 CMP R2, #0x24 .text:0001D2AC BEQ loc_1E7B8 .text:0001D2B0 .text:0001D2B0 loc_1D2B0 ; CODE XREF: vfprintf+6FCj .text:0001D2B0 ; vfprintf+750j .text:0001D2B0 LDR R0, [R11,#var_4F0] .text:0001D2B4 LDR R1, [R0],#4 .text:0001D2B8 STR R0, [R11,#var_4F0] .text:0001D2BC CMN R1, #1 .text:0001D2C0 MOVLE R1, 0xFFFFFFFF .text:0001D2C4 STR R1, [R11,#var_54C] .text:0001D2C8 B loc_1D37C .text:0001D2CC ; --------------------------------------------------------------------------- .text:0001D2CC .text:0001D2CC loc_1D2CC ; CODE XREF: vfprintf+6E0j .text:0001D2CC LDRB R3, [R2,#1] .text:0001D2D0 SUB R1, R3, #0x30 .text:0001D2D4 CMP R1, #9 .text:0001D2D8 BHI loc_1D374 .text:0001D2DC ADD R3, R0, #1 .text:0001D2E0 STR R3, [R11,#var_480] .text:0001D2E4 SUB LR, R11, #-var_470 .text:0001D2E8 SUB LR, LR, #8 .text:0001D2EC LDRB R3, [R0,#1] .text:0001D2F0 SUB LR, LR, #8 .text:0001D2F4 B loc_1D31C .text:0001D2F8 ; --------------------------------------------------------------------------- .text:0001D2F8 .text:0001D2F8 loc_1D2F8 ; CODE XREF: vfprintf+7D8j .text:0001D2F8 LDR R0, [LR] .text:0001D2FC MOV R3, R0 .text:0001D300 LDRB R12, [R3],#1 .text:0001D304 STR R3, [LR] .text:0001D308 ADD R2, R1, R1,LSL#2 .text:0001D30C MOV R1, R2,LSL#1 .text:0001D310 SUB R1, R1, #0x30 .text:0001D314 LDRB R3, [R0,#1] .text:0001D318 ADD R1, R1, R12 .text:0001D31C .text:0001D31C loc_1D31C ; CODE XREF: vfprintf+7A8j .text:0001D31C SUB R3, R3, #0x30 .text:0001D320 CMP R3, #9 .text:0001D324 BLS loc_1D2F8 .text:0001D328 STR R1, [R11,#var_54C] .text:0001D32C B loc_1D37C .text:0001D330 ; --------------------------------------------------------------------------- .text:0001D330 .text:0001D330 loc_1D330 ; CODE XREF: vfprintf+1614j .text:0001D330 LDR R3, [R11,#var_4F0] .text:0001D334 LDR R2, [R3],#4 .text:0001D338 STR R3, [R11,#var_4F0] .text:0001D33C MOV R3, R9 .text:0001D340 MOV R4, R3,ASR#31 .text:0001D344 STMIA R2, {R3,R4} .text:0001D348 B loc_1E6BC .text:0001D34C ; --------------------------------------------------------------------------- .text:0001D34C .text:0001D34C loc_1D34C ; CODE XREF: vfprintf+1620j .text:0001D34C LDR R4, [R11,#var_4F0] .text:0001D350 LDR R3, [R4],#4 .text:0001D354 STR R4, [R11,#var_4F0] .text:0001D358 STRB R9, [R3] .text:0001D35C B loc_1E6BC .text:0001D360 ; --------------------------------------------------------------------------- .text:0001D360 .text:0001D360 loc_1D360 ; CODE XREF: vfprintf+162Cj .text:0001D360 LDR R12, [R11,#var_4F0] .text:0001D364 LDR R3, [R12],#4 .text:0001D368 STR R12, [R11,#var_4F0] .text:0001D36C STR R9, [R3] .text:0001D370 B loc_1E6BC .text:0001D374 ; --------------------------------------------------------------------------- .text:0001D374 .text:0001D374 loc_1D374 ; CODE XREF: vfprintf+78Cj .text:0001D374 MOV R0, #0 .text:0001D378 STR R0, [R11,#var_54C] .text:0001D37C .text:0001D37C loc_1D37C ; CODE XREF: vfprintf+77Cj .text:0001D37C ; vfprintf+7E0j .text:0001D37C LDR R1, [R11,#var_54C] .text:0001D380 LDR R2, [R11,#var_548] .text:0001D384 CMP R1, R2 .text:0001D388 BLE loc_1D3B4 .text:0001D38C ADD R3, R1, #0x20 .text:0001D390 CMP R3, #0x3E8 .text:0001D394 BLE loc_1D3B4 .text:0001D398 LDR R4, [R11,#var_558] .text:0001D39C ADD R3, R4, #0x23 .text:0001D3A0 AND R3, R3, #0x1FC .text:0001D3A4 RSB SP, R3, SP .text:0001D3A8 ADD R2, SP, R4 .text:0001D3AC ADD R2, R2, #0x24 .text:0001D3B0 STR R2, [R11,#var_4FC] .text:0001D3B4 .text:0001D3B4 loc_1D3B4 ; CODE XREF: vfprintf+83Cj .text:0001D3B4 ; vfprintf+848j .text:0001D3B4 LDR R3, [R11,#var_480] .text:0001D3B8 LDRB R3, [R3] .text:0001D3BC SUB R2, R3, #0x20 .text:0001D3C0 STR R3, [R11,#var_558] .text:0001D3C4 AND R3, R2, #0xFF .text:0001D3C8 CMP R3, #0x5A .text:0001D3CC BHI loc_1D3E4 .text:0001D3D0 LDR R3, =jump_table.174 .text:0001D3D4 LDR R1, =step2_jumps.177 .text:0001D3D8 LDR R2, [R3,R2,LSL#2] .text:0001D3DC LDR R3, [R1,R2,LSL#2] .text:0001D3E0 B loc_1D3E8 .text:0001D3E4 ; --------------------------------------------------------------------------- .text:0001D3E4 .text:0001D3E4 loc_1D3E4 ; CODE XREF: vfprintf+880j .text:0001D3E4 LDR R3, =loc_1E6A8 .text:0001D3E8 .text:0001D3E8 loc_1D3E8 ; CODE XREF: vfprintf+894j .text:0001D3E8 MOV PC, R3 .text:0001D3E8 ; --------------------------------------------------------------------------- .text:0001D3EC off_1D3EC DCD jump_table.174 ; DATA XREF: vfprintf+4D4r .text:0001D3EC ; vfprintf+5E8r ... .text:0001D3F0 off_1D3F0 DCD step0_jumps.175 ; DATA XREF: vfprintf+4D8r .text:0001D3F4 off_1D3F4 DCD loc_1E6A8 ; DATA XREF: vfprintf:loc_1D034r .text:0001D3F4 ; vfprintf:loc_1D148r ... .text:0001D3F8 off_1D3F8 DCD step1_jumps.176 ; DATA XREF: vfprintf+5ECr .text:0001D3F8 ; vfprintf+6B0r .text:0001D3FC off_1D3FC DCD step2_jumps.177 ; DATA XREF: vfprintf+888r .text:0001D400 ; --------------------------------------------------------------------------- .text:0001D400 MOV R12, #1 .text:0001D404 STR R12, [R11,#var_53C] .text:0001D408 LDR R3, [R11,#var_480] .text:0001D40C ADD R2, R3, R12 .text:0001D410 STR R2, [R11,#var_480] .text:0001D414 LDRB R3, [R3,#1] .text:0001D418 SUB R2, R3, #0x20 .text:0001D41C STR R3, [R11,#var_558] .text:0001D420 AND R3, R2, #0xFF .text:0001D424 CMP R3, #0x5A .text:0001D428 BHI loc_1D440 .text:0001D42C LDR R3, =jump_table.174 .text:0001D430 LDR R1, =step3a_jumps.178 .text:0001D434 LDR R2, [R3,R2,LSL#2] .text:0001D438 LDR R3, [R1,R2,LSL#2] .text:0001D43C B loc_1D444 .text:0001D440 ; --------------------------------------------------------------------------- .text:0001D440 .text:0001D440 loc_1D440 ; CODE XREF: vfprintf+8DCj .text:0001D440 LDR R3, =loc_1E6A8 .text:0001D444 .text:0001D444 loc_1D444 ; CODE XREF: vfprintf+8F0j .text:0001D444 MOV PC, R3 .text:0001D448 ; --------------------------------------------------------------------------- .text:0001D448 MOV R0, #0 .text:0001D44C STR R0, [R11,#var_53C] .text:0001D450 MOV R1, #1 .text:0001D454 STR R1, [R11,#var_544] .text:0001D458 LDR R3, [R11,#var_480] .text:0001D45C ADD R2, R3, R1 .text:0001D460 STR R2, [R11,#var_480] .text:0001D464 LDRB R3, [R3,#1] .text:0001D468 SUB R2, R3, #0x20 .text:0001D46C STR R3, [R11,#var_558] .text:0001D470 AND R3, R2, #0xFF .text:0001D474 CMP R3, #0x5A .text:0001D478 BHI loc_1D490 .text:0001D47C LDR R3, =jump_table.174 .text:0001D480 LDR R1, =step4_jumps.180 .text:0001D484 LDR R2, [R3,R2,LSL#2] .text:0001D488 LDR R3, [R1,R2,LSL#2] .text:0001D48C B loc_1D494 .text:0001D490 ; --------------------------------------------------------------------------- .text:0001D490 .text:0001D490 loc_1D490 ; CODE XREF: vfprintf+92Cj .text:0001D490 LDR R3, =loc_1E6A8 .text:0001D494 .text:0001D494 loc_1D494 ; CODE XREF: vfprintf+940j .text:0001D494 MOV PC, R3 .text:0001D498 ; --------------------------------------------------------------------------- .text:0001D498 MOV R2, #1 .text:0001D49C STR R2, [R11,#var_540] .text:0001D4A0 LDR R3, [R11,#var_480] .text:0001D4A4 ADD R2, R3, R2 .text:0001D4A8 STR R2, [R11,#var_480] .text:0001D4AC LDRB R3, [R3,#1] .text:0001D4B0 SUB R2, R3, #0x20 .text:0001D4B4 STR R3, [R11,#var_558] .text:0001D4B8 AND R3, R2, #0xFF .text:0001D4BC CMP R3, #0x5A .text:0001D4C0 BHI loc_1D4D8 .text:0001D4C4 LDR R3, =jump_table.174 .text:0001D4C8 LDR R1, =step3b_jumps.179 .text:0001D4CC LDR R2, [R3,R2,LSL#2] .text:0001D4D0 LDR R3, [R1,R2,LSL#2] .text:0001D4D4 B loc_1D4DC .text:0001D4D8 ; --------------------------------------------------------------------------- .text:0001D4D8 .text:0001D4D8 loc_1D4D8 ; CODE XREF: vfprintf+974j .text:0001D4D8 LDR R3, =loc_1E6A8 .text:0001D4DC .text:0001D4DC loc_1D4DC ; CODE XREF: vfprintf+988j .text:0001D4DC MOV PC, R3 .text:0001D4E0 ; --------------------------------------------------------------------------- .text:0001D4E0 MOV R3, #1 .text:0001D4E4 STR R3, [R11,#var_540] .text:0001D4E8 STR R3, [R11,#var_538] .text:0001D4EC LDR R3, [R11,#var_480] .text:0001D4F0 ADD R2, R3, #1 .text:0001D4F4 STR R2, [R11,#var_480] .text:0001D4F8 LDRB R3, [R3,#1] .text:0001D4FC SUB R2, R3, #0x20 .text:0001D500 STR R3, [R11,#var_558] .text:0001D504 AND R3, R2, #0xFF .text:0001D508 CMP R3, #0x5A .text:0001D50C BHI loc_1D524 .text:0001D510 LDR R3, =jump_table.174 .text:0001D514 LDR R1, =step4_jumps.180 .text:0001D518 LDR R2, [R3,R2,LSL#2] .text:0001D51C LDR R3, [R1,R2,LSL#2] .text:0001D520 B loc_1D528 .text:0001D524 ; --------------------------------------------------------------------------- .text:0001D524 .text:0001D524 loc_1D524 ; CODE XREF: vfprintf+9C0j .text:0001D524 LDR R3, =loc_1E6A8 .text:0001D528 .text:0001D528 loc_1D528 ; CODE XREF: vfprintf+9D4j .text:0001D528 MOV PC, R3 .text:0001D52C ; --------------------------------------------------------------------------- .text:0001D52C MOV R4, #0 .text:0001D530 STR R4, [R11,#var_540] .text:0001D534 STR R4, [R11,#var_538] .text:0001D538 LDR R3, [R11,#var_480] .text:0001D53C ADD R2, R3, #1 .text:0001D540 STR R2, [R11,#var_480] .text:0001D544 LDRB R3, [R3,#1] .text:0001D548 SUB R2, R3, #0x20 .text:0001D54C STR R3, [R11,#var_558] .text:0001D550 AND R3, R2, #0xFF .text:0001D554 CMP R3, #0x5A .text:0001D558 BHI loc_1D570 .text:0001D55C LDR R3, =jump_table.174 .text:0001D560 LDR R1, =step4_jumps.180 .text:0001D564 LDR R2, [R3,R2,LSL#2] .text:0001D568 LDR R3, [R1,R2,LSL#2] .text:0001D56C B loc_1D574 .text:0001D570 ; --------------------------------------------------------------------------- .text:0001D570 .text:0001D570 loc_1D570 ; CODE XREF: vfprintf+A0Cj .text:0001D570 LDR R3, =loc_1E6A8 .text:0001D574 .text:0001D574 loc_1D574 ; CODE XREF: vfprintf+A20j .text:0001D574 MOV PC, R3 .text:0001D578 ; --------------------------------------------------------------------------- .text:0001D578 MOV R12, #0 .text:0001D57C STR R12, [R11,#var_540] .text:0001D580 STR R12, [R11,#var_538] .text:0001D584 LDR R3, [R11,#var_480] .text:0001D588 ADD R2, R3, #1 .text:0001D58C STR R2, [R11,#var_480] .text:0001D590 LDRB R3, [R3,#1] .text:0001D594 SUB R2, R3, #0x20 .text:0001D598 STR R3, [R11,#var_558] .text:0001D59C AND R3, R2, #0xFF .text:0001D5A0 CMP R3, #0x5A .text:0001D5A4 BHI loc_1D5BC .text:0001D5A8 LDR R3, =jump_table.174 .text:0001D5AC LDR R1, =step4_jumps.180 .text:0001D5B0 LDR R2, [R3,R2,LSL#2] .text:0001D5B4 LDR R3, [R1,R2,LSL#2] .text:0001D5B8 B loc_1D5C0 .text:0001D5BC ; --------------------------------------------------------------------------- .text:0001D5BC .text:0001D5BC loc_1D5BC ; CODE XREF: vfprintf+A58j .text:0001D5BC LDR R3, =loc_1E6A8 .text:0001D5C0 .text:0001D5C0 loc_1D5C0 ; CODE XREF: vfprintf+A6Cj .text:0001D5C0 MOV PC, R3 .text:0001D5C4 ; --------------------------------------------------------------------------- .text:0001D5C4 MOV R0, #1 .text:0001D5C8 STR R0, [R11,#var_540] .text:0001D5CC STR R0, [R11,#var_538] .text:0001D5D0 LDR R3, [R11,#var_480] .text:0001D5D4 ADD R2, R3, R0 .text:0001D5D8 STR R2, [R11,#var_480] .text:0001D5DC LDRB R3, [R3,#1] .text:0001D5E0 SUB R2, R3, #0x20 .text:0001D5E4 STR R3, [R11,#var_558] .text:0001D5E8 AND R3, R2, #0xFF .text:0001D5EC CMP R3, #0x5A .text:0001D5F0 BHI loc_1D608 .text:0001D5F4 LDR R3, =jump_table.174 .text:0001D5F8 LDR R1, =step4_jumps.180 .text:0001D5FC LDR R2, [R3,R2,LSL#2] .text:0001D600 LDR R3, [R1,R2,LSL#2] .text:0001D604 B loc_1D60C .text:0001D608 ; --------------------------------------------------------------------------- .text:0001D608 .text:0001D608 loc_1D608 ; CODE XREF: vfprintf+AA4j .text:0001D608 LDR R3, =loc_1E6A8 .text:0001D60C .text:0001D60C loc_1D60C ; CODE XREF: vfprintf+AB8j .text:0001D60C MOV PC, R3 .text:0001D610 ; --------------------------------------------------------------------------- .text:0001D610 ADD R2, R10, #0x14 .text:0001D614 LDMIA R2, {R2,R3} .text:0001D618 MOV R1, #0x25 .text:0001D61C CMP R2, R3 .text:0001D620 BCC loc_1D638 .text:0001D624 MOV R0, R10 .text:0001D628 BL __overflow .text:0001D62C CMN R0, #1 .text:0001D630 BEQ loc_1E6B4 .text:0001D634 B loc_1D640 .text:0001D638 ; --------------------------------------------------------------------------- .text:0001D638 .text:0001D638 loc_1D638 ; CODE XREF: vfprintf+AD4j .text:0001D638 STRB R1, [R2],#1 .text:0001D63C STR R2, [R10,#0x14] .text:0001D640 .text:0001D640 loc_1D640 ; CODE XREF: vfprintf+AE8j .text:0001D640 ADD R9, R9, #1 .text:0001D644 B loc_1E6BC .text:0001D648 ; --------------------------------------------------------------------------- .text:0001D648 LDR R2, [R11,#var_538] .text:0001D64C MOV R1, #0xA .text:0001D650 STR R1, [R11,#var_520] .text:0001D654 CMP R2, #0 .text:0001D658 BEQ loc_1D6C4 .text:0001D65C LDR R3, [R11,#var_4F0] .text:0001D660 LDMIA R3!, {R7,R8} .text:0001D664 MOV R4, #0 .text:0001D668 STR R4, [R11,#var_514] .text:0001D66C CMP R8, R4 .text:0001D670 STR R3, [R11,#var_4F0] .text:0001D674 MOVLT R12, #1 .text:0001D678 STRLT R12, [R11,#var_514] .text:0001D67C RSBS R3, R7, #0 .text:0001D680 RSC R4, R8, #0 .text:0001D684 LDR R0, [R11,#var_514] .text:0001D688 SUB R12, R11, #-var_520 .text:0001D68C EOR R1, R0, #1 .text:0001D690 MOV R2, #0 .text:0001D694 RSBS R5, R1, #0 .text:0001D698 RSC R6, R2, #0 .text:0001D69C MOV R2, R6 .text:0001D6A0 MOV R1, R5 .text:0001D6A4 AND R1, R1, R7 .text:0001D6A8 AND R2, R2, R8 .text:0001D6AC BIC R3, R3, R5 .text:0001D6B0 BIC R4, R4, R6 .text:0001D6B4 ORR R1, R1, R3 .text:0001D6B8 ORR R2, R2, R4 .text:0001D6BC STMIB R12, {R1,R2} .text:0001D6C0 B loc_1D734 .text:0001D6C4 ; --------------------------------------------------------------------------- .text:0001D6C4 .text:0001D6C4 loc_1D6C4 ; CODE XREF: vfprintf+B0Cj .text:0001D6C4 LDR R0, [R11,#var_4F0] .text:0001D6C8 LDR R3, [R0],#4 .text:0001D6CC STR R0, [R11,#var_4F0] .text:0001D6D0 MOV R1, R3,LSR#31 .text:0001D6D4 STR R1, [R11,#var_514] .text:0001D6D8 CMP R3, #0 .text:0001D6DC RSBLT R3, R3, #0 .text:0001D6E0 B loc_1D8A4 .text:0001D6E4 ; --------------------------------------------------------------------------- .text:0001D6E4 MOV R2, #0xA .text:0001D6E8 STR R2, [R11,#var_520] .text:0001D6EC B loc_1D704 .text:0001D6F0 ; --------------------------------------------------------------------------- .text:0001D6F0 MOV R3, #8 .text:0001D6F4 STR R3, [R11,#var_520] .text:0001D6F8 B loc_1D704 .text:0001D6FC ; --------------------------------------------------------------------------- .text:0001D6FC MOV R4, #0x10 .text:0001D700 STR R4, [R11,#var_520] .text:0001D704 .text:0001D704 loc_1D704 ; CODE XREF: vfprintf+BA0j .text:0001D704 ; vfprintf+BACj .text:0001D704 MOV R12, #0 .text:0001D708 STR R12, [R11,#var_514] .text:0001D70C STR R12, [R11,#var_530] .text:0001D710 LDR R0, [R11,#var_538] .text:0001D714 STR R12, [R11,#var_528] .text:0001D718 CMP R0, R12 .text:0001D71C BEQ loc_1D84C .text:0001D720 LDR R12, [R11,#var_4F0] .text:0001D724 LDMIA R12!, {R2,R3} .text:0001D728 SUB R4, R11, #-var_520 .text:0001D72C STMIB R4, {R2,R3} .text:0001D730 STR R12, [R11,#var_4F0] .text:0001D734 .text:0001D734 loc_1D734 ; CODE XREF: vfprintf+B74j .text:0001D734 LDR R0, [R11,#var_54C] .text:0001D738 CMP R0, #0 .text:0001D73C MOVLT R1, #1 .text:0001D740 STRLT R1, [R11,#var_54C] .text:0001D744 MOVGE R2, #0x20 .text:0001D748 STRGE R2, [R11,#var_554] .text:0001D74C LDR R3, [R11,#var_54C] .text:0001D750 CMP R3, #0 .text:0001D754 BNE loc_1D7AC .text:0001D758 LDR R4, [R11,#var_51C] .text:0001D75C LDR R12, [R11,#var_518] .text:0001D760 ORRS R4, R4, R12 .text:0001D764 BNE loc_1D7AC .text:0001D768 LDR R8, [R11,#var_4FC] .text:0001D76C LDR R0, [R11,#var_520] .text:0001D770 LDR R1, [R11,#var_524] .text:0001D774 CMP R0, #8 .text:0001D778 MOVNE R3, #0 .text:0001D77C MOVEQ R3, #1 .text:0001D780 TST R3, R1 .text:0001D784 SUBNE R8, R8, #1 .text:0001D788 LDRNE R2, [R11,#var_4FC] .text:0001D78C MOVNE R3, #0x30 .text:0001D790 STRNEB R3, [R2,#-1] .text:0001D794 B loc_1D830 .text:0001D794 ; --------------------------------------------------------------------------- .text:0001D798 off_1D798 DCD jump_table.174 ; DATA XREF: vfprintf+8E0r .text:0001D798 ; vfprintf+930r ... .text:0001D79C off_1D79C DCD step3a_jumps.178 ; DATA XREF: vfprintf+8E4r .text:0001D7A0 off_1D7A0 DCD loc_1E6A8 ; DATA XREF: vfprintf:loc_1D440r .text:0001D7A0 ; vfprintf:loc_1D490r ... .text:0001D7A4 off_1D7A4 DCD step4_jumps.180 ; DATA XREF: vfprintf+934r .text:0001D7A4 ; vfprintf+9C8r ... .text:0001D7A8 off_1D7A8 DCD step3b_jumps.179 ; DATA XREF: vfprintf+97Cr .text:0001D7AC ; --------------------------------------------------------------------------- .text:0001D7AC .text:0001D7AC loc_1D7AC ; CODE XREF: vfprintf+C08j .text:0001D7AC ; vfprintf+C18j .text:0001D7AC LDR R4, [R11,#var_558] .text:0001D7B0 CMP R4, #0x58 .text:0001D7B4 MOVNE R3, #0 .text:0001D7B8 MOVEQ R3, #1 .text:0001D7BC STR R3, [SP,#0x5CC+var_5CC] .text:0001D7C0 LDR R2, [R11,#var_4FC] .text:0001D7C4 LDR R3, [R11,#var_520] .text:0001D7C8 SUB R12, R11, #-var_520 .text:0001D7CC LDMIB R12, {R0,R1} .text:0001D7D0 BL _itoa .text:0001D7D4 MOV R8, R0 .text:0001D7D8 LDR R0, [R11,#var_534] .text:0001D7DC LDR R1, [R11,#var_4F8] .text:0001D7E0 CMP R0, #0 .text:0001D7E4 CMPNE R1, #0 .text:0001D7E8 BEQ loc_1D804 .text:0001D7EC LDR R1, [R11,#var_4FC] .text:0001D7F0 LDR R2, [R11,#var_4F8] .text:0001D7F4 LDR R3, [R11,#var_4F4] .text:0001D7F8 MOV R0, R8 .text:0001D7FC BL group_number .text:0001D800 MOV R8, R0 .text:0001D804 .text:0001D804 loc_1D804 ; CODE XREF: vfprintf+C9Cj .text:0001D804 LDR R2, [R11,#var_520] .text:0001D808 LDR R4, [R11,#var_550] .text:0001D80C CMP R2, #0xA .text:0001D810 MOVNE R3, #0 .text:0001D814 MOVEQ R3, #1 .text:0001D818 TST R4, R3 .text:0001D81C BEQ loc_1D830 .text:0001D820 LDR R1, [R11,#var_4FC] .text:0001D824 MOV R0, R8 .text:0001D828 BL _i18n_number_rewrite .text:0001D82C MOV R8, R0 .text:0001D830 .text:0001D830 loc_1D830 ; CODE XREF: vfprintf+C48j .text:0001D830 ; vfprintf+CD0j .text:0001D830 LDR R12, [R11,#var_51C] .text:0001D834 LDR R0, [R11,#var_518] .text:0001D838 ORRS R12, R12, R0 .text:0001D83C MOVEQ R1, #0 .text:0001D840 MOVNE R1, #1 .text:0001D844 STR R1, [R11,#var_51C] .text:0001D848 B loc_1DA34 .text:0001D84C ; --------------------------------------------------------------------------- .text:0001D84C .text:0001D84C loc_1D84C ; CODE XREF: vfprintf+BD0j .text:0001D84C LDR R2, [R11,#var_544] .text:0001D850 CMP R2, #0 .text:0001D854 BEQ loc_1D870 .text:0001D858 LDR R3, [R11,#var_4F0] .text:0001D85C ADD R3, R3, #4 .text:0001D860 STR R3, [R11,#var_4F0] .text:0001D864 LDRB R4, [R3,#-4] .text:0001D868 STR R4, [R11,#var_51C] .text:0001D86C B loc_1D8A8 .text:0001D870 ; --------------------------------------------------------------------------- .text:0001D870 .text:0001D870 loc_1D870 ; CODE XREF: vfprintf+D08j .text:0001D870 LDR R12, [R11,#var_53C] .text:0001D874 CMP R12, #0 .text:0001D878 BNE loc_1D890 .text:0001D87C LDR R0, [R11,#var_4F0] .text:0001D880 LDR R1, [R0],#4 .text:0001D884 STR R1, [R11,#var_51C] .text:0001D888 STR R0, [R11,#var_4F0] .text:0001D88C B loc_1D8A8 .text:0001D890 ; --------------------------------------------------------------------------- .text:0001D890 .text:0001D890 loc_1D890 ; CODE XREF: vfprintf+D2Cj .text:0001D890 LDR R2, [R11,#var_4F0] .text:0001D894 LDR R3, [R2],#4 .text:0001D898 STR R2, [R11,#var_4F0] .text:0001D89C MOV R3, R3,LSL#16 .text:0001D8A0 MOV R3, R3,LSR#16 .text:0001D8A4 .text:0001D8A4 loc_1D8A4 ; CODE XREF: vfprintf+B94j .text:0001D8A4 STR R3, [R11,#var_51C] .text:0001D8A8 .text:0001D8A8 loc_1D8A8 ; CODE XREF: vfprintf+D20j .text:0001D8A8 ; vfprintf+D40j ... .text:0001D8A8 LDR R3, [R11,#var_54C] .text:0001D8AC CMP R3, #0 .text:0001D8B0 MOVLT R4, #1 .text:0001D8B4 STRLT R4, [R11,#var_54C] .text:0001D8B8 MOVGE R12, #0x20 .text:0001D8BC STRGE R12, [R11,#var_554] .text:0001D8C0 LDR R0, [R11,#var_54C] .text:0001D8C4 CMP R0, #0 .text:0001D8C8 BNE loc_1D908 .text:0001D8CC LDR R1, [R11,#var_51C] .text:0001D8D0 CMP R1, #0 .text:0001D8D4 BNE loc_1D908 .text:0001D8D8 LDR R8, [R11,#var_4FC] .text:0001D8DC LDR R2, [R11,#var_520] .text:0001D8E0 LDR R4, [R11,#var_524] .text:0001D8E4 CMP R2, #8 .text:0001D8E8 MOVNE R3, #0 .text:0001D8EC MOVEQ R3, #1 .text:0001D8F0 TST R3, R4 .text:0001D8F4 SUBNE R8, R8, #1 .text:0001D8F8 LDRNE R12, [R11,#var_4FC] .text:0001D8FC MOVNE R3, #0x30 .text:0001D900 STRNEB R3, [R12,#-1] .text:0001D904 B loc_1DA34 .text:0001D908 ; --------------------------------------------------------------------------- .text:0001D908 .text:0001D908 loc_1D908 ; CODE XREF: vfprintf+D7Cj .text:0001D908 ; vfprintf+D88j .text:0001D908 LDR R7, =_itoa_lower_digits .text:0001D90C LDR R4, [R11,#var_51C] .text:0001D910 LDR R3, =_itoa_upper_digits ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0001D914 LDR R5, [R11,#var_4FC] .text:0001D918 LDR R0, [R11,#var_558] .text:0001D91C LDR R1, [R11,#var_520] .text:0001D920 CMP R0, #0x58 .text:0001D924 MOVEQ R7, R3 .text:0001D928 CMP R1, #0xA .text:0001D92C BEQ loc_1D950 .text:0001D930 BHI loc_1D940 .text:0001D934 CMP R1, #8 .text:0001D938 BEQ loc_1D994 .text:0001D93C B loc_1D9AC .text:0001D940 ; --------------------------------------------------------------------------- .text:0001D940 .text:0001D940 loc_1D940 ; CODE XREF: vfprintf+DE4j .text:0001D940 LDR R2, [R11,#var_520] .text:0001D944 CMP R2, #0x10 .text:0001D948 BEQ loc_1D97C .text:0001D94C B loc_1D9AC .text:0001D950 ; --------------------------------------------------------------------------- .text:0001D950 .text:0001D950 loc_1D950 ; CODE XREF: vfprintf+DE0j .text:0001D950 ; vfprintf+E28j .text:0001D950 MOV R0, R4 .text:0001D954 MOV R1, #0xA .text:0001D958 BL __umodsi3 .text:0001D95C LDRB R3, [R7,R0] .text:0001D960 STRB R3, [R5,#-1]! .text:0001D964 MOV R0, R4 .text:0001D968 MOV R1, #0xA .text:0001D96C BL __udivsi3 .text:0001D970 SUBS R4, R0, #0 .text:0001D974 BNE loc_1D950 .text:0001D978 B loc_1D9D8 .text:0001D97C ; --------------------------------------------------------------------------- .text:0001D97C .text:0001D97C loc_1D97C ; CODE XREF: vfprintf+DFCj .text:0001D97C ; vfprintf+E40j .text:0001D97C AND R3, R4, #0xF .text:0001D980 LDRB R2, [R7,R3] .text:0001D984 MOVS R4, R4,LSR#4 .text:0001D988 STRB R2, [R5,#-1]! .text:0001D98C BNE loc_1D97C .text:0001D990 B loc_1D9D8 .text:0001D994 ; --------------------------------------------------------------------------- .text:0001D994 .text:0001D994 loc_1D994 ; CODE XREF: vfprintf+DECj .text:0001D994 ; vfprintf+E58j .text:0001D994 AND R3, R4, #7 .text:0001D998 LDRB R2, [R7,R3] .text:0001D99C MOVS R4, R4,LSR#3 .text:0001D9A0 STRB R2, [R5,#-1]! .text:0001D9A4 BNE loc_1D994 .text:0001D9A8 B loc_1D9D8 .text:0001D9AC ; --------------------------------------------------------------------------- .text:0001D9AC .text:0001D9AC loc_1D9AC ; CODE XREF: vfprintf+DF0j .text:0001D9AC ; vfprintf+E00j ... .text:0001D9AC LDR R1, [R11,#var_520] .text:0001D9B0 MOV R0, R4 .text:0001D9B4 BL __umodsi3 .text:0001D9B8 LDRB R3, [R7,R0] .text:0001D9BC STRB R3, [R5,#-1]! .text:0001D9C0 LDR R1, [R11,#var_520] .text:0001D9C4 MOV R0, R4 .text:0001D9C8 BL __udivsi3 .text:0001D9CC MOV R4, R0 .text:0001D9D0 CMP R4, #0 .text:0001D9D4 BNE loc_1D9AC .text:0001D9D8 .text:0001D9D8 loc_1D9D8 ; CODE XREF: vfprintf+E2Cj .text:0001D9D8 ; vfprintf+E44j ... .text:0001D9D8 LDR R3, [R11,#var_534] .text:0001D9DC LDR R4, [R11,#var_4F8] .text:0001D9E0 MOV R8, R5 .text:0001D9E4 CMP R3, #0 .text:0001D9E8 CMPNE R4, #0 .text:0001D9EC BEQ loc_1DA08 .text:0001D9F0 LDR R1, [R11,#var_4FC] .text:0001D9F4 MOV R0, R8 .text:0001D9F8 LDR R3, [R11,#var_4F4] .text:0001D9FC MOV R2, R4 .text:0001DA00 BL group_number .text:0001DA04 MOV R8, R0 .text:0001DA08 .text:0001DA08 loc_1DA08 ; CODE XREF: vfprintf+EA0j .text:0001DA08 LDR R12, [R11,#var_520] .text:0001DA0C LDR R0, [R11,#var_550] .text:0001DA10 CMP R12, #0xA .text:0001DA14 MOVNE R3, #0 .text:0001DA18 MOVEQ R3, #1 .text:0001DA1C TST R0, R3 .text:0001DA20 BEQ loc_1DA34 .text:0001DA24 LDR R1, [R11,#var_4FC] .text:0001DA28 MOV R0, R8 .text:0001DA2C BL _i18n_number_rewrite .text:0001DA30 MOV R8, R0 .text:0001DA34 .text:0001DA34 loc_1DA34 ; CODE XREF: vfprintf+CFCj .text:0001DA34 ; vfprintf+DB8j ... .text:0001DA34 LDR R1, [R11,#var_4FC] .text:0001DA38 LDR R2, [R11,#var_54C] .text:0001DA3C RSB R3, R8, R1 .text:0001DA40 CMP R2, R3 .text:0001DA44 BGT loc_1DA6C .text:0001DA48 LDR R3, [R11,#var_524] .text:0001DA4C LDR R4, [R11,#var_51C] .text:0001DA50 CMP R3, #0 .text:0001DA54 CMPNE R4, #0 .text:0001DA58 BEQ loc_1DA6C .text:0001DA5C LDR R12, [R11,#var_520] .text:0001DA60 CMP R12, #8 .text:0001DA64 MOVEQ R3, #0x30 .text:0001DA68 STREQB R3, [R8,#-1]! .text:0001DA6C .text:0001DA6C loc_1DA6C ; CODE XREF: vfprintf+EF8j .text:0001DA6C ; vfprintf+F0Cj .text:0001DA6C LDR R0, [R11,#var_4FC] .text:0001DA70 LDR R1, [R11,#var_54C] .text:0001DA74 LDR R2, [R11,#var_52C] .text:0001DA78 RSB R3, R8, R0 .text:0001DA7C RSB R1, R3, R1 .text:0001DA80 CMP R1, #0 .text:0001DA84 MOVLT R1, #0 .text:0001DA88 CMP R2, #0 .text:0001DA8C MOV R4, R3 .text:0001DA90 STR R1, [R11,#var_54C] .text:0001DA94 BNE loc_1DC8C .text:0001DA98 LDR R12, [R11,#var_548] .text:0001DA9C LDR R0, [R11,#var_524] .text:0001DAA0 ADD R3, R4, R1 .text:0001DAA4 LDR R1, [R11,#var_51C] .text:0001DAA8 RSB R12, R3, R12 .text:0001DAAC CMP R0, #0 .text:0001DAB0 CMPNE R1, #0 .text:0001DAB4 STR R12, [R11,#var_548] .text:0001DAB8 BEQ loc_1DAD0 .text:0001DABC LDR R2, [R11,#var_520] .text:0001DAC0 SUB R3, R12, #2 .text:0001DAC4 CMP R2, #0x10 .text:0001DAC8 MOVEQ R12, R3 .text:0001DACC STR R12, [R11,#var_548] .text:0001DAD0 .text:0001DAD0 loc_1DAD0 ; CODE XREF: vfprintf+F6Cj .text:0001DAD0 LDR R3, [R11,#var_514] .text:0001DAD4 LDR R12, [R11,#var_530] .text:0001DAD8 ORRS R3, R3, R12 .text:0001DADC BNE loc_1DAEC .text:0001DAE0 LDR R0, [R11,#var_528] .text:0001DAE4 CMP R0, #0 .text:0001DAE8 BEQ loc_1DAF8 .text:0001DAEC .text:0001DAEC loc_1DAEC ; CODE XREF: vfprintf+F90j .text:0001DAEC LDR R1, [R11,#var_548] .text:0001DAF0 SUB R1, R1, #1 .text:0001DAF4 STR R1, [R11,#var_548] .text:0001DAF8 .text:0001DAF8 loc_1DAF8 ; CODE XREF: vfprintf+F9Cj .text:0001DAF8 LDR R2, [R11,#var_554] .text:0001DAFC CMP R2, #0x20 .text:0001DB00 BNE loc_1DB2C .text:0001DB04 LDR R3, [R11,#var_548] .text:0001DB08 CMP R3, #0 .text:0001DB0C BLE loc_1DB24 .text:0001DB10 MOV R0, R10 .text:0001DB14 MOV R1, R2 .text:0001DB18 MOV R2, R3 .text:0001DB1C BL _IO_padn .text:0001DB20 ADD R9, R9, R0 .text:0001DB24 .text:0001DB24 loc_1DB24 ; CODE XREF: vfprintf+FC0j .text:0001DB24 MOV R12, #0 .text:0001DB28 STR R12, [R11,#var_548] .text:0001DB2C .text:0001DB2C loc_1DB2C ; CODE XREF: vfprintf+FB4j .text:0001DB2C LDR R0, [R11,#var_514] .text:0001DB30 CMP R0, #0 .text:0001DB34 BEQ loc_1DB60 .text:0001DB38 ADD R2, R10, #0x14 .text:0001DB3C LDMIA R2, {R2,R3} .text:0001DB40 MOV R1, #0x2D .text:0001DB44 .text:0001DB44 loc_1DB44 ; CODE XREF: vfprintf+1028j .text:0001DB44 ; vfprintf+1044j .text:0001DB44 CMP R2, R3 .text:0001DB48 BCC loc_1DB94 .text:0001DB4C MOV R0, R10 .text:0001DB50 BL __overflow .text:0001DB54 CMN R0, #1 .text:0001DB58 BEQ loc_1E6B4 .text:0001DB5C B loc_1DB9C .text:0001DB60 ; --------------------------------------------------------------------------- .text:0001DB60 .text:0001DB60 loc_1DB60 ; CODE XREF: vfprintf+FE8j .text:0001DB60 LDR R1, [R11,#var_530] .text:0001DB64 CMP R1, #0 .text:0001DB68 ADDNE R2, R10, #0x14 .text:0001DB6C LDMNEIA R2, {R2,R3} .text:0001DB70 MOVNE R1, #0x2B .text:0001DB74 BNE loc_1DB44 .text:0001DB78 LDR R2, [R11,#var_528] .text:0001DB7C CMP R2, #0 .text:0001DB80 BEQ loc_1DBA0 .text:0001DB84 ADD R2, R10, #0x14 .text:0001DB88 LDMIA R2, {R2,R3} .text:0001DB8C MOV R1, #0x20 .text:0001DB90 B loc_1DB44 .text:0001DB94 ; --------------------------------------------------------------------------- .text:0001DB94 .text:0001DB94 loc_1DB94 ; CODE XREF: vfprintf+FFCj .text:0001DB94 STRB R1, [R2],#1 .text:0001DB98 STR R2, [R10,#0x14] .text:0001DB9C .text:0001DB9C loc_1DB9C ; CODE XREF: vfprintf+1010j .text:0001DB9C ADD R9, R9, #1 .text:0001DBA0 .text:0001DBA0 loc_1DBA0 ; CODE XREF: vfprintf+1034j .text:0001DBA0 LDR R3, [R11,#var_524] .text:0001DBA4 LDR R12, [R11,#var_51C] .text:0001DBA8 CMP R3, #0 .text:0001DBAC CMPNE R12, #0 .text:0001DBB0 BEQ loc_1DC30 .text:0001DBB4 LDR R0, [R11,#var_520] .text:0001DBB8 CMP R0, #0x10 .text:0001DBBC BNE loc_1DC30 .text:0001DBC0 ADD R2, R10, #0x14 .text:0001DBC4 LDMIA R2, {R2,R3} .text:0001DBC8 MOV R1, #0x30 .text:0001DBCC CMP R2, R3 .text:0001DBD0 BCC loc_1DBE8 .text:0001DBD4 MOV R0, R10 .text:0001DBD8 BL __overflow .text:0001DBDC CMN R0, #1 .text:0001DBE0 BEQ loc_1E6B4 .text:0001DBE4 B loc_1DBF0 .text:0001DBE8 ; --------------------------------------------------------------------------- .text:0001DBE8 .text:0001DBE8 loc_1DBE8 ; CODE XREF: vfprintf+1084j .text:0001DBE8 STRB R1, [R2],#1 .text:0001DBEC STR R2, [R10,#0x14] .text:0001DBF0 .text:0001DBF0 loc_1DBF0 ; CODE XREF: vfprintf+1098j .text:0001DBF0 ADD R9, R9, #1 .text:0001DBF4 ADD R2, R10, #0x14 .text:0001DBF8 LDMIA R2, {R2,R3} .text:0001DBFC CMP R2, R3 .text:0001DC00 BCC loc_1DC18 .text:0001DC04 LDR R1, [R11,#var_558] .text:0001DC08 MOV R0, R10 .text:0001DC0C BL __overflow .text:0001DC10 CMN R0, #1 .text:0001DC14 B loc_1DC28 .text:0001DC18 ; --------------------------------------------------------------------------- .text:0001DC18 .text:0001DC18 loc_1DC18 ; CODE XREF: vfprintf+10B4j .text:0001DC18 LDR R1, [R11,#var_558] .text:0001DC1C STRB R1, [R2],#1 .text:0001DC20 CMN R1, #1 .text:0001DC24 STR R2, [R10,#0x14] .text:0001DC28 .text:0001DC28 loc_1DC28 ; CODE XREF: vfprintf+10C8j .text:0001DC28 BEQ loc_1E6B4 .text:0001DC2C ADD R9, R9, #1 .text:0001DC30 .text:0001DC30 loc_1DC30 ; CODE XREF: vfprintf+1064j .text:0001DC30 ; vfprintf+1070j .text:0001DC30 LDR R2, [R11,#var_548] .text:0001DC34 LDR R3, [R11,#var_54C] .text:0001DC38 ADD R2, R2, R3 .text:0001DC3C CMP R2, #0 .text:0001DC40 STR R2, [R11,#var_548] .text:0001DC44 BLE loc_1DC58 .text:0001DC48 MOV R0, R10 .text:0001DC4C MOV R1, #0x30 .text:0001DC50 BL _IO_padn .text:0001DC54 ADD R9, R9, R0 .text:0001DC58 .text:0001DC58 loc_1DC58 ; CODE XREF: vfprintf+10F8j .text:0001DC58 MOV R0, R10 .text:0001DC5C LDRB R3, [R10,#0x46] .text:0001DC60 MOV R1, R8 .text:0001DC64 MOV R3, R3,LSL#24 .text:0001DC68 ADD R3, R10, R3,ASR#24 .text:0001DC6C LDR R12, [R3,#0x94] .text:0001DC70 MOV R2, R4 .text:0001DC74 MOV LR, PC .text:0001DC78 LDR PC, [R12,#0x1C] .text:0001DC7C CMP R0, R4 .text:0001DC80 BNE loc_1E6B4 .text:0001DC84 ADD R9, R9, R4 .text:0001DC88 B loc_1E6BC .text:0001DC8C ; --------------------------------------------------------------------------- .text:0001DC8C .text:0001DC8C loc_1DC8C ; CODE XREF: vfprintf+F48j .text:0001DC8C LDR R12, [R11,#var_514] .text:0001DC90 CMP R12, #0 .text:0001DC94 BEQ loc_1DCE4 .text:0001DC98 ADD R2, R10, #0x14 .text:0001DC9C LDMIA R2, {R2,R3} .text:0001DCA0 MOV R1, #0x2D .text:0001DCA4 CMP R2, R3 .text:0001DCA8 BCC loc_1DCC0 .text:0001DCAC MOV R0, R10 .text:0001DCB0 BL __overflow .text:0001DCB4 CMN R0, #1 .text:0001DCB8 BEQ loc_1E6B4 .text:0001DCBC B loc_1DCC8 .text:0001DCC0 ; --------------------------------------------------------------------------- .text:0001DCC0 .text:0001DCC0 loc_1DCC0 ; CODE XREF: vfprintf+115Cj .text:0001DCC0 STRB R1, [R2],#1 .text:0001DCC4 STR R2, [R10,#0x14] .text:0001DCC8 .text:0001DCC8 loc_1DCC8 ; CODE XREF: vfprintf+1170j .text:0001DCC8 ADD R9, R9, #1 .text:0001DCCC LDR R0, [R11,#var_548] .text:0001DCD0 SUB R0, R0, #1 .text:0001DCD4 STR R0, [R11,#var_548] .text:0001DCD8 B loc_1DD80 .text:0001DCD8 ; --------------------------------------------------------------------------- .text:0001DCDC off_1DCDC DCD _itoa_lower_digits ; DATA XREF: vfprintf:loc_1D908r .text:0001DCE0 off_1DCE0 DCD _itoa_upper_digits ; DATA XREF: vfprintf+DC4r .text:0001DCE0 ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0001DCE4 ; --------------------------------------------------------------------------- .text:0001DCE4 .text:0001DCE4 loc_1DCE4 ; CODE XREF: vfprintf+1148j .text:0001DCE4 LDR R1, [R11,#var_530] .text:0001DCE8 CMP R1, #0 .text:0001DCEC BEQ loc_1DD34 .text:0001DCF0 ADD R2, R10, #0x14 .text:0001DCF4 LDMIA R2, {R2,R3} .text:0001DCF8 MOV R1, #0x2B .text:0001DCFC CMP R2, R3 .text:0001DD00 BCC loc_1DD18 .text:0001DD04 MOV R0, R10 .text:0001DD08 BL __overflow .text:0001DD0C CMN R0, #1 .text:0001DD10 BEQ loc_1E6B4 .text:0001DD14 B loc_1DD20 .text:0001DD18 ; --------------------------------------------------------------------------- .text:0001DD18 .text:0001DD18 loc_1DD18 ; CODE XREF: vfprintf+11B4j .text:0001DD18 STRB R1, [R2],#1 .text:0001DD1C STR R2, [R10,#0x14] .text:0001DD20 .text:0001DD20 loc_1DD20 ; CODE XREF: vfprintf+11C8j .text:0001DD20 ADD R9, R9, #1 .text:0001DD24 LDR R2, [R11,#var_548] .text:0001DD28 SUB R2, R2, #1 .text:0001DD2C STR R2, [R11,#var_548] .text:0001DD30 B loc_1DD80 .text:0001DD34 ; --------------------------------------------------------------------------- .text:0001DD34 .text:0001DD34 loc_1DD34 ; CODE XREF: vfprintf+11A0j .text:0001DD34 LDR R3, [R11,#var_528] .text:0001DD38 CMP R3, #0 .text:0001DD3C BEQ loc_1DD80 .text:0001DD40 ADD R2, R10, #0x14 .text:0001DD44 LDMIA R2, {R2,R3} .text:0001DD48 MOV R1, #0x20 .text:0001DD4C CMP R2, R3 .text:0001DD50 BCC loc_1DD68 .text:0001DD54 MOV R0, R10 .text:0001DD58 BL __overflow .text:0001DD5C CMN R0, #1 .text:0001DD60 BEQ loc_1E6B4 .text:0001DD64 B loc_1DD70 .text:0001DD68 ; --------------------------------------------------------------------------- .text:0001DD68 .text:0001DD68 loc_1DD68 ; CODE XREF: vfprintf+1204j .text:0001DD68 STRB R1, [R2],#1 .text:0001DD6C STR R2, [R10,#0x14] .text:0001DD70 .text:0001DD70 loc_1DD70 ; CODE XREF: vfprintf+1218j .text:0001DD70 ADD R9, R9, #1 .text:0001DD74 LDR R12, [R11,#var_548] .text:0001DD78 SUB R12, R12, #1 .text:0001DD7C STR R12, [R11,#var_548] .text:0001DD80 .text:0001DD80 loc_1DD80 ; CODE XREF: vfprintf+118Cj .text:0001DD80 ; vfprintf+11E4j ... .text:0001DD80 LDR R0, [R11,#var_524] .text:0001DD84 LDR R1, [R11,#var_51C] .text:0001DD88 CMP R0, #0 .text:0001DD8C CMPNE R1, #0 .text:0001DD90 BEQ loc_1DE1C .text:0001DD94 LDR R2, [R11,#var_520] .text:0001DD98 CMP R2, #0x10 .text:0001DD9C BNE loc_1DE1C .text:0001DDA0 ADD R2, R10, #0x14 .text:0001DDA4 LDMIA R2, {R2,R3} .text:0001DDA8 MOV R1, #0x30 .text:0001DDAC CMP R2, R3 .text:0001DDB0 BCC loc_1DDC8 .text:0001DDB4 MOV R0, R10 .text:0001DDB8 BL __overflow .text:0001DDBC CMN R0, #1 .text:0001DDC0 BEQ loc_1E6B4 .text:0001DDC4 B loc_1DDD0 .text:0001DDC8 ; --------------------------------------------------------------------------- .text:0001DDC8 .text:0001DDC8 loc_1DDC8 ; CODE XREF: vfprintf+1264j .text:0001DDC8 STRB R1, [R2],#1 .text:0001DDCC STR R2, [R10,#0x14] .text:0001DDD0 .text:0001DDD0 loc_1DDD0 ; CODE XREF: vfprintf+1278j .text:0001DDD0 ADD R9, R9, #1 .text:0001DDD4 ADD R2, R10, #0x14 .text:0001DDD8 LDMIA R2, {R2,R3} .text:0001DDDC CMP R2, R3 .text:0001DDE0 BCC loc_1DDF8 .text:0001DDE4 LDR R1, [R11,#var_558] .text:0001DDE8 MOV R0, R10 .text:0001DDEC BL __overflow .text:0001DDF0 CMN R0, #1 .text:0001DDF4 B loc_1DE08 .text:0001DDF8 ; --------------------------------------------------------------------------- .text:0001DDF8 .text:0001DDF8 loc_1DDF8 ; CODE XREF: vfprintf+1294j .text:0001DDF8 LDR R3, [R11,#var_558] .text:0001DDFC STRB R3, [R2],#1 .text:0001DE00 CMN R3, #1 .text:0001DE04 STR R2, [R10,#0x14] .text:0001DE08 .text:0001DE08 loc_1DE08 ; CODE XREF: vfprintf+12A8j .text:0001DE08 BEQ loc_1E6B4 .text:0001DE0C ADD R9, R9, #1 .text:0001DE10 LDR R12, [R11,#var_548] .text:0001DE14 SUB R12, R12, #2 .text:0001DE18 STR R12, [R11,#var_548] .text:0001DE1C .text:0001DE1C loc_1DE1C ; CODE XREF: vfprintf+1244j .text:0001DE1C ; vfprintf+1250j .text:0001DE1C LDR R0, [R11,#var_54C] .text:0001DE20 LDR R1, [R11,#var_548] .text:0001DE24 ADD R3, R4, R0 .text:0001DE28 RSB R1, R3, R1 .text:0001DE2C CMP R0, #0 .text:0001DE30 STR R1, [R11,#var_548] .text:0001DE34 BLE loc_1DE4C .text:0001DE38 MOV R0, R10 .text:0001DE3C LDR R2, [R11,#var_54C] .text:0001DE40 MOV R1, #0x30 .text:0001DE44 BL _IO_padn .text:0001DE48 ADD R9, R9, R0 .text:0001DE4C .text:0001DE4C loc_1DE4C ; CODE XREF: vfprintf+12E8j .text:0001DE4C MOV R0, R10 .text:0001DE50 LDRB R3, [R10,#0x46] .text:0001DE54 MOV R1, R8 .text:0001DE58 MOV R3, R3,LSL#24 .text:0001DE5C ADD R3, R10, R3,ASR#24 .text:0001DE60 LDR R12, [R3,#0x94] .text:0001DE64 MOV R2, R4 .text:0001DE68 MOV LR, PC .text:0001DE6C LDR PC, [R12,#0x1C] .text:0001DE70 CMP R0, R4 .text:0001DE74 BNE loc_1E6B4 .text:0001DE78 ADD R9, R9, R0 .text:0001DE7C LDR R2, [R11,#var_548] .text:0001DE80 CMP R2, #0 .text:0001DE84 BLE loc_1E6BC .text:0001DE88 MOV R0, R10 .text:0001DE8C B loc_1E25C .text:0001DE90 ; --------------------------------------------------------------------------- .text:0001DE90 SUB R0, R11, #-var_420 .text:0001DE94 SUB R0, R0, #8 .text:0001DE98 SUB R0, R0, #0xC .text:0001DE9C MOV R1, #0 .text:0001DEA0 MOV R2, #0x14 .text:0001DEA4 BL memset .text:0001DEA8 LDR R3, [R11,#var_54C] .text:0001DEAC STR R3, [R11,#var_434] .text:0001DEB0 LDR R4, [R11,#var_548] .text:0001DEB4 STR R4, [R11,#var_430] .text:0001DEB8 LDR R12, [R11,#var_558] .text:0001DEBC STR R12, [R11,#var_42C] .text:0001DEC0 LDR R0, [R11,#var_554] .text:0001DEC4 STR R0, [R11,#var_424] .text:0001DEC8 LDR R1, [R11,#var_538] .text:0001DECC LDR R2, [R11,#var_53C] .text:0001DED0 LDRB R3, [R11,#var_428] .text:0001DED4 LDR R4, [R11,#var_540] .text:0001DED8 LDR R12, [R11,#var_524] .text:0001DEDC LDR R0, [R11,#var_528] .text:0001DEE0 CMP R1, #0 .text:0001DEE4 LDR R1, [R11,#var_52C] .text:0001DEE8 ORRNE R3, R3, #1 .text:0001DEEC ANDEQ R3, R3, #0xFE .text:0001DEF0 CMP R2, #0 .text:0001DEF4 ORRNE R3, R3, #2 .text:0001DEF8 ANDEQ R3, R3, #0xFD .text:0001DEFC AND R2, R4, #1 .text:0001DF00 CMP R2, #0 .text:0001DF04 ORRNE R3, R3, #4 .text:0001DF08 ANDEQ R3, R3, #0xFB .text:0001DF0C CMP R12, #0 .text:0001DF10 ORRNE R3, R3, #8 .text:0001DF14 ANDEQ R3, R3, #0xF7 .text:0001DF18 CMP R0, #0 .text:0001DF1C ORRNE R3, R3, #0x10 .text:0001DF20 ANDEQ R3, R3, #0xEF .text:0001DF24 LDR R2, [R11,#var_530] .text:0001DF28 CMP R1, #0 .text:0001DF2C LDR R4, [R11,#var_534] .text:0001DF30 ORRNE R3, R3, #0x20 .text:0001DF34 ANDEQ R3, R3, #0xDF .text:0001DF38 LDR R12, [R11,#var_538] .text:0001DF3C CMP R2, #0 .text:0001DF40 ORRNE R3, R3, #0x40 .text:0001DF44 ANDEQ R3, R3, #0xBF .text:0001DF48 CMP R4, #0 .text:0001DF4C ORRNE R3, R3, #0x80 .text:0001DF50 ANDEQ R3, R3, #0x7F .text:0001DF54 CMP R12, #0 .text:0001DF58 STRB R3, [R11,#var_428] .text:0001DF5C BEQ loc_1DF74 .text:0001DF60 LDR R0, [R11,#var_4F0] .text:0001DF64 LDMIA R0!, {R1,R2} .text:0001DF68 SUB R3, R11, #-var_480 .text:0001DF6C STR R0, [R11,#var_4F0] .text:0001DF70 B loc_1DF84 .text:0001DF74 ; --------------------------------------------------------------------------- .text:0001DF74 .text:0001DF74 loc_1DF74 ; CODE XREF: vfprintf+1410j .text:0001DF74 LDR R4, [R11,#var_4F0] .text:0001DF78 LDMIA R4!, {R1,R2} .text:0001DF7C SUB R3, R11, #-var_480 .text:0001DF80 STR R4, [R11,#var_4F0] .text:0001DF84 .text:0001DF84 loc_1DF84 ; CODE XREF: vfprintf+1424j .text:0001DF84 SUB R3, R3, #8 .text:0001DF88 SUB R3, R3, #4 .text:0001DF8C STMIA R3, {R1,R2} .text:0001DF90 SUB R3, R11, #-var_480 .text:0001DF94 SUB R3, R3, #8 .text:0001DF98 SUB R3, R3, #4 .text:0001DF9C MOV R0, R10 .text:0001DFA0 SUB R1, R11, #-var_420 .text:0001DFA4 SUB R1, R1, #8 .text:0001DFA8 STR R3, [R11,#var_490] .text:0001DFAC SUB R1, R1, #0xC .text:0001DFB0 SUB R2, R11, #-var_480 .text:0001DFB4 SUB R2, R2, #8 .text:0001DFB8 SUB R2, R2, #8 .text:0001DFBC BL __printf_fp .text:0001DFC0 .text:0001DFC0 loc_1DFC0 ; CODE XREF: vfprintf+15A8j .text:0001DFC0 CMP R0, #0 .text:0001DFC4 BLT loc_1E6B4 .text:0001DFC8 ADD R9, R9, R0 .text:0001DFCC B loc_1E6BC .text:0001DFD0 ; --------------------------------------------------------------------------- .text:0001DFD0 SUB R4, R11, #-var_440 .text:0001DFD4 SUB R4, R4, #8 .text:0001DFD8 MOV R0, R4 .text:0001DFDC MOV R1, #0 .text:0001DFE0 MOV R2, #0x14 .text:0001DFE4 BL memset .text:0001DFE8 LDR R12, [R11,#var_54C] .text:0001DFEC STR R12, [R11,#var_448] .text:0001DFF0 LDR R0, [R11,#var_548] .text:0001DFF4 STR R0, [R11,#var_444] .text:0001DFF8 LDR R1, [R11,#var_558] .text:0001DFFC STR R1, [R11,#var_440] .text:0001E000 LDR R2, [R11,#var_554] .text:0001E004 STR R2, [R11,#var_438] .text:0001E008 LDRB R3, [R11,#var_43C] .text:0001E00C LDR R12, [R11,#var_538] .text:0001E010 LDR R0, [R11,#var_53C] .text:0001E014 LDR R1, [R11,#var_540] .text:0001E018 CMP R12, #0 .text:0001E01C ORRNE R3, R3, #1 .text:0001E020 ANDEQ R3, R3, #0xFE .text:0001E024 CMP R0, #0 .text:0001E028 ORRNE R3, R3, #2 .text:0001E02C ANDEQ R3, R3, #0xFD .text:0001E030 AND R2, R1, #1 .text:0001E034 CMP R2, #0 .text:0001E038 LDR R2, [R11,#var_524] .text:0001E03C LDR R12, [R11,#var_528] .text:0001E040 LDR R0, [R11,#var_52C] .text:0001E044 ORRNE R3, R3, #4 .text:0001E048 ANDEQ R3, R3, #0xFB .text:0001E04C LDR R1, [R11,#var_530] .text:0001E050 CMP R2, #0 .text:0001E054 ORRNE R3, R3, #8 .text:0001E058 ANDEQ R3, R3, #0xF7 .text:0001E05C CMP R12, #0 .text:0001E060 ORRNE R3, R3, #0x10 .text:0001E064 ANDEQ R3, R3, #0xEF .text:0001E068 CMP R0, #0 .text:0001E06C ORRNE R3, R3, #0x20 .text:0001E070 ANDEQ R3, R3, #0xDF .text:0001E074 CMP R1, #0 .text:0001E078 ORRNE R3, R3, #0x40 .text:0001E07C ANDEQ R3, R3, #0xBF .text:0001E080 LDR R2, [R11,#var_534] .text:0001E084 MOV R1, R4 .text:0001E088 LDR R12, [R11,#var_538] .text:0001E08C CMP R2, #0 .text:0001E090 ORRNE R3, R3, #0x80 .text:0001E094 ANDEQ R3, R3, #0x7F .text:0001E098 CMP R12, #0 .text:0001E09C STRB R3, [R11,#var_43C] .text:0001E0A0 BEQ loc_1E0BC .text:0001E0A4 LDR R0, [R11,#var_4F0] .text:0001E0A8 SUB R2, R11, #-var_480 .text:0001E0AC LDMIA R0!, {R3,R4} .text:0001E0B0 SUB R2, R2, #8 .text:0001E0B4 STR R0, [R11,#var_4F0] .text:0001E0B8 B loc_1E0D0 .text:0001E0BC ; --------------------------------------------------------------------------- .text:0001E0BC .text:0001E0BC loc_1E0BC ; CODE XREF: vfprintf+1554j .text:0001E0BC LDR R12, [R11,#var_4F0] .text:0001E0C0 SUB R2, R11, #-var_480 .text:0001E0C4 LDMIA R12!, {R3,R4} .text:0001E0C8 SUB R2, R2, #8 .text:0001E0CC STR R12, [R11,#var_4F0] .text:0001E0D0 .text:0001E0D0 loc_1E0D0 ; CODE XREF: vfprintf+156Cj .text:0001E0D0 SUB R2, R2, #4 .text:0001E0D4 MOV R0, R2 .text:0001E0D8 STMIA R2, {R3,R4} .text:0001E0DC STR R0, [R11,#var_494] .text:0001E0E0 MOV R0, R10 .text:0001E0E4 SUB R2, R11, #-var_480 .text:0001E0E8 SUB R2, R2, #8 .text:0001E0EC SUB R2, R2, #0xC .text:0001E0F0 BL __printf_fphex .text:0001E0F4 B loc_1DFC0 .text:0001E0F8 ; --------------------------------------------------------------------------- .text:0001E0F8 LDR R0, [R11,#var_4F0] .text:0001E0FC LDR R2, [R0],#4 .text:0001E100 CMP R2, #0 .text:0001E104 STR R0, [R11,#var_4F0] .text:0001E108 BEQ loc_1E138 .text:0001E10C MOV R1, #0x10 .text:0001E110 STR R1, [R11,#var_520] .text:0001E114 STR R2, [R11,#var_51C] .text:0001E118 MOV R2, #0 .text:0001E11C STR R2, [R11,#var_514] .text:0001E120 MOV R3, #1 .text:0001E124 STR R3, [R11,#var_524] .text:0001E128 STR R2, [R11,#var_534] .text:0001E12C MOV R4, #0x78 .text:0001E130 STR R4, [R11,#var_558] .text:0001E134 B loc_1D8A8 .text:0001E138 ; --------------------------------------------------------------------------- .text:0001E138 .text:0001E138 loc_1E138 ; CODE XREF: vfprintf+15BCj .text:0001E138 STR R2, [R11,#var_540] .text:0001E13C LDR R12, [R11,#var_54C] .text:0001E140 LDR R8, =aNil ; "(nil)" .text:0001E144 MOV R0, R12 .text:0001E148 CMP R0, #4 .text:0001E14C MOVLE R12, #5 .text:0001E150 STR R12, [R11,#var_54C] .text:0001E154 B loc_1E36C .text:0001E158 ; --------------------------------------------------------------------------- .text:0001E158 LDR R1, [R11,#var_538] .text:0001E15C CMP R1, #0 .text:0001E160 BNE loc_1D330 .text:0001E164 LDR R2, [R11,#var_544] .text:0001E168 CMP R2, #0 .text:0001E16C BNE loc_1D34C .text:0001E170 LDR R3, [R11,#var_53C] .text:0001E174 CMP R3, #0 .text:0001E178 BEQ loc_1D360 .text:0001E17C LDR R4, [R11,#var_4F0] .text:0001E180 LDR R2, [R4],#4 .text:0001E184 STR R4, [R11,#var_4F0] .text:0001E188 STRB R9, [R2] .text:0001E18C MOV R3, R9,ASR#8 .text:0001E190 STRB R3, [R2,#1] .text:0001E194 B loc_1E6BC .text:0001E198 ; --------------------------------------------------------------------------- .text:0001E198 SUB R1, R11, #-var_410 .text:0001E19C LDR R0, [R11,#var_508] .text:0001E1A0 MOV R2, #0x3E8 .text:0001E1A4 BL strerror_r .text:0001E1A8 MOV R8, R0 .text:0001E1AC MOV R12, #0 .text:0001E1B0 STR R12, [R11,#var_540] .text:0001E1B4 B loc_1E36C .text:0001E1B8 ; --------------------------------------------------------------------------- .text:0001E1B8 LDR R0, [R11,#var_540] .text:0001E1BC CMP R0, #0 .text:0001E1C0 BNE loc_1E26C .text:0001E1C4 LDR R1, [R11,#var_548] .text:0001E1C8 LDR R2, [R11,#var_52C] .text:0001E1CC SUB R1, R1, #1 .text:0001E1D0 CMP R2, #0 .text:0001E1D4 STR R1, [R11,#var_548] .text:0001E1D8 BNE loc_1E1F8 .text:0001E1DC CMP R1, #0 .text:0001E1E0 BLE loc_1E1F8 .text:0001E1E4 MOV R0, R10 .text:0001E1E8 LDR R2, [R11,#var_548] .text:0001E1EC MOV R1, #0x20 .text:0001E1F0 BL _IO_padn .text:0001E1F4 ADD R9, R9, R0 .text:0001E1F8 .text:0001E1F8 loc_1E1F8 ; CODE XREF: vfprintf+168Cj .text:0001E1F8 ; vfprintf+1694j .text:0001E1F8 LDR R2, [R10,#0x14] .text:0001E1FC LDR R4, [R11,#var_4F0] .text:0001E200 LDR R3, [R10,#0x18] .text:0001E204 ADD R4, R4, #4 .text:0001E208 STR R4, [R11,#var_4F0] .text:0001E20C CMP R2, R3 .text:0001E210 LDRB R1, [R4,#-4] .text:0001E214 BCC loc_1E228 .text:0001E218 MOV R0, R10 .text:0001E21C BL __overflow .text:0001E220 CMN R0, #1 .text:0001E224 B loc_1E234 .text:0001E228 ; --------------------------------------------------------------------------- .text:0001E228 .text:0001E228 loc_1E228 ; CODE XREF: vfprintf+16C8j .text:0001E228 STRB R1, [R2],#1 .text:0001E22C CMN R1, #1 .text:0001E230 STR R2, [R10,#0x14] .text:0001E234 .text:0001E234 loc_1E234 ; CODE XREF: vfprintf+16D8j .text:0001E234 BEQ loc_1E6B4 .text:0001E238 ADD R9, R9, #1 .text:0001E23C LDR R12, [R11,#var_52C] .text:0001E240 CMP R12, #0 .text:0001E244 BEQ loc_1E6BC .text:0001E248 LDR R0, [R11,#var_548] .text:0001E24C CMP R0, #0 .text:0001E250 BLE loc_1E6BC .text:0001E254 MOV R0, R10 .text:0001E258 LDR R2, [R11,#var_548] .text:0001E25C .text:0001E25C loc_1E25C ; CODE XREF: vfprintf+1340j .text:0001E25C MOV R1, #0x20 .text:0001E260 BL _IO_padn .text:0001E264 ADD R9, R9, R0 .text:0001E268 B loc_1E6BC .text:0001E26C ; --------------------------------------------------------------------------- .text:0001E26C .text:0001E26C loc_1E26C ; CODE XREF: vfprintf+1674j .text:0001E26C MOV R7, SP .text:0001E270 BL __ctype_get_mb_cur_max .text:0001E274 BIC R0, R0, #0xE0000000 .text:0001E278 ADD R0, R0, #3 .text:0001E27C BIC R0, R0, #0xC0000003 .text:0001E280 RSB SP, R0, SP .text:0001E284 SUB R4, R11, #-var_490 .text:0001E288 SUB R4, R4, #8 .text:0001E28C SUB R4, R4, #4 .text:0001E290 MOV R0, R4 .text:0001E294 MOV R1, #0 .text:0001E298 MOV R2, #8 .text:0001E29C ADD R5, SP, #0x5CC+var_5C8 .text:0001E2A0 BL memset .text:0001E2A4 LDR R2, [R11,#var_4F0] .text:0001E2A8 LDR R1, [R2],#4 .text:0001E2AC STR R2, [R11,#var_4F0] .text:0001E2B0 MOV R0, R5 .text:0001E2B4 MOV R2, R4 .text:0001E2B8 BL wcrtomb .text:0001E2BC MOV R4, R0 .text:0001E2C0 CMN R4, #1 .text:0001E2C4 BEQ loc_1E794 .text:0001E2C8 LDR R3, [R11,#var_548] .text:0001E2CC LDR R12, [R11,#var_52C] .text:0001E2D0 RSB R3, R4, R3 .text:0001E2D4 CMP R12, #0 .text:0001E2D8 STR R3, [R11,#var_548] .text:0001E2DC BNE loc_1E2FC .text:0001E2E0 CMP R3, #0 .text:0001E2E4 BLE loc_1E2FC .text:0001E2E8 MOV R0, R10 .text:0001E2EC MOV R1, #0x20 .text:0001E2F0 MOV R2, R3 .text:0001E2F4 BL _IO_padn .text:0001E2F8 ADD R9, R9, R0 .text:0001E2FC .text:0001E2FC loc_1E2FC ; CODE XREF: vfprintf+1790j .text:0001E2FC ; vfprintf+1798j .text:0001E2FC MOV R0, R10 .text:0001E300 LDRB R3, [R10,#0x46] .text:0001E304 MOV R1, R5 .text:0001E308 MOV R3, R3,LSL#24 .text:0001E30C ADD R3, R10, R3,ASR#24 .text:0001E310 LDR R12, [R3,#0x94] .text:0001E314 MOV R2, R4 .text:0001E318 MOV LR, PC .text:0001E31C LDR PC, [R12,#0x1C] .text:0001E320 CMP R0, R4 .text:0001E324 BNE loc_1E794 .text:0001E328 ADD R9, R9, R4 .text:0001E32C LDR R0, [R11,#var_52C] .text:0001E330 CMP R0, #0 .text:0001E334 BEQ loc_1E358 .text:0001E338 LDR R1, [R11,#var_548] .text:0001E33C CMP R1, #0 .text:0001E340 BLE loc_1E358 .text:0001E344 MOV R0, R10 .text:0001E348 LDR R2, [R11,#var_548] .text:0001E34C MOV R1, #0x20 .text:0001E350 BL _IO_padn .text:0001E354 ADD R9, R9, R0 .text:0001E358 .text:0001E358 loc_1E358 ; CODE XREF: vfprintf+17E8j .text:0001E358 ; vfprintf+17F4j .text:0001E358 MOV SP, R7 .text:0001E35C B loc_1E6BC .text:0001E360 ; --------------------------------------------------------------------------- .text:0001E360 LDR R2, [R11,#var_4F0] .text:0001E364 LDR R8, [R2],#4 .text:0001E368 STR R2, [R11,#var_4F0] .text:0001E36C .text:0001E36C loc_1E36C ; CODE XREF: vfprintf+1608j .text:0001E36C ; vfprintf+1668j .text:0001E36C MOV R3, #0 .text:0001E370 CMP R8, R3 .text:0001E374 STR R3, [R11,#var_55C] .text:0001E378 BNE loc_1E3B4 .text:0001E37C LDR R4, [R11,#var_54C] .text:0001E380 CMP R4, #5 .text:0001E384 MOVLE R3, #0 .text:0001E388 MOVGT R3, #1 .text:0001E38C CMN R4, #1 .text:0001E390 MOVNE R0, R3 .text:0001E394 MOVEQ R0, #1 .text:0001E398 CMP R0, #0 .text:0001E39C MOVNE R5, #6 .text:0001E3A0 LDRNE R8, =null ; "(null)" .text:0001E3A4 BNE loc_1E5C4 .text:0001E3A8 MOV R5, R0 .text:0001E3AC LDR R8, =dword_571DC .text:0001E3B0 B loc_1E5C4 .text:0001E3B4 ; --------------------------------------------------------------------------- .text:0001E3B4 .text:0001E3B4 loc_1E3B4 ; CODE XREF: vfprintf+182Cj .text:0001E3B4 LDR R12, [R11,#var_558] .text:0001E3B8 LDR R0, [R11,#var_540] .text:0001E3BC SUBS R3, R12, #0x53 .text:0001E3C0 MOVNE R3, #1 .text:0001E3C4 CMP R0, #0 .text:0001E3C8 MOVNE R3, #0 .text:0001E3CC CMP R3, #0 .text:0001E3D0 BEQ loc_1E4A0 .text:0001E3D4 LDR R1, [R11,#var_54C] .text:0001E3D8 CMN R1, #1 .text:0001E3DC BEQ loc_1E490 .text:0001E3E0 LDR R3, =_nl_current_LC_CTYPE .text:0001E3E4 LDR R2, [R3] .text:0001E3E8 LDR R1, [R2,#0x54] .text:0001E3EC CMP R1, #1 .text:0001E3F0 BNE loc_1E408 .text:0001E3F4 LDR R1, [R11,#var_54C] .text:0001E3F8 MOV R0, R8 .text:0001E3FC BL strnlen .text:0001E400 MOV R5, R0 .text:0001E404 B loc_1E5C4 .text:0001E408 ; --------------------------------------------------------------------------- .text:0001E408 .text:0001E408 loc_1E408 ; CODE XREF: vfprintf+18A4j .text:0001E408 STR R8, [R11,#var_4A8] .text:0001E40C MOV R7, SP .text:0001E410 SUB R4, R11, #-var_490 .text:0001E414 SUB R4, R4, #8 .text:0001E418 SUB R4, R4, #0xC .text:0001E41C LDR R2, [R11,#var_54C] .text:0001E420 MOV R0, R4 .text:0001E424 LDR R1, [R11,#var_55C] .text:0001E428 MOV R3, R2,LSL#5 .text:0001E42C SUB SP, SP, R3,LSR#3 .text:0001E430 MOV R2, #8 .text:0001E434 ADD R5, SP, #0x5CC+var_5C8 .text:0001E438 BL memset .text:0001E43C STR R4, [SP,#0x5CC+var_5CC] .text:0001E440 MOV R0, R5 .text:0001E444 SUB R1, R11, #-var_4A0 .text:0001E448 LDR R2, [R11,#var_54C] .text:0001E44C SUB R1, R1, #8 .text:0001E450 MOV R3, R2 .text:0001E454 BL mbsnrtowcs .text:0001E458 CMN R0, #1 .text:0001E45C BEQ loc_1E794 .text:0001E460 LDR R3, [R11,#var_4A8] .text:0001E464 CMP R3, #0 .text:0001E468 BNE loc_1E47C .text:0001E46C MOV R0, R8 .text:0001E470 BL strlen .text:0001E474 MOV R5, R0 .text:0001E478 B loc_1E488 .text:0001E47C ; --------------------------------------------------------------------------- .text:0001E47C .text:0001E47C loc_1E47C ; CODE XREF: vfprintf+191Cj .text:0001E47C LDR R2, [R11,#var_4A4] .text:0001E480 RSB R3, R8, R3 .text:0001E484 RSB R5, R2, R3 .text:0001E488 .text:0001E488 loc_1E488 ; CODE XREF: vfprintf+192Cj .text:0001E488 MOV SP, R7 .text:0001E48C B loc_1E5C4 .text:0001E490 ; --------------------------------------------------------------------------- .text:0001E490 .text:0001E490 loc_1E490 ; CODE XREF: vfprintf+1890j .text:0001E490 MOV R0, R8 .text:0001E494 BL strlen .text:0001E498 MOV R5, R0 .text:0001E49C B loc_1E5C4 .text:0001E4A0 ; --------------------------------------------------------------------------- .text:0001E4A0 .text:0001E4A0 loc_1E4A0 ; CODE XREF: vfprintf+1884j .text:0001E4A0 STR R8, [R11,#var_4B4] .text:0001E4A4 SUB R4, R11, #-var_4A0 .text:0001E4A8 SUB R4, R4, #8 .text:0001E4AC SUB R4, R4, #8 .text:0001E4B0 MOV R0, R4 .text:0001E4B4 LDR R1, [R11,#var_55C] .text:0001E4B8 MOV R2, #8 .text:0001E4BC BL memset .text:0001E4C0 LDR R3, [R11,#var_54C] .text:0001E4C4 MOV R6, R4 .text:0001E4C8 CMP R3, #0 .text:0001E4CC BLE loc_1E53C .text:0001E4D0 CMP R3, #0x8000 .text:0001E4D4 BLT loc_1E4E8 .text:0001E4D8 MOV R0, R3 .text:0001E4DC BL malloc .text:0001E4E0 SUBS R8, R0, #0 .text:0001E4E4 BNE loc_1E510 .text:0001E4E8 .text:0001E4E8 loc_1E4E8 ; CODE XREF: vfprintf+1988j .text:0001E4E8 LDR R4, [R11,#var_54C] .text:0001E4EC ADD R3, R4, #3 .text:0001E4F0 BIC R3, R3, #3 .text:0001E4F4 RSB SP, R3, SP .text:0001E4F8 ADD R8, SP, #0x5CC+var_5C8 .text:0001E4FC B loc_1E518 .text:0001E4FC ; --------------------------------------------------------------------------- .text:0001E500 off_1E500 DCD aNil ; DATA XREF: vfprintf+15F4r .text:0001E500 ; "(nil)" .text:0001E504 off_1E504 DCD null ; DATA XREF: vfprintf+1854r .text:0001E504 ; "(null)" .text:0001E508 off_1E508 DCD dword_571DC ; DATA XREF: vfprintf+1860r .text:0001E50C off_1E50C DCD _nl_current_LC_CTYPE ; DATA XREF: vfprintf+1894r .text:0001E510 ; --------------------------------------------------------------------------- .text:0001E510 .text:0001E510 loc_1E510 ; CODE XREF: vfprintf+1998j .text:0001E510 MOV R12, #1 .text:0001E514 STR R12, [R11,#var_55C] .text:0001E518 .text:0001E518 loc_1E518 ; CODE XREF: vfprintf+19B0j .text:0001E518 MOV R0, R8 .text:0001E51C SUB R1, R11, #-var_4A0 .text:0001E520 SUB R1, R1, #8 .text:0001E524 SUB R1, R1, #0xC .text:0001E528 LDR R2, [R11,#var_54C] .text:0001E52C MOV R3, R6 .text:0001E530 BL wcsrtombs .text:0001E534 MOV R5, R0 .text:0001E538 B loc_1E5BC .text:0001E53C ; --------------------------------------------------------------------------- .text:0001E53C .text:0001E53C loc_1E53C ; CODE XREF: vfprintf+1980j .text:0001E53C SUB R4, R11, #-var_4A0 .text:0001E540 SUB R4, R4, #8 .text:0001E544 SUB R4, R4, #0xC .text:0001E548 MOV R1, R4 .text:0001E54C LDR R0, [R11,#var_55C] .text:0001E550 MOV R3, R6 .text:0001E554 MOV R2, R0 .text:0001E558 BL wcsrtombs .text:0001E55C MOV R5, R0 .text:0001E560 CMN R5, #1 .text:0001E564 BEQ loc_1E5BC .text:0001E568 ADD R3, R5, #1 .text:0001E56C CMP R3, #0x8000 .text:0001E570 MOV R7, R3 .text:0001E574 STR R8, [R11,#var_4B4] .text:0001E578 BCC loc_1E58C .text:0001E57C MOV R0, R7 .text:0001E580 BL malloc .text:0001E584 SUBS R8, R0, #0 .text:0001E588 BNE loc_1E5A0 .text:0001E58C .text:0001E58C loc_1E58C ; CODE XREF: vfprintf+1A2Cj .text:0001E58C ADD R3, R5, #4 .text:0001E590 BIC R3, R3, #3 .text:0001E594 RSB SP, R3, SP .text:0001E598 ADD R8, SP, #0x5CC+var_5C8 .text:0001E59C B loc_1E5A8 .text:0001E5A0 ; --------------------------------------------------------------------------- .text:0001E5A0 .text:0001E5A0 loc_1E5A0 ; CODE XREF: vfprintf+1A3Cj .text:0001E5A0 MOV R0, #1 .text:0001E5A4 STR R0, [R11,#var_55C] .text:0001E5A8 .text:0001E5A8 loc_1E5A8 ; CODE XREF: vfprintf+1A50j .text:0001E5A8 MOV R0, R8 .text:0001E5AC MOV R1, R4 .text:0001E5B0 MOV R2, R7 .text:0001E5B4 MOV R3, R6 .text:0001E5B8 BL wcsrtombs .text:0001E5BC .text:0001E5BC loc_1E5BC ; CODE XREF: vfprintf+19ECj .text:0001E5BC ; vfprintf+1A18j .text:0001E5BC CMN R5, #1 .text:0001E5C0 BEQ loc_1E6B4 .text:0001E5C4 .text:0001E5C4 loc_1E5C4 ; CODE XREF: vfprintf+1858j .text:0001E5C4 ; vfprintf+1864j ... .text:0001E5C4 LDR R1, [R11,#var_548] .text:0001E5C8 SUBS R1, R1, R5 .text:0001E5CC STR R1, [R11,#var_548] .text:0001E5D0 BPL loc_1E608 .text:0001E5D4 MOV R0, R10 .text:0001E5D8 LDRB R3, [R10,#0x46] .text:0001E5DC MOV R1, R8 .text:0001E5E0 MOV R3, R3,LSL#24 .text:0001E5E4 ADD R3, R10, R3,ASR#24 .text:0001E5E8 LDR R12, [R3,#0x94] .text:0001E5EC MOV R2, R5 .text:0001E5F0 MOV LR, PC .text:0001E5F4 LDR PC, [R12,#0x1C] .text:0001E5F8 CMP R0, R5 .text:0001E5FC BNE loc_1E6B4 .text:0001E600 ADD R9, R9, R5 .text:0001E604 B loc_1E6BC .text:0001E608 ; --------------------------------------------------------------------------- .text:0001E608 .text:0001E608 loc_1E608 ; CODE XREF: vfprintf+1A84j .text:0001E608 LDR R2, [R11,#var_52C] .text:0001E60C CMP R2, #0 .text:0001E610 BNE loc_1E634 .text:0001E614 LDR R3, [R11,#var_548] .text:0001E618 CMP R3, #0 .text:0001E61C BLE loc_1E634 .text:0001E620 MOV R0, R10 .text:0001E624 MOV R1, #0x20 .text:0001E628 MOV R2, R3 .text:0001E62C BL _IO_padn .text:0001E630 ADD R9, R9, R0 .text:0001E634 .text:0001E634 loc_1E634 ; CODE XREF: vfprintf+1AC4j .text:0001E634 ; vfprintf+1AD0j .text:0001E634 MOV R0, R10 .text:0001E638 LDRB R3, [R10,#0x46] .text:0001E63C MOV R1, R8 .text:0001E640 MOV R3, R3,LSL#24 .text:0001E644 ADD R3, R10, R3,ASR#24 .text:0001E648 LDR R12, [R3,#0x94] .text:0001E64C MOV R2, R5 .text:0001E650 MOV LR, PC .text:0001E654 LDR PC, [R12,#0x1C] .text:0001E658 CMP R0, R5 .text:0001E65C BNE loc_1E6B4 .text:0001E660 ADD R9, R9, R5 .text:0001E664 LDR R4, [R11,#var_52C] .text:0001E668 CMP R4, #0 .text:0001E66C BEQ loc_1E690 .text:0001E670 LDR R12, [R11,#var_548] .text:0001E674 CMP R12, #0 .text:0001E678 BLE loc_1E690 .text:0001E67C MOV R0, R10 .text:0001E680 MOV R1, #0x20 .text:0001E684 MOV R2, R12 .text:0001E688 BL _IO_padn .text:0001E68C ADD R9, R9, R0 .text:0001E690 .text:0001E690 loc_1E690 ; CODE XREF: vfprintf+1B20j .text:0001E690 ; vfprintf+1B2Cj .text:0001E690 LDR R0, [R11,#var_55C] .text:0001E694 CMP R0, #0 .text:0001E698 BEQ loc_1E6BC .text:0001E69C MOV R0, R8 .text:0001E6A0 BL free .text:0001E6A4 B loc_1E6BC .text:0001E6A8 ; --------------------------------------------------------------------------- .text:0001E6A8 .text:0001E6A8 loc_1E6A8 ; DATA XREF: vfprintf:loc_1CDC8o .text:0001E6A8 ; vfprintf:loc_1CE10o ... .text:0001E6A8 LDR R1, [R11,#var_558] .text:0001E6AC CMP R1, #0 .text:0001E6B0 BNE loc_1E7B8 .text:0001E6B4 .text:0001E6B4 loc_1E6B4 ; CODE XREF: vfprintf+1E4j .text:0001E6B4 ; vfprintf+AE4j ... .text:0001E6B4 MOV R9, 0xFFFFFFFF .text:0001E6B8 B loc_20B94 .text:0001E6BC ; --------------------------------------------------------------------------- .text:0001E6BC .text:0001E6BC loc_1E6BC ; CODE XREF: vfprintf+7FCj .text:0001E6BC ; vfprintf+810j ... .text:0001E6BC LDR R2, [R11,#var_480] .text:0001E6C0 LDR R3, [R11,#var_504] .text:0001E6C4 ADD R5, R2, #1 .text:0001E6C8 STR R5, [R11,#var_480] .text:0001E6CC ADD R3, R3, #1 .text:0001E6D0 STR R3, [R11,#var_504] .text:0001E6D4 LDRB R3, [R2,#1] .text:0001E6D8 MOV R4, R5 .text:0001E6DC CMP R3, #0 .text:0001E6E0 CMPNE R3, #0x25 .text:0001E6E4 BEQ loc_1E734 .text:0001E6E8 .text:0001E6E8 loc_1E6E8 ; CODE XREF: vfprintf+1BE4j .text:0001E6E8 MOV R3, #0 .text:0001E6EC STR R3, [R11,#var_478] .text:0001E6F0 LDRB R2, [R4] .text:0001E6F4 TST R2, #0x80 .text:0001E6F8 BEQ loc_1E720 .text:0001E6FC BL __ctype_get_mb_cur_max .text:0001E700 MOV R1, R0 .text:0001E704 MOV R0, R4 .text:0001E708 SUB R2, R11, #-var_470 .text:0001E70C SUB R2, R2, #8 .text:0001E710 BL mbrlen .text:0001E714 CMP R0, #0 .text:0001E718 ADDGT R4, R4, R0 .text:0001E71C BGT loc_1E724 .text:0001E720 .text:0001E720 loc_1E720 ; CODE XREF: vfprintf+1BACj .text:0001E720 ADD R4, R4, #1 .text:0001E724 .text:0001E724 loc_1E724 ; CODE XREF: vfprintf+1BD0j .text:0001E724 LDRB R3, [R4] .text:0001E728 CMP R3, #0 .text:0001E72C CMPNE R3, #0x25 .text:0001E730 BNE loc_1E6E8 .text:0001E734 .text:0001E734 loc_1E734 ; CODE XREF: vfprintf+1B98j .text:0001E734 STR R4, [R11,#var_480] .text:0001E738 LDRB R3, [R10,#0x46] .text:0001E73C MOV R0, R10 .text:0001E740 MOV R1, R5 .text:0001E744 MOV R3, R3,LSL#24 .text:0001E748 ADD R3, R10, R3,ASR#24 .text:0001E74C LDR R12, [R3,#0x94] .text:0001E750 RSB R2, R5, R4 .text:0001E754 MOV LR, PC .text:0001E758 LDR PC, [R12,#0x1C] .text:0001E75C LDR R1, [R11,#var_480] .text:0001E760 RSB R3, R5, R1 .text:0001E764 CMP R0, R3 .text:0001E768 BNE loc_1E6B4 .text:0001E76C ADD R9, R9, R0 .text:0001E770 LDRB R3, [R1] .text:0001E774 CMP R3, #0 .text:0001E778 BNE loc_1CD4C .text:0001E77C B loc_20B94 .text:0001E780 ; --------------------------------------------------------------------------- .text:0001E780 .text:0001E780 loc_1E780 ; CODE XREF: vfprintf+64j .text:0001E780 BL __errno_location .text:0001E784 MOV R3, #9 .text:0001E788 .text:0001E788 loc_1E788 ; CODE XREF: vfprintf+78j .text:0001E788 STR R3, [R0] .text:0001E78C .text:0001E78C loc_1E78C ; CODE XREF: vfprintf+58j .text:0001E78C ; vfprintf+A0j .text:0001E78C MOV R0, 0xFFFFFFFF .text:0001E790 B loc_20BC4 .text:0001E794 ; --------------------------------------------------------------------------- .text:0001E794 .text:0001E794 loc_1E794 ; CODE XREF: vfprintf+1778j .text:0001E794 ; vfprintf+17D8j ... .text:0001E794 MOV R9, 0xFFFFFFFF .text:0001E798 MOV SP, R7 .text:0001E79C B loc_20B94 .text:0001E7A0 ; --------------------------------------------------------------------------- .text:0001E7A0 .text:0001E7A0 loc_1E7A0 ; CODE XREF: vfprintf+3AD0j .text:0001E7A0 ; vfprintf+3B30j .text:0001E7A0 MOV R9, 0xFFFFFFFF .text:0001E7A4 MOV SP, R6 .text:0001E7A8 B loc_20B94 .text:0001E7AC ; --------------------------------------------------------------------------- .text:0001E7AC .text:0001E7AC loc_1E7AC ; CODE XREF: vfprintf+3C94j .text:0001E7AC MOV R9, R0 .text:0001E7B0 MOV SP, R8 .text:0001E7B4 B loc_20B94 .text:0001E7B8 ; --------------------------------------------------------------------------- .text:0001E7B8 .text:0001E7B8 loc_1E7B8 ; CODE XREF: vfprintf+570j .text:0001E7B8 ; vfprintf+690j ... .text:0001E7B8 MOV R4, #0 .text:0001E7BC STR R4, [R11,#var_560] .text:0001E7C0 SUB SP, SP, #0x600 .text:0001E7C4 ADD R12, SP, #0xBCC+var_BC8 .text:0001E7C8 STR R12, [R11,#var_564] .text:0001E7CC STR R4, [R11,#var_568] .text:0001E7D0 LDR R0, [R11,#var_4F8] .text:0001E7D4 MOV R8, #0x20 .text:0001E7D8 STR R4, [R11,#var_4B8] .text:0001E7DC CMN R0, #1 .text:0001E7E0 BNE loc_1E80C .text:0001E7E4 LDR R3, =_nl_current_LC_NUMERIC .text:0001E7E8 LDR R2, [R3] .text:0001E7EC LDR R1, [R2,#0x28] .text:0001E7F0 LDR R2, [R2,#0x24] .text:0001E7F4 LDRB R3, [R1] .text:0001E7F8 STR R2, [R11,#var_4F4] .text:0001E7FC CMP R3, #0xFF .text:0001E800 CMPNE R3, R4 .text:0001E804 MOVEQ R1, R4 .text:0001E808 STR R1, [R11,#var_4F8] .text:0001E80C .text:0001E80C loc_1E80C ; CODE XREF: vfprintf+1C94j .text:0001E80C LDR R2, [R11,#var_50C] .text:0001E810 LDRB R3, [R2] .text:0001E814 STR R2, [R11,#var_480] .text:0001E818 CMP R3, #0 .text:0001E81C BEQ loc_1F208 .text:0001E820 .text:0001E820 loc_1E820 ; CODE XREF: vfprintf+26B8j .text:0001E820 LDR R3, [R11,#var_560] .text:0001E824 CMP R3, R8 .text:0001E828 MOV R4, R3,LSL#1 .text:0001E82C STR R4, [R11,#var_5C8] .text:0001E830 BCC loc_1E888 .text:0001E834 MOV R8, R8,LSL#1 .text:0001E838 ADD R3, R8, R8,LSL#1 .text:0001E83C LDR R5, [R11,#var_564] .text:0001E840 SUB SP, SP, R3,LSL#4 .text:0001E844 LDR R0, [R11,#var_560] .text:0001E848 ADD R12, SP, #0xBCC+var_BC8 .text:0001E84C STR R12, [R11,#var_564] .text:0001E850 ADD R3, R4, R0 .text:0001E854 MOV R4, R3,LSL#4 .text:0001E858 ADD R2, R5, R4 .text:0001E85C CMP R12, R2 .text:0001E860 BEQ loc_1E884 .text:0001E864 MOV R1, R5 .text:0001E868 LDR R0, [R11,#var_564] .text:0001E86C MOV R2, R4 .text:0001E870 BL memcpy .text:0001E874 LDR R1, [R11,#var_564] .text:0001E878 ADD R3, R1, R4 .text:0001E87C CMP R5, R3 .text:0001E880 BNE loc_1E888 .text:0001E884 .text:0001E884 loc_1E884 ; CODE XREF: vfprintf+1D14j .text:0001E884 ADD R8, R8, R8,LSR#1 .text:0001E888 .text:0001E888 loc_1E888 ; CODE XREF: vfprintf+1CE4j .text:0001E888 ; vfprintf+1D34j .text:0001E888 LDR R3, [R11,#var_480] .text:0001E88C ADD R3, R3, #1 .text:0001E890 STR R3, [R11,#var_4BC] .text:0001E894 LDR R4, [R11,#var_560] .text:0001E898 LDR R3, [R11,#var_5C8] .text:0001E89C LDR R12, [R11,#var_564] .text:0001E8A0 ADD R2, R3, R4 .text:0001E8A4 ADD R5, R12, R2,LSL#4 .text:0001E8A8 MOV R3, 0xFFFFFFFF .text:0001E8AC STR R3, [R5,#0x24] .text:0001E8B0 MOV R2, #0x20 .text:0001E8B4 STR R2, [R5,#0x10] .text:0001E8B8 LDRB R3, [R5,#0xC] .text:0001E8BC LDRB R2, [R5,#0xD] .text:0001E8C0 AND R3, R3, #7 .text:0001E8C4 STRB R3, [R5,#0xC] .text:0001E8C8 AND R2, R2, #0xF3 .text:0001E8CC STRB R2, [R5,#0xD] .text:0001E8D0 LDR R4, [R11,#var_4BC] .text:0001E8D4 LDRB R3, [R4] .text:0001E8D8 MOV R0, #0 .text:0001E8DC STR R0, [R11,#var_570] .text:0001E8E0 SUB R6, R11, #-var_4B0 .text:0001E8E4 LDR R2, [R11,#var_560] .text:0001E8E8 SUB R6, R6, #8 .text:0001E8EC LDR R7, [R11,#var_568] .text:0001E8F0 ADD R2, R2, #1 .text:0001E8F4 STR R2, [R11,#var_5C4] .text:0001E8F8 SUB R1, R3, #0x30 .text:0001E8FC CMP R1, #9 .text:0001E900 BHI loc_1E98C .text:0001E904 ADD R3, R4, #1 .text:0001E908 STR R3, [R11,#var_4BC] .text:0001E90C MOV LR, R6 .text:0001E910 LDRB R3, [R4,#1] .text:0001E914 SUB LR, LR, #4 .text:0001E918 B loc_1E940 .text:0001E91C ; --------------------------------------------------------------------------- .text:0001E91C .text:0001E91C loc_1E91C ; CODE XREF: vfprintf+1DFCj .text:0001E91C LDR R0, [LR] .text:0001E920 MOV R3, R0 .text:0001E924 LDRB R12, [R3],#1 .text:0001E928 STR R3, [LR] .text:0001E92C ADD R2, R1, R1,LSL#2 .text:0001E930 MOV R1, R2,LSL#1 .text:0001E934 SUB R1, R1, #0x30 .text:0001E938 LDRB R3, [R0,#1] .text:0001E93C ADD R1, R1, R12 .text:0001E940 .text:0001E940 loc_1E940 ; CODE XREF: vfprintf+1DCCj .text:0001E940 SUB R3, R3, #0x30 .text:0001E944 CMP R3, #9 .text:0001E948 BLS loc_1E91C .text:0001E94C CMP R1, #0 .text:0001E950 BEQ loc_1E988 .text:0001E954 LDR R2, [R11,#var_4BC] .text:0001E958 LDRB R3, [R2] .text:0001E95C CMP R3, #0x24 .text:0001E960 BNE loc_1E988 .text:0001E964 ADD R3, R2, #1 .text:0001E968 STR R3, [R11,#var_4BC] .text:0001E96C SUB R2, R1, #1 .text:0001E970 STR R2, [R5,#0x24] .text:0001E974 LDR R3, [R6] .text:0001E978 CMP R1, R3 .text:0001E97C STRCS R1, [R6] .text:0001E980 STRCC R3, [R6] .text:0001E984 B loc_1E98C .text:0001E988 ; --------------------------------------------------------------------------- .text:0001E988 .text:0001E988 loc_1E988 ; CODE XREF: vfprintf+1E04j .text:0001E988 ; vfprintf+1E14j .text:0001E988 STR R4, [R11,#var_4BC] .text:0001E98C .text:0001E98C loc_1E98C ; CODE XREF: vfprintf+1DB4j .text:0001E98C ; vfprintf+1E38j .text:0001E98C MOV R0, #0x30 .text:0001E990 .text:0001E990 loc_1E990 ; CODE XREF: vfprintf+1F84j .text:0001E990 LDR R2, [R11,#var_4BC] .text:0001E994 LDRB R3, [R2] .text:0001E998 SUB R3, R3, #0x20 .text:0001E99C CMP R3, #0x29 ; switch 42 cases .text:0001E9A0 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0001E9A4 B loc_1EAB8 ; jumptable 0001E9A0 default case .text:0001E9A4 ; --------------------------------------------------------------------------- .text:0001E9A8 DCD loc_1EA50 ; jump table for switch statement .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EA80 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EA98 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EA60 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EA70 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EA90 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAD4 .text:0001E9A8 DCD loc_1EAA8 .text:0001EA50 ; --------------------------------------------------------------------------- .text:0001EA50 .text:0001EA50 loc_1EA50 ; CODE XREF: vfprintf+1E54j .text:0001EA50 ; DATA XREF: vfprintf+1E5Co .text:0001EA50 LDRB R3, [R5,#0xC] ; jumptable 0001E9A0 case 0 .text:0001EA54 ORR R3, R3, #0x10 .text:0001EA58 STRB R3, [R5,#0xC] .text:0001EA5C B loc_1EABC .text:0001EA60 ; --------------------------------------------------------------------------- .text:0001EA60 .text:0001EA60 loc_1EA60 ; CODE XREF: vfprintf+1E54j .text:0001EA60 ; DATA XREF: vfprintf+1E5Co .text:0001EA60 LDRB R3, [R5,#0xC] ; jumptable 0001E9A0 case 11 .text:0001EA64 ORR R3, R3, #0x40 .text:0001EA68 STRB R3, [R5,#0xC] .text:0001EA6C B loc_1EABC .text:0001EA70 ; --------------------------------------------------------------------------- .text:0001EA70 .text:0001EA70 loc_1EA70 ; CODE XREF: vfprintf+1E54j .text:0001EA70 ; DATA XREF: vfprintf+1E5Co .text:0001EA70 LDRB R3, [R5,#0xC] ; jumptable 0001E9A0 case 13 .text:0001EA74 ORR R3, R3, #0x20 .text:0001EA78 STRB R3, [R5,#0xC] .text:0001EA7C B loc_1EABC .text:0001EA80 ; --------------------------------------------------------------------------- .text:0001EA80 .text:0001EA80 loc_1EA80 ; CODE XREF: vfprintf+1E54j .text:0001EA80 ; DATA XREF: vfprintf+1E5Co .text:0001EA80 LDRB R3, [R5,#0xC] ; jumptable 0001E9A0 case 3 .text:0001EA84 ORR R3, R3, #8 .text:0001EA88 STRB R3, [R5,#0xC] .text:0001EA8C B loc_1EABC .text:0001EA90 ; --------------------------------------------------------------------------- .text:0001EA90 .text:0001EA90 loc_1EA90 ; CODE XREF: vfprintf+1E54j .text:0001EA90 ; DATA XREF: vfprintf+1E5Co .text:0001EA90 STR R0, [R5,#0x10] ; jumptable 0001E9A0 case 16 .text:0001EA94 B loc_1EABC .text:0001EA98 ; --------------------------------------------------------------------------- .text:0001EA98 .text:0001EA98 loc_1EA98 ; CODE XREF: vfprintf+1E54j .text:0001EA98 ; DATA XREF: vfprintf+1E5Co .text:0001EA98 LDRB R3, [R5,#0xC] ; jumptable 0001E9A0 case 7 .text:0001EA9C ORR R3, R3, #0x80 .text:0001EAA0 STRB R3, [R5,#0xC] .text:0001EAA4 B loc_1EABC .text:0001EAA8 ; --------------------------------------------------------------------------- .text:0001EAA8 .text:0001EAA8 loc_1EAA8 ; CODE XREF: vfprintf+1E54j .text:0001EAA8 ; DATA XREF: vfprintf+1E5Co .text:0001EAA8 LDRB R3, [R5,#0xD] ; jumptable 0001E9A0 case 41 .text:0001EAAC ORR R3, R3, #8 .text:0001EAB0 STRB R3, [R5,#0xD] .text:0001EAB4 B loc_1EABC .text:0001EAB8 ; --------------------------------------------------------------------------- .text:0001EAB8 .text:0001EAB8 loc_1EAB8 ; CODE XREF: vfprintf+1E58j .text:0001EAB8 B loc_1EAD4 ; jumptable 0001E9A0 default case .text:0001EABC ; --------------------------------------------------------------------------- .text:0001EABC .text:0001EABC loc_1EABC ; CODE XREF: vfprintf+1F10j .text:0001EABC ; vfprintf+1F20j ... .text:0001EABC LDR R3, [R11,#var_4BC] .text:0001EAC0 ADD R2, R3, #1 .text:0001EAC4 STR R2, [R11,#var_4BC] .text:0001EAC8 LDRB R1, [R3,#1] .text:0001EACC CMP R1, #0 .text:0001EAD0 BNE loc_1E990 .text:0001EAD4 .text:0001EAD4 loc_1EAD4 ; CODE XREF: vfprintf+1E54j .text:0001EAD4 ; vfprintf:loc_1EAB8j .text:0001EAD4 ; DATA XREF: ... .text:0001EAD4 LDRB R3, [R5,#0xC] ; jumptable 0001E9A0 cases 1,2,4-6,8-10,12,14,15,17-40 .text:0001EAD8 TST R3, #0x20 .text:0001EADC MOVNE R3, #0x20 .text:0001EAE0 STRNE R3, [R5,#0x10] .text:0001EAE4 MOV R3, 0xFFFFFFFF .text:0001EAE8 STR R3, [R5,#0x20] .text:0001EAEC MOV R2, #0 .text:0001EAF0 STR R2, [R5,#4] .text:0001EAF4 LDR R0, [R11,#var_4BC] .text:0001EAF8 LDRB R3, [R0] .text:0001EAFC CMP R3, #0x2A .text:0001EB00 BNE loc_1EBD0 .text:0001EB04 ADD R4, R0, #1 .text:0001EB08 STR R4, [R11,#var_4BC] .text:0001EB0C LDRB R3, [R0,#1] .text:0001EB10 SUB R1, R3, #0x30 .text:0001EB14 CMP R1, #9 .text:0001EB18 BHI loc_1EBA8 .text:0001EB1C ADD R3, R4, #1 .text:0001EB20 STR R3, [R11,#var_4BC] .text:0001EB24 SUB LR, R11, #-var_4B0 .text:0001EB28 SUB LR, LR, #8 .text:0001EB2C LDRB R3, [R4,#1] .text:0001EB30 SUB LR, LR, #4 .text:0001EB34 B loc_1EB60 .text:0001EB34 ; --------------------------------------------------------------------------- .text:0001EB38 off_1EB38 DCD _nl_current_LC_NUMERIC ; DATA XREF: vfprintf+1C98r .text:0001EB3C ; --------------------------------------------------------------------------- .text:0001EB3C .text:0001EB3C loc_1EB3C ; CODE XREF: vfprintf+201Cj .text:0001EB3C LDR R0, [LR] .text:0001EB40 MOV R3, R0 .text:0001EB44 LDRB R12, [R3],#1 .text:0001EB48 STR R3, [LR] .text:0001EB4C ADD R2, R1, R1,LSL#2 .text:0001EB50 MOV R1, R2,LSL#1 .text:0001EB54 SUB R1, R1, #0x30 .text:0001EB58 LDRB R3, [R0,#1] .text:0001EB5C ADD R1, R1, R12 .text:0001EB60 .text:0001EB60 loc_1EB60 ; CODE XREF: vfprintf+1FE8j .text:0001EB60 SUB R3, R3, #0x30 .text:0001EB64 CMP R3, #9 .text:0001EB68 BLS loc_1EB3C .text:0001EB6C CMP R1, #0 .text:0001EB70 BEQ loc_1EBA8 .text:0001EB74 LDR R3, [R11,#var_4BC] .text:0001EB78 LDRB R2, [R3] .text:0001EB7C CMP R2, #0x24 .text:0001EB80 BNE loc_1EBA8 .text:0001EB84 SUB R3, R1, #1 .text:0001EB88 STR R3, [R5,#0x20] .text:0001EB8C LDR R2, [R6] .text:0001EB90 CMP R1, R2 .text:0001EB94 STRCS R1, [R6] .text:0001EB98 STRCC R2, [R6] .text:0001EB9C LDR R3, [R11,#var_4BC] .text:0001EBA0 ADD R3, R3, #1 .text:0001EBA4 STR R3, [R11,#var_4BC] .text:0001EBA8 .text:0001EBA8 loc_1EBA8 ; CODE XREF: vfprintf+1FCCj .text:0001EBA8 ; vfprintf+2024j ... .text:0001EBA8 LDR R3, [R5,#0x20] .text:0001EBAC CMP R3, #0 .text:0001EBB0 BGE loc_1EC30 .text:0001EBB4 LDR R3, [R11,#var_568] .text:0001EBB8 STR R3, [R5,#0x20] .text:0001EBBC MOV R12, #1 .text:0001EBC0 STR R12, [R11,#var_570] .text:0001EBC4 ADD R7, R3, #1 .text:0001EBC8 STR R4, [R11,#var_4BC] .text:0001EBCC B loc_1EC30 .text:0001EBD0 ; --------------------------------------------------------------------------- .text:0001EBD0 .text:0001EBD0 loc_1EBD0 ; CODE XREF: vfprintf+1FB4j .text:0001EBD0 LDRB R3, [R0] .text:0001EBD4 SUB R1, R3, #0x30 .text:0001EBD8 CMP R1, #9 .text:0001EBDC BHI loc_1EC30 .text:0001EBE0 ADD R3, R0, #1 .text:0001EBE4 STR R3, [R11,#var_4BC] .text:0001EBE8 SUB LR, R11, #-var_4B0 .text:0001EBEC SUB LR, LR, #8 .text:0001EBF0 LDRB R3, [R0,#1] .text:0001EBF4 SUB LR, LR, #4 .text:0001EBF8 B loc_1EC20 .text:0001EBFC ; --------------------------------------------------------------------------- .text:0001EBFC .text:0001EBFC loc_1EBFC ; CODE XREF: vfprintf+20DCj .text:0001EBFC LDR R0, [LR] .text:0001EC00 MOV R3, R0 .text:0001EC04 LDRB R12, [R3],#1 .text:0001EC08 STR R3, [LR] .text:0001EC0C ADD R2, R1, R1,LSL#2 .text:0001EC10 MOV R1, R2,LSL#1 .text:0001EC14 SUB R1, R1, #0x30 .text:0001EC18 LDRB R3, [R0,#1] .text:0001EC1C ADD R1, R1, R12 .text:0001EC20 .text:0001EC20 loc_1EC20 ; CODE XREF: vfprintf+20ACj .text:0001EC20 SUB R3, R3, #0x30 .text:0001EC24 CMP R3, #9 .text:0001EC28 BLS loc_1EBFC .text:0001EC2C STR R1, [R5,#4] .text:0001EC30 .text:0001EC30 loc_1EC30 ; CODE XREF: vfprintf+2064j .text:0001EC30 ; vfprintf+2080j ... .text:0001EC30 MOV R3, 0xFFFFFFFF .text:0001EC34 STR R3, [R5,#0x1C] .text:0001EC38 STR R3, [R5] .text:0001EC3C LDR R2, [R11,#var_4BC] .text:0001EC40 LDRB R3, [R2] .text:0001EC44 CMP R3, #0x2E .text:0001EC48 BNE loc_1ED98 .text:0001EC4C ADD R0, R2, #1 .text:0001EC50 STR R0, [R11,#var_4BC] .text:0001EC54 LDRB R3, [R2,#1] .text:0001EC58 CMP R3, #0x2A .text:0001EC5C MOV R3, R0 .text:0001EC60 BNE loc_1ED2C .text:0001EC64 ADD R4, R3, #1 .text:0001EC68 STR R4, [R11,#var_4BC] .text:0001EC6C LDRB R3, [R3,#1] .text:0001EC70 SUB R1, R3, #0x30 .text:0001EC74 CMP R1, #9 .text:0001EC78 BHI loc_1ED04 .text:0001EC7C ADD R3, R4, #1 .text:0001EC80 STR R3, [R11,#var_4BC] .text:0001EC84 SUB LR, R11, #-var_4B0 .text:0001EC88 SUB LR, LR, #8 .text:0001EC8C LDRB R3, [R4,#1] .text:0001EC90 SUB LR, LR, #4 .text:0001EC94 B loc_1ECBC .text:0001EC98 ; --------------------------------------------------------------------------- .text:0001EC98 .text:0001EC98 loc_1EC98 ; CODE XREF: vfprintf+2178j .text:0001EC98 LDR R0, [LR] .text:0001EC9C MOV R3, R0 .text:0001ECA0 LDRB R12, [R3],#1 .text:0001ECA4 STR R3, [LR] .text:0001ECA8 ADD R2, R1, R1,LSL#2 .text:0001ECAC MOV R1, R2,LSL#1 .text:0001ECB0 SUB R1, R1, #0x30 .text:0001ECB4 LDRB R3, [R0,#1] .text:0001ECB8 ADD R1, R1, R12 .text:0001ECBC .text:0001ECBC loc_1ECBC ; CODE XREF: vfprintf+2148j .text:0001ECBC SUB R3, R3, #0x30 .text:0001ECC0 CMP R3, #9 .text:0001ECC4 BLS loc_1EC98 .text:0001ECC8 CMP R1, #0 .text:0001ECCC BEQ loc_1ED04 .text:0001ECD0 LDR R3, [R11,#var_4BC] .text:0001ECD4 LDRB R2, [R3] .text:0001ECD8 CMP R2, #0x24 .text:0001ECDC BNE loc_1ED04 .text:0001ECE0 SUB R3, R1, #1 .text:0001ECE4 STR R3, [R5,#0x1C] .text:0001ECE8 LDR R2, [R6] .text:0001ECEC CMP R1, R2 .text:0001ECF0 STRCS R1, [R6] .text:0001ECF4 STRCC R2, [R6] .text:0001ECF8 LDR R3, [R11,#var_4BC] .text:0001ECFC ADD R3, R3, #1 .text:0001ED00 STR R3, [R11,#var_4BC] .text:0001ED04 .text:0001ED04 loc_1ED04 ; CODE XREF: vfprintf+212Cj .text:0001ED04 ; vfprintf+2180j ... .text:0001ED04 LDR R3, [R5,#0x1C] .text:0001ED08 CMP R3, #0 .text:0001ED0C BGE loc_1ED98 .text:0001ED10 STR R7, [R5,#0x1C] .text:0001ED14 LDR R0, [R11,#var_570] .text:0001ED18 STR R4, [R11,#var_4BC] .text:0001ED1C ADD R7, R7, #1 .text:0001ED20 ADD R0, R0, #1 .text:0001ED24 STR R0, [R11,#var_570] .text:0001ED28 B loc_1ED98 .text:0001ED2C ; --------------------------------------------------------------------------- .text:0001ED2C .text:0001ED2C loc_1ED2C ; CODE XREF: vfprintf+2114j .text:0001ED2C LDRB R3, [R2,#1] .text:0001ED30 SUB R1, R3, #0x30 .text:0001ED34 CMP R1, #9 .text:0001ED38 BHI loc_1ED90 .text:0001ED3C ADD R3, R0, #1 .text:0001ED40 STR R3, [R11,#var_4BC] .text:0001ED44 SUB LR, R11, #-var_4B0 .text:0001ED48 SUB LR, LR, #8 .text:0001ED4C LDRB R3, [R0,#1] .text:0001ED50 SUB LR, LR, #4 .text:0001ED54 B loc_1ED7C .text:0001ED58 ; --------------------------------------------------------------------------- .text:0001ED58 .text:0001ED58 loc_1ED58 ; CODE XREF: vfprintf+2238j .text:0001ED58 LDR R0, [LR] .text:0001ED5C MOV R3, R0 .text:0001ED60 LDRB R12, [R3],#1 .text:0001ED64 STR R3, [LR] .text:0001ED68 ADD R2, R1, R1,LSL#2 .text:0001ED6C MOV R1, R2,LSL#1 .text:0001ED70 SUB R1, R1, #0x30 .text:0001ED74 LDRB R3, [R0,#1] .text:0001ED78 ADD R1, R1, R12 .text:0001ED7C .text:0001ED7C loc_1ED7C ; CODE XREF: vfprintf+2208j .text:0001ED7C SUB R3, R3, #0x30 .text:0001ED80 CMP R3, #9 .text:0001ED84 BLS loc_1ED58 .text:0001ED88 STR R1, [R5] .text:0001ED8C B loc_1ED98 .text:0001ED90 ; --------------------------------------------------------------------------- .text:0001ED90 .text:0001ED90 loc_1ED90 ; CODE XREF: vfprintf+21ECj .text:0001ED90 MOV R3, #0 .text:0001ED94 STR R3, [R5] .text:0001ED98 .text:0001ED98 loc_1ED98 ; CODE XREF: vfprintf+20FCj .text:0001ED98 ; vfprintf+21C0j ... .text:0001ED98 LDRB R3, [R5,#0xC] .text:0001ED9C LDRB R2, [R5,#0xD] .text:0001EDA0 AND R3, R3, #0xF8 .text:0001EDA4 STRB R3, [R5,#0xC] .text:0001EDA8 AND R2, R2, #0xFD .text:0001EDAC STRB R2, [R5,#0xD] .text:0001EDB0 LDR R1, [R11,#var_4BC] .text:0001EDB4 LDRB R3, [R1],#1 .text:0001EDB8 SUB R3, R3, #0x4C .text:0001EDBC STR R1, [R11,#var_4BC] .text:0001EDC0 CMP R3, #0x2E ; switch 47 cases .text:0001EDC4 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0001EDC8 B loc_1EF10 ; jumptable 0001EDC4 default case .text:0001EDC8 ; --------------------------------------------------------------------------- .text:0001EDCC DCD loc_1EEE0 ; jump table for switch statement .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EEF0 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EE88 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF00 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EEBC .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EEE0 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EEF0 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EF10 .text:0001EDCC DCD loc_1EEF0 .text:0001EE88 ; --------------------------------------------------------------------------- .text:0001EE88 .text:0001EE88 loc_1EE88 ; CODE XREF: vfprintf+2278j .text:0001EE88 ; DATA XREF: vfprintf+2280o .text:0001EE88 LDR R2, [R11,#var_4BC] ; jumptable 0001EDC4 case 28 .text:0001EE8C LDRB R3, [R2] .text:0001EE90 CMP R3, #0x68 .text:0001EE94 LDRNEB R3, [R5,#0xC] .text:0001EE98 ORRNE R3, R3, #2 .text:0001EE9C STRNEB R3, [R5,#0xC] .text:0001EEA0 BNE loc_1EF1C .text:0001EEA4 ADD R2, R2, #1 .text:0001EEA8 STR R2, [R11,#var_4BC] .text:0001EEAC LDRB R3, [R5,#0xD] .text:0001EEB0 ORR R3, R3, #2 .text:0001EEB4 STRB R3, [R5,#0xD] .text:0001EEB8 B loc_1EF1C .text:0001EEBC ; --------------------------------------------------------------------------- .text:0001EEBC .text:0001EEBC loc_1EEBC ; CODE XREF: vfprintf+2278j .text:0001EEBC ; DATA XREF: vfprintf+2280o .text:0001EEBC LDRB R3, [R5,#0xC] ; jumptable 0001EDC4 case 32 .text:0001EEC0 ORR R3, R3, #4 .text:0001EEC4 STRB R3, [R5,#0xC] .text:0001EEC8 LDR R2, [R11,#var_4BC] .text:0001EECC LDRB R3, [R2] .text:0001EED0 CMP R3, #0x6C .text:0001EED4 BNE loc_1EF1C .text:0001EED8 ADD R3, R2, #1 .text:0001EEDC STR R3, [R11,#var_4BC] .text:0001EEE0 .text:0001EEE0 loc_1EEE0 ; CODE XREF: vfprintf+2278j .text:0001EEE0 ; DATA XREF: vfprintf+2280o .text:0001EEE0 LDRB R3, [R5,#0xC] ; jumptable 0001EDC4 cases 0,37 .text:0001EEE4 ORR R3, R3, #1 .text:0001EEE8 STRB R3, [R5,#0xC] .text:0001EEEC B loc_1EF1C .text:0001EEF0 ; --------------------------------------------------------------------------- .text:0001EEF0 .text:0001EEF0 loc_1EEF0 ; CODE XREF: vfprintf+2278j .text:0001EEF0 ; DATA XREF: vfprintf+2280o .text:0001EEF0 LDRB R3, [R5,#0xC] ; jumptable 0001EDC4 cases 14,40,46 .text:0001EEF4 AND R3, R3, #0xFA .text:0001EEF8 STRB R3, [R5,#0xC] .text:0001EEFC B loc_1EF1C .text:0001EF00 ; --------------------------------------------------------------------------- .text:0001EF00 .text:0001EF00 loc_1EF00 ; CODE XREF: vfprintf+2278j .text:0001EF00 ; DATA XREF: vfprintf+2280o .text:0001EF00 LDRB R3, [R5,#0xC] ; jumptable 0001EDC4 case 30 .text:0001EF04 ORR R3, R3, #5 .text:0001EF08 STRB R3, [R5,#0xC] .text:0001EF0C B loc_1EF1C .text:0001EF10 ; --------------------------------------------------------------------------- .text:0001EF10 .text:0001EF10 loc_1EF10 ; CODE XREF: vfprintf+2278j .text:0001EF10 ; vfprintf+227Cj .text:0001EF10 ; DATA XREF: ... .text:0001EF10 LDR R3, [R11,#var_4BC] ; jumptable 0001EDC4 default case .text:0001EF14 SUB R3, R3, #1 .text:0001EF18 STR R3, [R11,#var_4BC] .text:0001EF1C .text:0001EF1C loc_1EF1C ; CODE XREF: vfprintf+2354j .text:0001EF1C ; vfprintf+236Cj ... .text:0001EF1C LDR R3, [R11,#var_4BC] .text:0001EF20 LDRB R2, [R3],#1 .text:0001EF24 STR R2, [R5,#8] .text:0001EF28 STR R3, [R11,#var_4BC] .text:0001EF2C LDR R1, =__printf_function_table .text:0001EF30 LDR R2, [R1] .text:0001EF34 CMP R2, #0 .text:0001EF38 BEQ loc_1EF74 .text:0001EF3C LDR R2, [R5,#8] .text:0001EF40 CMP R2, #0xFF .text:0001EF44 BGT loc_1EF74 .text:0001EF48 LDR R3, =__printf_arginfo_table .text:0001EF4C LDR R3, [R3,R2,LSL#2] .text:0001EF50 CMP R3, #0 .text:0001EF54 BEQ loc_1EF74 .text:0001EF58 MOV R0, R5 .text:0001EF5C MOV R1, #1 .text:0001EF60 ADD R2, R5, #0x28 .text:0001EF64 MOV LR, PC .text:0001EF68 MOV PC, R3 .text:0001EF6C STR R0, [R5,#0x2C] .text:0001EF70 B loc_1F10C .text:0001EF74 ; --------------------------------------------------------------------------- .text:0001EF74 .text:0001EF74 loc_1EF74 ; CODE XREF: vfprintf+23ECj .text:0001EF74 ; vfprintf+23F8j ... .text:0001EF74 MOV R2, #1 .text:0001EF78 STR R2, [R5,#0x2C] .text:0001EF7C LDR R3, [R5,#8] .text:0001EF80 SUB R3, R3, #0x41 .text:0001EF84 CMP R3, #0x37 ; switch 56 cases .text:0001EF88 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0001EF8C B loc_1F104 ; jumptable 0001EF88 default case .text:0001EF8C ; --------------------------------------------------------------------------- .text:0001EF90 DCD loc_1F0B8, loc_1F104, loc_1F0DC, loc_1F104, loc_1F0B8 ; jump table for switch statement .text:0001EF90 DCD loc_1F0B8, loc_1F0B8, loc_1F104, loc_1F104, loc_1F104 .text:0001EF90 DCD loc_1F104, loc_1F104, loc_1F104, loc_1F104, loc_1F104 .text:0001EF90 DCD loc_1F104, loc_1F104, loc_1F104, loc_1F0EC, loc_1F104 .text:0001EF90 DCD loc_1F104, loc_1F104, loc_1F104, loc_1F070, loc_1F104 .text:0001EF90 DCD loc_1F104, loc_1F104, loc_1F104, loc_1F104, loc_1F104 .text:0001EF90 DCD loc_1F104, loc_1F104, loc_1F0B8, loc_1F104, loc_1F0D4 .text:0001EF90 DCD loc_1F070, loc_1F0B8, loc_1F0B8, loc_1F0B8, loc_1F104 .text:0001EF90 DCD loc_1F070, loc_1F104, loc_1F104, loc_1F104, loc_1F104 .text:0001EF90 DCD loc_1F0FC, loc_1F070, loc_1F0F4, loc_1F104, loc_1F104 .text:0001EF90 DCD loc_1F0E4, loc_1F104, loc_1F070, loc_1F104, loc_1F104 .text:0001EF90 DCD loc_1F070 .text:0001F070 ; --------------------------------------------------------------------------- .text:0001F070 .text:0001F070 loc_1F070 ; CODE XREF: vfprintf+243Cj .text:0001F070 ; DATA XREF: vfprintf+2444o .text:0001F070 LDRB R3, [R5,#0xC] ; jumptable 0001EF88 cases 23,35,40,46,52,55 .text:0001F074 TST R3, #1 .text:0001F078 BEQ loc_1F088 .text:0001F07C MOV R3, #0x100 .text:0001F080 .text:0001F080 loc_1F080 ; CODE XREF: vfprintf+2548j .text:0001F080 ; vfprintf+2554j ... .text:0001F080 STR R3, [R5,#0x28] .text:0001F084 B loc_1F10C .text:0001F088 ; --------------------------------------------------------------------------- .text:0001F088 .text:0001F088 loc_1F088 ; CODE XREF: vfprintf+252Cj .text:0001F088 AND R3, R3, #0xFF .text:0001F08C TST R3, #4 .text:0001F090 MOVNE R3, #0x200 .text:0001F094 BNE loc_1F080 .text:0001F098 TST R3, #2 .text:0001F09C MOV R3, #0x400 .text:0001F0A0 BNE loc_1F080 .text:0001F0A4 LDRB R3, [R5,#0xD] .text:0001F0A8 MOV R3, R3,LSR#1 .text:0001F0AC ANDS R3, R3, #1 .text:0001F0B0 BNE loc_1F0D4 ; jumptable 0001EF88 case 34 .text:0001F0B4 B loc_1F080 .text:0001F0B8 ; --------------------------------------------------------------------------- .text:0001F0B8 .text:0001F0B8 loc_1F0B8 ; CODE XREF: vfprintf+243Cj .text:0001F0B8 ; DATA XREF: vfprintf+2444o .text:0001F0B8 LDRB R3, [R5,#0xC] ; jumptable 0001EF88 cases 0,4-6,32,36-38 .text:0001F0BC TST R3, #1 .text:0001F0C0 MOVNE R3, 0x107 .text:0001F0C8 BNE loc_1F080 .text:0001F0CC MOV R3, #7 .text:0001F0D0 B loc_1F080 .text:0001F0D4 ; --------------------------------------------------------------------------- .text:0001F0D4 .text:0001F0D4 loc_1F0D4 ; CODE XREF: vfprintf+243Cj .text:0001F0D4 ; vfprintf+2564j .text:0001F0D4 ; DATA XREF: ... .text:0001F0D4 MOV R3, #1 ; jumptable 0001EF88 case 34 .text:0001F0D8 B loc_1F080 .text:0001F0DC ; --------------------------------------------------------------------------- .text:0001F0DC .text:0001F0DC loc_1F0DC ; CODE XREF: vfprintf+243Cj .text:0001F0DC ; DATA XREF: vfprintf+2444o .text:0001F0DC MOV R3, #2 ; jumptable 0001EF88 case 2 .text:0001F0E0 B loc_1F080 .text:0001F0E4 ; --------------------------------------------------------------------------- .text:0001F0E4 .text:0001F0E4 loc_1F0E4 ; CODE XREF: vfprintf+243Cj .text:0001F0E4 ; DATA XREF: vfprintf+2444o .text:0001F0E4 MOV R3, #3 ; jumptable 0001EF88 case 50 .text:0001F0E8 B loc_1F080 .text:0001F0EC ; --------------------------------------------------------------------------- .text:0001F0EC .text:0001F0EC loc_1F0EC ; CODE XREF: vfprintf+243Cj .text:0001F0EC ; DATA XREF: vfprintf+2444o .text:0001F0EC MOV R3, #4 ; jumptable 0001EF88 case 18 .text:0001F0F0 B loc_1F080 .text:0001F0F4 ; --------------------------------------------------------------------------- .text:0001F0F4 .text:0001F0F4 loc_1F0F4 ; CODE XREF: vfprintf+243Cj .text:0001F0F4 ; DATA XREF: vfprintf+2444o .text:0001F0F4 MOV R3, #5 ; jumptable 0001EF88 case 47 .text:0001F0F8 B loc_1F080 .text:0001F0FC ; --------------------------------------------------------------------------- .text:0001F0FC .text:0001F0FC loc_1F0FC ; CODE XREF: vfprintf+243Cj .text:0001F0FC ; DATA XREF: vfprintf+2444o .text:0001F0FC MOV R3, #0x800 ; jumptable 0001EF88 case 45 .text:0001F100 B loc_1F080 .text:0001F104 ; --------------------------------------------------------------------------- .text:0001F104 .text:0001F104 loc_1F104 ; CODE XREF: vfprintf+243Cj .text:0001F104 ; vfprintf+2440j .text:0001F104 ; DATA XREF: ... .text:0001F104 MOV R3, #0 ; jumptable 0001EF88 default case .text:0001F108 STR R3, [R5,#0x2C] .text:0001F10C .text:0001F10C loc_1F10C ; CODE XREF: vfprintf+2424j .text:0001F10C ; vfprintf+2538j .text:0001F10C LDR R3, [R5,#0x24] .text:0001F110 CMN R3, #1 .text:0001F114 BNE loc_1F130 .text:0001F118 LDR R3, [R5,#0x2C] .text:0001F11C CMP R3, #0 .text:0001F120 LDRNE R2, [R11,#var_570] .text:0001F124 ADDNE R2, R2, R3 .text:0001F128 STRNE R2, [R11,#var_570] .text:0001F12C STRNE R7, [R5,#0x24] .text:0001F130 .text:0001F130 loc_1F130 ; CODE XREF: vfprintf+25C8j .text:0001F130 LDR R3, [R5,#8] .text:0001F134 CMP R3, #0 .text:0001F138 BNE loc_1F15C .text:0001F13C LDR R3, [R11,#var_4BC] .text:0001F140 SUB R3, R3, #1 .text:0001F144 STR R3, [R5,#0x18] .text:0001F148 LDR R4, [R11,#var_568] .text:0001F14C LDR R12, [R11,#var_570] .text:0001F150 STR R3, [R5,#0x14] .text:0001F154 ADD R7, R4, R12 .text:0001F158 B loc_1F1D4 .text:0001F15C ; --------------------------------------------------------------------------- .text:0001F15C .text:0001F15C loc_1F15C ; CODE XREF: vfprintf+25ECj .text:0001F15C LDR R3, [R11,#var_4BC] .text:0001F160 STR R3, [R5,#0x14] .text:0001F164 LDR R4, [R11,#var_4BC] .text:0001F168 LDR R0, [R11,#var_568] .text:0001F16C LDR R1, [R11,#var_570] .text:0001F170 LDRB R3, [R4] .text:0001F174 ADD R7, R0, R1 .text:0001F178 CMP R3, #0 .text:0001F17C CMPNE R3, #0x25 .text:0001F180 BEQ loc_1F1D0 .text:0001F184 .text:0001F184 loc_1F184 ; CODE XREF: vfprintf+2680j .text:0001F184 MOV R3, #0 .text:0001F188 STR R3, [R11,#var_478] .text:0001F18C LDRB R2, [R4] .text:0001F190 TST R2, #0x80 .text:0001F194 BEQ loc_1F1BC .text:0001F198 BL __ctype_get_mb_cur_max .text:0001F19C MOV R1, R0 .text:0001F1A0 MOV R0, R4 .text:0001F1A4 SUB R2, R11, #-var_470 .text:0001F1A8 SUB R2, R2, #8 .text:0001F1AC BL mbrlen .text:0001F1B0 CMP R0, #0 .text:0001F1B4 ADDGT R4, R4, R0 .text:0001F1B8 BGT loc_1F1C0 .text:0001F1BC .text:0001F1BC loc_1F1BC ; CODE XREF: vfprintf+2648j .text:0001F1BC ADD R4, R4, #1 .text:0001F1C0 .text:0001F1C0 loc_1F1C0 ; CODE XREF: vfprintf+266Cj .text:0001F1C0 LDRB R3, [R4] .text:0001F1C4 CMP R3, #0 .text:0001F1C8 CMPNE R3, #0x25 .text:0001F1CC BNE loc_1F184 .text:0001F1D0 .text:0001F1D0 loc_1F1D0 ; CODE XREF: vfprintf+2634j .text:0001F1D0 STR R4, [R5,#0x18] .text:0001F1D4 .text:0001F1D4 loc_1F1D4 ; CODE XREF: vfprintf+260Cj .text:0001F1D4 LDR R2, [R11,#var_5C8] .text:0001F1D8 LDR R4, [R11,#var_560] .text:0001F1DC LDR R12, [R11,#var_564] .text:0001F1E0 ADD R3, R2, R4 .text:0001F1E4 ADD R3, R12, R3,LSL#4 .text:0001F1E8 LDR R2, [R3,#0x18] .text:0001F1EC STR R7, [R11,#var_568] .text:0001F1F0 STR R2, [R11,#var_480] .text:0001F1F4 LDR R0, [R11,#var_5C4] .text:0001F1F8 LDRB R3, [R2] .text:0001F1FC STR R0, [R11,#var_560] .text:0001F200 CMP R3, #0 .text:0001F204 BNE loc_1E820 .text:0001F208 .text:0001F208 loc_1F208 ; CODE XREF: vfprintf+1CD0j .text:0001F208 LDR R3, [R11,#var_4B8] .text:0001F20C MOV R1, #0 .text:0001F210 LDR R8, [R11,#var_568] .text:0001F214 MOV R5, R1 .text:0001F218 CMP R3, R8 .text:0001F21C MOVCS R8, R3 .text:0001F220 MOV R2, R8,LSL#2 .text:0001F224 RSB SP, R2, SP .text:0001F228 ADD R6, SP, #0xBCC+var_BC8 .text:0001F22C MOV R0, R6 .text:0001F230 BL memset .text:0001F234 SUB SP, SP, R8,LSL#3 .text:0001F238 LDR R1, [R11,#var_560] .text:0001F23C ADD R2, SP, #0xBCC+var_BC8 .text:0001F240 STR R2, [R11,#var_56C] .text:0001F244 CMP R5, R1 .text:0001F248 BCS loc_1F2C8 .text:0001F24C MOV R7, R5 .text:0001F250 LDR R4, [R11,#var_564] .text:0001F254 .text:0001F254 loc_1F254 ; CODE XREF: vfprintf+2778j .text:0001F254 LDR R3, [R4,#0x20] .text:0001F258 CMN R3, #1 .text:0001F25C STRNE R7, [R6,R3,LSL#2] .text:0001F260 LDR R3, [R4,#0x1C] .text:0001F264 CMN R3, #1 .text:0001F268 STRNE R7, [R6,R3,LSL#2] .text:0001F26C LDR R1, [R4,#0x2C] .text:0001F270 CMP R1, #0 .text:0001F274 BEQ loc_1F2B4 .text:0001F278 CMP R1, #1 .text:0001F27C BNE loc_1F298 .text:0001F280 ADD R2, R4, #0x24 .text:0001F284 LDMIA R2, {R2,R3} .text:0001F288 STR R3, [R6,R2,LSL#2] .text:0001F28C B loc_1F2B4 .text:0001F28C ; --------------------------------------------------------------------------- .text:0001F290 off_1F290 DCD __printf_function_table ; DATA XREF: vfprintf+23E0r .text:0001F294 off_1F294 DCD __printf_arginfo_table ; DATA XREF: vfprintf+23FCr .text:0001F298 ; --------------------------------------------------------------------------- .text:0001F298 .text:0001F298 loc_1F298 ; CODE XREF: vfprintf+2730j .text:0001F298 LDR R2, [R4,#0x24] .text:0001F29C LDR R3, [R4,#8] .text:0001F2A0 MOV R0, R4 .text:0001F2A4 LDR R12, =__printf_arginfo_table .text:0001F2A8 ADD R2, R6, R2,LSL#2 .text:0001F2AC MOV LR, PC .text:0001F2B0 LDR PC, [R12,R3,LSL#2] .text:0001F2B4 .text:0001F2B4 loc_1F2B4 ; CODE XREF: vfprintf+2728j .text:0001F2B4 ; vfprintf+2740j .text:0001F2B4 ADD R4, R4, #0x30 .text:0001F2B8 LDR R0, [R11,#var_560] .text:0001F2BC ADD R5, R5, #1 .text:0001F2C0 CMP R5, R0 .text:0001F2C4 BCC loc_1F254 .text:0001F2C8 .text:0001F2C8 loc_1F2C8 ; CODE XREF: vfprintf+26FCj .text:0001F2C8 MOV R5, #0 .text:0001F2CC CMP R5, R8 .text:0001F2D0 BCS loc_1F44C .text:0001F2D4 MOV R0, 0x107 .text:0001F2DC MOV R1, R5 .text:0001F2E0 LDR R2, [R11,#var_56C] .text:0001F2E4 .text:0001F2E4 loc_1F2E4 ; CODE XREF: vfprintf+28FCj .text:0001F2E4 LDR R3, [R6,R5,LSL#2] .text:0001F2E8 CMP R3, #5 .text:0001F2EC BEQ loc_1F414 .text:0001F2F0 BGT loc_1F328 .text:0001F2F4 CMP R3, #2 .text:0001F2F8 BEQ loc_1F3A8 .text:0001F2FC BGT loc_1F314 .text:0001F300 CMP R3, #0 .text:0001F304 BEQ loc_1F3A8 .text:0001F308 CMP R3, #1 .text:0001F30C BEQ loc_1F36C .text:0001F310 B loc_1F40C .text:0001F314 ; --------------------------------------------------------------------------- .text:0001F314 .text:0001F314 loc_1F314 ; CODE XREF: vfprintf+27B0j .text:0001F314 CMP R3, #3 .text:0001F318 BEQ loc_1F414 .text:0001F31C CMP R3, #4 .text:0001F320 BEQ loc_1F414 .text:0001F324 B loc_1F40C .text:0001F328 ; --------------------------------------------------------------------------- .text:0001F328 .text:0001F328 loc_1F328 ; CODE XREF: vfprintf+27A4j .text:0001F328 CMP R3, #0x100 .text:0001F32C BEQ loc_1F3C0 .text:0001F330 BGT loc_1F348 .text:0001F334 CMP R3, #6 .text:0001F338 BEQ loc_1F3D4 .text:0001F33C CMP R3, #7 .text:0001F340 BEQ loc_1F3EC .text:0001F344 B loc_1F40C .text:0001F348 ; --------------------------------------------------------------------------- .text:0001F348 .text:0001F348 loc_1F348 ; CODE XREF: vfprintf+27E4j .text:0001F348 CMP R3, #0x200 .text:0001F34C BEQ loc_1F3A8 .text:0001F350 BGT loc_1F360 .text:0001F354 CMP R3, R0 .text:0001F358 BEQ loc_1F3FC .text:0001F35C B loc_1F40C .text:0001F360 ; --------------------------------------------------------------------------- .text:0001F360 .text:0001F360 loc_1F360 ; CODE XREF: vfprintf+2804j .text:0001F360 CMP R3, #0x400 .text:0001F364 BEQ loc_1F388 .text:0001F368 B loc_1F40C .text:0001F36C ; --------------------------------------------------------------------------- .text:0001F36C .text:0001F36C loc_1F36C ; CODE XREF: vfprintf+27C0j .text:0001F36C LDR R3, [R11,#var_500] .text:0001F370 ADD R3, R3, #4 .text:0001F374 STR R3, [R11,#var_500] .text:0001F378 LDR R4, [R11,#var_56C] .text:0001F37C LDRB R3, [R3,#-4] .text:0001F380 STRB R3, [R1,R4] .text:0001F384 B loc_1F438 .text:0001F388 ; --------------------------------------------------------------------------- .text:0001F388 .text:0001F388 loc_1F388 ; CODE XREF: vfprintf+2818j .text:0001F388 LDR R12, [R11,#var_500] .text:0001F38C LDR R3, [R12],#4 .text:0001F390 STR R12, [R11,#var_500] .text:0001F394 LDR R4, [R11,#var_56C] .text:0001F398 STRB R3, [R1,R4] .text:0001F39C MOV R3, R3,ASR#8 .text:0001F3A0 STRB R3, [R2,#1] .text:0001F3A4 B loc_1F438 .text:0001F3A8 ; --------------------------------------------------------------------------- .text:0001F3A8 .text:0001F3A8 loc_1F3A8 ; CODE XREF: vfprintf+27ACj .text:0001F3A8 ; vfprintf+27B8j ... .text:0001F3A8 LDR R12, [R11,#var_500] .text:0001F3AC LDR R3, [R12],#4 .text:0001F3B0 STR R12, [R11,#var_500] .text:0001F3B4 LDR R4, [R11,#var_56C] .text:0001F3B8 STR R3, [R1,R4] .text:0001F3BC B loc_1F438 .text:0001F3C0 ; --------------------------------------------------------------------------- .text:0001F3C0 .text:0001F3C0 loc_1F3C0 ; CODE XREF: vfprintf+27E0j .text:0001F3C0 LDR R12, [R11,#var_500] .text:0001F3C4 LDMIA R12!, {R3,R4} .text:0001F3C8 STMIA R2, {R3,R4} .text:0001F3CC STR R12, [R11,#var_500] .text:0001F3D0 B loc_1F438 .text:0001F3D4 ; --------------------------------------------------------------------------- .text:0001F3D4 .text:0001F3D4 loc_1F3D4 ; CODE XREF: vfprintf+27ECj .text:0001F3D4 LDR R3, [R11,#var_500] .text:0001F3D8 LDC p1, c8, [R3],#8 .text:0001F3DC STR R3, [R11,#var_500] .text:0001F3E0 CDP p1, 0, c8,c0,c0, 0 .text:0001F3E4 STC p1, c0, [R2] .text:0001F3E8 B loc_1F438 .text:0001F3EC ; --------------------------------------------------------------------------- .text:0001F3EC .text:0001F3EC loc_1F3EC ; CODE XREF: vfprintf+27F4j .text:0001F3EC LDR R12, [R11,#var_500] .text:0001F3F0 LDMIA R12!, {R3,R4} .text:0001F3F4 STR R12, [R11,#var_500] .text:0001F3F8 B loc_1F434 .text:0001F3FC ; --------------------------------------------------------------------------- .text:0001F3FC .text:0001F3FC loc_1F3FC ; CODE XREF: vfprintf+280Cj .text:0001F3FC LDR R12, [R11,#var_500] .text:0001F400 LDMIA R12!, {R3,R4} .text:0001F404 STR R12, [R11,#var_500] .text:0001F408 B loc_1F434 .text:0001F40C ; --------------------------------------------------------------------------- .text:0001F40C .text:0001F40C loc_1F40C ; CODE XREF: vfprintf+27C4j .text:0001F40C ; vfprintf+27D8j ... .text:0001F40C TST R3, #0x800 .text:0001F410 BEQ loc_1F42C .text:0001F414 .text:0001F414 loc_1F414 ; CODE XREF: vfprintf+27A0j .text:0001F414 ; vfprintf+27CCj ... .text:0001F414 LDR R4, [R11,#var_500] .text:0001F418 LDR R3, [R4],#4 .text:0001F41C STR R4, [R11,#var_500] .text:0001F420 LDR R12, [R11,#var_56C] .text:0001F424 STR R3, [R1,R12] .text:0001F428 B loc_1F438 .text:0001F42C ; --------------------------------------------------------------------------- .text:0001F42C .text:0001F42C loc_1F42C ; CODE XREF: vfprintf+28C4j .text:0001F42C ADR R3, dword_1F650 .text:0001F430 LDMIA R3, {R3,R4} .text:0001F434 .text:0001F434 loc_1F434 ; CODE XREF: vfprintf+28ACj .text:0001F434 ; vfprintf+28BCj .text:0001F434 STMIA R2, {R3,R4} .text:0001F438 .text:0001F438 loc_1F438 ; CODE XREF: vfprintf+2838j .text:0001F438 ; vfprintf+2858j ... .text:0001F438 ADD R2, R2, #8 .text:0001F43C ADD R1, R1, #8 .text:0001F440 ADD R5, R5, #1 .text:0001F444 CMP R5, R8 .text:0001F448 BCC loc_1F2E4 .text:0001F44C .text:0001F44C loc_1F44C ; CODE XREF: vfprintf+2784j .text:0001F44C LDR R0, [R11,#var_504] .text:0001F450 LDR R1, [R11,#var_560] .text:0001F454 CMP R0, R1 .text:0001F458 BCS loc_20B94 .text:0001F45C .text:0001F45C loc_1F45C ; CODE XREF: vfprintf+4044j .text:0001F45C LDR R3, [R11,#var_504] .text:0001F460 LDR R4, [R11,#var_564] .text:0001F464 MOV R2, R3,LSL#1 .text:0001F468 ADD R3, R2, R3 .text:0001F46C MOV R3, R3,LSL#4 .text:0001F470 ADD LR, R3, R4 .text:0001F474 LDR R12, [LR,#4] .text:0001F478 STR R12, [R11,#var_5A8] .text:0001F47C LDR R3, [R3,R4] .text:0001F480 STR R3, [R11,#var_5AC] .text:0001F484 LDRB R0, [LR,#0x10] .text:0001F488 STR R0, [R11,#var_5B4] .text:0001F48C LDRB R4, [LR,#0xC] .text:0001F490 STR R2, [R11,#var_5C0] .text:0001F494 AND R0, R4, #0xFF .text:0001F498 MOV R3, R0,LSR#3 .text:0001F49C LDRB R1, [LR,#8] .text:0001F4A0 AND R3, R3, #1 .text:0001F4A4 STR R3, [R11,#var_584] .text:0001F4A8 MOV R2, R0,LSR#4 .text:0001F4AC AND R2, R2, #1 .text:0001F4B0 STR R2, [R11,#var_588] .text:0001F4B4 MOV R3, R0,LSR#5 .text:0001F4B8 AND R3, R3, #1 .text:0001F4BC STR R3, [R11,#var_58C] .text:0001F4C0 MOV R2, R0,LSR#6 .text:0001F4C4 AND R2, R2, #1 .text:0001F4C8 STR R2, [R11,#var_590] .text:0001F4CC STR R1, [R11,#var_5B8] .text:0001F4D0 LDRB R12, [LR,#0xC] .text:0001F4D4 MOV R0, R0,LSR#7 .text:0001F4D8 STR R0, [R11,#var_594] .text:0001F4DC LDR R0, [LR,#0x20] .text:0001F4E0 AND R1, R12, #0xFF .text:0001F4E4 MOV R3, R1,LSR#2 .text:0001F4E8 AND R3, R3, #1 .text:0001F4EC STR R3, [R11,#var_5A4] .text:0001F4F0 AND R12, R12, #1 .text:0001F4F4 STR R12, [R11,#var_598] .text:0001F4F8 CMN R0, #1 .text:0001F4FC MOV R1, R1,LSR#1 .text:0001F500 LDRB R2, [LR,#0xD] .text:0001F504 AND R1, R1, #1 .text:0001F508 STR R1, [R11,#var_59C] .text:0001F50C MOV R3, R2,LSR#1 .text:0001F510 AND R3, R3, #1 .text:0001F514 STR R3, [R11,#var_5A0] .text:0001F518 MOV R2, R2,LSR#3 .text:0001F51C AND R2, R2, #1 .text:0001F520 STR R2, [R11,#var_5B0] .text:0001F524 BEQ loc_1F55C .text:0001F528 LDR R2, [R11,#var_56C] .text:0001F52C LDR R3, [R2,R0,LSL#3] .text:0001F530 CMP R3, #0 .text:0001F534 STR R3, [LR,#4] .text:0001F538 BGE loc_1F554 .text:0001F53C RSB R3, R3, #0 .text:0001F540 STR R3, [LR,#4] .text:0001F544 MOV R3, #1 .text:0001F548 STR R3, [R11,#var_58C] .text:0001F54C ORR R3, R4, #0x20 .text:0001F550 STRB R3, [LR,#0xC] .text:0001F554 .text:0001F554 loc_1F554 ; CODE XREF: vfprintf+29ECj .text:0001F554 LDR LR, [LR,#4] .text:0001F558 STR LR, [R11,#var_5A8] .text:0001F55C .text:0001F55C loc_1F55C ; CODE XREF: vfprintf+29D8j .text:0001F55C LDR R4, [R11,#var_5C0] .text:0001F560 LDR R12, [R11,#var_504] .text:0001F564 LDR R0, [R11,#var_564] .text:0001F568 ADD R3, R4, R12 .text:0001F56C MOV R1, R3,LSL#4 .text:0001F570 ADD R2, R1, R0 .text:0001F574 LDR R3, [R2,#0x1C] .text:0001F578 CMN R3, #1 .text:0001F57C BEQ loc_1F5A4 .text:0001F580 LDR R2, [R11,#var_56C] .text:0001F584 LDR R3, [R2,R3,LSL#3] .text:0001F588 CMP R3, #0 .text:0001F58C STR R3, [R1,R0] .text:0001F590 MOVLT R3, 0xFFFFFFFF .text:0001F594 STRLT R3, [R1,R0] .text:0001F598 LDR R3, [R11,#var_564] .text:0001F59C LDR R1, [R1,R3] .text:0001F5A0 STR R1, [R11,#var_5AC] .text:0001F5A4 .text:0001F5A4 loc_1F5A4 ; CODE XREF: vfprintf+2A30j .text:0001F5A4 LDR R3, [R11,#var_5A8] .text:0001F5A8 LDR R4, [R11,#var_5AC] .text:0001F5AC CMP R3, R4 .text:0001F5B0 MOVLT R3, R4 .text:0001F5B4 ADD R1, R3, #0x20 .text:0001F5B8 CMP R1, #0x3E8 .text:0001F5BC BLE loc_1F5D8 .text:0001F5C0 ADD R3, R3, #0x23 .text:0001F5C4 BIC R3, R3, #3 .text:0001F5C8 RSB SP, R3, SP .text:0001F5CC ADD R2, SP, #0xBCC+var_BC8 .text:0001F5D0 ADD R2, R2, R1 .text:0001F5D4 STR R2, [R11,#var_4FC] .text:0001F5D8 .text:0001F5D8 loc_1F5D8 ; CODE XREF: vfprintf+2A70j .text:0001F5D8 LDR R12, [R11,#var_5B8] .text:0001F5DC SUB R2, R12, #0x20 .text:0001F5E0 AND R3, R2, #0xFF .text:0001F5E4 CMP R3, #0x5A .text:0001F5E8 BHI loc_1F600 .text:0001F5EC LDR R3, =jump_table.174 .text:0001F5F0 LDR R1, =step4_jumps.181 .text:0001F5F4 LDR R2, [R3,R2,LSL#2] .text:0001F5F8 LDR R3, [R1,R2,LSL#2] .text:0001F5FC B loc_1F604 .text:0001F600 ; --------------------------------------------------------------------------- .text:0001F600 .text:0001F600 loc_1F600 ; CODE XREF: vfprintf+2A9Cj .text:0001F600 LDR R3, =loc_20A30 .text:0001F604 .text:0001F604 loc_1F604 ; CODE XREF: vfprintf+2AB0j .text:0001F604 MOV PC, R3 .text:0001F608 ; --------------------------------------------------------------------------- .text:0001F608 ADD R2, R10, #0x14 .text:0001F60C LDMIA R2, {R2,R3} .text:0001F610 MOV R1, #0x25 .text:0001F614 CMP R2, R3 .text:0001F618 BCC loc_1F630 .text:0001F61C MOV R0, R10 .text:0001F620 BL __overflow .text:0001F624 CMN R0, #1 .text:0001F628 BEQ loc_1E6B4 .text:0001F62C B loc_1F638 .text:0001F630 ; --------------------------------------------------------------------------- .text:0001F630 .text:0001F630 loc_1F630 ; CODE XREF: vfprintf+2ACCj .text:0001F630 STRB R1, [R2],#1 .text:0001F634 STR R2, [R10,#0x14] .text:0001F638 .text:0001F638 loc_1F638 ; CODE XREF: vfprintf+2AE0j .text:0001F638 ADD R9, R9, #1 .text:0001F63C LDR R0, [R11,#var_504] .text:0001F640 MOV R0, R0,LSL#1 .text:0001F644 STR R0, [R11,#var_5C0] .text:0001F648 B loc_20B24 .text:0001F648 ; --------------------------------------------------------------------------- .text:0001F64C off_1F64C DCD __printf_arginfo_table ; DATA XREF: vfprintf+2758r .text:0001F650 dword_1F650 DCD 0, 0 ; DATA XREF: vfprintf:loc_1F42Co .text:0001F658 off_1F658 DCD jump_table.174 ; DATA XREF: vfprintf+2AA0r .text:0001F65C off_1F65C DCD step4_jumps.181 ; DATA XREF: vfprintf+2AA4r .text:0001F660 off_1F660 DCD loc_20A30 ; DATA XREF: vfprintf:loc_1F600r .text:0001F664 ; --------------------------------------------------------------------------- .text:0001F664 LDR R2, [R11,#var_598] .text:0001F668 MOV R1, #0xA .text:0001F66C STR R1, [R11,#var_580] .text:0001F670 CMP R2, #0 .text:0001F674 BEQ loc_1F70C .text:0001F678 LDR R3, [R11,#var_504] .text:0001F67C LDR R4, [R11,#var_564] .text:0001F680 MOV R2, R3,LSL#1 .text:0001F684 ADD R3, R2, R3 .text:0001F688 ADD R3, R4, R3,LSL#4 .text:0001F68C CMP R3, #0 .text:0001F690 STR R2, [R11,#var_5C0] .text:0001F694 LDREQ R12, [R11,#var_4F0] .text:0001F698 LDMEQIA R12!, {R7,R8} .text:0001F69C STREQ R12, [R11,#var_4F0] .text:0001F6A0 LDRNE R3, [R3,#0x24] .text:0001F6A4 LDRNE R0, [R11,#var_56C] .text:0001F6A8 ADDNE R3, R0, R3,LSL#3 .text:0001F6AC LDMNEIA R3, {R7,R8} .text:0001F6B0 MOV R1, #0 .text:0001F6B4 CMP R8, R1 .text:0001F6B8 STR R1, [R11,#var_574] .text:0001F6BC MOVLT R2, #1 .text:0001F6C0 STRLT R2, [R11,#var_574] .text:0001F6C4 LDR R12, [R11,#var_574] .text:0001F6C8 RSBS R3, R7, #0 .text:0001F6CC RSC R4, R8, #0 .text:0001F6D0 EOR R1, R12, #1 .text:0001F6D4 MOV R2, #0 .text:0001F6D8 RSBS R5, R1, #0 .text:0001F6DC RSC R6, R2, #0 .text:0001F6E0 MOV R2, R6 .text:0001F6E4 MOV R1, R5 .text:0001F6E8 AND R1, R1, R7 .text:0001F6EC AND R2, R2, R8 .text:0001F6F0 BIC R3, R3, R5 .text:0001F6F4 BIC R4, R4, R6 .text:0001F6F8 ORR R1, R1, R3 .text:0001F6FC ORR R2, R2, R4 .text:0001F700 SUB R12, R11, #-var_580 .text:0001F704 STMIB R12, {R1,R2} .text:0001F708 B loc_1F7E4 .text:0001F70C ; --------------------------------------------------------------------------- .text:0001F70C .text:0001F70C loc_1F70C ; CODE XREF: vfprintf+2B28j .text:0001F70C LDR R0, [R11,#var_504] .text:0001F710 LDR R1, [R11,#var_564] .text:0001F714 MOV R2, R0,LSL#1 .text:0001F718 ADD R3, R2, R0 .text:0001F71C ADD R3, R1, R3,LSL#4 .text:0001F720 CMP R3, #0 .text:0001F724 STR R2, [R11,#var_5C0] .text:0001F728 LDREQ R2, [R11,#var_4F0] .text:0001F72C LDREQ R3, [R2],#4 .text:0001F730 STREQ R2, [R11,#var_4F0] .text:0001F734 LDRNE R3, [R3,#0x24] .text:0001F738 LDRNE R4, [R11,#var_56C] .text:0001F73C LDRNE R3, [R4,R3,LSL#3] .text:0001F740 MOV R12, R3,LSR#31 .text:0001F744 STR R12, [R11,#var_574] .text:0001F748 CMP R3, #0 .text:0001F74C RSBLT R3, R3, #0 .text:0001F750 STR R3, [R11,#var_57C] .text:0001F754 B loc_1F9BC .text:0001F758 ; --------------------------------------------------------------------------- .text:0001F758 MOV R0, #0xA .text:0001F75C STR R0, [R11,#var_580] .text:0001F760 B loc_1F778 .text:0001F764 ; --------------------------------------------------------------------------- .text:0001F764 MOV R1, #8 .text:0001F768 STR R1, [R11,#var_580] .text:0001F76C B loc_1F778 .text:0001F770 ; --------------------------------------------------------------------------- .text:0001F770 MOV R2, #0x10 .text:0001F774 STR R2, [R11,#var_580] .text:0001F778 .text:0001F778 loc_1F778 ; CODE XREF: vfprintf+2C14j .text:0001F778 ; vfprintf+2C20j .text:0001F778 MOV R3, #0 .text:0001F77C STR R3, [R11,#var_574] .text:0001F780 STR R3, [R11,#var_590] .text:0001F784 LDR R4, [R11,#var_598] .text:0001F788 STR R3, [R11,#var_588] .text:0001F78C CMP R4, R3 .text:0001F790 BEQ loc_1F8E0 .text:0001F794 LDR R12, [R11,#var_504] .text:0001F798 LDR R0, [R11,#var_564] .text:0001F79C MOV R2, R12,LSL#1 .text:0001F7A0 ADD R3, R2, R12 .text:0001F7A4 ADD R3, R0, R3,LSL#4 .text:0001F7A8 CMP R3, #0 .text:0001F7AC STR R2, [R11,#var_5C0] .text:0001F7B0 BNE loc_1F7CC .text:0001F7B4 LDR R12, [R11,#var_4F0] .text:0001F7B8 LDMIA R12!, {R2,R3} .text:0001F7BC SUB R4, R11, #-var_580 .text:0001F7C0 STMIB R4, {R2,R3} .text:0001F7C4 STR R12, [R11,#var_4F0] .text:0001F7C8 B loc_1F7E4 .text:0001F7CC ; --------------------------------------------------------------------------- .text:0001F7CC .text:0001F7CC loc_1F7CC ; CODE XREF: vfprintf+2C64j .text:0001F7CC LDR R3, [R3,#0x24] .text:0001F7D0 LDR R0, [R11,#var_56C] .text:0001F7D4 ADD R3, R0, R3,LSL#3 .text:0001F7D8 LDMIA R3, {R1,R2} .text:0001F7DC SUB R4, R11, #-var_580 .text:0001F7E0 STMIB R4, {R1,R2} .text:0001F7E4 .text:0001F7E4 loc_1F7E4 ; CODE XREF: vfprintf+2BBCj .text:0001F7E4 ; vfprintf+2C7Cj .text:0001F7E4 LDR R12, [R11,#var_5AC] .text:0001F7E8 CMP R12, #0 .text:0001F7EC MOVLT R0, #1 .text:0001F7F0 STRLT R0, [R11,#var_5AC] .text:0001F7F4 MOVGE R1, #0x20 .text:0001F7F8 STRGE R1, [R11,#var_5B4] .text:0001F7FC LDR R2, [R11,#var_5AC] .text:0001F800 CMP R2, #0 .text:0001F804 BNE loc_1F844 .text:0001F808 LDR R3, [R11,#var_57C] .text:0001F80C LDR R4, [R11,#var_578] .text:0001F810 ORRS R3, R3, R4 .text:0001F814 BNE loc_1F844 .text:0001F818 LDR R7, [R11,#var_4FC] .text:0001F81C LDR R12, [R11,#var_584] .text:0001F820 LDR R0, [R11,#var_580] .text:0001F824 SUBS R3, R12, #0 .text:0001F828 MOVNE R3, #1 .text:0001F82C CMP R0, #8 .text:0001F830 MOVNE R3, #0 .text:0001F834 CMP R3, #0 .text:0001F838 MOVNE R3, #0x30 .text:0001F83C STRNEB R3, [R7,#-1]! .text:0001F840 B loc_1F8C4 .text:0001F844 ; --------------------------------------------------------------------------- .text:0001F844 .text:0001F844 loc_1F844 ; CODE XREF: vfprintf+2CB8j .text:0001F844 ; vfprintf+2CC8j .text:0001F844 LDR R1, [R11,#var_5B8] .text:0001F848 CMP R1, #0x58 .text:0001F84C MOVNE R3, #0 .text:0001F850 MOVEQ R3, #1 .text:0001F854 STR R3, [SP,#0xBCC+var_BCC] .text:0001F858 LDR R3, [R11,#var_580] .text:0001F85C SUB R2, R11, #-var_580 .text:0001F860 LDMIB R2, {R0,R1} .text:0001F864 LDR R2, [R11,#var_4FC] .text:0001F868 BL _itoa .text:0001F86C LDR R3, [R11,#var_594] .text:0001F870 LDR R4, [R11,#var_4F8] .text:0001F874 MOV R7, R0 .text:0001F878 CMP R3, #0 .text:0001F87C CMPNE R4, #0 .text:0001F880 BEQ loc_1F898 .text:0001F884 LDR R1, [R11,#var_4FC] .text:0001F888 LDR R3, [R11,#var_4F4] .text:0001F88C MOV R2, R4 .text:0001F890 BL group_number .text:0001F894 MOV R7, R0 .text:0001F898 .text:0001F898 loc_1F898 ; CODE XREF: vfprintf+2D34j .text:0001F898 LDR R12, [R11,#var_580] .text:0001F89C LDR R0, [R11,#var_5B0] .text:0001F8A0 CMP R12, #0xA .text:0001F8A4 MOVNE R3, #0 .text:0001F8A8 MOVEQ R3, #1 .text:0001F8AC TST R0, R3 .text:0001F8B0 BEQ loc_1F8C4 .text:0001F8B4 LDR R1, [R11,#var_4FC] .text:0001F8B8 MOV R0, R7 .text:0001F8BC BL _i18n_number_rewrite .text:0001F8C0 MOV R7, R0 .text:0001F8C4 .text:0001F8C4 loc_1F8C4 ; CODE XREF: vfprintf+2CF4j .text:0001F8C4 ; vfprintf+2D64j .text:0001F8C4 LDR R1, [R11,#var_57C] .text:0001F8C8 LDR R2, [R11,#var_578] .text:0001F8CC ORRS R1, R1, R2 .text:0001F8D0 MOVEQ R3, #0 .text:0001F8D4 MOVNE R3, #1 .text:0001F8D8 STR R3, [R11,#var_57C] .text:0001F8DC B loc_1FB44 .text:0001F8E0 ; --------------------------------------------------------------------------- .text:0001F8E0 .text:0001F8E0 loc_1F8E0 ; CODE XREF: vfprintf+2C44j .text:0001F8E0 LDR R4, [R11,#var_504] .text:0001F8E4 LDR R12, [R11,#var_564] .text:0001F8E8 MOV R2, R4,LSL#1 .text:0001F8EC ADD R3, R2, R4 .text:0001F8F0 ADD R3, R12, R3,LSL#4 .text:0001F8F4 CMP R3, #0 .text:0001F8F8 STR R2, [R11,#var_5C0] .text:0001F8FC BNE loc_1F95C .text:0001F900 LDR R0, [R11,#var_5A0] .text:0001F904 CMP R0, #0 .text:0001F908 BEQ loc_1F920 .text:0001F90C LDR R1, [R11,#var_4F0] .text:0001F910 ADD R1, R1, #4 .text:0001F914 STR R1, [R11,#var_4F0] .text:0001F918 LDRB R2, [R1,#-4] .text:0001F91C B loc_1F9B8 .text:0001F920 ; --------------------------------------------------------------------------- .text:0001F920 .text:0001F920 loc_1F920 ; CODE XREF: vfprintf+2DBCj .text:0001F920 LDR R3, [R11,#var_59C] .text:0001F924 CMP R3, #0 .text:0001F928 BNE loc_1F940 .text:0001F92C LDR R4, [R11,#var_4F0] .text:0001F930 LDR R12, [R4],#4 .text:0001F934 STR R12, [R11,#var_57C] .text:0001F938 STR R4, [R11,#var_4F0] .text:0001F93C B loc_1F9BC .text:0001F940 ; --------------------------------------------------------------------------- .text:0001F940 .text:0001F940 loc_1F940 ; CODE XREF: vfprintf+2DDCj .text:0001F940 LDR R0, [R11,#var_4F0] .text:0001F944 LDR R3, [R0],#4 .text:0001F948 STR R0, [R11,#var_4F0] .text:0001F94C MOV R3, R3,LSL#16 .text:0001F950 MOV R3, R3,LSR#16 .text:0001F954 STR R3, [R11,#var_57C] .text:0001F958 B loc_1F9BC .text:0001F95C ; --------------------------------------------------------------------------- .text:0001F95C .text:0001F95C loc_1F95C ; CODE XREF: vfprintf+2DB0j .text:0001F95C LDR R1, [R11,#var_5A0] .text:0001F960 CMP R1, #0 .text:0001F964 BEQ loc_1F97C .text:0001F968 LDR R3, [R3,#0x24] .text:0001F96C LDR R2, [R11,#var_56C] .text:0001F970 LDRB R3, [R2,R3,LSL#3] .text:0001F974 STR R3, [R11,#var_57C] .text:0001F978 B loc_1F9BC .text:0001F97C ; --------------------------------------------------------------------------- .text:0001F97C .text:0001F97C loc_1F97C ; CODE XREF: vfprintf+2E18j .text:0001F97C LDR R4, [R11,#var_59C] .text:0001F980 CMP R4, #0 .text:0001F984 BNE loc_1F99C .text:0001F988 LDR R3, [R3,#0x24] .text:0001F98C LDR R12, [R11,#var_56C] .text:0001F990 LDR R3, [R12,R3,LSL#3] .text:0001F994 STR R3, [R11,#var_57C] .text:0001F998 B loc_1F9BC .text:0001F99C ; --------------------------------------------------------------------------- .text:0001F99C .text:0001F99C loc_1F99C ; CODE XREF: vfprintf+2E38j .text:0001F99C LDR R3, [R3,#0x24] .text:0001F9A0 LDR R0, [R11,#var_56C] .text:0001F9A4 MOV R3, R3,LSL#3 .text:0001F9A8 LDRB R1, [R3,R0] .text:0001F9AC ADD R3, R3, R0 .text:0001F9B0 LDRB R2, [R3,#1] .text:0001F9B4 ORR R2, R1, R2,LSL#8 .text:0001F9B8 .text:0001F9B8 loc_1F9B8 ; CODE XREF: vfprintf+2DD0j .text:0001F9B8 STR R2, [R11,#var_57C] .text:0001F9BC .text:0001F9BC loc_1F9BC ; CODE XREF: vfprintf+2C08j .text:0001F9BC ; vfprintf+2DF0j ... .text:0001F9BC LDR R1, [R11,#var_5AC] .text:0001F9C0 CMP R1, #0 .text:0001F9C4 MOVLT R2, #1 .text:0001F9C8 STRLT R2, [R11,#var_5AC] .text:0001F9CC MOVGE R3, #0x20 .text:0001F9D0 STRGE R3, [R11,#var_5B4] .text:0001F9D4 LDR R4, [R11,#var_5AC] .text:0001F9D8 CMP R4, #0 .text:0001F9DC BNE loc_1FA18 .text:0001F9E0 LDR R12, [R11,#var_57C] .text:0001F9E4 CMP R12, #0 .text:0001F9E8 BNE loc_1FA18 .text:0001F9EC LDR R7, [R11,#var_4FC] .text:0001F9F0 LDR R0, [R11,#var_584] .text:0001F9F4 LDR R1, [R11,#var_580] .text:0001F9F8 SUBS R3, R0, #0 .text:0001F9FC MOVNE R3, #1 .text:0001FA00 CMP R1, #8 .text:0001FA04 MOVNE R3, #0 .text:0001FA08 CMP R3, #0 .text:0001FA0C MOVNE R3, #0x30 .text:0001FA10 STRNEB R3, [R7,#-1]! .text:0001FA14 B loc_1FB44 .text:0001FA18 ; --------------------------------------------------------------------------- .text:0001FA18 .text:0001FA18 loc_1FA18 ; CODE XREF: vfprintf+2E90j .text:0001FA18 ; vfprintf+2E9Cj .text:0001FA18 LDR R7, =_itoa_lower_digits .text:0001FA1C LDR R4, [R11,#var_57C] .text:0001FA20 LDR R2, [R11,#var_5B8] .text:0001FA24 LDR R3, =_itoa_upper_digits ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0001FA28 CMP R2, #0x58 .text:0001FA2C MOVEQ R7, R3 .text:0001FA30 LDR R3, [R11,#var_580] .text:0001FA34 LDR R5, [R11,#var_4FC] .text:0001FA38 CMP R3, #0xA .text:0001FA3C BEQ loc_1FA60 .text:0001FA40 BHI loc_1FA50 .text:0001FA44 CMP R3, #8 .text:0001FA48 BEQ loc_1FAA4 .text:0001FA4C B loc_1FABC .text:0001FA50 ; --------------------------------------------------------------------------- .text:0001FA50 .text:0001FA50 loc_1FA50 ; CODE XREF: vfprintf+2EF4j .text:0001FA50 LDR R12, [R11,#var_580] .text:0001FA54 CMP R12, #0x10 .text:0001FA58 BEQ loc_1FA8C .text:0001FA5C B loc_1FABC .text:0001FA60 ; --------------------------------------------------------------------------- .text:0001FA60 .text:0001FA60 loc_1FA60 ; CODE XREF: vfprintf+2EF0j .text:0001FA60 ; vfprintf+2F38j .text:0001FA60 MOV R0, R4 .text:0001FA64 MOV R1, #0xA .text:0001FA68 BL __umodsi3 .text:0001FA6C LDRB R3, [R7,R0] .text:0001FA70 STRB R3, [R5,#-1]! .text:0001FA74 MOV R0, R4 .text:0001FA78 MOV R1, #0xA .text:0001FA7C BL __udivsi3 .text:0001FA80 SUBS R4, R0, #0 .text:0001FA84 BNE loc_1FA60 .text:0001FA88 B loc_1FAE8 .text:0001FA8C ; --------------------------------------------------------------------------- .text:0001FA8C .text:0001FA8C loc_1FA8C ; CODE XREF: vfprintf+2F0Cj .text:0001FA8C ; vfprintf+2F50j .text:0001FA8C AND R3, R4, #0xF .text:0001FA90 LDRB R2, [R7,R3] .text:0001FA94 MOVS R4, R4,LSR#4 .text:0001FA98 STRB R2, [R5,#-1]! .text:0001FA9C BNE loc_1FA8C .text:0001FAA0 B loc_1FAE8 .text:0001FAA4 ; --------------------------------------------------------------------------- .text:0001FAA4 .text:0001FAA4 loc_1FAA4 ; CODE XREF: vfprintf+2EFCj .text:0001FAA4 ; vfprintf+2F68j .text:0001FAA4 AND R3, R4, #7 .text:0001FAA8 LDRB R2, [R7,R3] .text:0001FAAC MOVS R4, R4,LSR#3 .text:0001FAB0 STRB R2, [R5,#-1]! .text:0001FAB4 BNE loc_1FAA4 .text:0001FAB8 B loc_1FAE8 .text:0001FABC ; --------------------------------------------------------------------------- .text:0001FABC .text:0001FABC loc_1FABC ; CODE XREF: vfprintf+2F00j .text:0001FABC ; vfprintf+2F10j ... .text:0001FABC LDR R1, [R11,#var_580] .text:0001FAC0 MOV R0, R4 .text:0001FAC4 BL __umodsi3 .text:0001FAC8 LDRB R3, [R7,R0] .text:0001FACC STRB R3, [R5,#-1]! .text:0001FAD0 LDR R1, [R11,#var_580] .text:0001FAD4 MOV R0, R4 .text:0001FAD8 BL __udivsi3 .text:0001FADC MOV R4, R0 .text:0001FAE0 CMP R4, #0 .text:0001FAE4 BNE loc_1FABC .text:0001FAE8 .text:0001FAE8 loc_1FAE8 ; CODE XREF: vfprintf+2F3Cj .text:0001FAE8 ; vfprintf+2F54j ... .text:0001FAE8 LDR R0, [R11,#var_594] .text:0001FAEC LDR R1, [R11,#var_4F8] .text:0001FAF0 MOV R7, R5 .text:0001FAF4 CMP R0, #0 .text:0001FAF8 CMPNE R1, #0 .text:0001FAFC BEQ loc_1FB18 .text:0001FB00 LDR R1, [R11,#var_4FC] .text:0001FB04 LDR R2, [R11,#var_4F8] .text:0001FB08 LDR R3, [R11,#var_4F4] .text:0001FB0C MOV R0, R7 .text:0001FB10 BL group_number .text:0001FB14 MOV R7, R0 .text:0001FB18 .text:0001FB18 loc_1FB18 ; CODE XREF: vfprintf+2FB0j .text:0001FB18 LDR R2, [R11,#var_580] .text:0001FB1C LDR R4, [R11,#var_5B0] .text:0001FB20 CMP R2, #0xA .text:0001FB24 MOVNE R3, #0 .text:0001FB28 MOVEQ R3, #1 .text:0001FB2C TST R4, R3 .text:0001FB30 BEQ loc_1FB44 .text:0001FB34 LDR R1, [R11,#var_4FC] .text:0001FB38 MOV R0, R7 .text:0001FB3C BL _i18n_number_rewrite .text:0001FB40 MOV R7, R0 .text:0001FB44 .text:0001FB44 loc_1FB44 ; CODE XREF: vfprintf+2D90j .text:0001FB44 ; vfprintf+2EC8j ... .text:0001FB44 LDR R12, [R11,#var_4FC] .text:0001FB48 LDR R0, [R11,#var_5AC] .text:0001FB4C RSB R3, R7, R12 .text:0001FB50 CMP R0, R3 .text:0001FB54 BGT loc_1FB7C .text:0001FB58 LDR R1, [R11,#var_57C] .text:0001FB5C LDR R2, [R11,#var_584] .text:0001FB60 CMP R1, #0 .text:0001FB64 CMPNE R2, #0 .text:0001FB68 BEQ loc_1FB7C .text:0001FB6C LDR R3, [R11,#var_580] .text:0001FB70 CMP R3, #8 .text:0001FB74 MOVEQ R3, #0x30 .text:0001FB78 STREQB R3, [R7,#-1]! .text:0001FB7C .text:0001FB7C loc_1FB7C ; CODE XREF: vfprintf+3008j .text:0001FB7C ; vfprintf+301Cj .text:0001FB7C LDR R4, [R11,#var_4FC] .text:0001FB80 LDR R12, [R11,#var_5AC] .text:0001FB84 LDR R0, [R11,#var_58C] .text:0001FB88 RSB R3, R7, R4 .text:0001FB8C RSB R12, R3, R12 .text:0001FB90 CMP R12, #0 .text:0001FB94 MOVLT R12, #0 .text:0001FB98 CMP R0, #0 .text:0001FB9C MOV R4, R3 .text:0001FBA0 STR R12, [R11,#var_5AC] .text:0001FBA4 BNE loc_1FDAC .text:0001FBA8 LDR R1, [R11,#var_5A8] .text:0001FBAC ADD R3, R4, R12 .text:0001FBB0 LDR R2, [R11,#var_57C] .text:0001FBB4 RSB R1, R3, R1 .text:0001FBB8 LDR R3, [R11,#var_584] .text:0001FBBC STR R1, [R11,#var_5A8] .text:0001FBC0 CMP R2, #0 .text:0001FBC4 CMPNE R3, #0 .text:0001FBC8 BEQ loc_1FBE0 .text:0001FBCC LDR R12, [R11,#var_580] .text:0001FBD0 SUB R3, R1, #2 .text:0001FBD4 CMP R12, #0x10 .text:0001FBD8 MOVEQ R1, R3 .text:0001FBDC STR R1, [R11,#var_5A8] .text:0001FBE0 .text:0001FBE0 loc_1FBE0 ; CODE XREF: vfprintf+307Cj .text:0001FBE0 LDR R0, [R11,#var_574] .text:0001FBE4 LDR R1, [R11,#var_590] .text:0001FBE8 CMP R1, #0 .text:0001FBEC CMPEQ R0, #0 .text:0001FBF0 BNE loc_1FC00 .text:0001FBF4 LDR R2, [R11,#var_588] .text:0001FBF8 CMP R2, #0 .text:0001FBFC BEQ loc_1FC0C .text:0001FC00 .text:0001FC00 loc_1FC00 ; CODE XREF: vfprintf+30A4j .text:0001FC00 LDR R3, [R11,#var_5A8] .text:0001FC04 SUB R3, R3, #1 .text:0001FC08 STR R3, [R11,#var_5A8] .text:0001FC0C .text:0001FC0C loc_1FC0C ; CODE XREF: vfprintf+30B0j .text:0001FC0C LDR R12, [R11,#var_5B4] .text:0001FC10 CMP R12, #0x20 .text:0001FC14 BNE loc_1FC40 .text:0001FC18 LDR R0, [R11,#var_5A8] .text:0001FC1C CMP R0, #0 .text:0001FC20 BLE loc_1FC38 .text:0001FC24 MOV R0, R10 .text:0001FC28 LDR R2, [R11,#var_5A8] .text:0001FC2C MOV R1, R12 .text:0001FC30 BL _IO_padn .text:0001FC34 ADD R9, R9, R0 .text:0001FC38 .text:0001FC38 loc_1FC38 ; CODE XREF: vfprintf+30D4j .text:0001FC38 MOV R1, #0 .text:0001FC3C STR R1, [R11,#var_5A8] .text:0001FC40 .text:0001FC40 loc_1FC40 ; CODE XREF: vfprintf+30C8j .text:0001FC40 LDR R2, [R11,#var_574] .text:0001FC44 CMP R2, #0 .text:0001FC48 BEQ loc_1FC74 .text:0001FC4C ADD R2, R10, #0x14 .text:0001FC50 LDMIA R2, {R2,R3} .text:0001FC54 MOV R1, #0x2D .text:0001FC58 .text:0001FC58 loc_1FC58 ; CODE XREF: vfprintf+313Cj .text:0001FC58 ; vfprintf+3158j .text:0001FC58 CMP R2, R3 .text:0001FC5C BCC loc_1FCA8 .text:0001FC60 MOV R0, R10 .text:0001FC64 BL __overflow .text:0001FC68 CMN R0, #1 .text:0001FC6C BEQ loc_1E6B4 .text:0001FC70 B loc_1FCB0 .text:0001FC74 ; --------------------------------------------------------------------------- .text:0001FC74 .text:0001FC74 loc_1FC74 ; CODE XREF: vfprintf+30FCj .text:0001FC74 LDR R3, [R11,#var_590] .text:0001FC78 CMP R3, #0 .text:0001FC7C ADDNE R2, R10, #0x14 .text:0001FC80 LDMNEIA R2, {R2,R3} .text:0001FC84 MOVNE R1, #0x2B .text:0001FC88 BNE loc_1FC58 .text:0001FC8C LDR R12, [R11,#var_588] .text:0001FC90 CMP R12, #0 .text:0001FC94 BEQ loc_1FCB4 .text:0001FC98 ADD R2, R10, #0x14 .text:0001FC9C LDMIA R2, {R2,R3} .text:0001FCA0 MOV R1, #0x20 .text:0001FCA4 B loc_1FC58 .text:0001FCA8 ; --------------------------------------------------------------------------- .text:0001FCA8 .text:0001FCA8 loc_1FCA8 ; CODE XREF: vfprintf+3110j .text:0001FCA8 STRB R1, [R2],#1 .text:0001FCAC STR R2, [R10,#0x14] .text:0001FCB0 .text:0001FCB0 loc_1FCB0 ; CODE XREF: vfprintf+3124j .text:0001FCB0 ADD R9, R9, #1 .text:0001FCB4 .text:0001FCB4 loc_1FCB4 ; CODE XREF: vfprintf+3148j .text:0001FCB4 LDR R0, [R11,#var_57C] .text:0001FCB8 LDR R1, [R11,#var_584] .text:0001FCBC CMP R0, #0 .text:0001FCC0 CMPNE R1, #0 .text:0001FCC4 BEQ loc_1FD4C .text:0001FCC8 LDR R2, [R11,#var_580] .text:0001FCCC CMP R2, #0x10 .text:0001FCD0 BNE loc_1FD4C .text:0001FCD4 ADD R2, R10, #0x14 .text:0001FCD8 LDMIA R2, {R2,R3} .text:0001FCDC MOV R1, #0x30 .text:0001FCE0 CMP R2, R3 .text:0001FCE4 BCC loc_1FCFC .text:0001FCE8 MOV R0, R10 .text:0001FCEC BL __overflow .text:0001FCF0 CMN R0, #1 .text:0001FCF4 BEQ loc_1E6B4 .text:0001FCF8 B loc_1FD04 .text:0001FCFC ; --------------------------------------------------------------------------- .text:0001FCFC .text:0001FCFC loc_1FCFC ; CODE XREF: vfprintf+3198j .text:0001FCFC STRB R1, [R2],#1 .text:0001FD00 STR R2, [R10,#0x14] .text:0001FD04 .text:0001FD04 loc_1FD04 ; CODE XREF: vfprintf+31ACj .text:0001FD04 ADD R9, R9, #1 .text:0001FD08 ADD R2, R10, #0x14 .text:0001FD0C LDMIA R2, {R2,R3} .text:0001FD10 CMP R2, R3 .text:0001FD14 BCC loc_1FD30 .text:0001FD18 LDR R3, [R11,#var_5B8] .text:0001FD1C MOV R0, R10 .text:0001FD20 AND R1, R3, #0xFF .text:0001FD24 BL __overflow .text:0001FD28 CMN R0, #1 .text:0001FD2C B loc_1FD44 .text:0001FD30 ; --------------------------------------------------------------------------- .text:0001FD30 .text:0001FD30 loc_1FD30 ; CODE XREF: vfprintf+31C8j .text:0001FD30 LDR R12, [R11,#var_5B8] .text:0001FD34 STRB R12, [R2],#1 .text:0001FD38 AND R3, R12, #0xFF .text:0001FD3C CMN R3, #1 .text:0001FD40 STR R2, [R10,#0x14] .text:0001FD44 .text:0001FD44 loc_1FD44 ; CODE XREF: vfprintf+31E0j .text:0001FD44 BEQ loc_1E6B4 .text:0001FD48 ADD R9, R9, #1 .text:0001FD4C .text:0001FD4C loc_1FD4C ; CODE XREF: vfprintf+3178j .text:0001FD4C ; vfprintf+3184j .text:0001FD4C LDR R0, [R11,#var_5A8] .text:0001FD50 LDR R1, [R11,#var_5AC] .text:0001FD54 ADD R0, R0, R1 .text:0001FD58 CMP R0, #0 .text:0001FD5C STR R0, [R11,#var_5A8] .text:0001FD60 BLE loc_1FD78 .text:0001FD64 MOV R0, R10 .text:0001FD68 LDR R2, [R11,#var_5A8] .text:0001FD6C MOV R1, #0x30 .text:0001FD70 BL _IO_padn .text:0001FD74 ADD R9, R9, R0 .text:0001FD78 .text:0001FD78 loc_1FD78 ; CODE XREF: vfprintf+3214j .text:0001FD78 MOV R0, R10 .text:0001FD7C LDRB R3, [R10,#0x46] .text:0001FD80 MOV R1, R7 .text:0001FD84 MOV R3, R3,LSL#24 .text:0001FD88 ADD R3, R10, R3,ASR#24 .text:0001FD8C LDR R12, [R3,#0x94] .text:0001FD90 MOV R2, R4 .text:0001FD94 MOV LR, PC .text:0001FD98 LDR PC, [R12,#0x1C] .text:0001FD9C CMP R0, R4 .text:0001FDA0 BNE loc_1E6B4 .text:0001FDA4 ADD R9, R9, R4 .text:0001FDA8 B loc_20B24 .text:0001FDAC ; --------------------------------------------------------------------------- .text:0001FDAC .text:0001FDAC loc_1FDAC ; CODE XREF: vfprintf+3058j .text:0001FDAC LDR R2, [R11,#var_574] .text:0001FDB0 CMP R2, #0 .text:0001FDB4 BEQ loc_1FE04 .text:0001FDB8 ADD R2, R10, #0x14 .text:0001FDBC LDMIA R2, {R2,R3} .text:0001FDC0 MOV R1, #0x2D .text:0001FDC4 CMP R2, R3 .text:0001FDC8 BCC loc_1FDE8 .text:0001FDCC MOV R0, R10 .text:0001FDD0 BL __overflow .text:0001FDD4 CMN R0, #1 .text:0001FDD8 BEQ loc_1E6B4 .text:0001FDDC B loc_1FDF0 .text:0001FDDC ; --------------------------------------------------------------------------- .text:0001FDE0 off_1FDE0 DCD _itoa_lower_digits ; DATA XREF: vfprintf:loc_1FA18r .text:0001FDE4 off_1FDE4 DCD _itoa_upper_digits ; DATA XREF: vfprintf+2ED8r .text:0001FDE4 ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0001FDE8 ; --------------------------------------------------------------------------- .text:0001FDE8 .text:0001FDE8 loc_1FDE8 ; CODE XREF: vfprintf+327Cj .text:0001FDE8 STRB R1, [R2],#1 .text:0001FDEC STR R2, [R10,#0x14] .text:0001FDF0 .text:0001FDF0 loc_1FDF0 ; CODE XREF: vfprintf+3290j .text:0001FDF0 ADD R9, R9, #1 .text:0001FDF4 LDR R3, [R11,#var_5A8] .text:0001FDF8 SUB R3, R3, #1 .text:0001FDFC STR R3, [R11,#var_5A8] .text:0001FE00 B loc_1FEA0 .text:0001FE04 ; --------------------------------------------------------------------------- .text:0001FE04 .text:0001FE04 loc_1FE04 ; CODE XREF: vfprintf+3268j .text:0001FE04 LDR R12, [R11,#var_590] .text:0001FE08 CMP R12, #0 .text:0001FE0C BEQ loc_1FE54 .text:0001FE10 ADD R2, R10, #0x14 .text:0001FE14 LDMIA R2, {R2,R3} .text:0001FE18 MOV R1, #0x2B .text:0001FE1C CMP R2, R3 .text:0001FE20 BCC loc_1FE38 .text:0001FE24 MOV R0, R10 .text:0001FE28 BL __overflow .text:0001FE2C CMN R0, #1 .text:0001FE30 BEQ loc_1E6B4 .text:0001FE34 B loc_1FE40 .text:0001FE38 ; --------------------------------------------------------------------------- .text:0001FE38 .text:0001FE38 loc_1FE38 ; CODE XREF: vfprintf+32D4j .text:0001FE38 STRB R1, [R2],#1 .text:0001FE3C STR R2, [R10,#0x14] .text:0001FE40 .text:0001FE40 loc_1FE40 ; CODE XREF: vfprintf+32E8j .text:0001FE40 ADD R9, R9, #1 .text:0001FE44 LDR R0, [R11,#var_5A8] .text:0001FE48 SUB R0, R0, #1 .text:0001FE4C STR R0, [R11,#var_5A8] .text:0001FE50 B loc_1FEA0 .text:0001FE54 ; --------------------------------------------------------------------------- .text:0001FE54 .text:0001FE54 loc_1FE54 ; CODE XREF: vfprintf+32C0j .text:0001FE54 LDR R1, [R11,#var_588] .text:0001FE58 CMP R1, #0 .text:0001FE5C BEQ loc_1FEA0 .text:0001FE60 ADD R2, R10, #0x14 .text:0001FE64 LDMIA R2, {R2,R3} .text:0001FE68 MOV R1, #0x20 .text:0001FE6C CMP R2, R3 .text:0001FE70 BCC loc_1FE88 .text:0001FE74 MOV R0, R10 .text:0001FE78 BL __overflow .text:0001FE7C CMN R0, #1 .text:0001FE80 BEQ loc_1E6B4 .text:0001FE84 B loc_1FE90 .text:0001FE88 ; --------------------------------------------------------------------------- .text:0001FE88 .text:0001FE88 loc_1FE88 ; CODE XREF: vfprintf+3324j .text:0001FE88 STRB R1, [R2],#1 .text:0001FE8C STR R2, [R10,#0x14] .text:0001FE90 .text:0001FE90 loc_1FE90 ; CODE XREF: vfprintf+3338j .text:0001FE90 ADD R9, R9, #1 .text:0001FE94 LDR R2, [R11,#var_5A8] .text:0001FE98 SUB R2, R2, #1 .text:0001FE9C STR R2, [R11,#var_5A8] .text:0001FEA0 .text:0001FEA0 loc_1FEA0 ; CODE XREF: vfprintf+32B4j .text:0001FEA0 ; vfprintf+3304j ... .text:0001FEA0 LDR R3, [R11,#var_57C] .text:0001FEA4 LDR R12, [R11,#var_584] .text:0001FEA8 CMP R3, #0 .text:0001FEAC CMPNE R12, #0 .text:0001FEB0 BEQ loc_1FF48 .text:0001FEB4 LDR R0, [R11,#var_580] .text:0001FEB8 CMP R0, #0x10 .text:0001FEBC BNE loc_1FF48 .text:0001FEC0 ADD R2, R10, #0x14 .text:0001FEC4 LDMIA R2, {R2,R3} .text:0001FEC8 MOV R1, #0x30 .text:0001FECC CMP R2, R3 .text:0001FED0 BCC loc_1FEE8 .text:0001FED4 MOV R0, R10 .text:0001FED8 BL __overflow .text:0001FEDC CMN R0, #1 .text:0001FEE0 BEQ loc_1E6B4 .text:0001FEE4 B loc_1FEF0 .text:0001FEE8 ; --------------------------------------------------------------------------- .text:0001FEE8 .text:0001FEE8 loc_1FEE8 ; CODE XREF: vfprintf+3384j .text:0001FEE8 STRB R1, [R2],#1 .text:0001FEEC STR R2, [R10,#0x14] .text:0001FEF0 .text:0001FEF0 loc_1FEF0 ; CODE XREF: vfprintf+3398j .text:0001FEF0 ADD R9, R9, #1 .text:0001FEF4 ADD R2, R10, #0x14 .text:0001FEF8 LDMIA R2, {R2,R3} .text:0001FEFC CMP R2, R3 .text:0001FF00 BCC loc_1FF1C .text:0001FF04 LDR R2, [R11,#var_5B8] .text:0001FF08 MOV R0, R10 .text:0001FF0C AND R1, R2, #0xFF .text:0001FF10 BL __overflow .text:0001FF14 CMN R0, #1 .text:0001FF18 B loc_1FF34 .text:0001FF1C ; --------------------------------------------------------------------------- .text:0001FF1C .text:0001FF1C loc_1FF1C ; CODE XREF: vfprintf+33B4j .text:0001FF1C LDR R3, [R11,#var_5B8] .text:0001FF20 STRB R3, [R2],#1 .text:0001FF24 LDR R12, [R11,#var_5B8] .text:0001FF28 AND R3, R12, #0xFF .text:0001FF2C CMN R3, #1 .text:0001FF30 STR R2, [R10,#0x14] .text:0001FF34 .text:0001FF34 loc_1FF34 ; CODE XREF: vfprintf+33CCj .text:0001FF34 BEQ loc_1E6B4 .text:0001FF38 ADD R9, R9, #1 .text:0001FF3C LDR R0, [R11,#var_5A8] .text:0001FF40 SUB R0, R0, #2 .text:0001FF44 STR R0, [R11,#var_5A8] .text:0001FF48 .text:0001FF48 loc_1FF48 ; CODE XREF: vfprintf+3364j .text:0001FF48 ; vfprintf+3370j .text:0001FF48 LDR R1, [R11,#var_5AC] .text:0001FF4C LDR R2, [R11,#var_5A8] .text:0001FF50 ADD R3, R4, R1 .text:0001FF54 RSB R2, R3, R2 .text:0001FF58 CMP R1, #0 .text:0001FF5C STR R2, [R11,#var_5A8] .text:0001FF60 BLE loc_1FF78 .text:0001FF64 MOV R0, R10 .text:0001FF68 LDR R2, [R11,#var_5AC] .text:0001FF6C MOV R1, #0x30 .text:0001FF70 BL _IO_padn .text:0001FF74 ADD R9, R9, R0 .text:0001FF78 .text:0001FF78 loc_1FF78 ; CODE XREF: vfprintf+3414j .text:0001FF78 MOV R0, R10 .text:0001FF7C LDRB R3, [R10,#0x46] .text:0001FF80 MOV R1, R7 .text:0001FF84 MOV R3, R3,LSL#24 .text:0001FF88 ADD R3, R10, R3,ASR#24 .text:0001FF8C LDR R12, [R3,#0x94] .text:0001FF90 MOV R2, R4 .text:0001FF94 MOV LR, PC .text:0001FF98 LDR PC, [R12,#0x1C] .text:0001FF9C CMP R0, R4 .text:0001FFA0 BNE loc_1E6B4 .text:0001FFA4 ADD R9, R9, R0 .text:0001FFA8 LDR R3, [R11,#var_5A8] .text:0001FFAC CMP R3, #0 .text:0001FFB0 BLE loc_20B24 .text:0001FFB4 MOV R0, R10 .text:0001FFB8 MOV R1, #0x20 .text:0001FFBC MOV R2, R3 .text:0001FFC0 BL _IO_padn .text:0001FFC4 B loc_20B20 .text:0001FFC8 ; --------------------------------------------------------------------------- .text:0001FFC8 LDR R4, [R11,#var_504] .text:0001FFCC LDR R12, [R11,#var_564] .text:0001FFD0 MOV R2, R4,LSL#1 .text:0001FFD4 ADD R3, R2, R4 .text:0001FFD8 ADD R1, R12, R3,LSL#4 .text:0001FFDC CMP R1, #0 .text:0001FFE0 STR R2, [R11,#var_5C0] .text:0001FFE4 BNE loc_20128 .text:0001FFE8 SUB R0, R11, #-var_450 .text:0001FFEC SUB R0, R0, #8 .text:0001FFF0 SUB R0, R0, #4 .text:0001FFF4 MOV R2, #0x14 .text:0001FFF8 BL memset .text:0001FFFC LDR R0, [R11,#var_5AC] .text:00020000 STR R0, [R11,#var_45C] .text:00020004 LDR R1, [R11,#var_5A8] .text:00020008 STR R1, [R11,#var_458] .text:0002000C LDR R2, [R11,#var_5B8] .text:00020010 STR R2, [R11,#var_454] .text:00020014 LDR R4, [R11,#var_5B4] .text:00020018 STR R4, [R11,#var_44C] .text:0002001C LDRB R3, [R11,#var_450] .text:00020020 LDR R12, [R11,#var_598] .text:00020024 LDR R0, [R11,#var_59C] .text:00020028 LDR R1, [R11,#var_5A4] .text:0002002C CMP R12, #0 .text:00020030 LDR R4, [R11,#var_588] .text:00020034 ORRNE R3, R3, #1 .text:00020038 ANDEQ R3, R3, #0xFE .text:0002003C LDR R12, [R11,#var_58C] .text:00020040 CMP R0, #0 .text:00020044 ORRNE R3, R3, #2 .text:00020048 ANDEQ R3, R3, #0xFD .text:0002004C AND R2, R1, #1 .text:00020050 CMP R2, #0 .text:00020054 LDR R2, [R11,#var_584] .text:00020058 ORRNE R3, R3, #4 .text:0002005C ANDEQ R3, R3, #0xFB .text:00020060 LDR R0, [R11,#var_590] .text:00020064 AND R1, R2, #1 .text:00020068 CMP R1, #0 .text:0002006C ORRNE R3, R3, #8 .text:00020070 ANDEQ R3, R3, #0xF7 .text:00020074 AND R2, R4, #1 .text:00020078 CMP R2, #0 .text:0002007C ORRNE R3, R3, #0x10 .text:00020080 ANDEQ R3, R3, #0xEF .text:00020084 AND R1, R12, #1 .text:00020088 CMP R1, #0 .text:0002008C ORRNE R3, R3, #0x20 .text:00020090 ANDEQ R3, R3, #0xDF .text:00020094 AND R2, R0, #1 .text:00020098 CMP R2, #0 .text:0002009C LDR R2, [R11,#var_594] .text:000200A0 ORRNE R3, R3, #0x40 .text:000200A4 ANDEQ R3, R3, #0xBF .text:000200A8 LDR R4, [R11,#var_598] .text:000200AC AND R1, R2, #1 .text:000200B0 CMP R1, #0 .text:000200B4 ORRNE R3, R3, #0x80 .text:000200B8 ANDEQ R3, R3, #0x7F .text:000200BC CMP R4, #0 .text:000200C0 STRB R3, [R11,#var_450] .text:000200C4 BEQ loc_200DC .text:000200C8 LDR R12, [R11,#var_4F0] .text:000200CC LDMIA R12!, {R1,R2} .text:000200D0 SUB R3, R11, #-var_4B0 .text:000200D4 STR R12, [R11,#var_4F0] .text:000200D8 B loc_200EC .text:000200DC ; --------------------------------------------------------------------------- .text:000200DC .text:000200DC loc_200DC ; CODE XREF: vfprintf+3578j .text:000200DC LDR R0, [R11,#var_4F0] .text:000200E0 LDMIA R0!, {R1,R2} .text:000200E4 SUB R3, R11, #-var_4B0 .text:000200E8 STR R0, [R11,#var_4F0] .text:000200EC .text:000200EC loc_200EC ; CODE XREF: vfprintf+358Cj .text:000200EC SUB R3, R3, #8 .text:000200F0 SUB R3, R3, #0xC .text:000200F4 STMIA R3, {R1,R2} .text:000200F8 SUB R3, R11, #-var_4B0 .text:000200FC SUB R3, R3, #8 .text:00020100 SUB R3, R3, #0xC .text:00020104 MOV R0, R10 .text:00020108 SUB R1, R11, #-var_450 .text:0002010C STR R3, [R11,#var_4C8] .text:00020110 SUB R1, R1, #8 .text:00020114 SUB R1, R1, #4 .text:00020118 SUB R2, R11, #-var_4C0 .text:0002011C SUB R2, R2, #8 .text:00020120 BL __printf_fp .text:00020124 B loc_20148 .text:00020128 ; --------------------------------------------------------------------------- .text:00020128 .text:00020128 loc_20128 ; CODE XREF: vfprintf+3498j .text:00020128 LDR R3, [R1,#0x24] .text:0002012C LDR R2, [R11,#var_56C] .text:00020130 ADD R3, R2, R3,LSL#3 .text:00020134 STR R3, [R11,#var_4C8] .text:00020138 MOV R0, R10 .text:0002013C SUB R2, R11, #-var_4C0 .text:00020140 SUB R2, R2, #8 .text:00020144 BL __printf_fp .text:00020148 .text:00020148 loc_20148 ; CODE XREF: vfprintf+35D8j .text:00020148 CMP R0, #0 .text:0002014C B loc_20B1C .text:00020150 ; --------------------------------------------------------------------------- .text:00020150 LDR R3, [R11,#var_504] .text:00020154 LDR R4, [R11,#var_564] .text:00020158 MOV R2, R3,LSL#1 .text:0002015C ADD R3, R2, R3 .text:00020160 ADD R1, R4, R3,LSL#4 .text:00020164 CMP R1, #0 .text:00020168 STR R2, [R11,#var_5C0] .text:0002016C BNE loc_202B0 .text:00020170 SUB R0, R11, #-var_460 .text:00020174 SUB R0, R0, #8 .text:00020178 SUB R0, R0, #8 .text:0002017C MOV R2, #0x14 .text:00020180 BL memset .text:00020184 LDR R12, [R11,#var_5AC] .text:00020188 STR R12, [R11,#var_470] .text:0002018C LDR R0, [R11,#var_5A8] .text:00020190 STR R0, [R11,#var_46C] .text:00020194 LDR R1, [R11,#var_5B8] .text:00020198 STR R1, [R11,#var_468] .text:0002019C LDR R2, [R11,#var_5B4] .text:000201A0 STR R2, [R11,#var_460] .text:000201A4 LDRB R3, [R11,#var_464] .text:000201A8 LDR R4, [R11,#var_598] .text:000201AC LDR R12, [R11,#var_59C] .text:000201B0 CMP R4, #0 .text:000201B4 LDR R0, [R11,#var_5A4] .text:000201B8 ORRNE R3, R3, #1 .text:000201BC ANDEQ R3, R3, #0xFE .text:000201C0 LDR R4, [R11,#var_588] .text:000201C4 CMP R12, #0 .text:000201C8 ORRNE R3, R3, #2 .text:000201CC ANDEQ R3, R3, #0xFD .text:000201D0 AND R2, R0, #1 .text:000201D4 CMP R2, #0 .text:000201D8 LDR R2, [R11,#var_584] .text:000201DC LDR R12, [R11,#var_58C] .text:000201E0 ORRNE R3, R3, #4 .text:000201E4 ANDEQ R3, R3, #0xFB .text:000201E8 LDR R0, [R11,#var_590] .text:000201EC AND R1, R2, #1 .text:000201F0 CMP R1, #0 .text:000201F4 ORRNE R3, R3, #8 .text:000201F8 ANDEQ R3, R3, #0xF7 .text:000201FC AND R2, R4, #1 .text:00020200 CMP R2, #0 .text:00020204 ORRNE R3, R3, #0x10 .text:00020208 ANDEQ R3, R3, #0xEF .text:0002020C AND R1, R12, #1 .text:00020210 CMP R1, #0 .text:00020214 ORRNE R3, R3, #0x20 .text:00020218 ANDEQ R3, R3, #0xDF .text:0002021C AND R2, R0, #1 .text:00020220 CMP R2, #0 .text:00020224 LDR R2, [R11,#var_594] .text:00020228 ORRNE R3, R3, #0x40 .text:0002022C ANDEQ R3, R3, #0xBF .text:00020230 LDR R4, [R11,#var_598] .text:00020234 AND R1, R2, #1 .text:00020238 CMP R1, #0 .text:0002023C ORRNE R3, R3, #0x80 .text:00020240 ANDEQ R3, R3, #0x7F .text:00020244 CMP R4, #0 .text:00020248 STRB R3, [R11,#var_464] .text:0002024C BEQ loc_20268 .text:00020250 LDR R12, [R11,#var_4F0] .text:00020254 SUB R2, R11, #-var_4B0 .text:00020258 LDMIA R12!, {R3,R4} .text:0002025C SUB R2, R2, #8 .text:00020260 STR R12, [R11,#var_4F0] .text:00020264 B loc_2027C .text:00020268 ; --------------------------------------------------------------------------- .text:00020268 .text:00020268 loc_20268 ; CODE XREF: vfprintf+3700j .text:00020268 LDR R0, [R11,#var_4F0] .text:0002026C SUB R2, R11, #-var_4B0 .text:00020270 LDMIA R0!, {R3,R4} .text:00020274 SUB R2, R2, #8 .text:00020278 STR R0, [R11,#var_4F0] .text:0002027C .text:0002027C loc_2027C ; CODE XREF: vfprintf+3718j .text:0002027C SUB R2, R2, #0xC .text:00020280 MOV R1, R2 .text:00020284 STMIA R2, {R3,R4} .text:00020288 MOV R0, R10 .text:0002028C STR R1, [R11,#var_4CC] .text:00020290 SUB R1, R11, #-var_460 .text:00020294 SUB R1, R1, #8 .text:00020298 SUB R1, R1, #8 .text:0002029C SUB R2, R11, #-var_4C0 .text:000202A0 SUB R2, R2, #8 .text:000202A4 SUB R2, R2, #4 .text:000202A8 BL __printf_fphex .text:000202AC B loc_202D4 .text:000202B0 ; --------------------------------------------------------------------------- .text:000202B0 .text:000202B0 loc_202B0 ; CODE XREF: vfprintf+3620j .text:000202B0 LDR R3, [R1,#0x24] .text:000202B4 LDR R2, [R11,#var_56C] .text:000202B8 ADD R3, R2, R3,LSL#3 .text:000202BC STR R3, [R11,#var_4CC] .text:000202C0 MOV R0, R10 .text:000202C4 SUB R2, R11, #-var_4C0 .text:000202C8 SUB R2, R2, #8 .text:000202CC SUB R2, R2, #4 .text:000202D0 BL __printf_fphex .text:000202D4 .text:000202D4 loc_202D4 ; CODE XREF: vfprintf+3760j .text:000202D4 CMP R0, #0 .text:000202D8 B loc_20B1C .text:000202DC ; --------------------------------------------------------------------------- .text:000202DC LDR R3, [R11,#var_504] .text:000202E0 LDR R4, [R11,#var_564] .text:000202E4 MOV R2, R3,LSL#1 .text:000202E8 ADD R3, R2, R3 .text:000202EC ADD R3, R4, R3,LSL#4 .text:000202F0 CMP R3, #0 .text:000202F4 STR R2, [R11,#var_5C0] .text:000202F8 LDREQ R12, [R11,#var_4F0] .text:000202FC LDREQ R2, [R12],#4 .text:00020300 STREQ R12, [R11,#var_4F0] .text:00020304 LDRNE R3, [R3,#0x24] .text:00020308 LDRNE R0, [R11,#var_56C] .text:0002030C LDRNE R2, [R0,R3,LSL#3] .text:00020310 CMP R2, #0 .text:00020314 BEQ loc_20344 .text:00020318 MOV R1, #0x10 .text:0002031C STR R1, [R11,#var_580] .text:00020320 STR R2, [R11,#var_57C] .text:00020324 MOV R2, #0 .text:00020328 STR R2, [R11,#var_574] .text:0002032C MOV R3, #1 .text:00020330 STR R3, [R11,#var_584] .text:00020334 STR R2, [R11,#var_594] .text:00020338 MOV R4, #0x78 .text:0002033C STR R4, [R11,#var_5B8] .text:00020340 B loc_1F9BC .text:00020344 ; --------------------------------------------------------------------------- .text:00020344 .text:00020344 loc_20344 ; CODE XREF: vfprintf+37C8j .text:00020344 STR R2, [R11,#var_5A4] .text:00020348 LDR R12, [R11,#var_5AC] .text:0002034C LDR R7, =aNil ; "(nil)" .text:00020350 MOV R0, R12 .text:00020354 CMP R0, #4 .text:00020358 MOVLE R12, #5 .text:0002035C STR R12, [R11,#var_5AC] .text:00020360 B loc_206EC .text:00020364 ; --------------------------------------------------------------------------- .text:00020364 LDR R1, [R11,#var_504] .text:00020368 LDR R4, [R11,#var_564] .text:0002036C MOV R2, R1,LSL#1 .text:00020370 ADD R3, R2, R1 .text:00020374 ADD R3, R4, R3,LSL#4 .text:00020378 CMP R3, #0 .text:0002037C STR R2, [R11,#var_5C0] .text:00020380 BNE loc_203FC .text:00020384 LDR R12, [R11,#var_598] .text:00020388 CMP R12, #0 .text:0002038C BEQ loc_203AC .text:00020390 LDR R0, [R11,#var_4F0] .text:00020394 LDR R2, [R0],#4 .text:00020398 STR R0, [R11,#var_4F0] .text:0002039C MOV R3, R9 .text:000203A0 MOV R4, R3,ASR#31 .text:000203A4 STMIA R2, {R3,R4} .text:000203A8 B loc_20B24 .text:000203AC ; --------------------------------------------------------------------------- .text:000203AC .text:000203AC loc_203AC ; CODE XREF: vfprintf+3840j .text:000203AC LDR R1, [R11,#var_5A0] .text:000203B0 CMP R1, #0 .text:000203B4 BEQ loc_203CC .text:000203B8 LDR R2, [R11,#var_4F0] .text:000203BC LDR R3, [R2],#4 .text:000203C0 STR R2, [R11,#var_4F0] .text:000203C4 STRB R9, [R3] .text:000203C8 B loc_20B24 .text:000203CC ; --------------------------------------------------------------------------- .text:000203CC .text:000203CC loc_203CC ; CODE XREF: vfprintf+3868j .text:000203CC LDR R3, [R11,#var_59C] .text:000203D0 CMP R3, #0 .text:000203D4 BNE loc_203EC .text:000203D8 LDR R4, [R11,#var_4F0] .text:000203DC LDR R3, [R4],#4 .text:000203E0 STR R4, [R11,#var_4F0] .text:000203E4 STR R9, [R3] .text:000203E8 B loc_20B24 .text:000203EC ; --------------------------------------------------------------------------- .text:000203EC .text:000203EC loc_203EC ; CODE XREF: vfprintf+3888j .text:000203EC LDR R12, [R11,#var_4F0] .text:000203F0 LDR R2, [R12],#4 .text:000203F4 STR R12, [R11,#var_4F0] .text:000203F8 B loc_20470 .text:000203FC ; --------------------------------------------------------------------------- .text:000203FC .text:000203FC loc_203FC ; CODE XREF: vfprintf+3834j .text:000203FC LDR R0, [R11,#var_598] .text:00020400 CMP R0, #0 .text:00020404 BEQ loc_20424 .text:00020408 LDR R3, [R3,#0x24] .text:0002040C LDR R1, [R11,#var_56C] .text:00020410 LDR R0, [R1,R3,LSL#3] .text:00020414 MOV R1, R9 .text:00020418 MOV R2, R1,ASR#31 .text:0002041C STMIA R0, {R1,R2} .text:00020420 B loc_20B24 .text:00020424 ; --------------------------------------------------------------------------- .text:00020424 .text:00020424 loc_20424 ; CODE XREF: vfprintf+38B8j .text:00020424 LDR R2, [R11,#var_5A0] .text:00020428 CMP R2, #0 .text:0002042C BEQ loc_20444 .text:00020430 LDR R3, [R3,#0x24] .text:00020434 LDR R4, [R11,#var_56C] .text:00020438 LDR R2, [R4,R3,LSL#3] .text:0002043C STRB R9, [R2] .text:00020440 B loc_20B24 .text:00020444 ; --------------------------------------------------------------------------- .text:00020444 .text:00020444 loc_20444 ; CODE XREF: vfprintf+38E0j .text:00020444 LDR R12, [R11,#var_59C] .text:00020448 CMP R12, #0 .text:0002044C BNE loc_20464 .text:00020450 LDR R3, [R3,#0x24] .text:00020454 LDR R0, [R11,#var_56C] .text:00020458 LDR R2, [R0,R3,LSL#3] .text:0002045C STR R9, [R2] .text:00020460 B loc_20B24 .text:00020464 ; --------------------------------------------------------------------------- .text:00020464 .text:00020464 loc_20464 ; CODE XREF: vfprintf+3900j .text:00020464 LDR R3, [R3,#0x24] .text:00020468 LDR R1, [R11,#var_56C] .text:0002046C LDR R2, [R1,R3,LSL#3] .text:00020470 .text:00020470 loc_20470 ; CODE XREF: vfprintf+38ACj .text:00020470 STRB R9, [R2] .text:00020474 MOV R3, R9,ASR#8 .text:00020478 STRB R3, [R2,#1] .text:0002047C B loc_20B24 .text:00020480 ; --------------------------------------------------------------------------- .text:00020480 SUB R1, R11, #-var_410 .text:00020484 LDR R0, [R11,#var_508] .text:00020488 MOV R2, #0x3E8 .text:0002048C BL strerror_r .text:00020490 MOV R7, R0 .text:00020494 MOV R2, #0 .text:00020498 STR R2, [R11,#var_5A4] .text:0002049C B loc_206EC .text:000204A0 ; --------------------------------------------------------------------------- .text:000204A0 LDR R3, [R11,#var_5A4] .text:000204A4 CMP R3, #0 .text:000204A8 BNE loc_2059C .text:000204AC LDR R4, [R11,#var_5A8] .text:000204B0 LDR R12, [R11,#var_58C] .text:000204B4 SUB R4, R4, #1 .text:000204B8 CMP R12, #0 .text:000204BC STR R4, [R11,#var_5A8] .text:000204C0 BNE loc_204E0 .text:000204C4 CMP R4, #0 .text:000204C8 BLE loc_204E0 .text:000204CC MOV R0, R10 .text:000204D0 MOV R1, #0x20 .text:000204D4 MOV R2, R4 .text:000204D8 BL _IO_padn .text:000204DC ADD R9, R9, R0 .text:000204E0 .text:000204E0 loc_204E0 ; CODE XREF: vfprintf+3974j .text:000204E0 ; vfprintf+397Cj .text:000204E0 LDR R0, [R11,#var_504] .text:000204E4 LDR R4, [R11,#var_564] .text:000204E8 MOV R2, R0,LSL#1 .text:000204EC ADD R3, R2, R0 .text:000204F0 ADD R1, R4, R3,LSL#4 .text:000204F4 CMP R1, #0 .text:000204F8 STR R2, [R11,#var_5C0] .text:000204FC BNE loc_20540 .text:00020500 LDR R2, [R10,#0x14] .text:00020504 LDR R12, [R11,#var_4F0] .text:00020508 LDR R3, [R10,#0x18] .text:0002050C ADD R12, R12, #4 .text:00020510 STR R12, [R11,#var_4F0] .text:00020514 CMP R2, R3 .text:00020518 LDRB R1, [R12,#-4] .text:0002051C BCC loc_20530 .text:00020520 .text:00020520 loc_20520 ; CODE XREF: vfprintf+3A0Cj .text:00020520 MOV R0, R10 .text:00020524 BL __overflow .text:00020528 CMN R0, #1 .text:0002052C B loc_20568 .text:00020530 ; --------------------------------------------------------------------------- .text:00020530 .text:00020530 loc_20530 ; CODE XREF: vfprintf+39D0j .text:00020530 STRB R1, [R2],#1 .text:00020534 CMN R1, #1 .text:00020538 STR R2, [R10,#0x14] .text:0002053C B loc_20568 .text:00020540 ; --------------------------------------------------------------------------- .text:00020540 .text:00020540 loc_20540 ; CODE XREF: vfprintf+39B0j .text:00020540 ADD R0, R10, #0x14 .text:00020544 LDMIA R0, {R0,R3} .text:00020548 LDR R2, [R1,#0x24] .text:0002054C CMP R0, R3 .text:00020550 LDR R3, [R11,#var_56C] .text:00020554 LDRB R1, [R3,R2,LSL#3] .text:00020558 BCS loc_20520 .text:0002055C STRB R1, [R0],#1 .text:00020560 CMN R1, #1 .text:00020564 STR R0, [R10,#0x14] .text:00020568 .text:00020568 loc_20568 ; CODE XREF: vfprintf+39E0j .text:00020568 ; vfprintf+39F0j .text:00020568 BEQ loc_1E6B4 .text:0002056C ADD R9, R9, #1 .text:00020570 LDR R4, [R11,#var_58C] .text:00020574 CMP R4, #0 .text:00020578 BEQ loc_20B24 .text:0002057C LDR R12, [R11,#var_5A8] .text:00020580 CMP R12, #0 .text:00020584 BLE loc_20B24 .text:00020588 MOV R0, R10 .text:0002058C MOV R1, #0x20 .text:00020590 MOV R2, R12 .text:00020594 BL _IO_padn .text:00020598 B loc_20B20 .text:0002059C ; --------------------------------------------------------------------------- .text:0002059C .text:0002059C loc_2059C ; CODE XREF: vfprintf+395Cj .text:0002059C MOV R6, SP .text:000205A0 BL __ctype_get_mb_cur_max .text:000205A4 BIC R0, R0, #0xE0000000 .text:000205A8 ADD R0, R0, #3 .text:000205AC BIC R0, R0, #0xC0000003 .text:000205B0 RSB SP, R0, SP .text:000205B4 SUB R4, R11, #-var_4C0 .text:000205B8 SUB R4, R4, #8 .text:000205BC SUB R4, R4, #0xC .text:000205C0 MOV R0, R4 .text:000205C4 MOV R1, #0 .text:000205C8 MOV R2, #8 .text:000205CC ADD R5, SP, #0xBCC+var_BC8 .text:000205D0 BL memset .text:000205D4 LDR R0, [R11,#var_504] .text:000205D8 LDR R1, [R11,#var_564] .text:000205DC MOV R2, R0,LSL#1 .text:000205E0 ADD R3, R2, R0 .text:000205E4 ADD R3, R1, R3,LSL#4 .text:000205E8 CMP R3, #0 .text:000205EC STR R2, [R11,#var_5C0] .text:000205F0 MOV R2, R4 .text:000205F4 LDREQ R3, [R11,#var_4F0] .text:000205F8 LDREQ R1, [R3],#4 .text:000205FC STREQ R3, [R11,#var_4F0] .text:00020600 LDRNE R3, [R3,#0x24] .text:00020604 LDRNE R4, [R11,#var_56C] .text:00020608 LDRNE R1, [R4,R3,LSL#3] .text:0002060C MOV R0, R5 .text:00020610 BL wcrtomb .text:00020614 MOV R4, R0 .text:00020618 CMN R4, #1 .text:0002061C BEQ loc_1E7A0 .text:00020620 LDR R12, [R11,#var_5A8] .text:00020624 LDR R0, [R11,#var_58C] .text:00020628 RSB R12, R4, R12 .text:0002062C CMP R0, #0 .text:00020630 STR R12, [R11,#var_5A8] .text:00020634 BNE loc_20654 .text:00020638 CMP R12, #0 .text:0002063C BLE loc_20654 .text:00020640 MOV R0, R10 .text:00020644 MOV R1, #0x20 .text:00020648 MOV R2, R12 .text:0002064C BL _IO_padn .text:00020650 ADD R9, R9, R0 .text:00020654 .text:00020654 loc_20654 ; CODE XREF: vfprintf+3AE8j .text:00020654 ; vfprintf+3AF0j .text:00020654 MOV R0, R10 .text:00020658 LDRB R3, [R10,#0x46] .text:0002065C MOV R1, R5 .text:00020660 MOV R3, R3,LSL#24 .text:00020664 ADD R3, R10, R3,ASR#24 .text:00020668 LDR R12, [R3,#0x94] .text:0002066C MOV R2, R4 .text:00020670 MOV LR, PC .text:00020674 LDR PC, [R12,#0x1C] .text:00020678 CMP R0, R4 .text:0002067C BNE loc_1E7A0 .text:00020680 ADD R9, R9, R4 .text:00020684 LDR R1, [R11,#var_58C] .text:00020688 CMP R1, #0 .text:0002068C BEQ loc_206AC .text:00020690 LDR R2, [R11,#var_5A8] .text:00020694 CMP R2, #0 .text:00020698 BLE loc_206AC .text:0002069C MOV R0, R10 .text:000206A0 MOV R1, #0x20 .text:000206A4 BL _IO_padn .text:000206A8 ADD R9, R9, R0 .text:000206AC .text:000206AC loc_206AC ; CODE XREF: vfprintf+3B40j .text:000206AC ; vfprintf+3B4Cj .text:000206AC MOV SP, R6 .text:000206B0 B loc_20B24 .text:000206B4 ; --------------------------------------------------------------------------- .text:000206B4 LDR R4, [R11,#var_504] .text:000206B8 LDR R12, [R11,#var_564] .text:000206BC ADD R3, R4, R4,LSL#1 .text:000206C0 ADD R3, R12, R3,LSL#4 .text:000206C4 CMP R3, #0 .text:000206C8 BNE loc_206E0 .text:000206CC LDR R0, [R11,#var_4F0] .text:000206D0 LDR R7, [R0],#4 .text:000206D4 STR R0, [R11,#var_4F0] .text:000206D8 B loc_206EC .text:000206D8 ; --------------------------------------------------------------------------- .text:000206DC off_206DC DCD aNil ; DATA XREF: vfprintf+3800r .text:000206DC ; "(nil)" .text:000206E0 ; --------------------------------------------------------------------------- .text:000206E0 .text:000206E0 loc_206E0 ; CODE XREF: vfprintf+3B7Cj .text:000206E0 LDR R3, [R3,#0x24] .text:000206E4 LDR R1, [R11,#var_56C] .text:000206E8 LDR R7, [R1,R3,LSL#3] .text:000206EC .text:000206EC loc_206EC ; CODE XREF: vfprintf+3814j .text:000206EC ; vfprintf+3950j ... .text:000206EC MOV R2, #0 .text:000206F0 CMP R7, R2 .text:000206F4 STR R2, [R11,#var_5BC] .text:000206F8 BNE loc_20734 .text:000206FC LDR R4, [R11,#var_5AC] .text:00020700 CMP R4, #5 .text:00020704 MOVLE R3, #0 .text:00020708 MOVGT R3, #1 .text:0002070C CMN R4, #1 .text:00020710 MOVNE R0, R3 .text:00020714 MOVEQ R0, #1 .text:00020718 CMP R0, R2 .text:0002071C MOVNE R5, #6 .text:00020720 LDRNE R7, =null ; "(null)" .text:00020724 BNE loc_20934 .text:00020728 MOV R5, R0 .text:0002072C LDR R7, =dword_571DC .text:00020730 B loc_20934 .text:00020734 ; --------------------------------------------------------------------------- .text:00020734 .text:00020734 loc_20734 ; CODE XREF: vfprintf+3BACj .text:00020734 LDR R12, [R11,#var_5B8] .text:00020738 LDR R0, [R11,#var_5A4] .text:0002073C SUBS R3, R12, #0x53 .text:00020740 MOVNE R3, #1 .text:00020744 CMP R0, #0 .text:00020748 MOVNE R3, #0 .text:0002074C CMP R3, #0 .text:00020750 BEQ loc_20824 .text:00020754 LDR R1, [R11,#var_5AC] .text:00020758 CMN R1, #1 .text:0002075C BEQ loc_20814 .text:00020760 LDR R3, =_nl_current_LC_CTYPE .text:00020764 LDR R2, [R3] .text:00020768 LDR R1, [R2,#0x54] .text:0002076C CMP R1, #1 .text:00020770 BNE loc_20788 .text:00020774 LDR R1, [R11,#var_5AC] .text:00020778 MOV R0, R7 .text:0002077C BL strnlen .text:00020780 MOV R5, R0 .text:00020784 B loc_20934 .text:00020788 ; --------------------------------------------------------------------------- .text:00020788 .text:00020788 loc_20788 ; CODE XREF: vfprintf+3C24j .text:00020788 STR R7, [R11,#var_4E0] .text:0002078C MOV R8, SP .text:00020790 SUB R5, R11, #-var_4D0 .text:00020794 SUB R5, R5, #8 .text:00020798 SUB R5, R5, #4 .text:0002079C LDR R2, [R11,#var_5AC] .text:000207A0 MOV R0, R5 .text:000207A4 LDR R1, [R11,#var_5BC] .text:000207A8 MOV R3, R2,LSL#5 .text:000207AC SUB SP, SP, R3,LSR#3 .text:000207B0 MOV R2, #8 .text:000207B4 ADD R4, SP, #0xBCC+var_BC8 .text:000207B8 BL memset .text:000207BC STR R5, [SP,#0xBCC+var_BCC] .text:000207C0 MOV R0, R4 .text:000207C4 SUB R1, R11, #-var_4D0 .text:000207C8 SUB R1, R1, #8 .text:000207CC LDR R2, [R11,#var_5AC] .text:000207D0 SUB R1, R1, #8 .text:000207D4 MOV R3, R2 .text:000207D8 BL mbsnrtowcs .text:000207DC CMN R0, #1 .text:000207E0 BEQ loc_1E7AC .text:000207E4 LDR R3, [R11,#var_4E0] .text:000207E8 CMP R3, #0 .text:000207EC BNE loc_20800 .text:000207F0 MOV R0, R7 .text:000207F4 BL strlen .text:000207F8 MOV R5, R0 .text:000207FC B loc_2080C .text:00020800 ; --------------------------------------------------------------------------- .text:00020800 .text:00020800 loc_20800 ; CODE XREF: vfprintf+3CA0j .text:00020800 LDR R2, [R11,#var_4DC] .text:00020804 RSB R3, R7, R3 .text:00020808 RSB R5, R2, R3 .text:0002080C .text:0002080C loc_2080C ; CODE XREF: vfprintf+3CB0j .text:0002080C MOV SP, R8 .text:00020810 B loc_20934 .text:00020814 ; --------------------------------------------------------------------------- .text:00020814 .text:00020814 loc_20814 ; CODE XREF: vfprintf+3C10j .text:00020814 MOV R0, R7 .text:00020818 BL strlen .text:0002081C MOV R5, R0 .text:00020820 B loc_20934 .text:00020824 ; --------------------------------------------------------------------------- .text:00020824 .text:00020824 loc_20824 ; CODE XREF: vfprintf+3C04j .text:00020824 STR R7, [R11,#var_4EC] .text:00020828 SUB R4, R11, #-var_4E0 .text:0002082C SUB R4, R4, #8 .text:00020830 MOV R0, R4 .text:00020834 LDR R1, [R11,#var_5BC] .text:00020838 MOV R2, #8 .text:0002083C BL memset .text:00020840 LDR R3, [R11,#var_5AC] .text:00020844 MOV R6, R4 .text:00020848 CMP R3, #0 .text:0002084C BLE loc_208AC .text:00020850 CMP R3, #0x8000 .text:00020854 BLT loc_20868 .text:00020858 MOV R0, R3 .text:0002085C BL malloc .text:00020860 SUBS R7, R0, #0 .text:00020864 BNE loc_20880 .text:00020868 .text:00020868 loc_20868 ; CODE XREF: vfprintf+3D08j .text:00020868 LDR R4, [R11,#var_5AC] .text:0002086C ADD R3, R4, #3 .text:00020870 BIC R3, R3, #3 .text:00020874 RSB SP, R3, SP .text:00020878 ADD R7, SP, #0xBCC+var_BC8 .text:0002087C B loc_20888 .text:00020880 ; --------------------------------------------------------------------------- .text:00020880 .text:00020880 loc_20880 ; CODE XREF: vfprintf+3D18j .text:00020880 MOV R12, #1 .text:00020884 STR R12, [R11,#var_5BC] .text:00020888 .text:00020888 loc_20888 ; CODE XREF: vfprintf+3D30j .text:00020888 MOV R0, R7 .text:0002088C SUB R1, R11, #-var_4E0 .text:00020890 SUB R1, R1, #8 .text:00020894 SUB R1, R1, #4 .text:00020898 LDR R2, [R11,#var_5AC] .text:0002089C MOV R3, R6 .text:000208A0 BL wcsrtombs .text:000208A4 MOV R5, R0 .text:000208A8 B loc_2092C .text:000208AC ; --------------------------------------------------------------------------- .text:000208AC .text:000208AC loc_208AC ; CODE XREF: vfprintf+3D00j .text:000208AC SUB R4, R11, #-var_4E0 .text:000208B0 SUB R4, R4, #8 .text:000208B4 SUB R4, R4, #4 .text:000208B8 MOV R1, R4 .text:000208BC LDR R0, [R11,#var_5BC] .text:000208C0 MOV R3, R6 .text:000208C4 MOV R2, R0 .text:000208C8 BL wcsrtombs .text:000208CC MOV R5, R0 .text:000208D0 CMN R5, #1 .text:000208D4 BEQ loc_2092C .text:000208D8 ADD R3, R5, #1 .text:000208DC CMP R3, #0x8000 .text:000208E0 MOV R8, R3 .text:000208E4 STR R7, [R11,#var_4EC] .text:000208E8 BCC loc_208FC .text:000208EC MOV R0, R8 .text:000208F0 BL malloc .text:000208F4 SUBS R7, R0, #0 .text:000208F8 BNE loc_20910 .text:000208FC .text:000208FC loc_208FC ; CODE XREF: vfprintf+3D9Cj .text:000208FC ADD R3, R5, #4 .text:00020900 BIC R3, R3, #3 .text:00020904 RSB SP, R3, SP .text:00020908 ADD R7, SP, #0xBCC+var_BC8 .text:0002090C B loc_20918 .text:00020910 ; --------------------------------------------------------------------------- .text:00020910 .text:00020910 loc_20910 ; CODE XREF: vfprintf+3DACj .text:00020910 MOV R0, #1 .text:00020914 STR R0, [R11,#var_5BC] .text:00020918 .text:00020918 loc_20918 ; CODE XREF: vfprintf+3DC0j .text:00020918 MOV R0, R7 .text:0002091C MOV R1, R4 .text:00020920 MOV R2, R8 .text:00020924 MOV R3, R6 .text:00020928 BL wcsrtombs .text:0002092C .text:0002092C loc_2092C ; CODE XREF: vfprintf+3D5Cj .text:0002092C ; vfprintf+3D88j .text:0002092C CMN R5, #1 .text:00020930 BEQ loc_1E6B4 .text:00020934 .text:00020934 loc_20934 ; CODE XREF: vfprintf+3BD8j .text:00020934 ; vfprintf+3BE4j ... .text:00020934 LDR R1, [R11,#var_5A8] .text:00020938 SUBS R1, R1, R5 .text:0002093C STR R1, [R11,#var_5A8] .text:00020940 BPL loc_20984 .text:00020944 MOV R0, R10 .text:00020948 LDRB R3, [R10,#0x46] .text:0002094C MOV R1, R7 .text:00020950 MOV R3, R3,LSL#24 .text:00020954 ADD R3, R10, R3,ASR#24 .text:00020958 LDR R12, [R3,#0x94] .text:0002095C MOV R2, R5 .text:00020960 MOV LR, PC .text:00020964 LDR PC, [R12,#0x1C] .text:00020968 CMP R0, R5 .text:0002096C BNE loc_1E6B4 .text:00020970 ADD R9, R9, R5 .text:00020974 LDR R2, [R11,#var_504] .text:00020978 MOV R2, R2,LSL#1 .text:0002097C STR R2, [R11,#var_5C0] .text:00020980 B loc_20B24 .text:00020984 ; --------------------------------------------------------------------------- .text:00020984 .text:00020984 loc_20984 ; CODE XREF: vfprintf+3DF4j .text:00020984 LDR R3, [R11,#var_58C] .text:00020988 CMP R3, #0 .text:0002098C BNE loc_209B0 .text:00020990 LDR R4, [R11,#var_5A8] .text:00020994 CMP R4, #0 .text:00020998 BLE loc_209B0 .text:0002099C MOV R0, R10 .text:000209A0 MOV R1, #0x20 .text:000209A4 MOV R2, R4 .text:000209A8 BL _IO_padn .text:000209AC ADD R9, R9, R0 .text:000209B0 .text:000209B0 loc_209B0 ; CODE XREF: vfprintf+3E40j .text:000209B0 ; vfprintf+3E4Cj .text:000209B0 MOV R0, R10 .text:000209B4 LDRB R3, [R10,#0x46] .text:000209B8 MOV R1, R7 .text:000209BC MOV R3, R3,LSL#24 .text:000209C0 ADD R3, R10, R3,ASR#24 .text:000209C4 LDR R12, [R3,#0x94] .text:000209C8 MOV R2, R5 .text:000209CC MOV LR, PC .text:000209D0 LDR PC, [R12,#0x1C] .text:000209D4 CMP R0, R5 .text:000209D8 BNE loc_1E6B4 .text:000209DC ADD R9, R9, R5 .text:000209E0 LDR R12, [R11,#var_58C] .text:000209E4 CMP R12, #0 .text:000209E8 BEQ loc_20A0C .text:000209EC LDR R0, [R11,#var_5A8] .text:000209F0 CMP R0, #0 .text:000209F4 BLE loc_20A0C .text:000209F8 MOV R0, R10 .text:000209FC LDR R2, [R11,#var_5A8] .text:00020A00 MOV R1, #0x20 .text:00020A04 BL _IO_padn .text:00020A08 ADD R9, R9, R0 .text:00020A0C .text:00020A0C loc_20A0C ; CODE XREF: vfprintf+3E9Cj .text:00020A0C ; vfprintf+3EA8j .text:00020A0C LDR R1, [R11,#var_5BC] .text:00020A10 LDR R2, [R11,#var_504] .text:00020A14 CMP R1, #0 .text:00020A18 MOV R2, R2,LSL#1 .text:00020A1C STR R2, [R11,#var_5C0] .text:00020A20 BEQ loc_20B24 .text:00020A24 MOV R0, R7 .text:00020A28 BL free .text:00020A2C B loc_20B24 .text:00020A30 ; --------------------------------------------------------------------------- .text:00020A30 .text:00020A30 loc_20A30 ; DATA XREF: vfprintf:loc_1F600o .text:00020A30 ; vfprintf:off_1F660o .text:00020A30 LDR R3, =__printf_function_table .text:00020A34 LDR R0, [R3] .text:00020A38 CMP R0, #0 .text:00020A3C BEQ loc_20A74 .text:00020A40 LDR R4, [R11,#var_504] .text:00020A44 LDR R12, [R11,#var_564] .text:00020A48 MOV R3, R4,LSL#1 .text:00020A4C ADD R2, R3, R4 .text:00020A50 ADD R2, R12, R2,LSL#4 .text:00020A54 LDR R1, [R2,#8] .text:00020A58 STR R3, [R11,#var_5C0] .text:00020A5C LDR R12, [R0,R1,LSL#2] .text:00020A60 B loc_20A84 .text:00020A60 ; --------------------------------------------------------------------------- .text:00020A64 off_20A64 DCD null ; DATA XREF: vfprintf+3BD4r .text:00020A64 ; "(null)" .text:00020A68 off_20A68 DCD dword_571DC ; DATA XREF: vfprintf+3BE0r .text:00020A6C off_20A6C DCD _nl_current_LC_CTYPE ; DATA XREF: vfprintf+3C14r .text:00020A70 off_20A70 DCD __printf_function_table ; DATA XREF: vfprintf:loc_20A30r .text:00020A74 ; --------------------------------------------------------------------------- .text:00020A74 .text:00020A74 loc_20A74 ; CODE XREF: vfprintf+3EF0j .text:00020A74 MOV R12, R0 .text:00020A78 LDR R0, [R11,#var_504] .text:00020A7C MOV R0, R0,LSL#1 .text:00020A80 STR R0, [R11,#var_5C0] .text:00020A84 .text:00020A84 loc_20A84 ; CODE XREF: vfprintf+3F14j .text:00020A84 LDR R1, [R11,#var_5C0] .text:00020A88 LDR R2, [R11,#var_504] .text:00020A8C MOV R0, #0 .text:00020A90 LDR R4, [R11,#var_564] .text:00020A94 ADD R3, R1, R2 .text:00020A98 LDR R1, =printf_unknown .text:00020A9C ADD R3, R4, R3,LSL#4 .text:00020AA0 LDR R2, [R3,#0x2C] .text:00020AA4 CMP R12, R0 .text:00020AA8 LDR R4, [R11,#var_5C0] .text:00020AAC MOVEQ R12, R1 .text:00020AB0 SUB SP, SP, R2,LSL#2 .text:00020AB4 CMP R0, R2 .text:00020AB8 ADD LR, SP, #0xBCC+var_BC8 .text:00020ABC BCS loc_20AF4 .text:00020AC0 .text:00020AC0 loc_20AC0 ; CODE XREF: vfprintf+3FA4j .text:00020AC0 LDR R1, [R11,#var_504] .text:00020AC4 LDR R2, [R11,#var_564] .text:00020AC8 ADD R3, R4, R1 .text:00020ACC ADD R3, R2, R3,LSL#4 .text:00020AD0 LDR R2, [R3,#0x24] .text:00020AD4 LDR R1, [R11,#var_56C] .text:00020AD8 ADD R2, R2, R0 .text:00020ADC ADD R2, R1, R2,LSL#3 .text:00020AE0 STR R2, [LR,R0,LSL#2] .text:00020AE4 LDR R1, [R3,#0x2C] .text:00020AE8 ADD R0, R0, #1 .text:00020AEC CMP R0, R1 .text:00020AF0 BCC loc_20AC0 .text:00020AF4 .text:00020AF4 loc_20AF4 ; CODE XREF: vfprintf+3F70j .text:00020AF4 LDR R2, [R11,#var_5C0] .text:00020AF8 LDR R3, [R11,#var_504] .text:00020AFC MOV R0, R10 .text:00020B00 LDR R4, [R11,#var_564] .text:00020B04 ADD R1, R2, R3 .text:00020B08 ADD R1, R4, R1,LSL#4 .text:00020B0C MOV R2, LR .text:00020B10 MOV LR, PC .text:00020B14 MOV PC, R12 .text:00020B18 CMP R0, #0 .text:00020B1C .text:00020B1C loc_20B1C ; CODE XREF: vfprintf+3600j .text:00020B1C ; vfprintf+378Cj .text:00020B1C BLT loc_1E6B4 .text:00020B20 .text:00020B20 loc_20B20 ; CODE XREF: vfprintf+3478j .text:00020B20 ; vfprintf+3A4Cj .text:00020B20 ADD R9, R9, R0 .text:00020B24 .text:00020B24 loc_20B24 ; CODE XREF: vfprintf+2AFCj .text:00020B24 ; vfprintf+325Cj ... .text:00020B24 LDR R12, [R11,#var_5C0] .text:00020B28 LDR R0, [R11,#var_504] .text:00020B2C LDR R1, [R11,#var_564] .text:00020B30 LDRB R3, [R10,#0x46] .text:00020B34 ADD R4, R12, R0 .text:00020B38 ADD R4, R1, R4,LSL#4 .text:00020B3C LDR R1, [R4,#0x14] .text:00020B40 MOV R3, R3,LSL#24 .text:00020B44 ADD R12, R4, #0x18 .text:00020B48 LDMDA R12, {R2,R12} .text:00020B4C SUB R2, R12, R2 .text:00020B50 ADD R3, R10, R3,ASR#24 .text:00020B54 LDR R12, [R3,#0x94] .text:00020B58 MOV R0, R10 .text:00020B5C MOV LR, PC .text:00020B60 LDR PC, [R12,#0x1C] .text:00020B64 ADD R1, R4, #0x18 .text:00020B68 LDMDA R1, {R1,R3} .text:00020B6C SUB R3, R3, R1 .text:00020B70 CMP R0, R3 .text:00020B74 BNE loc_1E6B4 .text:00020B78 ADD R9, R9, R0 .text:00020B7C LDR R2, [R11,#var_504] .text:00020B80 LDR R3, [R11,#var_560] .text:00020B84 ADD R2, R2, #1 .text:00020B88 STR R2, [R11,#var_504] .text:00020B8C CMP R2, R3 .text:00020B90 BCC loc_1F45C .text:00020B94 .text:00020B94 loc_20B94 ; CODE XREF: vfprintf+1FCj .text:00020B94 ; vfprintf+1B6Cj ... .text:00020B94 LDR R3, [R10] .text:00020B98 TST R3, #0x8000 .text:00020B9C BNE loc_20BA8 .text:00020BA0 MOV R0, R10 .text:00020BA4 BL funlockfile .text:00020BA8 .text:00020BA8 loc_20BA8 ; CODE XREF: vfprintf+4050j .text:00020BA8 LDR R4, [R11,#var_510] .text:00020BAC CMP R4, #0 .text:00020BB0 BEQ loc_20BC0 .text:00020BB4 SUB R0, R11, #-var_420 .text:00020BB8 MOV R1, #0 .text:00020BBC BL 0 .text:00020BC0 .text:00020BC0 loc_20BC0 ; CODE XREF: vfprintf+4064j .text:00020BC0 MOV R0, R9 .text:00020BC4 .text:00020BC4 loc_20BC4 ; CODE XREF: vfprintf+C0j .text:00020BC4 ; vfprintf+1C44j .text:00020BC4 B locret_20BCC .text:00020BC4 ; --------------------------------------------------------------------------- .text:00020BC8 off_20BC8 DCD printf_unknown ; DATA XREF: vfprintf+3F4Cr .text:00020BCC ; --------------------------------------------------------------------------- .text:00020BCC .text:00020BCC locret_20BCC ; CODE XREF: vfprintf:loc_20BC4j .text:00020BCC LDMDB R11, {R4-R11,SP,PC} .text:00020BCC ; End of function vfprintf .text:00020BCC .text:00020BD0 .text:00020BD0 ; =============== S U B R O U T I N E ======================================= .text:00020BD0 .text:00020BD0 ; Attributes: bp-based frame .text:00020BD0 .text:00020BD0 printf_unknown ; DATA XREF: vfprintf+3F4Co .text:00020BD0 ; vfprintf:off_20BC8o .text:00020BD0 MOV R12, SP .text:00020BD4 STMFD SP!, {R4-R12,LR,PC} .text:00020BD8 MOV R8, R1 .text:00020BDC LDR R2, [R8,#8] .text:00020BE0 SUB R11, R12, #4 .text:00020BE4 LDR R3, [R8,#4] .text:00020BE8 MOV R4, R0 .text:00020BEC CMP R2, R3 .text:00020BF0 MOVLT R2, R3 .text:00020BF4 ADD R2, R2, #0x20 .text:00020BF8 BIC R2, R2, #0xE0000000 .text:00020BFC ADD R3, R2, #3 .text:00020C00 BIC R3, R3, #0xC0000003 .text:00020C04 RSB SP, R3, SP .text:00020C08 ADD R9, SP, R2 .text:00020C0C MOV R1, #0x25 .text:00020C10 ADD R2, R4, #0x14 .text:00020C14 LDMIA R2, {R2,R3} .text:00020C18 CMP R2, R3 .text:00020C1C BCC loc_20C30 .text:00020C20 BL __overflow .text:00020C24 CMN R0, #1 .text:00020C28 BEQ loc_20EA4 .text:00020C2C B loc_20C38 .text:00020C30 ; --------------------------------------------------------------------------- .text:00020C30 .text:00020C30 loc_20C30 ; CODE XREF: printf_unknown+4Cj .text:00020C30 STRB R1, [R2],#1 .text:00020C34 STR R2, [R4,#0x14] .text:00020C38 .text:00020C38 loc_20C38 ; CODE XREF: printf_unknown+5Cj .text:00020C38 MOV R6, #1 .text:00020C3C LDRB R3, [R8,#0xC] .text:00020C40 TST R3, #8 .text:00020C44 BEQ loc_20C80 .text:00020C48 ADD R2, R4, #0x14 .text:00020C4C LDMIA R2, {R2,R3} .text:00020C50 MOV R1, #0x23 .text:00020C54 CMP R2, R3 .text:00020C58 BCC loc_20C70 .text:00020C5C MOV R0, R4 .text:00020C60 BL __overflow .text:00020C64 CMN R0, #1 .text:00020C68 BEQ loc_20F78 .text:00020C6C B loc_20C78 .text:00020C70 ; --------------------------------------------------------------------------- .text:00020C70 .text:00020C70 loc_20C70 ; CODE XREF: printf_unknown+88j .text:00020C70 STRB R1, [R2],#1 .text:00020C74 STR R2, [R4,#0x14] .text:00020C78 .text:00020C78 loc_20C78 ; CODE XREF: printf_unknown+9Cj .text:00020C78 MOV R6, #2 .text:00020C7C LDRB R3, [R8,#0xC] .text:00020C80 .text:00020C80 loc_20C80 ; CODE XREF: printf_unknown+74j .text:00020C80 MOVS R2, R3,LSR#7 .text:00020C84 BEQ loc_20CC0 .text:00020C88 ADD R2, R4, #0x14 .text:00020C8C LDMIA R2, {R2,R3} .text:00020C90 MOV R1, #0x27 .text:00020C94 CMP R2, R3 .text:00020C98 BCC loc_20CB0 .text:00020C9C MOV R0, R4 .text:00020CA0 BL __overflow .text:00020CA4 CMN R0, #1 .text:00020CA8 BEQ loc_20F78 .text:00020CAC B loc_20CB8 .text:00020CB0 ; --------------------------------------------------------------------------- .text:00020CB0 .text:00020CB0 loc_20CB0 ; CODE XREF: printf_unknown+C8j .text:00020CB0 STRB R1, [R2],#1 .text:00020CB4 STR R2, [R4,#0x14] .text:00020CB8 .text:00020CB8 loc_20CB8 ; CODE XREF: printf_unknown+DCj .text:00020CB8 ADD R6, R6, #1 .text:00020CBC LDRB R3, [R8,#0xC] .text:00020CC0 .text:00020CC0 loc_20CC0 ; CODE XREF: printf_unknown+B4j .text:00020CC0 AND R2, R3, #0xFF .text:00020CC4 TST R2, #0x40 .text:00020CC8 BEQ loc_20CF4 .text:00020CCC ADD R2, R4, #0x14 .text:00020CD0 LDMIA R2, {R2,R3} .text:00020CD4 MOV R1, #0x2B .text:00020CD8 CMP R2, R3 .text:00020CDC BCC loc_20D10 .text:00020CE0 .text:00020CE0 loc_20CE0 ; CODE XREF: printf_unknown+13Cj .text:00020CE0 MOV R0, R4 .text:00020CE4 BL __overflow .text:00020CE8 CMN R0, #1 .text:00020CEC BEQ loc_20F78 .text:00020CF0 B loc_20D18 .text:00020CF4 ; --------------------------------------------------------------------------- .text:00020CF4 .text:00020CF4 loc_20CF4 ; CODE XREF: printf_unknown+F8j .text:00020CF4 TST R2, #0x10 .text:00020CF8 BEQ loc_20D20 .text:00020CFC ADD R2, R4, #0x14 .text:00020D00 LDMIA R2, {R2,R3} .text:00020D04 MOV R1, #0x20 .text:00020D08 CMP R2, R3 .text:00020D0C BCS loc_20CE0 .text:00020D10 .text:00020D10 loc_20D10 ; CODE XREF: printf_unknown+10Cj .text:00020D10 STRB R1, [R2],#1 .text:00020D14 STR R2, [R4,#0x14] .text:00020D18 .text:00020D18 loc_20D18 ; CODE XREF: printf_unknown+120j .text:00020D18 ADD R6, R6, #1 .text:00020D1C LDRB R3, [R8,#0xC] .text:00020D20 .text:00020D20 loc_20D20 ; CODE XREF: printf_unknown+128j .text:00020D20 TST R3, #0x20 .text:00020D24 BEQ loc_20D5C .text:00020D28 ADD R2, R4, #0x14 .text:00020D2C LDMIA R2, {R2,R3} .text:00020D30 MOV R1, #0x2D .text:00020D34 CMP R2, R3 .text:00020D38 BCC loc_20D50 .text:00020D3C MOV R0, R4 .text:00020D40 BL __overflow .text:00020D44 CMN R0, #1 .text:00020D48 BEQ loc_20F78 .text:00020D4C B loc_20D58 .text:00020D50 ; --------------------------------------------------------------------------- .text:00020D50 .text:00020D50 loc_20D50 ; CODE XREF: printf_unknown+168j .text:00020D50 STRB R1, [R2],#1 .text:00020D54 STR R2, [R4,#0x14] .text:00020D58 .text:00020D58 loc_20D58 ; CODE XREF: printf_unknown+17Cj .text:00020D58 ADD R6, R6, #1 .text:00020D5C .text:00020D5C loc_20D5C ; CODE XREF: printf_unknown+154j .text:00020D5C LDR R1, [R8,#0x10] .text:00020D60 CMP R1, #0x30 .text:00020D64 BNE loc_20D98 .text:00020D68 ADD R2, R4, #0x14 .text:00020D6C LDMIA R2, {R2,R3} .text:00020D70 CMP R2, R3 .text:00020D74 BCC loc_20D8C .text:00020D78 MOV R0, R4 .text:00020D7C BL __overflow .text:00020D80 CMN R0, #1 .text:00020D84 BEQ loc_20F78 .text:00020D88 B loc_20D94 .text:00020D8C ; --------------------------------------------------------------------------- .text:00020D8C .text:00020D8C loc_20D8C ; CODE XREF: printf_unknown+1A4j .text:00020D8C STRB R1, [R2],#1 .text:00020D90 STR R2, [R4,#0x14] .text:00020D94 .text:00020D94 loc_20D94 ; CODE XREF: printf_unknown+1B8j .text:00020D94 ADD R6, R6, #1 .text:00020D98 .text:00020D98 loc_20D98 ; CODE XREF: printf_unknown+194j .text:00020D98 LDRB R3, [R8,#0xD] .text:00020D9C TST R3, #8 .text:00020DA0 BEQ loc_20DD8 .text:00020DA4 ADD R2, R4, #0x14 .text:00020DA8 LDMIA R2, {R2,R3} .text:00020DAC MOV R1, #0x49 .text:00020DB0 CMP R2, R3 .text:00020DB4 BCC loc_20DCC .text:00020DB8 MOV R0, R4 .text:00020DBC BL __overflow .text:00020DC0 CMN R0, #1 .text:00020DC4 BEQ loc_20F78 .text:00020DC8 B loc_20DD4 .text:00020DCC ; --------------------------------------------------------------------------- .text:00020DCC .text:00020DCC loc_20DCC ; CODE XREF: printf_unknown+1E4j .text:00020DCC STRB R1, [R2],#1 .text:00020DD0 STR R2, [R4,#0x14] .text:00020DD4 .text:00020DD4 loc_20DD4 ; CODE XREF: printf_unknown+1F8j .text:00020DD4 ADD R6, R6, #1 .text:00020DD8 .text:00020DD8 loc_20DD8 ; CODE XREF: printf_unknown+1D0j .text:00020DD8 LDR R0, [R8,#4] .text:00020DDC CMP R0, #0 .text:00020DE0 BEQ loc_20E64 .text:00020DE4 MOV R5, R0 .text:00020DE8 MOV R7, R9 .text:00020DEC LDR R10, =_itoa_lower_digits .text:00020DF0 .text:00020DF0 loc_20DF0 ; CODE XREF: printf_unknown+244j .text:00020DF0 MOV R0, R5 .text:00020DF4 MOV R1, #0xA .text:00020DF8 BL __umodsi3 .text:00020DFC LDRB R3, [R10,R0] .text:00020E00 STRB R3, [R7,#-1]! .text:00020E04 MOV R0, R5 .text:00020E08 MOV R1, #0xA .text:00020E0C BL __udivsi3 .text:00020E10 SUBS R5, R0, #0 .text:00020E14 BNE loc_20DF0 .text:00020E18 MOV R5, R7 .text:00020E1C CMP R5, R9 .text:00020E20 BCS loc_20E64 .text:00020E24 .text:00020E24 loc_20E24 ; CODE XREF: printf_unknown+290j .text:00020E24 ADD R2, R4, #0x14 .text:00020E28 LDMIA R2, {R2,R3} .text:00020E2C LDRB R1, [R5],#1 .text:00020E30 CMP R2, R3 .text:00020E34 BCC loc_20E48 .text:00020E38 MOV R0, R4 .text:00020E3C BL __overflow .text:00020E40 CMN R0, #1 .text:00020E44 B loc_20E54 .text:00020E48 ; --------------------------------------------------------------------------- .text:00020E48 .text:00020E48 loc_20E48 ; CODE XREF: printf_unknown+264j .text:00020E48 STRB R1, [R2],#1 .text:00020E4C CMN R1, #1 .text:00020E50 STR R2, [R4,#0x14] .text:00020E54 .text:00020E54 loc_20E54 ; CODE XREF: printf_unknown+274j .text:00020E54 BEQ loc_20F78 .text:00020E58 ADD R6, R6, #1 .text:00020E5C CMP R5, R9 .text:00020E60 BCC loc_20E24 .text:00020E64 .text:00020E64 loc_20E64 ; CODE XREF: printf_unknown+210j .text:00020E64 ; printf_unknown+250j .text:00020E64 LDR R3, [R8] .text:00020E68 CMN R3, #1 .text:00020E6C BEQ loc_20F30 .text:00020E70 ADD R2, R4, #0x14 .text:00020E74 LDMIA R2, {R2,R3} .text:00020E78 MOV R1, #0x2E .text:00020E7C CMP R2, R3 .text:00020E80 BCC loc_20E98 .text:00020E84 MOV R0, R4 .text:00020E88 BL __overflow .text:00020E8C CMN R0, #1 .text:00020E90 BEQ loc_20EA4 .text:00020E94 B loc_20EAC .text:00020E98 ; --------------------------------------------------------------------------- .text:00020E98 .text:00020E98 loc_20E98 ; CODE XREF: printf_unknown+2B0j .text:00020E98 STRB R1, [R2],#1 .text:00020E9C STR R2, [R4,#0x14] .text:00020EA0 B loc_20EAC .text:00020EA4 ; --------------------------------------------------------------------------- .text:00020EA4 .text:00020EA4 loc_20EA4 ; CODE XREF: printf_unknown+58j .text:00020EA4 ; printf_unknown+2C0j .text:00020EA4 MOV R6, R0 .text:00020EA8 B loc_20F84 .text:00020EAC ; --------------------------------------------------------------------------- .text:00020EAC .text:00020EAC loc_20EAC ; CODE XREF: printf_unknown+2C4j .text:00020EAC ; printf_unknown+2D0j .text:00020EAC ADD R6, R6, #1 .text:00020EB0 LDR R5, [R8] .text:00020EB4 LDR R10, =_itoa_lower_digits .text:00020EB8 MOV R7, R9 .text:00020EBC .text:00020EBC loc_20EBC ; CODE XREF: printf_unknown+310j .text:00020EBC MOV R0, R5 .text:00020EC0 MOV R1, #0xA .text:00020EC4 BL __umodsi3 .text:00020EC8 LDRB R3, [R10,R0] .text:00020ECC STRB R3, [R7,#-1]! .text:00020ED0 MOV R0, R5 .text:00020ED4 MOV R1, #0xA .text:00020ED8 BL __udivsi3 .text:00020EDC SUBS R5, R0, #0 .text:00020EE0 BNE loc_20EBC .text:00020EE4 MOV R5, R7 .text:00020EE8 CMP R5, R9 .text:00020EEC BCS loc_20F30 .text:00020EF0 .text:00020EF0 loc_20EF0 ; CODE XREF: printf_unknown+35Cj .text:00020EF0 ADD R2, R4, #0x14 .text:00020EF4 LDMIA R2, {R2,R3} .text:00020EF8 LDRB R1, [R5],#1 .text:00020EFC CMP R2, R3 .text:00020F00 BCC loc_20F14 .text:00020F04 MOV R0, R4 .text:00020F08 BL __overflow .text:00020F0C CMN R0, #1 .text:00020F10 B loc_20F20 .text:00020F14 ; --------------------------------------------------------------------------- .text:00020F14 .text:00020F14 loc_20F14 ; CODE XREF: printf_unknown+330j .text:00020F14 STRB R1, [R2],#1 .text:00020F18 CMN R1, #1 .text:00020F1C STR R2, [R4,#0x14] .text:00020F20 .text:00020F20 loc_20F20 ; CODE XREF: printf_unknown+340j .text:00020F20 BEQ loc_20F78 .text:00020F24 ADD R6, R6, #1 .text:00020F28 CMP R5, R9 .text:00020F2C BCC loc_20EF0 .text:00020F30 .text:00020F30 loc_20F30 ; CODE XREF: printf_unknown+29Cj .text:00020F30 ; printf_unknown+31Cj .text:00020F30 LDR R1, [R8,#8] .text:00020F34 CMP R1, #0 .text:00020F38 BEQ loc_20F84 .text:00020F3C ADD R2, R4, #0x14 .text:00020F40 LDMIA R2, {R2,R3} .text:00020F44 CMP R2, R3 .text:00020F48 BCC loc_20F64 .text:00020F4C MOV R0, R4 .text:00020F50 AND R1, R1, #0xFF .text:00020F54 BL __overflow .text:00020F58 CMN R0, #1 .text:00020F5C BEQ loc_20F78 .text:00020F60 B loc_20F80 .text:00020F64 ; --------------------------------------------------------------------------- .text:00020F64 .text:00020F64 loc_20F64 ; CODE XREF: printf_unknown+378j .text:00020F64 STRB R1, [R2],#1 .text:00020F68 AND R3, R1, #0xFF .text:00020F6C CMN R3, #1 .text:00020F70 STR R2, [R4,#0x14] .text:00020F74 BNE loc_20F80 .text:00020F78 .text:00020F78 loc_20F78 ; CODE XREF: printf_unknown+98j .text:00020F78 ; printf_unknown+D8j ... .text:00020F78 MOV R6, 0xFFFFFFFF .text:00020F7C B loc_20F84 .text:00020F80 ; --------------------------------------------------------------------------- .text:00020F80 .text:00020F80 loc_20F80 ; CODE XREF: printf_unknown+390j .text:00020F80 ; printf_unknown+3A4j .text:00020F80 ADD R6, R6, #1 .text:00020F84 .text:00020F84 loc_20F84 ; CODE XREF: printf_unknown+2D8j .text:00020F84 ; printf_unknown+368j ... .text:00020F84 MOV R0, R6 .text:00020F88 LDMDB R11, {R4-R11,SP,PC} .text:00020F88 ; End of function printf_unknown .text:00020F88 .text:00020F88 ; --------------------------------------------------------------------------- .text:00020F8C off_20F8C DCD _itoa_lower_digits ; DATA XREF: printf_unknown+21Cr .text:00020F8C ; printf_unknown+2E4r .text:00020F90 .text:00020F90 ; =============== S U B R O U T I N E ======================================= .text:00020F90 .text:00020F90 ; Attributes: bp-based frame .text:00020F90 .text:00020F90 group_number ; CODE XREF: vfprintf+CB0p .text:00020F90 ; vfprintf+EB4p ... .text:00020F90 MOV R12, SP .text:00020F94 STMFD SP!, {R4-R12,LR,PC} .text:00020F98 SUB R11, R12, #4 .text:00020F9C MOV R5, R0 .text:00020FA0 MOV R6, R2 .text:00020FA4 MOV R8, R3 .text:00020FA8 MOV R0, R8 .text:00020FAC MOV R10, R1 .text:00020FB0 BL strlen .text:00020FB4 LDRB R3, [R6] .text:00020FB8 MOV R9, R0 .text:00020FBC CMP R3, #0 .text:00020FC0 CMPNE R3, #0xFF .text:00020FC4 MOVEQ R0, R5 .text:00020FC8 LDMEQDB R11, {R4-R11,SP,PC} .text:00020FCC RSB R2, R5, R10 .text:00020FD0 ADD R3, R2, #3 .text:00020FD4 BIC R3, R3, #3 .text:00020FD8 RSB SP, R3, SP .text:00020FDC MOV R0, SP .text:00020FE0 MOV R7, SP .text:00020FE4 MOV R1, R5 .text:00020FE8 LDRB R4, [R6] .text:00020FEC BL mempcpy .text:00020FF0 MOV R5, R10 .text:00020FF4 CMP R0, SP .text:00020FF8 BLS loc_2106C .text:00020FFC .text:00020FFC loc_20FFC ; CODE XREF: group_number+D8j .text:00020FFC LDRB R3, [R0,#-1]! .text:00021000 SUBS R4, R4, #1 .text:00021004 STRB R3, [R5,#-1]! .text:00021008 BNE loc_21064 .text:0002100C CMP R0, R7 .text:00021010 BLS loc_21064 .text:00021014 MOV R2, R9 .text:00021018 ADD R1, R6, #1 .text:0002101C .text:0002101C loc_2101C ; CODE XREF: group_number+9Cj .text:0002101C SUB R2, R2, #1 .text:00021020 LDRB R3, [R8,R2] .text:00021024 CMP R2, #0 .text:00021028 STRB R3, [R5,#-1]! .text:0002102C BGT loc_2101C .text:00021030 LDRB R4, [R6] .text:00021034 LDRB R3, [R1] .text:00021038 MOV R6, R1 .text:0002103C CMP R3, #0 .text:00021040 SUBEQ R6, R1, #1 .text:00021044 BEQ loc_21064 .text:00021048 CMP R3, #0xFF .text:0002104C BNE loc_21064 .text:00021050 .text:00021050 loc_21050 ; CODE XREF: group_number+CCj .text:00021050 LDRB R3, [R0,#-1]! .text:00021054 CMP R0, R7 .text:00021058 STRB R3, [R5,#-1]! .text:0002105C BHI loc_21050 .text:00021060 B loc_2106C .text:00021064 ; --------------------------------------------------------------------------- .text:00021064 .text:00021064 loc_21064 ; CODE XREF: group_number+78j .text:00021064 ; group_number+80j ... .text:00021064 CMP R0, R7 .text:00021068 BHI loc_20FFC .text:0002106C .text:0002106C loc_2106C ; CODE XREF: group_number+68j .text:0002106C ; group_number+D0j .text:0002106C MOV R0, R5 .text:00021070 LDMDB R11, {R4-R11,SP,PC} .text:00021070 ; End of function group_number .text:00021070 .text:00021074 .text:00021074 ; =============== S U B R O U T I N E ======================================= .text:00021074 .text:00021074 ; Attributes: bp-based frame .text:00021074 .text:00021074 _IO_helper_overflow .text:00021074 MOV R12, SP .text:00021078 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002107C SUB R11, R12, #4 .text:00021080 MOV R4, R0 .text:00021084 LDR R12, [R4,#0x98] .text:00021088 ADD R3, R4, #0x14 .text:0002108C LDMDA R3, {R2,R3} .text:00021090 SUB R2, R3, R2 .text:00021094 MOV R5, R1 .text:00021098 LDR R1, [R4,#0x10] .text:0002109C CMP R2, #0 .text:000210A0 BEQ loc_210CC .text:000210A4 LDRB R3, [R12,#0x46] .text:000210A8 MOV R0, R12 .text:000210AC MOV R3, R3,LSL#24 .text:000210B0 ADD R3, R12, R3,ASR#24 .text:000210B4 LDR R12, [R3,#0x94] .text:000210B8 MOV LR, PC .text:000210BC LDR PC, [R12,#0x1C] .text:000210C0 LDR R3, [R4,#0x14] .text:000210C4 RSB R3, R0, R3 .text:000210C8 STR R3, [R4,#0x14] .text:000210CC .text:000210CC loc_210CC ; CODE XREF: _IO_helper_overflow+2Cj .text:000210CC ADD R2, R4, #0x14 .text:000210D0 LDMIA R2, {R2,R3} .text:000210D4 CMP R2, R3 .text:000210D8 BCS loc_210EC .text:000210DC STRB R5, [R2],#1 .text:000210E0 AND R0, R5, #0xFF .text:000210E4 STR R2, [R4,#0x14] .text:000210E8 LDMDB R11, {R4,R5,R11,SP,PC} .text:000210EC ; --------------------------------------------------------------------------- .text:000210EC .text:000210EC loc_210EC ; CODE XREF: _IO_helper_overflow+64j .text:000210EC MOV R0, R4 .text:000210F0 AND R1, R5, #0xFF .text:000210F4 BL __overflow .text:000210F8 LDMDB R11, {R4,R5,R11,SP,PC} .text:000210F8 ; End of function _IO_helper_overflow .text:000210F8 .text:000210FC .text:000210FC ; =============== S U B R O U T I N E ======================================= .text:000210FC .text:000210FC ; Attributes: bp-based frame .text:000210FC .text:000210FC buffered_vfprintf ; CODE XREF: vfprintf+BCp .text:000210FC .text:000210FC var_20C0 = -0x20C0 .text:000210FC var_2080 = -0x2080 .text:000210FC var_2000 = -0x2000 .text:000210FC var_24 = -0x24 .text:000210FC .text:000210FC MOV R12, SP .text:00021100 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00021104 SUB R11, R12, #4 .text:00021108 SUB R4, R11, #-var_2080 .text:0002110C SUB R4, R4, #0x24 .text:00021110 MOV R6, R0 .text:00021114 SUB R4, R4, #0x34 .text:00021118 MOV R7, R1 .text:0002111C SUB SP, SP, #0x20C0 .text:00021120 SUB SP, SP, #4 .text:00021124 LDRB R3, [R6,#0x46] .text:00021128 MOV R8, R2 .text:0002112C CMP R3, #0 .text:00021130 BNE loc_21154 .text:00021134 LDR R3, [R6,#0x5C] .text:00021138 MOV R2, 0xFFFFFFFF .text:0002113C CMP R3, #0 .text:00021140 STREQ R2, [R6,#0x5C] .text:00021144 LDR R2, [R6,#0x5C] .text:00021148 CMN R2, #1 .text:0002114C MOVNE R0, 0xFFFFFFFF .text:00021150 BNE loc_21290 .text:00021154 .text:00021154 loc_21154 ; CODE XREF: buffered_vfprintf+34j .text:00021154 SUB R5, R11, #-var_2080 .text:00021158 SUB R5, R5, #0x24 .text:0002115C SUB R5, R5, #0x34 .text:00021160 STR R6, [R5,#0x98] .text:00021164 SUB R3, R11, #-var_2000 .text:00021168 SUB R3, R3, #0x24 .text:0002116C STR R3, [R4,#0x14] .text:00021170 STR R3, [R4,#0x10] .text:00021174 SUB R3, R11, #-var_24 .text:00021178 STR R3, [R4,#0x18] .text:0002117C MOV R3, #0xF0000004 .text:00021180 MOV R2, 0xFFFFFFFF .text:00021184 STR R2, [R4,#0x5C] .text:00021188 ADD R3, R3, #0xBA00000 .text:0002118C ADD R3, R3, #0xD0000 .text:00021190 STR R3, [R4] .text:00021194 MOV R10, #0 .text:00021198 STRB R10, [R4,#0x46] .text:0002119C LDR R3, =0 .text:000211A0 ADD R0, R5, #0x9C .text:000211A4 STR R0, [R4,#0x48] .text:000211A8 CMP R3, R10 .text:000211AC BEQ loc_211BC .text:000211B0 MOV R1, R10 .text:000211B4 MOV LR, PC .text:000211B8 MOV PC, R3 .text:000211BC .text:000211BC loc_211BC ; CODE XREF: buffered_vfprintf+B0j .text:000211BC LDR R3, =_IO_helper_jumps .text:000211C0 STR R3, [R5,#0x94] .text:000211C4 MOV R0, R4 .text:000211C8 MOV R1, R7 .text:000211CC MOV R2, R8 .text:000211D0 BL vfprintf .text:000211D4 LDR R3, =0 .text:000211D8 MOV R7, R0 .text:000211DC SUBS R8, R3, #0 .text:000211E0 MOVNE R8, #1 .text:000211E4 CMP R8, #0 .text:000211E8 BEQ loc_21208 .text:000211EC SUB R0, R11, #-var_20C0 .text:000211F0 SUB R0, R0, #0x24 .text:000211F4 SUB R0, R0, #4 .text:000211F8 LDR R1, =funlockfile .text:000211FC MOV R2, R6 .text:00021200 MOV LR, PC .text:00021204 MOV PC, R3 .text:00021208 .text:00021208 loc_21208 ; CODE XREF: buffered_vfprintf+ECj .text:00021208 LDR R3, [R6] .text:0002120C TST R3, #0x8000 .text:00021210 BNE loc_2121C .text:00021214 MOV R0, R6 .text:00021218 BL flockfile .text:0002121C .text:0002121C loc_2121C ; CODE XREF: buffered_vfprintf+114j .text:0002121C ADD R3, R4, #0x14 .text:00021220 LDMDA R3, {R3,R5} .text:00021224 SUB R5, R5, R3 .text:00021228 LDR R1, [R4,#0x10] .text:0002122C CMP R5, #0 .text:00021230 BLE loc_2125C .text:00021234 LDRB R3, [R6,#0x46] .text:00021238 MOV R0, R6 .text:0002123C MOV R3, R3,LSL#24 .text:00021240 ADD R3, R6, R3,ASR#24 .text:00021244 LDR R12, [R3,#0x94] .text:00021248 MOV R2, R5 .text:0002124C MOV LR, PC .text:00021250 LDR PC, [R12,#0x1C] .text:00021254 CMP R0, R5 .text:00021258 MOVNE R7, 0xFFFFFFFF .text:0002125C .text:0002125C loc_2125C ; CODE XREF: buffered_vfprintf+134j .text:0002125C LDR R3, [R6] .text:00021260 TST R3, #0x8000 .text:00021264 BNE loc_21270 .text:00021268 MOV R0, R6 .text:0002126C BL funlockfile .text:00021270 .text:00021270 loc_21270 ; CODE XREF: buffered_vfprintf+168j .text:00021270 CMP R8, #0 .text:00021274 BEQ loc_2128C .text:00021278 SUB R0, R11, #-var_20C0 .text:0002127C SUB R0, R0, #0x24 .text:00021280 SUB R0, R0, #4 .text:00021284 MOV R1, R10 .text:00021288 BL 0 .text:0002128C .text:0002128C loc_2128C ; CODE XREF: buffered_vfprintf+178j .text:0002128C MOV R0, R7 .text:00021290 .text:00021290 loc_21290 ; CODE XREF: buffered_vfprintf+54j .text:00021290 B locret_212A4 .text:00021290 ; --------------------------------------------------------------------------- .text:00021294 off_21294 DCD 0 ; DATA XREF: buffered_vfprintf+A0r .text:00021298 off_21298 DCD _IO_helper_jumps ; DATA XREF: buffered_vfprintf:loc_211BCr .text:0002129C off_2129C DCD 0 ; DATA XREF: buffered_vfprintf+D8r .text:000212A0 off_212A0 DCD funlockfile ; DATA XREF: buffered_vfprintf+FCr .text:000212A4 ; --------------------------------------------------------------------------- .text:000212A4 .text:000212A4 locret_212A4 ; CODE XREF: buffered_vfprintf:loc_21290j .text:000212A4 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000212A4 ; End of function buffered_vfprintf .text:000212A4 .text:000212A8 .text:000212A8 ; =============== S U B R O U T I N E ======================================= .text:000212A8 .text:000212A8 .text:000212A8 hack_digit.159 ; CODE XREF: __printf_fp+1374p .text:000212A8 ; __printf_fp+1418p ... .text:000212A8 .text:000212A8 var_2C = -0x2C .text:000212A8 var_28 = -0x28 .text:000212A8 var_4 = -4 .text:000212A8 arg_0 = 0 .text:000212A8 .text:000212A8 STR R12, [SP,#var_4]! .text:000212AC ADD R12, SP, #4+arg_0 .text:000212B0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000212B4 SUB R11, R12, #8 .text:000212B8 LDR R12, [R11,#4] .text:000212BC SUB SP, SP, #0xC .text:000212C0 STR R12, [R11,#-0x1C] .text:000212C4 MOV R5, R12 .text:000212C8 LDR R3, [R5,#-8] .text:000212CC LDR R2, [R5,#-4] .text:000212D0 CMP R3, #0x66 .text:000212D4 MOVNE R3, #0 .text:000212D8 MOVEQ R3, #1 .text:000212DC CMP R2, #0 .text:000212E0 MOVEQ R3, #0 .text:000212E4 CMP R3, #0 .text:000212E8 BEQ loc_21308 .text:000212EC LDR R3, [R5,#-0xC] .text:000212F0 MOV R2, R3 .text:000212F4 SUB R3, R3, #1 .text:000212F8 CMP R2, #0 .text:000212FC STR R3, [R5,#-0xC] .text:00021300 MOVGT R6, #0 .text:00021304 BGT loc_21434 .text:00021308 .text:00021308 loc_21308 ; CODE XREF: hack_digit.159+40j .text:00021308 LDR R1, [R5,#-0x10] .text:0002130C CMP R1, #0 .text:00021310 BNE loc_21354 .text:00021314 MOV R3, #0xA .text:00021318 LDR R12, [R5,#-0x14] .text:0002131C MOV R4, 0xFFFFFFFC .text:00021320 LDR LR, [R5,#-0x18] .text:00021324 MOV R0, R12 .text:00021328 MOV R1, R0 .text:0002132C SUB R2, LR, #1 .text:00021330 ADD R12, R12, LR,LSL#2 .text:00021334 LDR R6, [R12,R4] .text:00021338 BL __mpn_mul_1 .text:0002133C STR R0, [R5,#-0x1C] .text:00021340 SUB R2, R5, #0x18 .text:00021344 LDMIA R2, {R2,R3} .text:00021348 ADD R3, R3, R2,LSL#2 .text:0002134C STR R0, [R3,R4] .text:00021350 B loc_21434 .text:00021354 ; --------------------------------------------------------------------------- .text:00021354 .text:00021354 loc_21354 ; CODE XREF: hack_digit.159+68j .text:00021354 LDR R3, [R5,#-0x18] .text:00021358 CMP R3, R1 .text:0002135C MOV R12, R3 .text:00021360 MOVLT R6, #0 .text:00021364 BLT loc_21400 .text:00021368 LDR R0, [R5,#-0x20] .text:0002136C LDR R1, [R5,#-0x24] .text:00021370 LDR R2, [R5,#-0x14] .text:00021374 STR R1, [SP,#0x2C+var_2C] .text:00021378 LDR R3, [R5,#-0x10] .text:0002137C STR R3, [SP,#0x2C+var_28] .text:00021380 MOV R1, #0 .text:00021384 MOV R3, R12 .text:00021388 BL __mpn_divrem .text:0002138C LDR R3, [R5,#-0x18] .text:00021390 LDR R2, [R5,#-0x10] .text:00021394 LDR R1, [R5,#-0x20] .text:00021398 RSB R3, R2, R3 .text:0002139C STR R0, [R1,R3,LSL#2] .text:000213A0 LDR R2, [R5,#-0x20] .text:000213A4 LDR R3, [R5,#-0x10] .text:000213A8 LDR R6, [R2] .text:000213AC CMP R3, #0 .text:000213B0 STR R3, [R5,#-0x18] .text:000213B4 BEQ loc_213E4 .text:000213B8 LDR R1, [R5,#-0x14] .text:000213BC B loc_213D4 .text:000213C0 ; --------------------------------------------------------------------------- .text:000213C0 .text:000213C0 loc_213C0 ; CODE XREF: hack_digit.159+138j .text:000213C0 LDR R3, [R5,#-0x18] .text:000213C4 SUB R3, R3, #1 .text:000213C8 CMP R3, #0 .text:000213CC STR R3, [R5,#-0x18] .text:000213D0 BEQ loc_213E4 .text:000213D4 .text:000213D4 loc_213D4 ; CODE XREF: hack_digit.159+114j .text:000213D4 ADD R3, R1, R3,LSL#2 .text:000213D8 LDR R2, [R3,#-4] .text:000213DC CMP R2, #0 .text:000213E0 BEQ loc_213C0 .text:000213E4 .text:000213E4 loc_213E4 ; CODE XREF: hack_digit.159+10Cj .text:000213E4 ; hack_digit.159+128j .text:000213E4 LDR R3, [R5,#-0x18] .text:000213E8 CMP R3, #0 .text:000213EC MOV R12, R3 .text:000213F0 ADDEQ R0, R6, #0x30 .text:000213F4 MOVEQ R3, #1 .text:000213F8 STREQ R3, [R5,#-0x18] .text:000213FC BEQ locret_21438 .text:00021400 .text:00021400 loc_21400 ; CODE XREF: hack_digit.159+BCj .text:00021400 MOV R2, R12 .text:00021404 LDR R0, [R5,#-0x14] .text:00021408 MOV R3, #0xA .text:0002140C MOV R1, R0 .text:00021410 BL __mpn_mul_1 .text:00021414 CMP R0, #0 .text:00021418 STR R0, [R5,#-0x1C] .text:0002141C BEQ loc_21434 .text:00021420 LDR R3, [R5,#-0x18] .text:00021424 LDR R2, [R5,#-0x14] .text:00021428 STR R0, [R2,R3,LSL#2] .text:0002142C ADD R3, R3, #1 .text:00021430 STR R3, [R5,#-0x18] .text:00021434 .text:00021434 loc_21434 ; CODE XREF: hack_digit.159+5Cj .text:00021434 ; hack_digit.159+A8j ... .text:00021434 ADD R0, R6, #0x30 .text:00021438 .text:00021438 locret_21438 ; CODE XREF: hack_digit.159+154j .text:00021438 LDMDB R11, {R4-R6,R11,SP,PC} .text:00021438 ; End of function hack_digit.159 .text:00021438 .text:0002143C .text:0002143C ; =============== S U B R O U T I N E ======================================= .text:0002143C .text:0002143C ; Attributes: bp-based frame .text:0002143C .text:0002143C EXPORT __printf_fp .text:0002143C __printf_fp ; CODE XREF: vfprintf+1470p .text:0002143C ; vfprintf+35D4p ... .text:0002143C .text:0002143C var_BC = -0xBC .text:0002143C var_B8 = -0xB8 .text:0002143C var_B4 = -0xB4 .text:0002143C var_B0 = -0xB0 .text:0002143C var_AC = -0xAC .text:0002143C var_A8 = -0xA8 .text:0002143C var_A4 = -0xA4 .text:0002143C var_A0 = -0xA0 .text:0002143C var_9C = -0x9C .text:0002143C var_98 = -0x98 .text:0002143C var_94 = -0x94 .text:0002143C var_90 = -0x90 .text:0002143C var_8C = -0x8C .text:0002143C var_88 = -0x88 .text:0002143C var_84 = -0x84 .text:0002143C var_80 = -0x80 .text:0002143C var_7C = -0x7C .text:0002143C var_78 = -0x78 .text:0002143C var_74 = -0x74 .text:0002143C var_70 = -0x70 .text:0002143C var_6C = -0x6C .text:0002143C var_68 = -0x68 .text:0002143C var_64 = -0x64 .text:0002143C var_60 = -0x60 .text:0002143C var_58 = -0x58 .text:0002143C var_54 = -0x54 .text:0002143C var_4C = -0x4C .text:0002143C var_48 = -0x48 .text:0002143C var_44 = -0x44 .text:0002143C var_40 = -0x40 .text:0002143C var_3C = -0x3C .text:0002143C var_38 = -0x38 .text:0002143C var_34 = -0x34 .text:0002143C var_30 = -0x30 .text:0002143C var_2C = -0x2C .text:0002143C var_28 = -0x28 .text:0002143C .text:0002143C MOV R12, SP .text:00021440 STMFD SP!, {R4-R12,LR,PC} .text:00021444 SUB R11, R12, #4 .text:00021448 MOV R3, #0 .text:0002144C SUB SP, SP, #0x94 .text:00021450 STR R3, [R11,#var_78] .text:00021454 STR R3, [R11,#var_2C] .text:00021458 STR R3, [R11,#var_7C] .text:0002145C MOV R7, R3 .text:00021460 STR R7, [R11,#var_58] .text:00021464 STR R1, [R11,#var_64] .text:00021468 MOV R8, R3 .text:0002146C MOV R10, R3 .text:00021470 LDRB R3, [R1,#0xD] .text:00021474 STR R7, [R11,#var_84] .text:00021478 MOV R6, R0 .text:0002147C TST R3, #1 .text:00021480 LDRB R3, [R1,#0xD] .text:00021484 MOV R0, R2 .text:00021488 MOV R3, R3,LSR#2 .text:0002148C AND R3, R3, #1 .text:00021490 STR R3, [R11,#var_88] .text:00021494 BNE loc_214AC .text:00021498 LDR R3, =_nl_current_LC_NUMERIC .text:0002149C LDR R2, [R3] .text:000214A0 LDR R12, [R2,#0x20] .text:000214A4 STR R12, [R11,#var_70] .text:000214A8 B loc_214EC .text:000214AC ; --------------------------------------------------------------------------- .text:000214AC .text:000214AC loc_214AC ; CODE XREF: __printf_fp+58j .text:000214AC LDR R3, =_nl_current_LC_MONETARY .text:000214B0 LDR R1, [R3] .text:000214B4 LDR R2, [R1,#0x28] .text:000214B8 STR R2, [R11,#var_70] .text:000214BC LDRB R3, [R2] .text:000214C0 CMP R3, #0 .text:000214C4 LDREQ R3, =_nl_current_LC_NUMERIC .text:000214C8 LDREQ R2, [R3] .text:000214CC LDREQ R2, [R2,#0x20] .text:000214D0 STREQ R2, [R11,#var_70] .text:000214D4 LDR R1, [R1,#0xCC] .text:000214D8 CMP R1, #0 .text:000214DC STR R1, [R11,#var_74] .text:000214E0 BNE loc_214F4 .text:000214E4 LDR R3, =_nl_current_LC_NUMERIC .text:000214E8 LDR R2, [R3] .text:000214EC .text:000214EC loc_214EC ; CODE XREF: __printf_fp+6Cj .text:000214EC LDR R2, [R2,#0x2C] .text:000214F0 STR R2, [R11,#var_74] .text:000214F4 .text:000214F4 loc_214F4 ; CODE XREF: __printf_fp+A4j .text:000214F4 LDR R12, [R11,#var_64] .text:000214F8 LDRB R3, [R12,#0xC] .text:000214FC MOVS R1, R3,LSR#7 .text:00021500 BEQ loc_215F4 .text:00021504 LDRB R3, [R12,#0xD] .text:00021508 TST R3, #1 .text:0002150C MOV R1, R3 .text:00021510 LDREQ R3, =_nl_current_LC_NUMERIC .text:00021514 LDREQ R2, [R3] .text:00021518 LDREQ R2, [R2,#0x28] .text:0002151C LDRNE R3, =_nl_current_LC_MONETARY .text:00021520 LDRNE R2, [R3] .text:00021524 LDRNE R2, [R2,#0x30] .text:00021528 STR R2, [R11,#var_80] .text:0002152C LDR R2, [R11,#var_80] .text:00021530 LDRB R3, [R2] .text:00021534 CMP R3, #0xFF .text:00021538 CMPNE R3, #0 .text:0002153C MOVEQ R3, #0 .text:00021540 STREQ R3, [R11,#var_80] .text:00021544 BEQ loc_215F8 .text:00021548 LDR R12, [R11,#var_88] .text:0002154C CMP R12, #0 .text:00021550 BEQ loc_21584 .text:00021554 TST R1, #1 .text:00021558 BNE loc_21570 .text:0002155C LDR R3, =_nl_current_LC_NUMERIC .text:00021560 LDR R2, [R3] .text:00021564 LDR R2, [R2,#0x30] .text:00021568 STR R2, [R11,#var_7C] .text:0002156C B loc_215A4 .text:00021570 ; --------------------------------------------------------------------------- .text:00021570 .text:00021570 loc_21570 ; CODE XREF: __printf_fp+11Cj .text:00021570 LDR R3, =_nl_current_LC_MONETARY .text:00021574 LDR R2, [R3] .text:00021578 LDR R2, [R2,#0xD0] .text:0002157C STR R2, [R11,#var_7C] .text:00021580 B loc_215A4 .text:00021584 ; --------------------------------------------------------------------------- .text:00021584 .text:00021584 loc_21584 ; CODE XREF: __printf_fp+114j .text:00021584 TST R1, #1 .text:00021588 LDREQ R3, =_nl_current_LC_NUMERIC .text:0002158C LDREQ R2, [R3] .text:00021590 LDREQ R2, [R2,#0x24] .text:00021594 LDRNE R3, =_nl_current_LC_MONETARY .text:00021598 LDRNE R2, [R3] .text:0002159C LDRNE R2, [R2,#0x2C] .text:000215A0 STR R2, [R11,#var_78] .text:000215A4 .text:000215A4 loc_215A4 ; CODE XREF: __printf_fp+130j .text:000215A4 ; __printf_fp+144j .text:000215A4 LDR R1, [R11,#var_7C] .text:000215A8 LDR R2, [R11,#var_88] .text:000215AC CMP R1, #0 .text:000215B0 MOVNE R3, #0 .text:000215B4 MOVEQ R3, #1 .text:000215B8 TST R2, R3 .text:000215BC BNE loc_215D8 .text:000215C0 CMP R2, #0 .text:000215C4 BNE loc_215E0 .text:000215C8 LDR R12, [R11,#var_78] .text:000215CC LDRB R3, [R12] .text:000215D0 CMP R3, #0 .text:000215D4 BNE loc_215E0 .text:000215D8 .text:000215D8 loc_215D8 ; CODE XREF: __printf_fp+180j .text:000215D8 MOV R1, #0 .text:000215DC B loc_215F4 .text:000215E0 ; --------------------------------------------------------------------------- .text:000215E0 .text:000215E0 loc_215E0 ; CODE XREF: __printf_fp+188j .text:000215E0 ; __printf_fp+198j .text:000215E0 LDR R2, [R11,#var_7C] .text:000215E4 CMP R2, #0 .text:000215E8 MOVEQ R2, 0xFFFFFFFE .text:000215EC STR R2, [R11,#var_7C] .text:000215F0 B loc_215F8 .text:000215F4 ; --------------------------------------------------------------------------- .text:000215F4 .text:000215F4 loc_215F4 ; CODE XREF: __printf_fp+C4j .text:000215F4 ; __printf_fp+1A0j .text:000215F4 STR R1, [R11,#var_80] .text:000215F8 .text:000215F8 loc_215F8 ; CODE XREF: __printf_fp+108j .text:000215F8 ; __printf_fp+1B4j .text:000215F8 LDR R3, [R0] .text:000215FC LDMIA R3, {R4,R5} .text:00021600 STR R4, [R11,#var_6C] .text:00021604 STR R5, [R11,#var_68] .text:00021608 MOV R1, R5 .text:0002160C MOV R0, R4 .text:00021610 BL isnanl .text:00021614 CMP R0, #0 .text:00021618 BEQ loc_21658 .text:0002161C LDR R12, [R11,#var_64] .text:00021620 LDR R2, =__ctype_b .text:00021624 LDR R3, [R12,#8] .text:00021628 LDR R1, [R2] .text:0002162C MOV R3, R3,LSL#1 .text:00021630 ADD R3, R3, R1 .text:00021634 LDRB R2, [R3,#1] .text:00021638 TST R2, #1 .text:0002163C LDRNE R8, =dword_572AC .text:00021640 LDRNE R10, =dword_572B0 .text:00021644 LDREQ R8, =dword_572C0 .text:00021648 LDREQ R10, =dword_572C4 .text:0002164C MOV R3, #0 .text:00021650 STR R3, [R11,#var_58] .text:00021654 B loc_216D8 .text:00021658 ; --------------------------------------------------------------------------- .text:00021658 .text:00021658 loc_21658 ; CODE XREF: __printf_fp+1DCj .text:00021658 MOV R1, R5 .text:0002165C MOV R0, R4 .text:00021660 BL isinfl .text:00021664 CMP R0, #0 .text:00021668 BEQ loc_216B4 .text:0002166C LDR R0, [R11,#var_64] .text:00021670 LDR R2, =__ctype_b .text:00021674 LDR R3, [R0,#8] .text:00021678 LDR R1, [R2] .text:0002167C MOV R3, R3,LSL#1 .text:00021680 ADD R3, R3, R1 .text:00021684 LDRB R2, [R3,#1] .text:00021688 TST R2, #1 .text:0002168C LDRNE R8, =dword_572D4 .text:00021690 LDRNE R10, =dword_572D8 .text:00021694 LDREQ R8, =dword_572E8 .text:00021698 LDREQ R10, =dword_572EC .text:0002169C LDC p1, c8, [R11,#var_6C] .text:000216A0 MRC p1, 6, PC,c0,c8, 0 .text:000216A4 MOVPL R3, #0 .text:000216A8 MOVMI R3, #1 .text:000216AC STR R3, [R11,#var_58] .text:000216B0 B loc_216D8 .text:000216B4 ; --------------------------------------------------------------------------- .text:000216B4 .text:000216B4 loc_216B4 ; CODE XREF: __printf_fp+22Cj .text:000216B4 STMEA SP, {R4,R5} .text:000216B8 SUB R0, R11, #-var_54 .text:000216BC MOV R1, #2 .text:000216C0 SUB R2, R11, #-var_34 .text:000216C4 SUB R3, R11, #-var_58 .text:000216C8 BL __mpn_extract_double .text:000216CC MOV R3, R0,LSL#5 .text:000216D0 SUB R7, R3, #0x34 .text:000216D4 STR R0, [R11,#var_40] .text:000216D8 .text:000216D8 loc_216D8 ; CODE XREF: __printf_fp+218j .text:000216D8 ; __printf_fp+274j .text:000216D8 CMP R8, #0 .text:000216DC BEQ loc_21AC0 .text:000216E0 LDR R0, [R11,#var_64] .text:000216E4 LDR R3, [R11,#var_58] .text:000216E8 LDR R5, [R0,#4] .text:000216EC CMP R3, #0 .text:000216F0 LDRB R2, [R0,#0xC] .text:000216F4 MOV R0, R3 .text:000216F8 BNE loc_21708 .text:000216FC AND R3, R2, #0x50 .text:00021700 CMP R3, #0 .text:00021704 BEQ loc_2170C .text:00021708 .text:00021708 loc_21708 ; CODE XREF: __printf_fp+2BCj .text:00021708 SUB R5, R5, #1 .text:0002170C .text:0002170C loc_2170C ; CODE XREF: __printf_fp+2C8j .text:0002170C SUB R5, R5, #3 .text:00021710 TST R2, #0x20 .text:00021714 MOVNE R3, #0 .text:00021718 MOVEQ R3, #1 .text:0002171C CMP R3, #0 .text:00021720 CMPNE R5, #0 .text:00021724 BLE loc_21770 .text:00021728 LDR R1, [R11,#var_88] .text:0002172C CMP R1, #0 .text:00021730 BEQ loc_21748 .text:00021734 MOV R0, R6 .text:00021738 MOV R1, #0x20 .text:0002173C MOV R2, R5 .text:00021740 BL _IO_wpadn .text:00021744 B loc_21758 .text:00021748 ; --------------------------------------------------------------------------- .text:00021748 .text:00021748 loc_21748 ; CODE XREF: __printf_fp+2F4j .text:00021748 MOV R0, R6 .text:0002174C MOV R1, #0x20 .text:00021750 MOV R2, R5 .text:00021754 BL _IO_padn .text:00021758 .text:00021758 loc_21758 ; CODE XREF: __printf_fp+308j .text:00021758 CMP R0, R5 .text:0002175C BNE loc_2273C .text:00021760 LDR R2, [R11,#var_84] .text:00021764 LDR R0, [R11,#var_58] .text:00021768 ADD R2, R2, R5 .text:0002176C STR R2, [R11,#var_84] .text:00021770 .text:00021770 loc_21770 ; CODE XREF: __printf_fp+2E8j .text:00021770 CMP R0, #0 .text:00021774 BEQ loc_217F0 .text:00021778 LDR R3, [R11,#var_88] .text:0002177C MOV R1, #0x2D .text:00021780 CMP R3, #0 .text:00021784 BEQ loc_217B4 .text:00021788 LDR R0, [R6,#0x58] .text:0002178C ADD R2, R0, #0x10 .text:00021790 LDMIA R2, {R2,R3} .text:00021794 CMP R2, R3 .text:00021798 BCC loc_217A8 .text:0002179C MOV R0, R6 .text:000217A0 BL __woverflow .text:000217A4 B loc_217CC .text:000217A8 ; --------------------------------------------------------------------------- .text:000217A8 .text:000217A8 loc_217A8 ; CODE XREF: __printf_fp+35Cj .text:000217A8 STR R1, [R2],#4 .text:000217AC STR R2, [R0,#0x10] .text:000217B0 B loc_217E0 .text:000217B4 ; --------------------------------------------------------------------------- .text:000217B4 .text:000217B4 loc_217B4 ; CODE XREF: __printf_fp+348j .text:000217B4 ADD R2, R6, #0x14 .text:000217B8 LDMIA R2, {R2,R3} .text:000217BC CMP R2, R3 .text:000217C0 BCC loc_217D8 .text:000217C4 MOV R0, R6 .text:000217C8 BL __overflow .text:000217CC .text:000217CC loc_217CC ; CODE XREF: __printf_fp+368j .text:000217CC CMN R0, #1 .text:000217D0 BEQ loc_2273C .text:000217D4 B loc_217E0 .text:000217D8 ; --------------------------------------------------------------------------- .text:000217D8 .text:000217D8 loc_217D8 ; CODE XREF: __printf_fp+384j .text:000217D8 STRB R1, [R2],#1 .text:000217DC STR R2, [R6,#0x14] .text:000217E0 .text:000217E0 loc_217E0 ; CODE XREF: __printf_fp+374j .text:000217E0 ; __printf_fp+398j .text:000217E0 LDR R7, [R11,#var_84] .text:000217E4 ADD R7, R7, #1 .text:000217E8 STR R7, [R11,#var_84] .text:000217EC B loc_21920 .text:000217F0 ; --------------------------------------------------------------------------- .text:000217F0 .text:000217F0 loc_217F0 ; CODE XREF: __printf_fp+338j .text:000217F0 LDR R12, [R11,#var_64] .text:000217F4 LDRB R3, [R12,#0xC] .text:000217F8 TST R3, #0x40 .text:000217FC BEQ loc_218A4 .text:00021800 LDR R0, [R11,#var_88] .text:00021804 MOV R1, #0x2B .text:00021808 CMP R0, #0 .text:0002180C BEQ loc_21868 .text:00021810 LDR R0, [R6,#0x58] .text:00021814 ADD R2, R0, #0x10 .text:00021818 LDMIA R2, {R2,R3} .text:0002181C CMP R2, R3 .text:00021820 BCC loc_21830 .text:00021824 MOV R0, R6 .text:00021828 BL __woverflow .text:0002182C B loc_21880 .text:00021830 ; --------------------------------------------------------------------------- .text:00021830 .text:00021830 loc_21830 ; CODE XREF: __printf_fp+3E4j .text:00021830 STR R1, [R2],#4 .text:00021834 STR R2, [R0,#0x10] .text:00021838 B loc_21894 .text:00021838 ; --------------------------------------------------------------------------- .text:0002183C off_2183C DCD _nl_current_LC_NUMERIC ; DATA XREF: __printf_fp+5Cr .text:0002183C ; __printf_fp+88r ... .text:00021840 off_21840 DCD _nl_current_LC_MONETARY .text:00021840 ; DATA XREF: __printf_fp:loc_214ACr .text:00021840 ; __printf_fp+E0r ... .text:00021844 off_21844 DCD __ctype_b ; DATA XREF: __printf_fp+1E4r .text:00021844 ; __printf_fp+234r .text:00021848 off_21848 DCD dword_572AC ; DATA XREF: __printf_fp+200r .text:0002184C off_2184C DCD dword_572B0 ; DATA XREF: __printf_fp+204r .text:00021850 off_21850 DCD dword_572C0 ; DATA XREF: __printf_fp+208r .text:00021854 off_21854 DCD dword_572C4 ; DATA XREF: __printf_fp+20Cr .text:00021858 off_21858 DCD dword_572D4 ; DATA XREF: __printf_fp+250r .text:0002185C off_2185C DCD dword_572D8 ; DATA XREF: __printf_fp+254r .text:00021860 off_21860 DCD dword_572E8 ; DATA XREF: __printf_fp+258r .text:00021864 off_21864 DCD dword_572EC ; DATA XREF: __printf_fp+25Cr .text:00021868 ; --------------------------------------------------------------------------- .text:00021868 .text:00021868 loc_21868 ; CODE XREF: __printf_fp+3D0j .text:00021868 ADD R2, R6, #0x14 .text:0002186C LDMIA R2, {R2,R3} .text:00021870 CMP R2, R3 .text:00021874 BCC loc_2188C .text:00021878 MOV R0, R6 .text:0002187C BL __overflow .text:00021880 .text:00021880 loc_21880 ; CODE XREF: __printf_fp+3F0j .text:00021880 CMN R0, #1 .text:00021884 BEQ loc_2273C .text:00021888 B loc_21894 .text:0002188C ; --------------------------------------------------------------------------- .text:0002188C .text:0002188C loc_2188C ; CODE XREF: __printf_fp+438j .text:0002188C STRB R1, [R2],#1 .text:00021890 STR R2, [R6,#0x14] .text:00021894 .text:00021894 loc_21894 ; CODE XREF: __printf_fp+3FCj .text:00021894 ; __printf_fp+44Cj .text:00021894 LDR R1, [R11,#var_84] .text:00021898 ADD R1, R1, #1 .text:0002189C STR R1, [R11,#var_84] .text:000218A0 B loc_21920 .text:000218A4 ; --------------------------------------------------------------------------- .text:000218A4 .text:000218A4 loc_218A4 ; CODE XREF: __printf_fp+3C0j .text:000218A4 TST R3, #0x10 .text:000218A8 BEQ loc_21920 .text:000218AC LDR R2, [R11,#var_88] .text:000218B0 MOV R1, #0x20 .text:000218B4 CMP R2, #0 .text:000218B8 BEQ loc_218E8 .text:000218BC LDR R0, [R6,#0x58] .text:000218C0 ADD R2, R0, #0x10 .text:000218C4 LDMIA R2, {R2,R3} .text:000218C8 CMP R2, R3 .text:000218CC BCC loc_218DC .text:000218D0 MOV R0, R6 .text:000218D4 BL __woverflow .text:000218D8 B loc_21900 .text:000218DC ; --------------------------------------------------------------------------- .text:000218DC .text:000218DC loc_218DC ; CODE XREF: __printf_fp+490j .text:000218DC STR R1, [R2],#4 .text:000218E0 STR R2, [R0,#0x10] .text:000218E4 B loc_21914 .text:000218E8 ; --------------------------------------------------------------------------- .text:000218E8 .text:000218E8 loc_218E8 ; CODE XREF: __printf_fp+47Cj .text:000218E8 ADD R2, R6, #0x14 .text:000218EC LDMIA R2, {R2,R3} .text:000218F0 CMP R2, R3 .text:000218F4 BCC loc_2190C .text:000218F8 MOV R0, R6 .text:000218FC BL __overflow .text:00021900 .text:00021900 loc_21900 ; CODE XREF: __printf_fp+49Cj .text:00021900 CMN R0, #1 .text:00021904 BEQ loc_2273C .text:00021908 B loc_21914 .text:0002190C ; --------------------------------------------------------------------------- .text:0002190C .text:0002190C loc_2190C ; CODE XREF: __printf_fp+4B8j .text:0002190C STRB R1, [R2],#1 .text:00021910 STR R2, [R6,#0x14] .text:00021914 .text:00021914 loc_21914 ; CODE XREF: __printf_fp+4A8j .text:00021914 ; __printf_fp+4CCj .text:00021914 LDR R3, [R11,#var_84] .text:00021918 ADD R3, R3, #1 .text:0002191C STR R3, [R11,#var_84] .text:00021920 .text:00021920 loc_21920 ; CODE XREF: __printf_fp+3B0j .text:00021920 ; __printf_fp+464j ... .text:00021920 LDR R7, [R11,#var_88] .text:00021924 CMP R7, #0 .text:00021928 BEQ loc_219C8 .text:0002192C MOV R4, #2 .text:00021930 .text:00021930 loc_21930 ; CODE XREF: __printf_fp+584j .text:00021930 LDR R12, [R11,#var_88] .text:00021934 LDR R1, [R10],#4 .text:00021938 CMP R12, #0 .text:0002193C BEQ loc_21970 .text:00021940 LDR R0, [R6,#0x58] .text:00021944 ADD R2, R0, #0x10 .text:00021948 LDMIA R2, {R2,R3} .text:0002194C CMP R2, R3 .text:00021950 BCC loc_21960 .text:00021954 MOV R0, R6 .text:00021958 BL __woverflow .text:0002195C B loc_2198C .text:00021960 ; --------------------------------------------------------------------------- .text:00021960 .text:00021960 loc_21960 ; CODE XREF: __printf_fp+514j .text:00021960 STR R1, [R2],#4 .text:00021964 CMN R1, #1 .text:00021968 STR R2, [R0,#0x10] .text:0002196C B loc_219A4 .text:00021970 ; --------------------------------------------------------------------------- .text:00021970 .text:00021970 loc_21970 ; CODE XREF: __printf_fp+500j .text:00021970 ADD R2, R6, #0x14 .text:00021974 LDMIA R2, {R2,R3} .text:00021978 CMP R2, R3 .text:0002197C BCC loc_21994 .text:00021980 MOV R0, R6 .text:00021984 AND R1, R1, #0xFF .text:00021988 BL __overflow .text:0002198C .text:0002198C loc_2198C ; CODE XREF: __printf_fp+520j .text:0002198C CMN R0, #1 .text:00021990 B loc_219A4 .text:00021994 ; --------------------------------------------------------------------------- .text:00021994 .text:00021994 loc_21994 ; CODE XREF: __printf_fp+540j .text:00021994 STRB R1, [R2],#1 .text:00021998 AND R3, R1, #0xFF .text:0002199C CMN R3, #1 .text:000219A0 STR R2, [R6,#0x14] .text:000219A4 .text:000219A4 loc_219A4 ; CODE XREF: __printf_fp+530j .text:000219A4 ; __printf_fp+554j .text:000219A4 BEQ loc_2273C .text:000219A8 LDR R0, [R11,#var_84] .text:000219AC ADD R0, R0, #1 .text:000219B0 STR R0, [R11,#var_84] .text:000219B4 MOV R3, R4 .text:000219B8 SUB R4, R4, #1 .text:000219BC CMP R3, #0 .text:000219C0 BNE loc_21930 .text:000219C4 B loc_21A58 .text:000219C8 ; --------------------------------------------------------------------------- .text:000219C8 .text:000219C8 loc_219C8 ; CODE XREF: __printf_fp+4ECj .text:000219C8 MOV R4, #2 .text:000219CC .text:000219CC loc_219CC ; CODE XREF: __printf_fp+618j .text:000219CC LDR R1, [R11,#var_88] .text:000219D0 CMP R1, #0 .text:000219D4 LDRB R1, [R8],#1 .text:000219D8 BEQ loc_21A0C .text:000219DC LDR R0, [R6,#0x58] .text:000219E0 ADD R2, R0, #0x10 .text:000219E4 LDMIA R2, {R2,R3} .text:000219E8 CMP R2, R3 .text:000219EC BCC loc_219FC .text:000219F0 MOV R0, R6 .text:000219F4 BL __woverflow .text:000219F8 B loc_21A24 .text:000219FC ; --------------------------------------------------------------------------- .text:000219FC .text:000219FC loc_219FC ; CODE XREF: __printf_fp+5B0j .text:000219FC STR R1, [R2],#4 .text:00021A00 CMN R1, #1 .text:00021A04 STR R2, [R0,#0x10] .text:00021A08 B loc_21A38 .text:00021A0C ; --------------------------------------------------------------------------- .text:00021A0C .text:00021A0C loc_21A0C ; CODE XREF: __printf_fp+59Cj .text:00021A0C ADD R2, R6, #0x14 .text:00021A10 LDMIA R2, {R2,R3} .text:00021A14 CMP R2, R3 .text:00021A18 BCC loc_21A2C .text:00021A1C MOV R0, R6 .text:00021A20 BL __overflow .text:00021A24 .text:00021A24 loc_21A24 ; CODE XREF: __printf_fp+5BCj .text:00021A24 CMN R0, #1 .text:00021A28 B loc_21A38 .text:00021A2C ; --------------------------------------------------------------------------- .text:00021A2C .text:00021A2C loc_21A2C ; CODE XREF: __printf_fp+5DCj .text:00021A2C STRB R1, [R2],#1 .text:00021A30 CMN R1, #1 .text:00021A34 STR R2, [R6,#0x14] .text:00021A38 .text:00021A38 loc_21A38 ; CODE XREF: __printf_fp+5CCj .text:00021A38 ; __printf_fp+5ECj .text:00021A38 BEQ loc_2273C .text:00021A3C LDR R2, [R11,#var_84] .text:00021A40 ADD R2, R2, #1 .text:00021A44 STR R2, [R11,#var_84] .text:00021A48 MOV R3, R4 .text:00021A4C SUB R4, R4, #1 .text:00021A50 CMP R3, #0 .text:00021A54 BNE loc_219CC .text:00021A58 .text:00021A58 loc_21A58 ; CODE XREF: __printf_fp+588j .text:00021A58 LDR R7, [R11,#var_64] .text:00021A5C LDRB R3, [R7,#0xC] .text:00021A60 TST R3, #0x20 .text:00021A64 MOVEQ R2, #0 .text:00021A68 MOVNE R2, #1 .text:00021A6C CMP R2, #0 .text:00021A70 CMPNE R5, #0 .text:00021A74 BLE loc_23270 .text:00021A78 LDR R12, [R11,#var_88] .text:00021A7C CMP R12, #0 .text:00021A80 BEQ loc_21A98 .text:00021A84 MOV R0, R6 .text:00021A88 MOV R1, #0x20 .text:00021A8C MOV R2, R5 .text:00021A90 BL _IO_wpadn .text:00021A94 B loc_21AA8 .text:00021A98 ; --------------------------------------------------------------------------- .text:00021A98 .text:00021A98 loc_21A98 ; CODE XREF: __printf_fp+644j .text:00021A98 MOV R0, R6 .text:00021A9C MOV R1, #0x20 .text:00021AA0 MOV R2, R5 .text:00021AA4 BL _IO_padn .text:00021AA8 .text:00021AA8 loc_21AA8 ; CODE XREF: __printf_fp+658j .text:00021AA8 CMP R0, R5 .text:00021AAC BNE loc_2273C .text:00021AB0 LDR R0, [R11,#var_84] .text:00021AB4 ADD R0, R0, R5 .text:00021AB8 STR R0, [R11,#var_84] .text:00021ABC B loc_23270 .text:00021AC0 ; --------------------------------------------------------------------------- .text:00021AC0 .text:00021AC0 loc_21AC0 ; CODE XREF: __printf_fp+2A0j .text:00021AC0 LDR R12, [R11,#var_34] .text:00021AC4 STR R8, [R11,#var_38] .text:00021AC8 EOR R3, R12, R12,ASR#31 .text:00021ACC SUB R3, R3, R12,ASR#31 .text:00021AD0 ADD R3, R3, #0x1F .text:00021AD4 CMP R3, #0 .text:00021AD8 ADDLT R3, R3, #0x1F .text:00021ADC MOV R3, R3,ASR#5 .text:00021AE0 ADD R3, R3, #4 .text:00021AE4 MOV R3, R3,LSL#2 .text:00021AE8 RSB SP, R3, SP .text:00021AEC ADD R0, SP, #0xBC+var_B4 .text:00021AF0 RSB SP, R3, SP .text:00021AF4 STR R0, [R11,#var_3C] .text:00021AF8 ADD R2, SP, #0xBC+var_B4 .text:00021AFC RSB SP, R3, SP .text:00021B00 STR R2, [R11,#var_48] .text:00021B04 CMP R12, #2 .text:00021B08 ADD R3, SP, #0xBC+var_B4 .text:00021B0C STR R3, [R11,#var_4C] .text:00021B10 BLE loc_220E4 .text:00021B14 MOV R10, R8 .text:00021B18 MOV R8, #8 .text:00021B1C MOV R9, R10 .text:00021B20 ADD R12, R12, R7 .text:00021B24 LDR R4, =(_fpioconst_pow10+0x10) .text:00021B28 TST R12, #0x1F .text:00021B2C ADD R5, R4, R8,LSL#4 .text:00021B30 BNE loc_21B94 .text:00021B34 LDR R3, [R11,#var_40] .text:00021B38 SUBS R12, R3, #1 .text:00021B3C BMI loc_21B74 .text:00021B40 SUB LR, R11, #-var_54 .text:00021B44 .text:00021B44 loc_21B44 ; CODE XREF: __printf_fp+734j .text:00021B44 LDR R3, [R11,#var_34] .text:00021B48 LDR R2, [R11,#var_3C] .text:00021B4C MOV R0, R12,LSL#2 .text:00021B50 LDR R1, [R0,LR] .text:00021B54 ADD R3, R3, R7 .text:00021B58 CMP R3, #0 .text:00021B5C ADDLT R3, R3, #0x1F .text:00021B60 SUBS R12, R12, #1 .text:00021B64 MOV R3, R3,ASR#5 .text:00021B68 ADD R2, R2, R3,LSL#2 .text:00021B6C STR R1, [R0,R2] .text:00021B70 BPL loc_21B44 .text:00021B74 .text:00021B74 loc_21B74 ; CODE XREF: __printf_fp+700j .text:00021B74 LDR R3, [R11,#var_34] .text:00021B78 LDR R2, [R11,#var_40] .text:00021B7C ADD R3, R3, R7 .text:00021B80 CMP R3, #0 .text:00021B84 ADDLT R3, R3, #0x1F .text:00021B88 ADD R2, R2, R3,ASR#5 .text:00021B8C STR R2, [R11,#var_40] .text:00021B90 B loc_21BEC .text:00021B94 ; --------------------------------------------------------------------------- .text:00021B94 .text:00021B94 loc_21B94 ; CODE XREF: __printf_fp+6F4j .text:00021B94 CMP R12, #0 .text:00021B98 ADDLT R3, R12, #0x1F .text:00021B9C MOVGE R3, R12 .text:00021BA0 MOV R3, R3,ASR#5 .text:00021BA4 ADD R0, R0, R3,LSL#2 .text:00021BA8 SUB R1, R11, #-var_54 .text:00021BAC LDR R2, [R11,#var_40] .text:00021BB0 SUB R3, R12, R3,LSL#5 .text:00021BB4 BL __mpn_lshift .text:00021BB8 STR R0, [R11,#var_44] .text:00021BBC LDR R3, [R11,#var_34] .text:00021BC0 LDR R2, [R11,#var_40] .text:00021BC4 ADD R3, R3, R7 .text:00021BC8 CMP R3, #0 .text:00021BCC ADDLT R3, R3, #0x1F .text:00021BD0 CMP R0, #0 .text:00021BD4 ADD R2, R2, R3,ASR#5 .text:00021BD8 STR R2, [R11,#var_40] .text:00021BDC LDRNE R3, [R11,#var_3C] .text:00021BE0 STRNE R0, [R3,R2,LSL#2] .text:00021BE4 ADDNE R3, R2, #1 .text:00021BE8 STRNE R3, [R11,#var_40] .text:00021BEC .text:00021BEC loc_21BEC ; CODE XREF: __printf_fp+754j .text:00021BEC LDR R3, [R11,#var_34] .text:00021BF0 MOV R0, #0 .text:00021BF4 ADD R3, R3, R7 .text:00021BF8 CMP R3, R0 .text:00021BFC ADDLT R3, R3, #0x1F .text:00021C00 CMP R0, R3,ASR#5 .text:00021C04 BGE loc_21C34 .text:00021C08 MOV R12, R0 .text:00021C0C .text:00021C0C loc_21C0C ; CODE XREF: __printf_fp+7F4j .text:00021C0C LDR R1, [R11,#var_3C] .text:00021C10 MOV R2, R0,LSL#2 .text:00021C14 STR R12, [R2,R1] .text:00021C18 LDR R3, [R11,#var_34] .text:00021C1C ADD R0, R0, #1 .text:00021C20 ADD R3, R3, R7 .text:00021C24 CMP R3, #0 .text:00021C28 ADDLT R3, R3, #0x1F .text:00021C2C CMP R0, R3,ASR#5 .text:00021C30 BLT loc_21C0C .text:00021C34 .text:00021C34 loc_21C34 ; CODE XREF: __printf_fp+7C8j .text:00021C34 ; __printf_fp+928j .text:00021C34 SUB R5, R5, #0x10 .text:00021C38 LDR R3, [R5,#8] .text:00021C3C LDR R2, [R11,#var_34] .text:00021C40 ADD R3, R10, R3 .text:00021C44 SUB R3, R3, #1 .text:00021C48 CMP R2, R3 .text:00021C4C BLT loc_21D58 .text:00021C50 LDR R2, [R11,#var_38] .text:00021C54 CMP R2, #0 .text:00021C58 BNE loc_21C78 .text:00021C5C LDMIA R5, {R3,R4} .text:00021C60 LDR R1, =__tens .text:00021C64 LDR R0, [R11,#var_48] .text:00021C68 ADD R1, R1, R3,LSL#2 .text:00021C6C MOV R2, R4,LSL#2 .text:00021C70 BL memcpy .text:00021C74 B loc_21CBC .text:00021C78 ; --------------------------------------------------------------------------- .text:00021C78 .text:00021C78 loc_21C78 ; CODE XREF: __printf_fp+81Cj .text:00021C78 LDR R3, [R5,#4] .text:00021C7C SUB R3, R3, #2 .text:00021C80 STR R3, [SP,#0xBC+var_BC] .text:00021C84 LDR R0, [R11,#var_48] .text:00021C88 LDR R3, =(__tens+8) .text:00021C8C LDR R12, [R5] .text:00021C90 LDR R1, [R11,#var_4C] .text:00021C94 ADD R3, R3, R12,LSL#2 .text:00021C98 BL __mpn_mul .text:00021C9C LDR R2, [R11,#var_38] .text:00021CA0 LDR R1, [R5,#4] .text:00021CA4 CMP R0, #0 .text:00021CA8 STR R0, [R11,#var_44] .text:00021CAC ADD R2, R2, R1 .text:00021CB0 SUB R3, R2, #3 .text:00021CB4 SUBNE R4, R2, #2 .text:00021CB8 MOVEQ R4, R3 .text:00021CBC .text:00021CBC loc_21CBC ; CODE XREF: __printf_fp+838j .text:00021CBC LDR R3, [R11,#var_40] .text:00021CC0 CMP R3, R4 .text:00021CC4 BGT loc_21CE4 .text:00021CC8 BNE loc_21D58 .text:00021CCC LDR R0, [R11,#var_3C] .text:00021CD0 LDR R1, [R11,#var_48] .text:00021CD4 MOV R2, R4 .text:00021CD8 BL __mpn_cmp .text:00021CDC CMP R0, #0 .text:00021CE0 BLT loc_21D58 .text:00021CE4 .text:00021CE4 loc_21CE4 ; CODE XREF: __printf_fp+888j .text:00021CE4 STR R4, [R11,#var_38] .text:00021CE8 SUB R0, R11, #-var_4C .text:00021CEC LDMIA R0, {R0,R1} .text:00021CF0 MOV R2, R4,LSL#2 .text:00021CF4 BL memcpy .text:00021CF8 LDR R2, [R11,#var_38] .text:00021CFC LDR R3, [R11,#var_4C] .text:00021D00 ADD R3, R3, R2,LSL#2 .text:00021D04 LDR R2, [R3,#-4] .text:00021D08 CMP R2, #0x10000 .text:00021D0C BCS loc_21D20 .text:00021D10 CMP R2, #0xFF .text:00021D14 MOVHI R0, #8 .text:00021D18 MOVLS R0, #0 .text:00021D1C B loc_21D2C .text:00021D20 ; --------------------------------------------------------------------------- .text:00021D20 .text:00021D20 loc_21D20 ; CODE XREF: __printf_fp+8D0j .text:00021D20 CMP R2, #0x1000000 .text:00021D24 MOVCS R0, #0x18 .text:00021D28 MOVCC R0, #0x10 .text:00021D2C .text:00021D2C loc_21D2C ; CODE XREF: __printf_fp+8E0j .text:00021D2C LDR R1, =__clz_tab_1 .text:00021D30 MOV R2, R2,LSR R0 .text:00021D34 LDRB R3, [R1,R2] .text:00021D38 ADD R3, R3, R0 .text:00021D3C RSB R3, R3, #0x20 .text:00021D40 LDR R2, [R11,#var_38] .text:00021D44 SUB R2, R2, #2 .text:00021D48 RSB R3, R3, R2,LSL#5 .text:00021D4C SUB R10, R3, #1 .text:00021D50 MOV R2, #1 .text:00021D54 ORR R9, R9, R2,LSL R8 .text:00021D58 .text:00021D58 loc_21D58 ; CODE XREF: __printf_fp+810j .text:00021D58 ; __printf_fp+88Cj ... .text:00021D58 LDR R1, =_fpioconst_pow10 .text:00021D5C SUB R8, R8, #1 .text:00021D60 CMP R5, R1 .text:00021D64 BHI loc_21C34 .text:00021D68 LDR R1, [R11,#var_38] .text:00021D6C STR R9, [R11,#var_34] .text:00021D70 CMP R1, #0 .text:00021D74 BLE loc_2254C .text:00021D78 MOV R5, #0 .text:00021D7C LDR R2, [R11,#var_4C] .text:00021D80 MOV LR, R1 .text:00021D84 LDR R3, [R2] .text:00021D88 MOV R0, R2 .text:00021D8C CMP R3, R5 .text:00021D90 BNE loc_21DCC .text:00021D94 LDR R2, [R11,#var_3C] .text:00021D98 LDR R3, [R2] .text:00021D9C CMP R3, R5 .text:00021DA0 BNE loc_21DCC .text:00021DA4 MOV R12, R0 .text:00021DA8 MOV R1, R2 .text:00021DAC .text:00021DAC loc_21DAC ; CODE XREF: __printf_fp+98Cj .text:00021DAC ADD R5, R5, #1 .text:00021DB0 MOV R2, R5,LSL#2 .text:00021DB4 LDR R3, [R2,R12] .text:00021DB8 CMP R3, #0 .text:00021DBC BNE loc_21DCC .text:00021DC0 LDR R3, [R2,R1] .text:00021DC4 CMP R3, #0 .text:00021DC8 BEQ loc_21DAC .text:00021DCC .text:00021DCC loc_21DCC ; CODE XREF: __printf_fp+954j .text:00021DCC ; __printf_fp+964j ... .text:00021DCC ADD R3, R0, LR,LSL#2 .text:00021DD0 LDR R2, [R3,#-4] .text:00021DD4 CMP R2, #0x10000 .text:00021DD8 BCS loc_21DEC .text:00021DDC CMP R2, #0xFF .text:00021DE0 MOVHI R1, #8 .text:00021DE4 MOVLS R1, #0 .text:00021DE8 B loc_21DF8 .text:00021DEC ; --------------------------------------------------------------------------- .text:00021DEC .text:00021DEC loc_21DEC ; CODE XREF: __printf_fp+99Cj .text:00021DEC CMP R2, #0x1000000 .text:00021DF0 MOVCS R1, #0x18 .text:00021DF4 MOVCC R1, #0x10 .text:00021DF8 .text:00021DF8 loc_21DF8 ; CODE XREF: __printf_fp+9ACj .text:00021DF8 LDR R7, =__clz_tab_1 .text:00021DFC MOV R2, R2,LSR R1 .text:00021E00 LDRB R3, [R7,R2] .text:00021E04 ADD R3, R3, R1 .text:00021E08 RSBS R8, R3, #0x20 .text:00021E0C BNE loc_21EB0 .text:00021E10 CMP R5, #0 .text:00021E14 BLE loc_2254C .text:00021E18 MOV R12, R8 .text:00021E1C RSB R3, R5, LR .text:00021E20 CMP R12, R3 .text:00021E24 BGE loc_21E54 .text:00021E28 MOV LR, R5,LSL#2 .text:00021E2C .text:00021E2C loc_21E2C ; CODE XREF: __printf_fp+A14j .text:00021E2C LDR R0, [R11,#var_4C] .text:00021E30 MOV R1, R12,LSL#2 .text:00021E34 ADD R3, LR, R0 .text:00021E38 LDR R2, [R1,R3] .text:00021E3C STR R2, [R1,R0] .text:00021E40 LDR R3, [R11,#var_38] .text:00021E44 ADD R12, R12, #1 .text:00021E48 RSB R3, R5, R3 .text:00021E4C CMP R12, R3 .text:00021E50 BLT loc_21E2C .text:00021E54 .text:00021E54 loc_21E54 ; CODE XREF: __printf_fp+9E8j .text:00021E54 LDR R3, [R11,#var_38] .text:00021E58 RSB R3, R5, R3 .text:00021E5C STR R3, [R11,#var_38] .text:00021E60 MOV R12, #0 .text:00021E64 LDR R3, [R11,#var_40] .text:00021E68 RSB R3, R5, R3 .text:00021E6C CMP R12, R3 .text:00021E70 BGE loc_21EA0 .text:00021E74 MOV LR, R5,LSL#2 .text:00021E78 .text:00021E78 loc_21E78 ; CODE XREF: __printf_fp+A60j .text:00021E78 LDR R0, [R11,#var_3C] .text:00021E7C MOV R1, R12,LSL#2 .text:00021E80 ADD R3, LR, R0 .text:00021E84 LDR R2, [R1,R3] .text:00021E88 STR R2, [R1,R0] .text:00021E8C LDR R3, [R11,#var_40] .text:00021E90 ADD R12, R12, #1 .text:00021E94 RSB R3, R5, R3 .text:00021E98 CMP R12, R3 .text:00021E9C BLT loc_21E78 .text:00021EA0 .text:00021EA0 loc_21EA0 ; CODE XREF: __printf_fp+A34j .text:00021EA0 LDR R3, [R11,#var_40] .text:00021EA4 .text:00021EA4 loc_21EA4 ; CODE XREF: __printf_fp+C34j .text:00021EA4 RSB R3, R5, R3 .text:00021EA8 .text:00021EA8 loc_21EA8 ; CODE XREF: __printf_fp+BD4j .text:00021EA8 ; __printf_fp+C3Cj .text:00021EA8 STR R3, [R11,#var_40] .text:00021EAC B loc_2254C .text:00021EB0 ; --------------------------------------------------------------------------- .text:00021EB0 .text:00021EB0 loc_21EB0 ; CODE XREF: __printf_fp+9D0j .text:00021EB0 MOV R3, R5,LSL#2 .text:00021EB4 LDR R2, [R3,R0] .text:00021EB8 MOV R4, R3 .text:00021EBC CMP R2, #0 .text:00021EC0 BEQ loc_21F74 .text:00021EC4 RSB R3, R2, #0 .text:00021EC8 AND R3, R2, R3 .text:00021ECC CMP R3, #0x10000 .text:00021ED0 BCS loc_21EF8 .text:00021ED4 CMP R3, #0xFF .text:00021ED8 MOVHI R1, #8 .text:00021EDC MOVLS R1, #0 .text:00021EE0 B loc_21F04 .text:00021EE0 ; --------------------------------------------------------------------------- .text:00021EE4 off_21EE4 DCD _fpioconst_pow10+0x10 ; DATA XREF: __printf_fp+6E8r .text:00021EE8 off_21EE8 DCD __tens ; DATA XREF: __printf_fp+824r .text:00021EEC off_21EEC DCD __tens+8 ; DATA XREF: __printf_fp+84Cr .text:00021EF0 off_21EF0 DCD __clz_tab_1 ; DATA XREF: __printf_fp:loc_21D2Cr .text:00021EF0 ; __printf_fp:loc_21DF8r .text:00021EF4 off_21EF4 DCD _fpioconst_pow10 ; DATA XREF: __printf_fp:loc_21D58r .text:00021EF8 ; --------------------------------------------------------------------------- .text:00021EF8 .text:00021EF8 loc_21EF8 ; CODE XREF: __printf_fp+A94j .text:00021EF8 CMP R3, #0x1000000 .text:00021EFC MOVCS R1, #0x18 .text:00021F00 MOVCC R1, #0x10 .text:00021F04 .text:00021F04 loc_21F04 ; CODE XREF: __printf_fp+AA4j .text:00021F04 LDR R12, =__clz_tab_1 .text:00021F08 MOV R3, R3,LSR R1 .text:00021F0C LDRB R2, [R12,R3] .text:00021F10 ADD R2, R2, R1 .text:00021F14 SUB R12, R2, #1 .text:00021F18 LDR R3, [R11,#var_3C] .text:00021F1C LDR R2, [R4,R3] .text:00021F20 CMP R2, #0 .text:00021F24 BEQ loc_21FBC .text:00021F28 RSB R3, R2, #0 .text:00021F2C AND R3, R2, R3 .text:00021F30 CMP R3, #0x10000 .text:00021F34 BCS loc_21F48 .text:00021F38 CMP R3, #0xFF .text:00021F3C MOVHI R1, #8 .text:00021F40 MOVLS R1, #0 .text:00021F44 B loc_21F54 .text:00021F48 ; --------------------------------------------------------------------------- .text:00021F48 .text:00021F48 loc_21F48 ; CODE XREF: __printf_fp+AF8j .text:00021F48 CMP R3, #0x1000000 .text:00021F4C MOVCS R1, #0x18 .text:00021F50 MOVCC R1, #0x10 .text:00021F54 .text:00021F54 loc_21F54 ; CODE XREF: __printf_fp+B08j .text:00021F54 LDR R7, =__clz_tab_1 .text:00021F58 MOV R3, R3,LSR R1 .text:00021F5C LDRB R2, [R7,R3] .text:00021F60 ADD R2, R2, R1 .text:00021F64 SUB R2, R2, #1 .text:00021F68 CMP R2, R12 .text:00021F6C MOVLT R12, R2 .text:00021F70 B loc_21FBC .text:00021F74 ; --------------------------------------------------------------------------- .text:00021F74 .text:00021F74 loc_21F74 ; CODE XREF: __printf_fp+A84j .text:00021F74 LDR R3, [R11,#var_3C] .text:00021F78 LDR R2, [R4,R3] .text:00021F7C RSB R1, R2, #0 .text:00021F80 AND R2, R2, R1 .text:00021F84 CMP R2, #0x10000 .text:00021F88 BCS loc_21F9C .text:00021F8C CMP R2, #0xFF .text:00021F90 MOVHI R1, #8 .text:00021F94 MOVLS R1, #0 .text:00021F98 B loc_21FA8 .text:00021F9C ; --------------------------------------------------------------------------- .text:00021F9C .text:00021F9C loc_21F9C ; CODE XREF: __printf_fp+B4Cj .text:00021F9C CMP R2, #0x1000000 .text:00021FA0 MOVCS R1, #0x18 .text:00021FA4 MOVCC R1, #0x10 .text:00021FA8 .text:00021FA8 loc_21FA8 ; CODE XREF: __printf_fp+B5Cj .text:00021FA8 LDR R12, =__clz_tab_1 .text:00021FAC MOV R2, R2,LSR R1 .text:00021FB0 LDRB R3, [R12,R2] .text:00021FB4 ADD R3, R3, R1 .text:00021FB8 SUB R12, R3, #1 .text:00021FBC .text:00021FBC loc_21FBC ; CODE XREF: __printf_fp+AE8j .text:00021FBC ; __printf_fp+B34j .text:00021FBC CMP R5, #0 .text:00021FC0 RSB R7, R8, #0x20 .text:00021FC4 BNE loc_22014 .text:00021FC8 CMP R7, R12 .text:00021FCC BLE loc_22014 .text:00021FD0 MOV R1, R0 .text:00021FD4 MOV R2, LR .text:00021FD8 MOV R3, R8 .text:00021FDC BL __mpn_lshift .text:00021FE0 LDR R0, [R11,#var_3C] .text:00021FE4 MOV R3, R8 .text:00021FE8 LDR R2, [R11,#var_40] .text:00021FEC MOV R1, R0 .text:00021FF0 BL __mpn_lshift .text:00021FF4 CMP R0, #0 .text:00021FF8 STR R0, [R11,#var_44] .text:00021FFC BEQ loc_2254C .text:00022000 LDR R3, [R11,#var_40] .text:00022004 LDR R2, [R11,#var_3C] .text:00022008 STR R0, [R2,R3,LSL#2] .text:0002200C ADD R3, R3, #1 .text:00022010 B loc_21EA8 .text:00022014 ; --------------------------------------------------------------------------- .text:00022014 .text:00022014 loc_22014 ; CODE XREF: __printf_fp+B88j .text:00022014 ; __printf_fp+B90j .text:00022014 CMP R7, R12 .text:00022018 BGT loc_2207C .text:0002201C ADD R1, R0, R4 .text:00022020 RSB R2, R5, LR .text:00022024 MOV R3, R7 .text:00022028 BL __mpn_rshift .text:0002202C LDR R3, [R11,#var_38] .text:00022030 SUB R3, R3, #1 .text:00022034 RSB R3, R5, R3 .text:00022038 STR R3, [R11,#var_38] .text:0002203C LDR R0, [R11,#var_3C] .text:00022040 LDR R2, [R11,#var_40] .text:00022044 MOV R3, R7 .text:00022048 ADD R1, R0, R4 .text:0002204C RSB R2, R5, R2 .text:00022050 BL __mpn_rshift .text:00022054 SUB R0, R11, #-var_40 .text:00022058 LDMIA R0, {R0,R3} .text:0002205C RSB R1, R5, R0 .text:00022060 ADD R3, R3, R1,LSL#2 .text:00022064 LDR R2, [R3,#-4] .text:00022068 CMP R2, #0 .text:0002206C SUBEQ R3, R0, #1 .text:00022070 BEQ loc_21EA4 .text:00022074 MOV R3, R1 .text:00022078 B loc_21EA8 .text:0002207C ; --------------------------------------------------------------------------- .text:0002207C .text:0002207C loc_2207C ; CODE XREF: __printf_fp+BDCj .text:0002207C SUB R4, R4, #4 .text:00022080 ADD R1, R0, R4 .text:00022084 ADD R2, LR, #1 .text:00022088 RSB R2, R5, R2 .text:0002208C MOV R3, R7 .text:00022090 BL __mpn_rshift .text:00022094 SUB R0, R11, #-var_3C .text:00022098 LDMIA R0, {R0,R3} .text:0002209C LDR R2, [R11,#var_40] .text:000220A0 RSB R3, R5, R3 .text:000220A4 STR R3, [R11,#var_38] .text:000220A8 MOV R3, R7 .text:000220AC ADD R1, R0, R4 .text:000220B0 ADD R2, R2, #1 .text:000220B4 RSB R2, R5, R2 .text:000220B8 BL __mpn_rshift .text:000220BC LDR R12, [R11,#var_40] .text:000220C0 LDR R3, [R11,#var_3C] .text:000220C4 ADD R2, R12, #1 .text:000220C8 RSB R2, R5, R2 .text:000220CC ADD R3, R3, R2,LSL#2 .text:000220D0 LDR R1, [R3,#-4] .text:000220D4 CMP R1, #0 .text:000220D8 SUBEQ R2, R12, R5 .text:000220DC STR R2, [R11,#var_40] .text:000220E0 B loc_2254C .text:000220E4 ; --------------------------------------------------------------------------- .text:000220E4 .text:000220E4 loc_220E4 ; CODE XREF: __printf_fp+6D4j .text:000220E4 CMP R12, #0 .text:000220E8 BGE loc_22520 .text:000220EC SUB R1, R11, #-var_54 .text:000220F0 LDR R2, [R11,#var_40] .text:000220F4 MOV R3, R7 .text:000220F8 BL __mpn_lshift .text:000220FC STR R0, [R11,#var_44] .text:00022100 LDR R3, [R11,#var_40] .text:00022104 LDR R2, [R11,#var_3C] .text:00022108 STR R0, [R2,R3,LSL#2] .text:0002210C ADD R3, R3, #1 .text:00022110 STR R3, [R11,#var_40] .text:00022114 MOV R2, #1 .text:00022118 STR R2, [R11,#var_2C] .text:0002211C STR R8, [R11,#var_8C] .text:00022120 LDR R2, =(_fpioconst_pow10+0x10) .text:00022124 SUB R9, R11, #-var_60 .text:00022128 LDR R3, [R11,#var_34] .text:0002212C MOV R0, #8 .text:00022130 STR R0, [R11,#var_90] .text:00022134 ADD R10, R2, R0,LSL#4 .text:00022138 RSB R3, R3, #0 .text:0002213C STR R3, [R11,#var_34] .text:00022140 .text:00022140 loc_22140 ; CODE XREF: __printf_fp+1008j .text:00022140 LDR R2, [R11,#var_34] .text:00022144 LDR R1, [R11,#var_90] .text:00022148 SUB R10, R10, #0x10 .text:0002214C LDR R3, [R10,#0xC] .text:00022150 SUB R8, R1, #1 .text:00022154 CMP R2, R3 .text:00022158 MOV R1, R2 .text:0002215C BLT loc_22430 .text:00022160 LDR R3, [R10,#4] .text:00022164 LDR R12, [R11,#var_40] .text:00022168 SUB R2, R3, #2 .text:0002216C CMP R12, R2 .text:00022170 BGE loc_22190 .text:00022174 STR R12, [SP,#0xBC+var_BC] .text:00022178 LDR R0, [R11,#var_48] .text:0002217C LDR R12, [R10] .text:00022180 LDR R1, =(__tens+8) .text:00022184 LDR R3, [R11,#var_3C] .text:00022188 ADD R1, R1, R12,LSL#2 .text:0002218C B loc_221AC .text:00022190 ; --------------------------------------------------------------------------- .text:00022190 .text:00022190 loc_22190 ; CODE XREF: __printf_fp+D34j .text:00022190 STR R2, [SP,#0xBC+var_BC] .text:00022194 LDR R0, [R11,#var_48] .text:00022198 LDR R3, =(__tens+8) .text:0002219C MOV R2, R12 .text:000221A0 LDR R12, [R10] .text:000221A4 LDR R1, [R11,#var_3C] .text:000221A8 ADD R3, R3, R12,LSL#2 .text:000221AC .text:000221AC loc_221AC ; CODE XREF: __printf_fp+D50j .text:000221AC BL __mpn_mul .text:000221B0 STR R0, [R11,#var_44] .text:000221B4 LDR R12, [R11,#var_40] .text:000221B8 LDR R1, [R10,#4] .text:000221BC LDR R0, [R11,#var_44] .text:000221C0 ADD R1, R12, R1 .text:000221C4 SUB R2, R1, #3 .text:000221C8 CMP R0, #0 .text:000221CC SUBNE R4, R1, #2 .text:000221D0 MOVEQ R4, R2 .text:000221D4 LDR R3, [R11,#var_48] .text:000221D8 ADD R3, R3, R4,LSL#2 .text:000221DC LDR R2, [R3,#-4] .text:000221E0 CMP R2, #0x10000 .text:000221E4 BCS loc_221F8 .text:000221E8 CMP R2, #0xFF .text:000221EC MOVHI R0, #8 .text:000221F0 MOVLS R0, #0 .text:000221F4 B loc_22204 .text:000221F8 ; --------------------------------------------------------------------------- .text:000221F8 .text:000221F8 loc_221F8 ; CODE XREF: __printf_fp+DA8j .text:000221F8 CMP R2, #0x1000000 .text:000221FC MOVCS R0, #0x18 .text:00022200 MOVCC R0, #0x10 .text:00022204 .text:00022204 loc_22204 ; CODE XREF: __printf_fp+DB8j .text:00022204 LDR R1, =__clz_tab_1 .text:00022208 MOV R2, R2,LSR R0 .text:0002220C LDRB R3, [R1,R2] .text:00022210 ADD R3, R3, R0 .text:00022214 RSB R5, R3, #0x20 .text:00022218 RSB R0, R12, R4 .text:0002221C SUB R2, R5, #0x1F .text:00022220 LDR R3, [R11,#var_34] .text:00022224 RSB R7, R2, R0,LSL#5 .text:00022228 ADD R3, R3, #3 .text:0002222C CMP R7, R3 .text:00022230 BNE loc_22288 .text:00022234 CMP R5, #0x1C .text:00022238 BGT loc_22264 .text:0002223C MOV R3, #0 .text:00022240 RSB R2, R5, #0x1C .text:00022244 STR R3, [R11,#var_60] .text:00022248 ADD R3, R3, #0xA .text:0002224C MOV R3, R3,LSL R2 .text:00022250 STR R3, [R9,#4] .text:00022254 B loc_22288 .text:00022254 ; --------------------------------------------------------------------------- .text:00022258 off_22258 DCD __clz_tab_1 ; DATA XREF: __printf_fp:loc_21F04r .text:00022258 ; __printf_fp:loc_21F54r ... .text:0002225C off_2225C DCD _fpioconst_pow10+0x10 ; DATA XREF: __printf_fp+CE4r .text:00022260 off_22260 DCD __tens+8 ; DATA XREF: __printf_fp+D44r .text:00022260 ; __printf_fp+D5Cr .text:00022264 ; --------------------------------------------------------------------------- .text:00022264 .text:00022264 loc_22264 ; CODE XREF: __printf_fp+DFCj .text:00022264 MOV R3, #0xA0000000 .text:00022268 STR R3, [R11,#var_60] .text:0002226C MOV R2, #0 .text:00022270 STR R2, [R9,#4] .text:00022274 MOV R0, R9 .text:00022278 MOV R1, R9 .text:0002227C ADD R2, R2, #2 .text:00022280 RSB R3, R5, #0x20 .text:00022284 BL __mpn_lshift .text:00022288 .text:00022288 loc_22288 ; CODE XREF: __printf_fp+DF4j .text:00022288 ; __printf_fp+E18j .text:00022288 LDR R2, [R11,#var_34] .text:0002228C ADD R3, R2, #3 .text:00022290 CMP R7, R3 .text:00022294 MOV R1, R2 .text:00022298 BLT loc_222D4 .text:0002229C LDR R2, [R11,#var_90] .text:000222A0 SUB R8, R2, #1 .text:000222A4 BNE loc_22430 .text:000222A8 LDR R3, [R11,#var_48] .text:000222AC ADD R0, R3, R4,LSL#2 .text:000222B0 LDR R2, [R0,#-4] .text:000222B4 LDR R3, [R9,#4] .text:000222B8 CMP R2, R3 .text:000222BC BCC loc_222D4 .text:000222C0 BNE loc_22430 .text:000222C4 LDR R2, [R0,#-8] .text:000222C8 LDR R3, [R11,#var_60] .text:000222CC CMP R2, R3 .text:000222D0 BCS loc_22430 .text:000222D4 .text:000222D4 loc_222D4 ; CODE XREF: __printf_fp+E5Cj .text:000222D4 ; __printf_fp+E80j .text:000222D4 RSB R1, R7, R1 .text:000222D8 STR R1, [R11,#var_34] .text:000222DC LDR R7, [R11,#var_8C] .text:000222E0 LDR R12, [R11,#var_90] .text:000222E4 MOV R3, #1 .text:000222E8 ORR R7, R7, R3,LSL R12 .text:000222EC STR R7, [R11,#var_8C] .text:000222F0 RSB R2, R1, R5 .text:000222F4 CMP R1, #0 .text:000222F8 MOVLT R5, R2 .text:000222FC LDR R0, [R11,#var_48] .text:00022300 MOV LR, #0 .text:00022304 LDR R3, [R0] .text:00022308 SUB R8, R12, #1 .text:0002230C CMP R3, LR .text:00022310 BNE loc_22328 .text:00022314 MOV R2, R0 .text:00022318 .text:00022318 loc_22318 ; CODE XREF: __printf_fp+EE8j .text:00022318 ADD LR, LR, #1 .text:0002231C LDR R3, [R2,LR,LSL#2] .text:00022320 CMP R3, #0 .text:00022324 BEQ loc_22318 .text:00022328 .text:00022328 loc_22328 ; CODE XREF: __printf_fp+ED4j .text:00022328 CMP R5, #0x1F .text:0002232C BNE loc_22374 .text:00022330 MOV R12, #0 .text:00022334 RSB R4, LR, R4 .text:00022338 CMP R12, R4 .text:0002233C MOV R5, R4 .text:00022340 BGE loc_2236C .text:00022344 MOV LR, LR,LSL#2 .text:00022348 .text:00022348 loc_22348 ; CODE XREF: __printf_fp+F2Cj .text:00022348 MOV R0, R12,LSL#2 .text:0002234C LDR R3, [R11,#var_48] .text:00022350 ADD R12, R12, #1 .text:00022354 LDR R1, [R11,#var_3C] .text:00022358 ADD R3, LR, R3 .text:0002235C LDR R2, [R0,R3] .text:00022360 CMP R12, R4 .text:00022364 STR R2, [R0,R1] .text:00022368 BLT loc_22348 .text:0002236C .text:0002236C loc_2236C ; CODE XREF: __printf_fp+F04j .text:0002236C STR R5, [R11,#var_40] .text:00022370 B loc_2242C .text:00022374 ; --------------------------------------------------------------------------- .text:00022374 .text:00022374 loc_22374 ; CODE XREF: __printf_fp+EF0j .text:00022374 MOV R1, LR,LSL#2 .text:00022378 LDR R2, [R1,R0] .text:0002237C RSB R3, R2, #0 .text:00022380 AND R2, R2, R3 .text:00022384 CMP R2, #0x10000 .text:00022388 MOV R12, R1 .text:0002238C BCS loc_223A0 .text:00022390 CMP R2, #0xFF .text:00022394 MOVHI R1, #8 .text:00022398 MOVLS R1, #0 .text:0002239C B loc_223AC .text:000223A0 ; --------------------------------------------------------------------------- .text:000223A0 .text:000223A0 loc_223A0 ; CODE XREF: __printf_fp+F50j .text:000223A0 CMP R2, #0x1000000 .text:000223A4 MOVCS R1, #0x18 .text:000223A8 MOVCC R1, #0x10 .text:000223AC .text:000223AC loc_223AC ; CODE XREF: __printf_fp+F60j .text:000223AC LDR R7, =__clz_tab_1 .text:000223B0 MOV R3, R2,LSR R1 .text:000223B4 LDRB R2, [R7,R3] .text:000223B8 ADD R2, R2, R1 .text:000223BC SUB R1, R2, #1 .text:000223C0 CMP LR, #0 .text:000223C4 RSB R3, R5, #0x1F .text:000223C8 BNE loc_22404 .text:000223CC CMP R3, R1 .text:000223D0 BLE loc_22404 .text:000223D4 MOV R1, R0 .text:000223D8 MOV R2, R4 .text:000223DC LDR R0, [R11,#var_3C] .text:000223E0 ADD R3, R5, #1 .text:000223E4 BL __mpn_lshift .text:000223E8 STR R0, [R11,#var_44] .text:000223EC LDR R3, [R11,#var_3C] .text:000223F0 ADD R2, R4, #1 .text:000223F4 STR R2, [R11,#var_40] .text:000223F8 ADD R3, R3, R2,LSL#2 .text:000223FC STR R0, [R3,#-4] .text:00022400 B loc_2242C .text:00022404 ; --------------------------------------------------------------------------- .text:00022404 .text:00022404 loc_22404 ; CODE XREF: __printf_fp+F8Cj .text:00022404 ; __printf_fp+F94j .text:00022404 CMP R3, R1 .text:00022408 ADDLE R1, R0, R12 .text:0002240C SUBGT R1, R12, #4 .text:00022410 ADDGT R1, R0, R1 .text:00022414 ADDGT R4, R4, #1 .text:00022418 RSB R4, LR, R4 .text:0002241C LDR R0, [R11,#var_3C] .text:00022420 MOV R2, R4 .text:00022424 BL __mpn_rshift .text:00022428 STR R4, [R11,#var_40] .text:0002242C .text:0002242C loc_2242C ; CODE XREF: __printf_fp+F34j .text:0002242C ; __printf_fp+FC4j .text:0002242C LDR R1, [R11,#var_34] .text:00022430 .text:00022430 loc_22430 ; CODE XREF: __printf_fp+D20j .text:00022430 ; __printf_fp+E68j ... .text:00022430 LDR R12, =(_fpioconst_pow10+0x10) .text:00022434 STR R8, [R11,#var_90] .text:00022438 CMP R10, R12 .text:0002243C BEQ loc_22448 .text:00022440 CMP R1, #0 .text:00022444 BGT loc_22140 .text:00022448 .text:00022448 loc_22448 ; CODE XREF: __printf_fp+1000j .text:00022448 CMP R1, #0 .text:0002244C BLE loc_22514 .text:00022450 LDR R0, [R11,#var_48] .text:00022454 LDR R1, [R11,#var_3C] .text:00022458 LDR R2, [R11,#var_40] .text:0002245C MOV R3, #0xA .text:00022460 BL __mpn_mul_1 .text:00022464 STR R0, [R11,#var_44] .text:00022468 LDR R4, [R11,#var_40] .text:0002246C LDR R3, [R11,#var_48] .text:00022470 LDR R2, [R3] .text:00022474 RSB R1, R2, #0 .text:00022478 AND R2, R2, R1 .text:0002247C CMP R2, #0x10000 .text:00022480 BCS loc_22494 .text:00022484 CMP R2, #0xFF .text:00022488 MOVHI R0, #8 .text:0002248C MOVLS R0, #0 .text:00022490 B loc_224A0 .text:00022494 ; --------------------------------------------------------------------------- .text:00022494 .text:00022494 loc_22494 ; CODE XREF: __printf_fp+1044j .text:00022494 CMP R2, #0x1000000 .text:00022498 MOVCS R0, #0x18 .text:0002249C MOVCC R0, #0x10 .text:000224A0 .text:000224A0 loc_224A0 ; CODE XREF: __printf_fp+1054j .text:000224A0 LDR R1, =__clz_tab_1 .text:000224A4 MOV R3, R2,LSR R0 .text:000224A8 LDRB R2, [R1,R3] .text:000224AC ADD R2, R2, R0 .text:000224B0 SUB R2, R2, #1 .text:000224B4 LDR R3, [R11,#var_34] .text:000224B8 CMP R3, #4 .text:000224BC MOVGE R3, #4 .text:000224C0 CMP R2, R3 .text:000224C4 BGE loc_224F4 .text:000224C8 LDR R0, [R11,#var_3C] .text:000224CC MOV R2, R4 .text:000224D0 LDR R1, [R11,#var_48] .text:000224D4 RSB R3, R3, #0x20 .text:000224D8 BL __mpn_lshift .text:000224DC CMP R0, #0 .text:000224E0 STR R0, [R11,#var_44] .text:000224E4 LDRNE R3, [R11,#var_3C] .text:000224E8 STRNE R0, [R3,R4,LSL#2] .text:000224EC ADDNE R4, R4, #1 .text:000224F0 B loc_22504 .text:000224F4 ; --------------------------------------------------------------------------- .text:000224F4 .text:000224F4 loc_224F4 ; CODE XREF: __printf_fp+1088j .text:000224F4 LDR R0, [R11,#var_3C] .text:000224F8 LDR R1, [R11,#var_48] .text:000224FC MOV R2, R4 .text:00022500 BL __mpn_rshift .text:00022504 .text:00022504 loc_22504 ; CODE XREF: __printf_fp+10B4j .text:00022504 LDR R0, [R11,#var_8C] .text:00022508 STR R4, [R11,#var_40] .text:0002250C ORR R0, R0, #1 .text:00022510 STR R0, [R11,#var_8C] .text:00022514 .text:00022514 loc_22514 ; CODE XREF: __printf_fp+1010j .text:00022514 LDR R1, [R11,#var_8C] .text:00022518 STR R1, [R11,#var_34] .text:0002251C B loc_2254C .text:00022520 ; --------------------------------------------------------------------------- .text:00022520 .text:00022520 loc_22520 ; CODE XREF: __printf_fp+CACj .text:00022520 SUB R1, R11, #-var_54 .text:00022524 LDR R2, [R11,#var_40] .text:00022528 ADD R3, R12, R7 .text:0002252C BL __mpn_lshift .text:00022530 STR R0, [R11,#var_44] .text:00022534 LDR R3, [R11,#var_40] .text:00022538 LDR R2, [R11,#var_3C] .text:0002253C STR R0, [R2,R3,LSL#2] .text:00022540 ADD R3, R3, #1 .text:00022544 STR R3, [R11,#var_40] .text:00022548 STR R8, [R11,#var_34] .text:0002254C .text:0002254C loc_2254C ; CODE XREF: __printf_fp+938j .text:0002254C ; __printf_fp+9D8j ... .text:0002254C LDR R2, [R11,#var_64] .text:00022550 LDR R3, [R2,#8] .text:00022554 MOV R7, #0 .text:00022558 STR R7, [R11,#var_A4] .text:0002255C LDR R12, =__ctype_tolower .text:00022560 LDR R2, [R12] .text:00022564 LDR R1, [R2,R3,LSL#2] .text:00022568 STR R7, [R11,#var_B0] .text:0002256C MOV R9, R7 .text:00022570 LDR R0, [R11,#var_64] .text:00022574 CMP R1, #0x65 .text:00022578 MOV R1, R3 .text:0002257C LDR R10, [R0,#4] .text:00022580 BNE loc_225B8 .text:00022584 MOV R2, 0x7FFFFFFF .text:00022588 STR R2, [R11,#var_A8] .text:0002258C LDR R4, [R0] .text:00022590 MOV R8, #1 .text:00022594 STR R8, [R11,#var_AC] .text:00022598 STR R1, [R11,#var_30] .text:0002259C CMP R4, R7 .text:000225A0 MOVGE R7, R4 .text:000225A4 MOVLT R7, #6 .text:000225A8 MOV R4, R7 .text:000225AC ADD R3, R7, #8 .text:000225B0 STR R3, [R11,#var_A0] .text:000225B4 B loc_226D8 .text:000225B8 ; --------------------------------------------------------------------------- .text:000225B8 .text:000225B8 loc_225B8 ; CODE XREF: __printf_fp+1144j .text:000225B8 CMP R1, #0x66 .text:000225BC BNE loc_22620 .text:000225C0 STR R1, [R11,#var_30] .text:000225C4 LDR R7, [R11,#var_64] .text:000225C8 LDR R4, [R7] .text:000225CC LDR R3, [R11,#var_2C] .text:000225D0 CMP R4, #0 .text:000225D4 MOVGE R7, R4 .text:000225D8 MOVLT R7, #6 .text:000225DC MOV R4, R7 .text:000225E0 CMP R3, #0 .text:000225E4 BNE loc_22600 .text:000225E8 LDR R2, [R11,#var_34] .text:000225EC ADD R3, R7, #2 .text:000225F0 ADD R8, R2, #1 .text:000225F4 ADD R2, R2, R3 .text:000225F8 STR R2, [R11,#var_A0] .text:000225FC B loc_2260C .text:00022600 ; --------------------------------------------------------------------------- .text:00022600 .text:00022600 loc_22600 ; CODE XREF: __printf_fp+11A8j .text:00022600 MOV R8, #1 .text:00022604 ADD R12, R7, #2 .text:00022608 STR R12, [R11,#var_A0] .text:0002260C .text:0002260C loc_2260C ; CODE XREF: __printf_fp+11C0j .text:0002260C MOV R0, 0x7FFFFFFF .text:00022610 STR R0, [R11,#var_A8] .text:00022614 MOV R1, #1 .text:00022618 STR R1, [R11,#var_AC] .text:0002261C B loc_226D8 .text:00022620 ; --------------------------------------------------------------------------- .text:00022620 .text:00022620 loc_22620 ; CODE XREF: __printf_fp+1180j .text:00022620 LDR R2, [R11,#var_64] .text:00022624 LDR R3, [R2] .text:00022628 CMP R3, #0 .text:0002262C BLT loc_22638 .text:00022630 MOVEQ R3, #1 .text:00022634 B loc_2263C .text:00022638 ; --------------------------------------------------------------------------- .text:00022638 .text:00022638 loc_22638 ; CODE XREF: __printf_fp+11F0j .text:00022638 MOV R3, #6 .text:0002263C .text:0002263C loc_2263C ; CODE XREF: __printf_fp+11F8j .text:0002263C STR R3, [R11,#var_A8] .text:00022640 LDR R2, [R11,#var_2C] .text:00022644 CMP R2, #0 .text:00022648 BNE loc_2265C .text:0002264C LDR R3, [R11,#var_34] .text:00022650 LDR R7, [R11,#var_A8] .text:00022654 CMP R3, R7 .text:00022658 BGE loc_22670 .text:0002265C .text:0002265C loc_2265C ; CODE XREF: __printf_fp+120Cj .text:0002265C CMP R2, #0 .text:00022660 BEQ loc_22690 .text:00022664 LDR R3, [R11,#var_34] .text:00022668 CMP R3, #4 .text:0002266C BLE loc_22690 .text:00022670 .text:00022670 loc_22670 ; CODE XREF: __printf_fp+121Cj .text:00022670 MOV R8, #1 .text:00022674 LDR R12, [R11,#var_A8] .text:00022678 SUB R3, R1, #2 .text:0002267C STR R3, [R11,#var_30] .text:00022680 SUB R4, R12, #1 .text:00022684 ADD R0, R12, #7 .text:00022688 STR R0, [R11,#var_A0] .text:0002268C B loc_226BC .text:00022690 ; --------------------------------------------------------------------------- .text:00022690 .text:00022690 loc_22690 ; CODE XREF: __printf_fp+1224j .text:00022690 ; __printf_fp+1230j .text:00022690 LDR R2, [R11,#var_2C] .text:00022694 MOV R3, #0x66 .text:00022698 STR R3, [R11,#var_30] .text:0002269C CMP R2, #0 .text:000226A0 LDREQ R3, [R11,#var_34] .text:000226A4 ADDEQ R8, R3, #1 .text:000226A8 MOVNE R8, #0 .text:000226AC LDR R1, [R11,#var_A8] .text:000226B0 RSB R4, R8, R1 .text:000226B4 ADD R2, R1, #5 .text:000226B8 STR R2, [R11,#var_A0] .text:000226BC .text:000226BC loc_226BC ; CODE XREF: __printf_fp+1250j .text:000226BC LDR R7, [R11,#var_64] .text:000226C0 LDRB R3, [R7,#0xC] .text:000226C4 MOV R12, #0 .text:000226C8 STR R12, [R11,#var_AC] .text:000226CC TST R3, #8 .text:000226D0 MOVNE R7, R4 .text:000226D4 MOVEQ R7, R12 .text:000226D8 .text:000226D8 loc_226D8 ; CODE XREF: __printf_fp+1178j .text:000226D8 ; __printf_fp+11E0j .text:000226D8 LDR R0, [R11,#var_80] .text:000226DC CMP R0, #0 .text:000226E0 BEQ loc_22700 .text:000226E4 LDR R1, [R11,#var_80] .text:000226E8 MOV R0, R8 .text:000226EC BL __guess_grouping .text:000226F0 STR R0, [R11,#var_B0] .text:000226F4 LDR R1, [R11,#var_A0] .text:000226F8 ADD R1, R1, R0 .text:000226FC STR R1, [R11,#var_A0] .text:00022700 .text:00022700 loc_22700 ; CODE XREF: __printf_fp+12A4j .text:00022700 MOV R3, #0x1380 .text:00022704 LDR R2, [R11,#var_A0] .text:00022708 ADD R3, R3, #8 .text:0002270C CMP R2, R3 .text:00022710 MOVLE R3, #0 .text:00022714 MOVGT R3, #1 .text:00022718 CMP R3, #0 .text:0002271C STR R3, [R11,#var_9C] .text:00022720 BEQ loc_22750 .text:00022724 ADD R0, R2, #2 .text:00022728 MOV R0, R0,LSL#2 .text:0002272C BL malloc .text:00022730 CMP R0, #0 .text:00022734 STR R0, [R11,#var_94] .text:00022738 BNE loc_22764 .text:0002273C .text:0002273C loc_2273C ; CODE XREF: __printf_fp+320j .text:0002273C ; __printf_fp+394j ... .text:0002273C MOV R0, 0xFFFFFFFF .text:00022740 B locret_23274 .text:00022740 ; --------------------------------------------------------------------------- .text:00022744 off_22744 DCD __clz_tab_1 ; DATA XREF: __printf_fp:loc_223ACr .text:00022744 ; __printf_fp:loc_224A0r .text:00022748 off_22748 DCD _fpioconst_pow10+0x10 ; DATA XREF: __printf_fp:loc_22430r .text:0002274C off_2274C DCD __ctype_tolower ; DATA XREF: __printf_fp+1120r .text:00022750 ; --------------------------------------------------------------------------- .text:00022750 .text:00022750 loc_22750 ; CODE XREF: __printf_fp+12E4j .text:00022750 LDR R12, [R11,#var_A0] .text:00022754 ADD R3, R12, #2 .text:00022758 SUB SP, SP, R3,LSL#2 .text:0002275C ADD R0, SP, #0xBC+var_B4 .text:00022760 STR R0, [R11,#var_94] .text:00022764 .text:00022764 loc_22764 ; CODE XREF: __printf_fp+12FCj .text:00022764 LDR R1, [R11,#var_94] .text:00022768 LDR R3, [R11,#var_2C] .text:0002276C ADD R1, R1, #8 .text:00022770 MOV R5, R1 .text:00022774 CMP R3, #0 .text:00022778 STR R1, [R11,#var_98] .text:0002277C BEQ loc_2278C .text:00022780 LDR R3, [R11,#var_30] .text:00022784 CMP R3, #0x66 .text:00022788 BEQ loc_22820 .text:0002278C .text:0002278C loc_2278C ; CODE XREF: __printf_fp+1340j .text:0002278C LDR R2, [R11,#var_A4] .text:00022790 CMP R2, R8 .text:00022794 BGE loc_227C8 .text:00022798 RSB R2, R2, R8 .text:0002279C STR R2, [R11,#var_A4] .text:000227A0 .text:000227A0 loc_227A0 ; CODE XREF: __printf_fp+1384j .text:000227A0 LDR R3, [R11,#var_A4] .text:000227A4 SUB R3, R3, #1 .text:000227A8 STR R3, [R11,#var_A4] .text:000227AC SUB R12, R11, #-var_28 .text:000227B0 BL hack_digit.159 .text:000227B4 LDR R12, [R11,#var_A4] .text:000227B8 STR R0, [R5],#4 .text:000227BC CMP R12, #0 .text:000227C0 BNE loc_227A0 .text:000227C4 STR R8, [R11,#var_A4] .text:000227C8 .text:000227C8 loc_227C8 ; CODE XREF: __printf_fp+1358j .text:000227C8 LDR R0, [R11,#var_64] .text:000227CC LDRB R2, [R0,#0xC] .text:000227D0 MOV R1, #1 .text:000227D4 STR R1, [R11,#var_AC] .text:000227D8 TST R2, #8 .text:000227DC MOVEQ R3, #0 .text:000227E0 MOVNE R3, #1 .text:000227E4 CMP R7, #0 .text:000227E8 CMPLE R3, #0 .text:000227EC BNE loc_22814 .text:000227F0 CMP R4, #0 .text:000227F4 BLE loc_22888 .text:000227F8 LDR R3, [R11,#var_40] .text:000227FC CMP R3, R1 .text:00022800 BGT loc_22814 .text:00022804 LDR R3, [R11,#var_3C] .text:00022808 LDR R2, [R3] .text:0002280C CMP R2, #0 .text:00022810 BEQ loc_22888 .text:00022814 .text:00022814 loc_22814 ; CODE XREF: __printf_fp+13B0j .text:00022814 ; __printf_fp+13C4j .text:00022814 LDR R2, [R11,#var_74] .text:00022818 STR R2, [R5],#4 .text:0002281C B loc_22888 .text:00022820 ; --------------------------------------------------------------------------- .text:00022820 .text:00022820 loc_22820 ; CODE XREF: __printf_fp+134Cj .text:00022820 LDR R3, [R11,#var_94] .text:00022824 MOV R2, #0x30 .text:00022828 STR R2, [R3,#8] .text:0002282C LDR R3, [R11,#var_34] .text:00022830 SUB R3, R3, #1 .text:00022834 STR R3, [R11,#var_34] .text:00022838 LDR R12, [R11,#var_94] .text:0002283C LDR R0, [R11,#var_74] .text:00022840 ADD R5, R12, #0x10 .text:00022844 STR R0, [R12,#0xC] .text:00022848 B loc_22888 .text:0002284C ; --------------------------------------------------------------------------- .text:0002284C .text:0002284C loc_2284C ; CODE XREF: __printf_fp+1450j .text:0002284C ; __printf_fp+1464j ... .text:0002284C ADD R9, R9, #1 .text:00022850 SUB R12, R11, #-var_28 .text:00022854 BL hack_digit.159 .text:00022858 CMP R0, #0x30 .text:0002285C STR R0, [R5] .text:00022860 MOVNE R1, #1 .text:00022864 STRNE R1, [R11,#var_AC] .text:00022868 BNE loc_22884 .text:0002286C LDR R2, [R11,#var_AC] .text:00022870 CMP R2, #0 .text:00022874 BNE loc_22884 .text:00022878 ADD R4, R4, #1 .text:0002287C CMP R7, #0 .text:00022880 ADDGT R7, R7, #1 .text:00022884 .text:00022884 loc_22884 ; CODE XREF: __printf_fp+142Cj .text:00022884 ; __printf_fp+1438j .text:00022884 ADD R5, R5, #4 .text:00022888 .text:00022888 loc_22888 ; CODE XREF: __printf_fp+13B8j .text:00022888 ; __printf_fp+13D4j ... .text:00022888 CMP R9, R7 .text:0002288C BLT loc_2284C .text:00022890 CMP R9, R4 .text:00022894 BGE loc_228B4 .text:00022898 LDR R3, [R11,#var_40] .text:0002289C CMP R3, #1 .text:000228A0 BGT loc_2284C .text:000228A4 LDR R3, [R11,#var_3C] .text:000228A8 LDR R2, [R3] .text:000228AC CMP R2, #0 .text:000228B0 BNE loc_2284C .text:000228B4 .text:000228B4 loc_228B4 ; CODE XREF: __printf_fp+1458j .text:000228B4 SUB R12, R11, #-var_28 .text:000228B8 BL hack_digit.159 .text:000228BC CMP R0, #0x34 .text:000228C0 BLE loc_22B64 .text:000228C4 MOV R12, R5 .text:000228C8 CMP R0, #0x35 .text:000228CC BNE loc_22968 .text:000228D0 LDR R3, [R5,#-4] .text:000228D4 LDR R0, [R11,#var_74] .text:000228D8 CMP R3, R0 .text:000228DC BEQ loc_228E8 .text:000228E0 TST R3, #1 .text:000228E4 BEQ loc_22900 .text:000228E8 .text:000228E8 loc_228E8 ; CODE XREF: __printf_fp+14A0j .text:000228E8 LDR R1, [R11,#var_74] .text:000228EC CMP R3, R1 .text:000228F0 BNE loc_22968 .text:000228F4 LDR R3, [R5,#-8] .text:000228F8 TST R3, #1 .text:000228FC BNE loc_22968 .text:00022900 .text:00022900 loc_22900 ; CODE XREF: __printf_fp+14A8j .text:00022900 LDR R1, [R11,#var_40] .text:00022904 CMP R1, #1 .text:00022908 BNE loc_2291C .text:0002290C LDR R3, [R11,#var_3C] .text:00022910 LDR R2, [R3] .text:00022914 CMP R2, #0 .text:00022918 BEQ loc_22B64 .text:0002291C .text:0002291C loc_2291C ; CODE XREF: __printf_fp+14CCj .text:0002291C LDR R3, [R11,#var_38] .text:00022920 CMP R3, #0 .text:00022924 BNE loc_22968 .text:00022928 CMP R1, #0 .text:0002292C BEQ loc_22960 .text:00022930 LDR R3, [R11,#var_3C] .text:00022934 ADD R3, R3, R1,LSL#2 .text:00022938 LDR R2, [R3,#-4] .text:0002293C CMP R2, #0 .text:00022940 BNE loc_22960 .text:00022944 MOV R2, R3 .text:00022948 .text:00022948 loc_22948 ; CODE XREF: __printf_fp+1520j .text:00022948 SUB R2, R2, #4 .text:0002294C SUBS R1, R1, #1 .text:00022950 BEQ loc_22960 .text:00022954 LDR R3, [R2,#-4] .text:00022958 CMP R3, #0 .text:0002295C BEQ loc_22948 .text:00022960 .text:00022960 loc_22960 ; CODE XREF: __printf_fp+14F0j .text:00022960 ; __printf_fp+1504j ... .text:00022960 CMP R1, #0 .text:00022964 BEQ loc_22B64 .text:00022968 .text:00022968 loc_22968 ; CODE XREF: __printf_fp+1490j .text:00022968 ; __printf_fp+14B4j ... .text:00022968 CMP R9, #0 .text:0002296C BLE loc_229C0 .text:00022970 MOV R12, R5 .text:00022974 LDR R3, [R12,#-4]! .text:00022978 LDR R2, [R11,#var_74] .text:0002297C CMP R3, R2 .text:00022980 BEQ loc_229AC .text:00022984 CMP R3, #0x39 .text:00022988 BNE loc_229AC .text:0002298C MOV R2, #0x30 .text:00022990 .text:00022990 loc_22990 ; CODE XREF: __printf_fp+156Cj .text:00022990 STR R2, [R12] .text:00022994 LDR R3, [R12,#-4]! .text:00022998 LDR R0, [R11,#var_74] .text:0002299C CMP R3, R0 .text:000229A0 BEQ loc_229AC .text:000229A4 CMP R3, #0x39 .text:000229A8 BEQ loc_22990 .text:000229AC .text:000229AC loc_229AC ; CODE XREF: __printf_fp+1544j .text:000229AC ; __printf_fp+154Cj ... .text:000229AC LDR R3, [R12] .text:000229B0 LDR R1, [R11,#var_74] .text:000229B4 CMP R3, R1 .text:000229B8 ADDNE R3, R3, #1 .text:000229BC STRNE R3, [R12] .text:000229C0 .text:000229C0 loc_229C0 ; CODE XREF: __printf_fp+1530j .text:000229C0 CMP R9, #0 .text:000229C4 BEQ loc_229D8 .text:000229C8 LDR R3, [R12] .text:000229CC LDR R2, [R11,#var_74] .text:000229D0 CMP R3, R2 .text:000229D4 BNE loc_22B64 .text:000229D8 .text:000229D8 loc_229D8 ; CODE XREF: __printf_fp+1588j .text:000229D8 MOV R3, R12 .text:000229DC LDR R2, [R3,#-4]! .text:000229E0 LDR R0, [R11,#var_74] .text:000229E4 LDR R1, [R11,#var_98] .text:000229E8 CMP R2, R0 .text:000229EC MOVEQ R12, R3 .text:000229F0 SUB R12, R12, #4 .text:000229F4 CMP R12, R1 .text:000229F8 BCC loc_22A28 .text:000229FC LDR R3, [R12] .text:00022A00 CMP R3, #0x39 .text:00022A04 BNE loc_22A28 .text:00022A08 MOV R2, #0x30 .text:00022A0C .text:00022A0C loc_22A0C ; CODE XREF: __printf_fp+15E8j .text:00022A0C STR R2, [R12],#-4 .text:00022A10 LDR R3, [R11,#var_98] .text:00022A14 CMP R12, R3 .text:00022A18 BCC loc_22A28 .text:00022A1C LDR R3, [R12] .text:00022A20 CMP R3, #0x39 .text:00022A24 BEQ loc_22A0C .text:00022A28 .text:00022A28 loc_22A28 ; CODE XREF: __printf_fp+15BCj .text:00022A28 ; __printf_fp+15C8j ... .text:00022A28 LDR R0, [R11,#var_98] .text:00022A2C CMP R12, R0 .text:00022A30 LDRCS R3, [R12] .text:00022A34 ADDCS R3, R3, #1 .text:00022A38 STRCS R3, [R12] .text:00022A3C BCS loc_22B64 .text:00022A40 LDR R3, [R11,#var_30] .text:00022A44 CMP R3, #0x66 .text:00022A48 BEQ loc_22A78 .text:00022A4C LDR R1, [R11,#var_98] .text:00022A50 MOV R3, #0x31 .text:00022A54 STR R3, [R1] .text:00022A58 LDR R2, [R11,#var_2C] .text:00022A5C CMP R2, #0 .text:00022A60 LDREQ R3, [R11,#var_34] .text:00022A64 ADDEQ R3, R3, #1 .text:00022A68 LDRNE R3, [R11,#var_34] .text:00022A6C SUBNE R3, R3, #1 .text:00022A70 STR R3, [R11,#var_34] .text:00022A74 B loc_22B3C .text:00022A78 ; --------------------------------------------------------------------------- .text:00022A78 .text:00022A78 loc_22A78 ; CODE XREF: __printf_fp+160Cj .text:00022A78 LDR R2, [R11,#var_A4] .text:00022A7C LDR R3, [R11,#var_A8] .text:00022A80 CMP R2, R3 .text:00022A84 BNE loc_22B20 .text:00022A88 LDR R12, [R11,#var_98] .text:00022A8C LDR R0, [R11,#var_74] .text:00022A90 STR R0, [R12,#-4]! .text:00022A94 MOV R3, #0x31 .text:00022A98 STR R3, [R12,#-4]! .text:00022A9C STR R12, [R11,#var_98] .text:00022AA0 LDR R1, [R11,#var_64] .text:00022AA4 LDRB R2, [R1,#0xC] .text:00022AA8 TST R2, #8 .text:00022AAC MOVEQ R3, #0 .text:00022AB0 MOVNE R3, #1 .text:00022AB4 CMP R9, #0 .text:00022AB8 CMPLE R3, #0 .text:00022ABC BEQ loc_22AD4 .text:00022AC0 LDR R3, [R11,#var_A4] .text:00022AC4 ADD R9, R9, #1 .text:00022AC8 ADD R2, R12, R3,LSL#2 .text:00022ACC MOV R3, #0x30 .text:00022AD0 STR R3, [R2,#8] .text:00022AD4 .text:00022AD4 loc_22AD4 ; CODE XREF: __printf_fp+1680j .text:00022AD4 LDR R3, [R11,#var_34] .text:00022AD8 ADD R3, R3, #1 .text:00022ADC STR R3, [R11,#var_34] .text:00022AE0 LDR R12, [R11,#var_64] .text:00022AE4 LDR R0, [R11,#var_A4] .text:00022AE8 LDR R3, =__ctype_b .text:00022AEC LDR R2, [R12,#8] .text:00022AF0 ADD R9, R9, R0 .text:00022AF4 LDR R1, [R3] .text:00022AF8 MOV R2, R2,LSL#1 .text:00022AFC ADD R2, R2, R1 .text:00022B00 LDRB R0, [R2,#1] .text:00022B04 MOV R1, #1 .text:00022B08 STR R1, [R11,#var_A4] .text:00022B0C TST R0, #1 .text:00022B10 MOVEQ R3, #0x65 .text:00022B14 MOVNE R3, #0x45 .text:00022B18 STR R3, [R11,#var_30] .text:00022B1C B loc_22B3C .text:00022B20 ; --------------------------------------------------------------------------- .text:00022B20 .text:00022B20 loc_22B20 ; CODE XREF: __printf_fp+1648j .text:00022B20 LDR R2, [R11,#var_A4] .text:00022B24 ADD R2, R2, #1 .text:00022B28 STR R2, [R11,#var_A4] .text:00022B2C LDR R12, [R11,#var_98] .text:00022B30 MOV R3, #0x31 .text:00022B34 STR R3, [R12,#-4]! .text:00022B38 STR R12, [R11,#var_98] .text:00022B3C .text:00022B3C loc_22B3C ; CODE XREF: __printf_fp+1638j .text:00022B3C ; __printf_fp+16E0j .text:00022B3C LDR R0, [R11,#var_A4] .text:00022B40 LDR R1, [R11,#var_A8] .text:00022B44 ADD R3, R0, R9 .text:00022B48 CMP R3, R1 .text:00022B4C RSBGT R3, R1, R3 .text:00022B50 SUBGT R5, R5, R3,LSL#2 .text:00022B54 RSBGT R9, R3, R9 .text:00022B58 B loc_22B64 .text:00022B5C ; --------------------------------------------------------------------------- .text:00022B5C .text:00022B5C loc_22B5C ; CODE XREF: __printf_fp+1738j .text:00022B5C SUB R5, R5, #4 .text:00022B60 SUB R9, R9, #1 .text:00022B64 .text:00022B64 loc_22B64 ; CODE XREF: __printf_fp+1484j .text:00022B64 ; __printf_fp+14DCj ... .text:00022B64 CMP R9, R7 .text:00022B68 BLE loc_22B78 .text:00022B6C LDR R3, [R5,#-4] .text:00022B70 CMP R3, #0x30 .text:00022B74 BEQ loc_22B5C .text:00022B78 .text:00022B78 loc_22B78 ; CODE XREF: __printf_fp+172Cj .text:00022B78 CMP R9, #0 .text:00022B7C BNE loc_22BA4 .text:00022B80 LDR R2, [R11,#var_64] .text:00022B84 LDRB R3, [R2,#0xC] .text:00022B88 TST R3, #8 .text:00022B8C BNE loc_22BA4 .text:00022B90 MOV R3, R5 .text:00022B94 LDR R2, [R3,#-4]! .text:00022B98 LDR R7, [R11,#var_74] .text:00022B9C CMP R2, R7 .text:00022BA0 MOVEQ R5, R3 .text:00022BA4 .text:00022BA4 loc_22BA4 ; CODE XREF: __printf_fp+1740j .text:00022BA4 ; __printf_fp+1750j .text:00022BA4 LDR R12, [R11,#var_80] .text:00022BA8 CMP R12, #0 .text:00022BAC BEQ loc_22BD8 .text:00022BB0 LDR R0, [R11,#var_7C] .text:00022BB4 STR R0, [SP,#0xBC+var_BC] .text:00022BB8 LDR R1, [R11,#var_B0] .text:00022BBC STR R1, [SP,#0xBC+var_B8] .text:00022BC0 LDR R0, [R11,#var_98] .text:00022BC4 MOV R3, R12 .text:00022BC8 LDR R2, [R11,#var_A4] .text:00022BCC MOV R1, R5 .text:00022BD0 BL group_number_0 .text:00022BD4 MOV R5, R0 .text:00022BD8 .text:00022BD8 loc_22BD8 ; CODE XREF: __printf_fp+1770j .text:00022BD8 LDR R3, [R11,#var_30] .text:00022BDC CMP R3, #0x66 .text:00022BE0 BEQ loc_22C80 .text:00022BE4 STR R3, [R5],#4 .text:00022BE8 LDR R3, [R11,#var_2C] .text:00022BEC CMP R3, #0 .text:00022BF0 MOVEQ R3, #0x2B .text:00022BF4 MOVNE R3, #0x2D .text:00022BF8 MOV R2, R5 .text:00022BFC STR R3, [R2] .text:00022C00 MOV R4, #0xA .text:00022C04 LDR R2, [R11,#var_34] .text:00022C08 ADD R5, R5, #4 .text:00022C0C CMP R4, R2 .text:00022C10 BGT loc_22C24 .text:00022C14 .text:00022C14 loc_22C14 ; CODE XREF: __printf_fp+17E4j .text:00022C14 ADD R3, R4, R4,LSL#2 .text:00022C18 MOV R4, R3,LSL#1 .text:00022C1C CMP R4, R2 .text:00022C20 BLE loc_22C14 .text:00022C24 .text:00022C24 loc_22C24 ; CODE XREF: __printf_fp+17D4j .text:00022C24 LDR R3, [R11,#var_34] .text:00022C28 CMP R3, #9 .text:00022C2C MOVLE R3, #0x30 .text:00022C30 STRLE R3, [R5],#4 .text:00022C34 BLE loc_22C74 .text:00022C38 .text:00022C38 loc_22C38 ; CODE XREF: __printf_fp+1834j .text:00022C38 MOV R0, R4 .text:00022C3C MOV R1, #0xA .text:00022C40 BL __divsi3 .text:00022C44 MOV R4, R0 .text:00022C48 LDR R0, [R11,#var_34] .text:00022C4C MOV R1, R4 .text:00022C50 BL __divsi3 .text:00022C54 ADD R0, R0, #0x30 .text:00022C58 STR R0, [R5],#4 .text:00022C5C LDR R0, [R11,#var_34] .text:00022C60 MOV R1, R4 .text:00022C64 BL __modsi3 .text:00022C68 CMP R4, #0xA .text:00022C6C STR R0, [R11,#var_34] .text:00022C70 BGT loc_22C38 .text:00022C74 .text:00022C74 loc_22C74 ; CODE XREF: __printf_fp+17F8j .text:00022C74 LDR R3, [R11,#var_34] .text:00022C78 ADD R3, R3, #0x30 .text:00022C7C STR R3, [R5],#4 .text:00022C80 .text:00022C80 loc_22C80 ; CODE XREF: __printf_fp+17A4j .text:00022C80 LDR R3, [R11,#var_58] .text:00022C84 LDR R7, [R11,#var_64] .text:00022C88 CMP R3, #0 .text:00022C8C MOV R0, R3 .text:00022C90 LDRB R2, [R7,#0xC] .text:00022C94 BNE loc_22CA4 .text:00022C98 AND R3, R2, #0x50 .text:00022C9C CMP R3, #0 .text:00022CA0 BEQ loc_22CA8 .text:00022CA4 .text:00022CA4 loc_22CA4 ; CODE XREF: __printf_fp+1858j .text:00022CA4 SUB R10, R10, #1 .text:00022CA8 .text:00022CA8 loc_22CA8 ; CODE XREF: __printf_fp+1864j .text:00022CA8 LDR R12, [R11,#var_98] .text:00022CAC TST R2, #0x20 .text:00022CB0 RSB R3, R12, R5 .text:00022CB4 SUB R10, R10, R3,ASR#2 .text:00022CB8 STR R3, [R11,#var_B4] .text:00022CBC BNE loc_22D14 .text:00022CC0 LDR R2, [R11,#var_64] .text:00022CC4 LDR R1, [R2,#0x10] .text:00022CC8 CMP R1, #0x30 .text:00022CCC CMPNE R10, #0 .text:00022CD0 BLE loc_22D14 .text:00022CD4 LDR R3, [R11,#var_88] .text:00022CD8 CMP R3, #0 .text:00022CDC BEQ loc_22CF0 .text:00022CE0 MOV R0, R6 .text:00022CE4 MOV R2, R10 .text:00022CE8 BL _IO_wpadn .text:00022CEC B loc_22CFC .text:00022CF0 ; --------------------------------------------------------------------------- .text:00022CF0 .text:00022CF0 loc_22CF0 ; CODE XREF: __printf_fp+18A0j .text:00022CF0 MOV R0, R6 .text:00022CF4 MOV R2, R10 .text:00022CF8 BL _IO_padn .text:00022CFC .text:00022CFC loc_22CFC ; CODE XREF: __printf_fp+18B0j .text:00022CFC CMP R0, R10 .text:00022D00 BNE loc_2273C .text:00022D04 LDR R7, [R11,#var_84] .text:00022D08 LDR R0, [R11,#var_58] .text:00022D0C ADD R7, R7, R10 .text:00022D10 STR R7, [R11,#var_84] .text:00022D14 .text:00022D14 loc_22D14 ; CODE XREF: __printf_fp+1880j .text:00022D14 ; __printf_fp+1894j .text:00022D14 CMP R0, #0 .text:00022D18 BEQ loc_22D9C .text:00022D1C LDR R12, [R11,#var_88] .text:00022D20 MOV R1, #0x2D .text:00022D24 CMP R12, #0 .text:00022D28 BEQ loc_22D58 .text:00022D2C LDR R0, [R6,#0x58] .text:00022D30 ADD R2, R0, #0x10 .text:00022D34 LDMIA R2, {R2,R3} .text:00022D38 CMP R2, R3 .text:00022D3C BCC loc_22D4C .text:00022D40 MOV R0, R6 .text:00022D44 BL __woverflow .text:00022D48 B loc_22D70 .text:00022D4C ; --------------------------------------------------------------------------- .text:00022D4C .text:00022D4C loc_22D4C ; CODE XREF: __printf_fp+1900j .text:00022D4C STR R1, [R2],#4 .text:00022D50 STR R2, [R0,#0x10] .text:00022D54 B loc_22D84 .text:00022D58 ; --------------------------------------------------------------------------- .text:00022D58 .text:00022D58 loc_22D58 ; CODE XREF: __printf_fp+18ECj .text:00022D58 ADD R2, R6, #0x14 .text:00022D5C LDMIA R2, {R2,R3} .text:00022D60 CMP R2, R3 .text:00022D64 BCC loc_22D7C .text:00022D68 MOV R0, R6 .text:00022D6C BL __overflow .text:00022D70 .text:00022D70 loc_22D70 ; CODE XREF: __printf_fp+190Cj .text:00022D70 CMN R0, #1 .text:00022D74 BEQ loc_2273C .text:00022D78 B loc_22D84 .text:00022D7C ; --------------------------------------------------------------------------- .text:00022D7C .text:00022D7C loc_22D7C ; CODE XREF: __printf_fp+1928j .text:00022D7C STRB R1, [R2],#1 .text:00022D80 STR R2, [R6,#0x14] .text:00022D84 .text:00022D84 loc_22D84 ; CODE XREF: __printf_fp+1918j .text:00022D84 ; __printf_fp+193Cj .text:00022D84 LDR R0, [R11,#var_84] .text:00022D88 ADD R0, R0, #1 .text:00022D8C STR R0, [R11,#var_84] .text:00022D90 LDR R1, [R11,#var_64] .text:00022D94 LDRB R2, [R1,#0xC] .text:00022D98 B loc_22EBC .text:00022D9C ; --------------------------------------------------------------------------- .text:00022D9C .text:00022D9C loc_22D9C ; CODE XREF: __printf_fp+18DCj .text:00022D9C LDR R2, [R11,#var_64] .text:00022DA0 LDRB R3, [R2,#0xC] .text:00022DA4 AND R1, R3, #0xFF .text:00022DA8 TST R1, #0x40 .text:00022DAC MOV R2, R3 .text:00022DB0 BEQ loc_22E34 .text:00022DB4 LDR R3, [R11,#var_88] .text:00022DB8 MOV R1, #0x2B .text:00022DBC CMP R3, #0 .text:00022DC0 BEQ loc_22DF0 .text:00022DC4 LDR R0, [R6,#0x58] .text:00022DC8 ADD R2, R0, #0x10 .text:00022DCC LDMIA R2, {R2,R3} .text:00022DD0 CMP R2, R3 .text:00022DD4 BCC loc_22DE4 .text:00022DD8 MOV R0, R6 .text:00022DDC BL __woverflow .text:00022DE0 B loc_22E08 .text:00022DE4 ; --------------------------------------------------------------------------- .text:00022DE4 .text:00022DE4 loc_22DE4 ; CODE XREF: __printf_fp+1998j .text:00022DE4 STR R1, [R2],#4 .text:00022DE8 STR R2, [R0,#0x10] .text:00022DEC B loc_22E1C .text:00022DF0 ; --------------------------------------------------------------------------- .text:00022DF0 .text:00022DF0 loc_22DF0 ; CODE XREF: __printf_fp+1984j .text:00022DF0 ADD R2, R6, #0x14 .text:00022DF4 LDMIA R2, {R2,R3} .text:00022DF8 CMP R2, R3 .text:00022DFC BCC loc_22E14 .text:00022E00 MOV R0, R6 .text:00022E04 BL __overflow .text:00022E08 .text:00022E08 loc_22E08 ; CODE XREF: __printf_fp+19A4j .text:00022E08 CMN R0, #1 .text:00022E0C BEQ loc_2273C .text:00022E10 B loc_22E1C .text:00022E14 ; --------------------------------------------------------------------------- .text:00022E14 .text:00022E14 loc_22E14 ; CODE XREF: __printf_fp+19C0j .text:00022E14 STRB R1, [R2],#1 .text:00022E18 STR R2, [R6,#0x14] .text:00022E1C .text:00022E1C loc_22E1C ; CODE XREF: __printf_fp+19B0j .text:00022E1C ; __printf_fp+19D4j .text:00022E1C LDR R7, [R11,#var_84] .text:00022E20 ADD R7, R7, #1 .text:00022E24 STR R7, [R11,#var_84] .text:00022E28 LDR R12, [R11,#var_64] .text:00022E2C LDRB R2, [R12,#0xC] .text:00022E30 B loc_22EBC .text:00022E34 ; --------------------------------------------------------------------------- .text:00022E34 .text:00022E34 loc_22E34 ; CODE XREF: __printf_fp+1974j .text:00022E34 TST R1, #0x10 .text:00022E38 BEQ loc_22EBC .text:00022E3C LDR R0, [R11,#var_88] .text:00022E40 MOV R1, #0x20 .text:00022E44 CMP R0, #0 .text:00022E48 BEQ loc_22E78 .text:00022E4C LDR R0, [R6,#0x58] .text:00022E50 ADD R2, R0, #0x10 .text:00022E54 LDMIA R2, {R2,R3} .text:00022E58 CMP R2, R3 .text:00022E5C BCC loc_22E6C .text:00022E60 MOV R0, R6 .text:00022E64 BL __woverflow .text:00022E68 B loc_22E90 .text:00022E6C ; --------------------------------------------------------------------------- .text:00022E6C .text:00022E6C loc_22E6C ; CODE XREF: __printf_fp+1A20j .text:00022E6C STR R1, [R2],#4 .text:00022E70 STR R2, [R0,#0x10] .text:00022E74 B loc_22EA8 .text:00022E78 ; --------------------------------------------------------------------------- .text:00022E78 .text:00022E78 loc_22E78 ; CODE XREF: __printf_fp+1A0Cj .text:00022E78 ADD R2, R6, #0x14 .text:00022E7C LDMIA R2, {R2,R3} .text:00022E80 CMP R2, R3 .text:00022E84 BCC loc_22EA0 .text:00022E88 MOV R0, R6 .text:00022E8C BL __overflow .text:00022E90 .text:00022E90 loc_22E90 ; CODE XREF: __printf_fp+1A2Cj .text:00022E90 CMN R0, #1 .text:00022E94 BEQ loc_2273C .text:00022E98 B loc_22EA8 .text:00022E98 ; --------------------------------------------------------------------------- .text:00022E9C off_22E9C DCD __ctype_b ; DATA XREF: __printf_fp+16ACr .text:00022EA0 ; --------------------------------------------------------------------------- .text:00022EA0 .text:00022EA0 loc_22EA0 ; CODE XREF: __printf_fp+1A48j .text:00022EA0 STRB R1, [R2],#1 .text:00022EA4 STR R2, [R6,#0x14] .text:00022EA8 .text:00022EA8 loc_22EA8 ; CODE XREF: __printf_fp+1A38j .text:00022EA8 ; __printf_fp+1A5Cj .text:00022EA8 LDR R1, [R11,#var_84] .text:00022EAC ADD R1, R1, #1 .text:00022EB0 STR R1, [R11,#var_84] .text:00022EB4 LDR R3, [R11,#var_64] .text:00022EB8 LDRB R2, [R3,#0xC] .text:00022EBC .text:00022EBC loc_22EBC ; CODE XREF: __printf_fp+195Cj .text:00022EBC ; __printf_fp+19F4j ... .text:00022EBC TST R2, #0x20 .text:00022EC0 BNE loc_22F2C .text:00022EC4 LDR R7, [R11,#var_64] .text:00022EC8 LDR R2, [R7,#0x10] .text:00022ECC CMP R10, #0 .text:00022ED0 MOVLE R3, #0 .text:00022ED4 MOVGT R3, #1 .text:00022ED8 CMP R2, #0x30 .text:00022EDC MOVNE R3, #0 .text:00022EE0 CMP R3, #0 .text:00022EE4 BEQ loc_22F2C .text:00022EE8 LDR R12, [R11,#var_88] .text:00022EEC CMP R12, #0 .text:00022EF0 BEQ loc_22F08 .text:00022EF4 MOV R0, R6 .text:00022EF8 MOV R1, #0x30 .text:00022EFC MOV R2, R10 .text:00022F00 BL _IO_wpadn .text:00022F04 B loc_22F18 .text:00022F08 ; --------------------------------------------------------------------------- .text:00022F08 .text:00022F08 loc_22F08 ; CODE XREF: __printf_fp+1AB4j .text:00022F08 MOV R0, R6 .text:00022F0C MOV R1, #0x30 .text:00022F10 MOV R2, R10 .text:00022F14 BL _IO_padn .text:00022F18 .text:00022F18 loc_22F18 ; CODE XREF: __printf_fp+1AC8j .text:00022F18 CMP R0, R10 .text:00022F1C BNE loc_2273C .text:00022F20 LDR R0, [R11,#var_84] .text:00022F24 ADD R0, R0, R10 .text:00022F28 STR R0, [R11,#var_84] .text:00022F2C .text:00022F2C loc_22F2C ; CODE XREF: __printf_fp+1A84j .text:00022F2C ; __printf_fp+1AA8j .text:00022F2C MOV R9, #0 .text:00022F30 LDR R1, [R11,#var_88] .text:00022F34 MOV R0, R9 .text:00022F38 CMP R1, R9 .text:00022F3C BNE loc_2301C .text:00022F40 LDR R0, [R11,#var_70] .text:00022F44 BL strlen .text:00022F48 LDR R2, [R11,#var_78] .text:00022F4C MOV R7, R0 .text:00022F50 CMP R2, R9 .text:00022F54 LDREQ R8, [R11,#var_88] .text:00022F58 BEQ loc_22F68 .text:00022F5C LDR R0, [R11,#var_78] .text:00022F60 BL strlen .text:00022F64 MOV R8, R0 .text:00022F68 .text:00022F68 loc_22F68 ; CODE XREF: __printf_fp+1B1Cj .text:00022F68 LDR R3, [R11,#var_9C] .text:00022F6C CMP R3, #0 .text:00022F70 BEQ loc_22F98 .text:00022F74 LDR R12, [R11,#var_A0] .text:00022F78 ADD R3, R7, #2 .text:00022F7C LDR R0, [R11,#var_B0] .text:00022F80 ADD R3, R12, R3 .text:00022F84 MLA R0, R8, R0, R3 .text:00022F88 BL malloc .text:00022F8C SUBS R9, R0, #0 .text:00022F90 BNE loc_22FBC .text:00022F94 B loc_2273C .text:00022F98 ; --------------------------------------------------------------------------- .text:00022F98 .text:00022F98 loc_22F98 ; CODE XREF: __printf_fp+1B34j .text:00022F98 LDR R0, [R11,#var_A0] .text:00022F9C ADD R3, R7, #2 .text:00022FA0 LDR R2, [R11,#var_B0] .text:00022FA4 ADD R3, R0, R3 .text:00022FA8 MLA R2, R8, R2, R3 .text:00022FAC ADD R2, R2, #3 .text:00022FB0 BIC R2, R2, #3 .text:00022FB4 RSB SP, R2, SP .text:00022FB8 ADD R9, SP, #0xBC+var_B4 .text:00022FBC .text:00022FBC loc_22FBC ; CODE XREF: __printf_fp+1B54j .text:00022FBC LDR R4, [R11,#var_98] .text:00022FC0 MOV R0, R9 .text:00022FC4 CMP R4, R5 .text:00022FC8 BCS loc_2301C .text:00022FCC .text:00022FCC loc_22FCC ; CODE XREF: __printf_fp+1BDCj .text:00022FCC LDR R3, [R4] .text:00022FD0 LDR R1, [R11,#var_74] .text:00022FD4 CMP R3, R1 .text:00022FD8 BNE loc_22FEC .text:00022FDC LDR R1, [R11,#var_70] .text:00022FE0 MOV R2, R7 .text:00022FE4 BL mempcpy .text:00022FE8 B loc_23010 .text:00022FEC ; --------------------------------------------------------------------------- .text:00022FEC .text:00022FEC loc_22FEC ; CODE XREF: __printf_fp+1B9Cj .text:00022FEC LDR R2, [R11,#var_7C] .text:00022FF0 CMP R3, R2 .text:00022FF4 BNE loc_23008 .text:00022FF8 LDR R1, [R11,#var_78] .text:00022FFC MOV R2, R8 .text:00023000 BL mempcpy .text:00023004 B loc_23010 .text:00023008 ; --------------------------------------------------------------------------- .text:00023008 .text:00023008 loc_23008 ; CODE XREF: __printf_fp+1BB8j .text:00023008 LDRB R3, [R4] .text:0002300C STRB R3, [R0],#1 .text:00023010 .text:00023010 loc_23010 ; CODE XREF: __printf_fp+1BACj .text:00023010 ; __printf_fp+1BC8j .text:00023010 ADD R4, R4, #4 .text:00023014 CMP R4, R5 .text:00023018 BCC loc_22FCC .text:0002301C .text:0002301C loc_2301C ; CODE XREF: __printf_fp+1B00j .text:0002301C ; __printf_fp+1B8Cj .text:0002301C MOV R5, R9 .text:00023020 LDR R3, [R11,#var_88] .text:00023024 CMP R3, #0 .text:00023028 LDRNE R7, [R11,#var_B4] .text:0002302C MOVNE R4, R7,ASR#2 .text:00023030 RSBEQ R4, R9, R0 .text:00023034 LDR R12, [R11,#var_88] .text:00023038 CMP R12, #0 .text:0002303C BEQ loc_23050 .text:00023040 LDR R0, [R11,#var_B4] .text:00023044 MOVS R0, R0,LSR#2 .text:00023048 BNE loc_2305C .text:0002304C B loc_230A4 .text:00023050 ; --------------------------------------------------------------------------- .text:00023050 .text:00023050 loc_23050 ; CODE XREF: __printf_fp+1C00j .text:00023050 RSB R3, R9, R0 .text:00023054 CMP R3, #0x14 .text:00023058 BLE loc_230A4 .text:0002305C .text:0002305C loc_2305C ; CODE XREF: __printf_fp+1C0Cj .text:0002305C LDRB R3, [R6,#0x46] .text:00023060 LDR R2, [R11,#var_88] .text:00023064 MOV R0, R6 .text:00023068 LDR R1, [R11,#var_98] .text:0002306C CMP R2, #0 .text:00023070 MOVEQ R1, R9 .text:00023074 MOV R3, R3,LSL#24 .text:00023078 ADD R3, R6, R3,ASR#24 .text:0002307C LDR R12, [R3,#0x94] .text:00023080 MOV R2, R4 .text:00023084 MOV LR, PC .text:00023088 LDR PC, [R12,#0x1C] .text:0002308C CMP R0, R4 .text:00023090 BNE loc_2273C .text:00023094 LDR R3, [R11,#var_84] .text:00023098 ADD R3, R3, R4 .text:0002309C STR R3, [R11,#var_84] .text:000230A0 B loc_231EC .text:000230A4 ; --------------------------------------------------------------------------- .text:000230A4 .text:000230A4 loc_230A4 ; CODE XREF: __printf_fp+1C10j .text:000230A4 ; __printf_fp+1C1Cj .text:000230A4 LDR R7, [R11,#var_88] .text:000230A8 CMP R7, #0 .text:000230AC BEQ loc_231DC .text:000230B0 MOV R3, R4 .text:000230B4 SUB R4, R4, #1 .text:000230B8 CMP R3, #0 .text:000230BC BEQ loc_231EC .text:000230C0 .text:000230C0 loc_230C0 ; CODE XREF: __printf_fp+1D1Cj .text:000230C0 LDR R0, [R11,#var_98] .text:000230C4 LDR R12, [R11,#var_88] .text:000230C8 LDR R1, [R0],#4 .text:000230CC CMP R12, #0 .text:000230D0 STR R0, [R11,#var_98] .text:000230D4 BEQ loc_23108 .text:000230D8 LDR R0, [R6,#0x58] .text:000230DC ADD R2, R0, #0x10 .text:000230E0 LDMIA R2, {R2,R3} .text:000230E4 CMP R2, R3 .text:000230E8 BCC loc_230F8 .text:000230EC MOV R0, R6 .text:000230F0 BL __woverflow .text:000230F4 B loc_23124 .text:000230F8 ; --------------------------------------------------------------------------- .text:000230F8 .text:000230F8 loc_230F8 ; CODE XREF: __printf_fp+1CACj .text:000230F8 STR R1, [R2],#4 .text:000230FC CMN R1, #1 .text:00023100 STR R2, [R0,#0x10] .text:00023104 B loc_2313C .text:00023108 ; --------------------------------------------------------------------------- .text:00023108 .text:00023108 loc_23108 ; CODE XREF: __printf_fp+1C98j .text:00023108 ADD R2, R6, #0x14 .text:0002310C LDMIA R2, {R2,R3} .text:00023110 CMP R2, R3 .text:00023114 BCC loc_2312C .text:00023118 MOV R0, R6 .text:0002311C AND R1, R1, #0xFF .text:00023120 BL __overflow .text:00023124 .text:00023124 loc_23124 ; CODE XREF: __printf_fp+1CB8j .text:00023124 CMN R0, #1 .text:00023128 B loc_2313C .text:0002312C ; --------------------------------------------------------------------------- .text:0002312C .text:0002312C loc_2312C ; CODE XREF: __printf_fp+1CD8j .text:0002312C STRB R1, [R2],#1 .text:00023130 AND R3, R1, #0xFF .text:00023134 CMN R3, #1 .text:00023138 STR R2, [R6,#0x14] .text:0002313C .text:0002313C loc_2313C ; CODE XREF: __printf_fp+1CC8j .text:0002313C ; __printf_fp+1CECj .text:0002313C BEQ loc_2273C .text:00023140 LDR R1, [R11,#var_84] .text:00023144 ADD R1, R1, #1 .text:00023148 STR R1, [R11,#var_84] .text:0002314C MOV R3, R4 .text:00023150 SUB R4, R4, #1 .text:00023154 CMP R3, #0 .text:00023158 BNE loc_230C0 .text:0002315C B loc_231EC .text:00023160 ; --------------------------------------------------------------------------- .text:00023160 .text:00023160 loc_23160 ; CODE XREF: __printf_fp+1DACj .text:00023160 LDR R2, [R11,#var_88] .text:00023164 LDRB R1, [R5],#1 .text:00023168 CMP R2, #0 .text:0002316C BEQ loc_231A0 .text:00023170 LDR R0, [R6,#0x58] .text:00023174 ADD R2, R0, #0x10 .text:00023178 LDMIA R2, {R2,R3} .text:0002317C CMP R2, R3 .text:00023180 BCC loc_23190 .text:00023184 MOV R0, R6 .text:00023188 BL __woverflow .text:0002318C B loc_231B8 .text:00023190 ; --------------------------------------------------------------------------- .text:00023190 .text:00023190 loc_23190 ; CODE XREF: __printf_fp+1D44j .text:00023190 STR R1, [R2],#4 .text:00023194 CMN R1, #1 .text:00023198 STR R2, [R0,#0x10] .text:0002319C B loc_231CC .text:000231A0 ; --------------------------------------------------------------------------- .text:000231A0 .text:000231A0 loc_231A0 ; CODE XREF: __printf_fp+1D30j .text:000231A0 ADD R2, R6, #0x14 .text:000231A4 LDMIA R2, {R2,R3} .text:000231A8 CMP R2, R3 .text:000231AC BCC loc_231C0 .text:000231B0 MOV R0, R6 .text:000231B4 BL __overflow .text:000231B8 .text:000231B8 loc_231B8 ; CODE XREF: __printf_fp+1D50j .text:000231B8 CMN R0, #1 .text:000231BC B loc_231CC .text:000231C0 ; --------------------------------------------------------------------------- .text:000231C0 .text:000231C0 loc_231C0 ; CODE XREF: __printf_fp+1D70j .text:000231C0 STRB R1, [R2],#1 .text:000231C4 CMN R1, #1 .text:000231C8 STR R2, [R6,#0x14] .text:000231CC .text:000231CC loc_231CC ; CODE XREF: __printf_fp+1D60j .text:000231CC ; __printf_fp+1D80j .text:000231CC BEQ loc_2273C .text:000231D0 LDR R3, [R11,#var_84] .text:000231D4 ADD R3, R3, #1 .text:000231D8 STR R3, [R11,#var_84] .text:000231DC .text:000231DC loc_231DC ; CODE XREF: __printf_fp+1C70j .text:000231DC MOV R3, R4 .text:000231E0 SUB R4, R4, #1 .text:000231E4 CMP R3, #0 .text:000231E8 BNE loc_23160 .text:000231EC .text:000231EC loc_231EC ; CODE XREF: __printf_fp+1C64j .text:000231EC ; __printf_fp+1C80j ... .text:000231EC LDR R7, [R11,#var_9C] .text:000231F0 CMP R7, #0 .text:000231F4 BEQ loc_23208 .text:000231F8 MOV R0, R9 .text:000231FC BL free .text:00023200 LDR R0, [R11,#var_94] .text:00023204 BL free .text:00023208 .text:00023208 loc_23208 ; CODE XREF: __printf_fp+1DB8j .text:00023208 LDR R12, [R11,#var_64] .text:0002320C LDRB R3, [R12,#0xC] .text:00023210 TST R3, #0x20 .text:00023214 MOVEQ R2, #0 .text:00023218 MOVNE R2, #1 .text:0002321C CMP R2, #0 .text:00023220 CMPNE R10, #0 .text:00023224 BLE loc_23270 .text:00023228 LDR R0, [R11,#var_88] .text:0002322C CMP R0, #0 .text:00023230 BEQ loc_23248 .text:00023234 MOV R0, R6 .text:00023238 LDR R1, [R12,#0x10] .text:0002323C MOV R2, R10 .text:00023240 BL _IO_wpadn .text:00023244 B loc_2325C .text:00023248 ; --------------------------------------------------------------------------- .text:00023248 .text:00023248 loc_23248 ; CODE XREF: __printf_fp+1DF4j .text:00023248 LDR R2, [R11,#var_64] .text:0002324C MOV R0, R6 .text:00023250 LDR R1, [R2,#0x10] .text:00023254 MOV R2, R10 .text:00023258 BL _IO_padn .text:0002325C .text:0002325C loc_2325C ; CODE XREF: __printf_fp+1E08j .text:0002325C CMP R0, R10 .text:00023260 BNE loc_2273C .text:00023264 LDR R3, [R11,#var_84] .text:00023268 ADD R3, R3, R10 .text:0002326C STR R3, [R11,#var_84] .text:00023270 .text:00023270 loc_23270 ; CODE XREF: __printf_fp+638j .text:00023270 ; __printf_fp+680j ... .text:00023270 LDR R0, [R11,#var_84] .text:00023274 .text:00023274 locret_23274 ; CODE XREF: __printf_fp+1304j .text:00023274 LDMDB R11, {R4-R11,SP,PC} .text:00023274 ; End of function __printf_fp .text:00023274 .text:00023278 .text:00023278 ; =============== S U B R O U T I N E ======================================= .text:00023278 .text:00023278 ; Attributes: bp-based frame .text:00023278 .text:00023278 EXPORT __guess_grouping .text:00023278 __guess_grouping ; CODE XREF: __printf_fp+12B0p .text:00023278 MOV R12, SP .text:0002327C STMFD SP!, {R4,R11,R12,LR,PC} .text:00023280 LDRB R2, [R1] .text:00023284 SUB R11, R12, #4 .text:00023288 CMP R2, #0 .text:0002328C MOVNE R3, #0 .text:00023290 MOVEQ R3, #1 .text:00023294 CMP R2, #0xFF .text:00023298 MOVEQ R3, #1 .text:0002329C CMP R3, #0 .text:000232A0 MOVNE R0, #0 .text:000232A4 LDMNEDB R11, {R4,R11,SP,PC} .text:000232A8 MOV R4, R3 .text:000232AC .text:000232AC loc_232AC ; CODE XREF: __guess_grouping+5Cj .text:000232AC LDRB R2, [R1] .text:000232B0 CMP R0, R2 .text:000232B4 BLS loc_232E8 .text:000232B8 ADD R4, R4, #1 .text:000232BC LDRB R3, [R1,#1]! .text:000232C0 RSB R0, R2, R0 .text:000232C4 AND R3, R3, #0xFF .text:000232C8 CMP R3, #0xFF .text:000232CC BEQ loc_232E8 .text:000232D0 CMP R3, #0 .text:000232D4 BNE loc_232AC .text:000232D8 LDRB R1, [R1,#-1] .text:000232DC SUB R0, R0, #1 .text:000232E0 BL __udivsi3 .text:000232E4 ADD R4, R4, R0 .text:000232E8 .text:000232E8 loc_232E8 ; CODE XREF: __guess_grouping+3Cj .text:000232E8 ; __guess_grouping+54j .text:000232E8 MOV R0, R4 .text:000232EC LDMDB R11, {R4,R11,SP,PC} .text:000232EC ; End of function __guess_grouping .text:000232EC .text:000232F0 .text:000232F0 ; =============== S U B R O U T I N E ======================================= .text:000232F0 .text:000232F0 ; Attributes: bp-based frame .text:000232F0 .text:000232F0 group_number_0 ; CODE XREF: __printf_fp+1794p .text:000232F0 .text:000232F0 arg_0 = 4 .text:000232F0 arg_4 = 8 .text:000232F0 .text:000232F0 MOV R12, SP .text:000232F4 STMFD SP!, {R4-R12,LR,PC} .text:000232F8 SUB R11, R12, #4 .text:000232FC MOV R6, R2 .text:00023300 MOV R7, R3 .text:00023304 MOV R8, R0 .text:00023308 LDR R5, [R11,#arg_4] .text:0002330C MOV R10, R1 .text:00023310 LDR R9, [R11,#arg_0] .text:00023314 CMP R5, #0 .text:00023318 MOVEQ R0, R10 .text:0002331C LDMEQDB R11, {R4-R11,SP,PC} .text:00023320 ADD R1, R8, R6,LSL#2 .text:00023324 MOV R5, R5,LSL#2 .text:00023328 ADD R4, R1, R5 .text:0002332C MOV R0, R4 .text:00023330 RSB R2, R1, R10 .text:00023334 MOV R2, R2,ASR#2 .text:00023338 BL wmemmove .text:0002333C SUB R4, R4, #4 .text:00023340 .text:00023340 loc_23340 ; CODE XREF: group_number_0+88j .text:00023340 LDRB R2, [R7],#1 .text:00023344 .text:00023344 loc_23344 ; CODE XREF: group_number_0+64j .text:00023344 SUB R6, R6, #1 .text:00023348 LDR R3, [R8,R6,LSL#2] .text:0002334C SUBS R2, R2, #1 .text:00023350 STR R3, [R4],#-4 .text:00023354 BNE loc_23344 .text:00023358 STR R9, [R4],#-4 .text:0002335C LDRB R3, [R7] .text:00023360 CMP R3, #0xFF .text:00023364 BEQ loc_2337C .text:00023368 CMP R3, #0 .text:0002336C SUBEQ R7, R7, #1 .text:00023370 LDRB R3, [R7] .text:00023374 CMP R6, R3 .text:00023378 BHI loc_23340 .text:0002337C .text:0002337C loc_2337C ; CODE XREF: group_number_0+74j .text:0002337C ; group_number_0+9Cj .text:0002337C SUB R6, R6, #1 .text:00023380 LDR R3, [R8,R6,LSL#2] .text:00023384 STR R3, [R4],#-4 .text:00023388 CMP R4, R8 .text:0002338C BHI loc_2337C .text:00023390 ADD R0, R10, R5 .text:00023394 LDMDB R11, {R4-R11,SP,PC} .text:00023394 ; End of function group_number_0 .text:00023394 .text:00023398 .text:00023398 ; =============== S U B R O U T I N E ======================================= .text:00023398 .text:00023398 ; Attributes: bp-based frame .text:00023398 .text:00023398 WEAK register_printf_function .text:00023398 register_printf_function .text:00023398 MOV R12, SP .text:0002339C STMFD SP!, {R11,R12,LR,PC} .text:000233A0 SUB R11, R12, #4 .text:000233A4 MOV LR, R1 .text:000233A8 MOV R12, R2 .text:000233AC CMP R0, #0xFF .text:000233B0 BHI loc_233D8 .text:000233B4 LDR R3, =__printf_function_table .text:000233B8 LDR R1, =printf_funcs .text:000233BC STR R1, [R3] .text:000233C0 LDR R2, =__printf_arginfo_table .text:000233C4 MOV R3, R0,LSL#2 .text:000233C8 STR R12, [R2,R3] .text:000233CC MOV R0, #0 .text:000233D0 STR LR, [R1,R3] .text:000233D4 LDMDB R11, {R11,SP,PC} .text:000233D8 ; --------------------------------------------------------------------------- .text:000233D8 .text:000233D8 loc_233D8 ; CODE XREF: register_printf_function+18j .text:000233D8 BL __errno_location .text:000233DC MOV R3, #0x16 .text:000233E0 STR R3, [R0] .text:000233E4 MOV R0, 0xFFFFFFFF .text:000233E8 LDMDB R11, {R11,SP,PC} .text:000233E8 ; End of function register_printf_function .text:000233E8 .text:000233E8 ; --------------------------------------------------------------------------- .text:000233EC off_233EC DCD __printf_function_table .text:000233EC ; DATA XREF: register_printf_function+1Cr .text:000233F0 off_233F0 DCD printf_funcs ; DATA XREF: register_printf_function+20r .text:000233F4 off_233F4 DCD __printf_arginfo_table .text:000233F4 ; DATA XREF: register_printf_function+28r .text:000233F8 .text:000233F8 ; =============== S U B R O U T I N E ======================================= .text:000233F8 .text:000233F8 ; Attributes: bp-based frame .text:000233F8 .text:000233F8 EXPORT __printf_fphex .text:000233F8 __printf_fphex ; CODE XREF: vfprintf+15A4p .text:000233F8 ; vfprintf+375Cp ... .text:000233F8 .text:000233F8 var_138 = -0x138 .text:000233F8 var_134 = -0x134 .text:000233F8 var_130 = -0x130 .text:000233F8 var_12C = -0x12C .text:000233F8 var_128 = -0x128 .text:000233F8 var_124 = -0x124 .text:000233F8 var_120 = -0x120 .text:000233F8 var_11C = -0x11C .text:000233F8 var_118 = -0x118 .text:000233F8 var_114 = -0x114 .text:000233F8 var_110 = -0x110 .text:000233F8 var_10C = -0x10C .text:000233F8 var_108 = -0x108 .text:000233F8 var_104 = -0x104 .text:000233F8 var_100 = -0x100 .text:000233F8 var_FC = -0xFC .text:000233F8 var_F8 = -0xF8 .text:000233F8 var_F4 = -0xF4 .text:000233F8 var_DC = -0xDC .text:000233F8 var_D7 = -0xD7 .text:000233F8 var_88 = -0x88 .text:000233F8 var_54 = -0x54 .text:000233F8 var_34 = -0x34 .text:000233F8 var_30 = -0x30 .text:000233F8 .text:000233F8 MOV R12, SP .text:000233FC STMFD SP!, {R4-R12,LR,PC} .text:00023400 SUB R11, R12, #4 .text:00023404 SUB SP, SP, #0x110 .text:00023408 STR R1, [R11,#var_F8] .text:0002340C LDR R1, [R1] .text:00023410 MOV R6, #0 .text:00023414 STR R6, [R11,#var_100] .text:00023418 STR R1, [R11,#var_128] .text:0002341C LDR R1, [R11,#var_F8] .text:00023420 MOV R10, R6 .text:00023424 LDRB R3, [R1,#0xD] .text:00023428 MOV R7, R0 .text:0002342C LDR R9, [R1,#4] .text:00023430 MOV R1, R2 .text:00023434 TST R3, #1 .text:00023438 MOV R3, R3,LSR#2 .text:0002343C AND R8, R3, #1 .text:00023440 BNE loc_2345C .text:00023444 LDR R3, =_nl_current_LC_NUMERIC .text:00023448 LDR R2, [R3] .text:0002344C LDR R3, [R2,#0x20] .text:00023450 STR R3, [R11,#var_FC] .text:00023454 LDR R3, [R2,#0x2C] .text:00023458 B loc_23470 .text:0002345C ; --------------------------------------------------------------------------- .text:0002345C .text:0002345C loc_2345C ; CODE XREF: __printf_fphex+48j .text:0002345C LDR R3, =_nl_current_LC_MONETARY .text:00023460 LDR R2, [R3] .text:00023464 LDR R0, [R2,#0x28] .text:00023468 STR R0, [R11,#var_FC] .text:0002346C LDR R3, [R2,#0xCC] .text:00023470 .text:00023470 loc_23470 ; CODE XREF: __printf_fphex+60j .text:00023470 STR R3, [R11,#var_F4] .text:00023474 LDR R3, [R11,#var_FC] .text:00023478 LDRB R2, [R3] .text:0002347C LDR R3, [R11,#var_F4] .text:00023480 CMP R3, #0 .text:00023484 CMPNE R2, #0 .text:00023488 BNE loc_234A0 .text:0002348C LDR R0, =aDecimal0Decima ; "*decimal != '\\0' && decimalwc != L'\\0'" .text:00023490 LDR R1, =a__SysdepsGen_0 ; "../sysdeps/generic/printf_fphex.c" .text:00023494 LDR R3, =a__printf_fphex ; "__printf_fphex" .text:00023498 MOV R2, #0xA3 .text:0002349C BL __assert_fail .text:000234A0 ; --------------------------------------------------------------------------- .text:000234A0 .text:000234A0 loc_234A0 ; CODE XREF: __printf_fphex+90j .text:000234A0 LDR R3, [R1] .text:000234A4 LDMIA R3, {R4,R5} .text:000234A8 STR R4, [R11,#var_34] .text:000234AC STR R5, [R11,#var_30] .text:000234B0 MOV R1, R5 .text:000234B4 MOV R0, R4 .text:000234B8 BL isnanl .text:000234BC CMP R0, #0 .text:000234C0 BEQ loc_23508 .text:000234C4 LDR R0, [R11,#var_F8] .text:000234C8 LDR R2, =__ctype_b .text:000234CC LDR R3, [R0,#8] .text:000234D0 LDR R1, [R2] .text:000234D4 MOV R3, R3,LSL#1 .text:000234D8 ADD R3, R3, R1 .text:000234DC LDRB R2, [R3,#1] .text:000234E0 TST R2, #1 .text:000234E4 LDRNE R1, =aN ; "N" .text:000234E8 LDRNE R6, =aNan ; "NAN" .text:000234EC STRNE R1, [R11,#var_100] .text:000234F0 LDREQ R2, =dword_57370 .text:000234F4 LDREQ R6, =dword_5736C .text:000234F8 STREQ R2, [R11,#var_100] .text:000234FC MOV R3, #0 .text:00023500 STR R3, [R11,#var_110] .text:00023504 B loc_23564 .text:00023508 ; --------------------------------------------------------------------------- .text:00023508 .text:00023508 loc_23508 ; CODE XREF: __printf_fphex+C8j .text:00023508 MOV R1, R5 .text:0002350C MOV R0, R4 .text:00023510 BL isinfl .text:00023514 CMP R0, #0 .text:00023518 BEQ loc_23554 .text:0002351C LDR R0, [R11,#var_F8] .text:00023520 LDR R2, =__ctype_b .text:00023524 LDR R3, [R0,#8] .text:00023528 LDR R1, [R2] .text:0002352C MOV R3, R3,LSL#1 .text:00023530 ADD R3, R3, R1 .text:00023534 LDRB R2, [R3,#1] .text:00023538 TST R2, #1 .text:0002353C LDRNE R1, =dword_57384 .text:00023540 LDRNE R6, =dword_57380 .text:00023544 STRNE R1, [R11,#var_100] .text:00023548 LDREQ R2, =dword_57398 .text:0002354C LDREQ R6, =dword_57394 .text:00023550 STREQ R2, [R11,#var_100] .text:00023554 .text:00023554 loc_23554 ; CODE XREF: __printf_fphex+120j .text:00023554 SUB R0, R11, #-var_34 .text:00023558 LDMIA R0, {R0,R1} .text:0002355C BL __signbit .text:00023560 STR R0, [R11,#var_110] .text:00023564 .text:00023564 loc_23564 ; CODE XREF: __printf_fphex+10Cj .text:00023564 CMP R6, #0 .text:00023568 BEQ loc_23884 .text:0002356C LDR R3, [R11,#var_F8] .text:00023570 LDR R0, [R11,#var_110] .text:00023574 LDR R5, [R3,#4] .text:00023578 CMP R0, #0 .text:0002357C LDRB R2, [R3,#0xC] .text:00023580 BNE loc_23590 .text:00023584 AND R3, R2, #0x50 .text:00023588 CMP R3, #0 .text:0002358C BEQ loc_23594 .text:00023590 .text:00023590 loc_23590 ; CODE XREF: __printf_fphex+188j .text:00023590 SUB R5, R5, #1 .text:00023594 .text:00023594 loc_23594 ; CODE XREF: __printf_fphex+194j .text:00023594 SUB R5, R5, #3 .text:00023598 TST R2, #0x20 .text:0002359C MOVNE R3, #0 .text:000235A0 MOVEQ R3, #1 .text:000235A4 CMP R3, #0 .text:000235A8 CMPNE R5, #0 .text:000235AC BLE loc_235E8 .text:000235B0 CMP R8, #0 .text:000235B4 BEQ loc_235CC .text:000235B8 MOV R0, R7 .text:000235BC MOV R1, #0x20 .text:000235C0 MOV R2, R5 .text:000235C4 BL _IO_wpadn .text:000235C8 B loc_235DC .text:000235CC ; --------------------------------------------------------------------------- .text:000235CC .text:000235CC loc_235CC ; CODE XREF: __printf_fphex+1BCj .text:000235CC MOV R0, R7 .text:000235D0 MOV R1, #0x20 .text:000235D4 MOV R2, R5 .text:000235D8 BL _IO_padn .text:000235DC .text:000235DC loc_235DC ; CODE XREF: __printf_fphex+1D0j .text:000235DC CMP R0, R5 .text:000235E0 BNE loc_245FC .text:000235E4 ADD R10, R10, R5 .text:000235E8 .text:000235E8 loc_235E8 ; CODE XREF: __printf_fphex+1B4j .text:000235E8 LDR R1, [R11,#var_110] .text:000235EC CMP R1, #0 .text:000235F0 BEQ loc_23644 .text:000235F4 CMP R8, #0 .text:000235F8 MOV R1, #0x2D .text:000235FC BEQ loc_23620 .text:00023600 LDR R0, [R7,#0x58] .text:00023604 ADD R2, R0, #0x10 .text:00023608 LDMIA R2, {R2,R3} .text:0002360C CMP R2, R3 .text:00023610 BCC loc_236B4 .text:00023614 MOV R0, R7 .text:00023618 BL __woverflow .text:0002361C B loc_23638 .text:00023620 ; --------------------------------------------------------------------------- .text:00023620 .text:00023620 loc_23620 ; CODE XREF: __printf_fphex+204j .text:00023620 ; __printf_fphex+264j ... .text:00023620 ADD R2, R7, #0x14 .text:00023624 LDMIA R2, {R2,R3} .text:00023628 CMP R2, R3 .text:0002362C BCC loc_236C0 .text:00023630 MOV R0, R7 .text:00023634 BL __overflow .text:00023638 .text:00023638 loc_23638 ; CODE XREF: __printf_fphex+224j .text:00023638 ; __printf_fphex+284j ... .text:00023638 CMN R0, #1 .text:0002363C BEQ loc_245FC .text:00023640 B loc_236C8 .text:00023644 ; --------------------------------------------------------------------------- .text:00023644 .text:00023644 loc_23644 ; CODE XREF: __printf_fphex+1F8j .text:00023644 LDR R2, [R11,#var_F8] .text:00023648 LDRB R3, [R2,#0xC] .text:0002364C TST R3, #0x40 .text:00023650 BEQ loc_23680 .text:00023654 CMP R8, #0 .text:00023658 MOV R1, #0x2B .text:0002365C BEQ loc_23620 .text:00023660 LDR R0, [R7,#0x58] .text:00023664 ADD R2, R0, #0x10 .text:00023668 LDMIA R2, {R2,R3} .text:0002366C CMP R2, R3 .text:00023670 BCC loc_236B4 .text:00023674 MOV R0, R7 .text:00023678 BL __woverflow .text:0002367C B loc_23638 .text:00023680 ; --------------------------------------------------------------------------- .text:00023680 .text:00023680 loc_23680 ; CODE XREF: __printf_fphex+258j .text:00023680 TST R3, #0x10 .text:00023684 BEQ loc_236CC .text:00023688 CMP R8, #0 .text:0002368C MOV R1, #0x20 .text:00023690 BEQ loc_23620 .text:00023694 LDR R0, [R7,#0x58] .text:00023698 ADD R2, R0, #0x10 .text:0002369C LDMIA R2, {R2,R3} .text:000236A0 CMP R2, R3 .text:000236A4 BCC loc_236B4 .text:000236A8 MOV R0, R7 .text:000236AC BL __woverflow .text:000236B0 B loc_23638 .text:000236B4 ; --------------------------------------------------------------------------- .text:000236B4 .text:000236B4 loc_236B4 ; CODE XREF: __printf_fphex+218j .text:000236B4 ; __printf_fphex+278j ... .text:000236B4 STR R1, [R2],#4 .text:000236B8 STR R2, [R0,#0x10] .text:000236BC B loc_236C8 .text:000236C0 ; --------------------------------------------------------------------------- .text:000236C0 .text:000236C0 loc_236C0 ; CODE XREF: __printf_fphex+234j .text:000236C0 STRB R1, [R2],#1 .text:000236C4 STR R2, [R7,#0x14] .text:000236C8 .text:000236C8 loc_236C8 ; CODE XREF: __printf_fphex+248j .text:000236C8 ; __printf_fphex+2C4j .text:000236C8 ADD R10, R10, #1 .text:000236CC .text:000236CC loc_236CC ; CODE XREF: __printf_fphex+28Cj .text:000236CC CMP R8, #0 .text:000236D0 BEQ loc_2376C .text:000236D4 MOV R4, #2 .text:000236D8 .text:000236D8 loc_236D8 ; CODE XREF: __printf_fphex+36Cj .text:000236D8 LDR R3, [R11,#var_100] .text:000236DC LDR R1, [R3],#4 .text:000236E0 CMP R8, #0 .text:000236E4 STR R3, [R11,#var_100] .text:000236E8 BEQ loc_2371C .text:000236EC LDR R0, [R7,#0x58] .text:000236F0 ADD R2, R0, #0x10 .text:000236F4 LDMIA R2, {R2,R3} .text:000236F8 CMP R2, R3 .text:000236FC BCC loc_2370C .text:00023700 MOV R0, R7 .text:00023704 BL __woverflow .text:00023708 B loc_23738 .text:0002370C ; --------------------------------------------------------------------------- .text:0002370C .text:0002370C loc_2370C ; CODE XREF: __printf_fphex+304j .text:0002370C STR R1, [R2],#4 .text:00023710 CMN R1, #1 .text:00023714 STR R2, [R0,#0x10] .text:00023718 B loc_23750 .text:0002371C ; --------------------------------------------------------------------------- .text:0002371C .text:0002371C loc_2371C ; CODE XREF: __printf_fphex+2F0j .text:0002371C ADD R2, R7, #0x14 .text:00023720 LDMIA R2, {R2,R3} .text:00023724 CMP R2, R3 .text:00023728 BCC loc_23740 .text:0002372C MOV R0, R7 .text:00023730 AND R1, R1, #0xFF .text:00023734 BL __overflow .text:00023738 .text:00023738 loc_23738 ; CODE XREF: __printf_fphex+310j .text:00023738 CMN R0, #1 .text:0002373C B loc_23750 .text:00023740 ; --------------------------------------------------------------------------- .text:00023740 .text:00023740 loc_23740 ; CODE XREF: __printf_fphex+330j .text:00023740 STRB R1, [R2],#1 .text:00023744 AND R3, R1, #0xFF .text:00023748 CMN R3, #1 .text:0002374C STR R2, [R7,#0x14] .text:00023750 .text:00023750 loc_23750 ; CODE XREF: __printf_fphex+320j .text:00023750 ; __printf_fphex+344j .text:00023750 BEQ loc_245FC .text:00023754 ADD R10, R10, #1 .text:00023758 MOV R3, R4 .text:0002375C SUB R4, R4, #1 .text:00023760 CMP R3, #0 .text:00023764 BNE loc_236D8 .text:00023768 B loc_23828 .text:0002376C ; --------------------------------------------------------------------------- .text:0002376C .text:0002376C loc_2376C ; CODE XREF: __printf_fphex+2D8j .text:0002376C MOV R4, #2 .text:00023770 .text:00023770 loc_23770 ; CODE XREF: __printf_fphex+42Cj .text:00023770 CMP R8, #0 .text:00023774 LDRB R1, [R6],#1 .text:00023778 BEQ loc_237AC .text:0002377C LDR R0, [R7,#0x58] .text:00023780 ADD R2, R0, #0x10 .text:00023784 LDMIA R2, {R2,R3} .text:00023788 CMP R2, R3 .text:0002378C BCC loc_2379C .text:00023790 MOV R0, R7 .text:00023794 BL __woverflow .text:00023798 B loc_237C4 .text:0002379C ; --------------------------------------------------------------------------- .text:0002379C .text:0002379C loc_2379C ; CODE XREF: __printf_fphex+394j .text:0002379C STR R1, [R2],#4 .text:000237A0 CMN R1, #1 .text:000237A4 STR R2, [R0,#0x10] .text:000237A8 B loc_23810 .text:000237AC ; --------------------------------------------------------------------------- .text:000237AC .text:000237AC loc_237AC ; CODE XREF: __printf_fphex+380j .text:000237AC ADD R2, R7, #0x14 .text:000237B0 LDMIA R2, {R2,R3} .text:000237B4 CMP R2, R3 .text:000237B8 BCC loc_23804 .text:000237BC MOV R0, R7 .text:000237C0 BL __overflow .text:000237C4 .text:000237C4 loc_237C4 ; CODE XREF: __printf_fphex+3A0j .text:000237C4 CMN R0, #1 .text:000237C8 B loc_23810 .text:000237C8 ; --------------------------------------------------------------------------- .text:000237CC off_237CC DCD _nl_current_LC_NUMERIC ; DATA XREF: __printf_fphex+4Cr .text:000237D0 off_237D0 DCD _nl_current_LC_MONETARY .text:000237D0 ; DATA XREF: __printf_fphex:loc_2345Cr .text:000237D4 off_237D4 DCD aDecimal0Decima ; DATA XREF: __printf_fphex+94r .text:000237D4 ; "*decimal != '\\0' && decimalwc != L'\\0'" .text:000237D8 off_237D8 DCD a__SysdepsGen_0 ; DATA XREF: __printf_fphex+98r .text:000237D8 ; "../sysdeps/generic/printf_fphex.c" .text:000237DC off_237DC DCD a__printf_fphex ; DATA XREF: __printf_fphex+9Cr .text:000237DC ; "__printf_fphex" .text:000237E0 off_237E0 DCD __ctype_b ; DATA XREF: __printf_fphex+D0r .text:000237E0 ; __printf_fphex+128r .text:000237E4 off_237E4 DCD aN ; DATA XREF: __printf_fphex+ECr .text:000237E4 ; "N" .text:000237E8 off_237E8 DCD aNan ; DATA XREF: __printf_fphex+F0r .text:000237E8 ; "NAN" .text:000237EC off_237EC DCD dword_57370 ; DATA XREF: __printf_fphex+F8r .text:000237F0 off_237F0 DCD dword_5736C ; DATA XREF: __printf_fphex+FCr .text:000237F4 off_237F4 DCD dword_57384 ; DATA XREF: __printf_fphex+144r .text:000237F8 off_237F8 DCD dword_57380 ; DATA XREF: __printf_fphex+148r .text:000237FC off_237FC DCD dword_57398 ; DATA XREF: __printf_fphex+150r .text:00023800 off_23800 DCD dword_57394 ; DATA XREF: __printf_fphex+154r .text:00023804 ; --------------------------------------------------------------------------- .text:00023804 .text:00023804 loc_23804 ; CODE XREF: __printf_fphex+3C0j .text:00023804 STRB R1, [R2],#1 .text:00023808 CMN R1, #1 .text:0002380C STR R2, [R7,#0x14] .text:00023810 .text:00023810 loc_23810 ; CODE XREF: __printf_fphex+3B0j .text:00023810 ; __printf_fphex+3D0j .text:00023810 BEQ loc_245FC .text:00023814 ADD R10, R10, #1 .text:00023818 MOV R3, R4 .text:0002381C SUB R4, R4, #1 .text:00023820 CMP R3, #0 .text:00023824 BNE loc_23770 .text:00023828 .text:00023828 loc_23828 ; CODE XREF: __printf_fphex+370j .text:00023828 LDR R0, [R11,#var_F8] .text:0002382C LDRB R3, [R0,#0xC] .text:00023830 TST R3, #0x20 .text:00023834 MOVEQ R2, #0 .text:00023838 MOVNE R2, #1 .text:0002383C CMP R2, #0 .text:00023840 CMPNE R5, #0 .text:00023844 BLE loc_24608 .text:00023848 CMP R8, #0 .text:0002384C BEQ loc_23864 .text:00023850 MOV R0, R7 .text:00023854 MOV R1, #0x20 .text:00023858 MOV R2, R5 .text:0002385C BL _IO_wpadn .text:00023860 B loc_23874 .text:00023864 ; --------------------------------------------------------------------------- .text:00023864 .text:00023864 loc_23864 ; CODE XREF: __printf_fphex+454j .text:00023864 MOV R0, R7 .text:00023868 MOV R1, #0x20 .text:0002386C MOV R2, R5 .text:00023870 BL _IO_padn .text:00023874 .text:00023874 loc_23874 ; CODE XREF: __printf_fphex+468j .text:00023874 CMP R0, R5 .text:00023878 BNE loc_245FC .text:0002387C ADD R10, R10, R5 .text:00023880 B loc_24608 .text:00023884 ; --------------------------------------------------------------------------- .text:00023884 .text:00023884 loc_23884 ; CODE XREF: __printf_fphex+170j .text:00023884 LDR R3, [R11,#var_34] .text:00023888 BIC R3, R3, #0xFF000000 .text:0002388C BIC R3, R3, #0xF00000 .text:00023890 MOV R4, #0 .text:00023894 MOV R2, R3 .text:00023898 LDR R3, [R11,#var_30] .text:0002389C MOV R1, R6 .text:000238A0 ORR R4, R1, R3 .text:000238A4 MOV R5, R2 .text:000238A8 ORRS R1, R4, R5 .text:000238AC MOVNE R2, #0 .text:000238B0 MOVEQ R2, #1 .text:000238B4 STR R2, [R11,#var_120] .text:000238B8 LDR R0, [R11,#var_F8] .text:000238BC LDR R3, [R0,#8] .text:000238C0 CMP R3, #0x41 .text:000238C4 MOVNE R3, #0 .text:000238C8 MOVEQ R3, #1 .text:000238CC STR R3, [SP,#0x138+var_138] .text:000238D0 MOV R3, #0x10 .text:000238D4 MOV R1, R5 .text:000238D8 MOV R0, R4 .text:000238DC SUB R2, R11, #-var_54 .text:000238E0 BL _itowa .text:000238E4 LDR R1, [R11,#var_F8] .text:000238E8 LDR R3, [R1,#8] .text:000238EC STR R0, [R11,#var_10C] .text:000238F0 CMP R3, #0x41 .text:000238F4 MOVNE R3, #0 .text:000238F8 MOVEQ R3, #1 .text:000238FC STR R3, [SP,#0x138+var_138] .text:00023900 SUB R6, R11, #-var_34 .text:00023904 MOV R2, R6 .text:00023908 MOV R1, R5 .text:0002390C MOV R0, R4 .text:00023910 MOV R3, #0x10 .text:00023914 BL _itoa .text:00023918 STR R0, [R11,#var_104] .text:0002391C SUB R2, R11, #-var_88 .text:00023920 MOV R1, R6 .text:00023924 SUB LR, R11, #-var_D7 .text:00023928 LDR R3, [R11,#var_10C] .text:0002392C SUB R0, R11, #-var_DC .text:00023930 STR R0, [R11,#var_134] .text:00023934 CMP R3, R2 .text:00023938 BLS loc_23964 .text:0002393C MOV R3, #0x30 .text:00023940 .text:00023940 loc_23940 ; CODE XREF: __printf_fphex+568j .text:00023940 LDR R0, [R11,#var_10C] .text:00023944 STR R3, [R0,#-4]! .text:00023948 STR R0, [R11,#var_10C] .text:0002394C LDR R0, [R11,#var_104] .text:00023950 STRB R3, [R0,#-1]! .text:00023954 STR R0, [R11,#var_104] .text:00023958 LDR R0, [R11,#var_10C] .text:0002395C CMP R0, R2 .text:00023960 BHI loc_23940 .text:00023964 .text:00023964 loc_23964 ; CODE XREF: __printf_fphex+540j .text:00023964 MOV R3, #0x7F0 .text:00023968 LDR R2, [R11,#var_34] .text:0002396C ADD R3, R3, #0xF .text:00023970 AND R3, R3, R2,LSR#20 .text:00023974 CMP R3, #0 .text:00023978 MOVNE R2, #0x31 .text:0002397C MOVEQ R2, #0x30 .text:00023980 MOV R6, R3 .text:00023984 STR R2, [R11,#var_124] .text:00023988 BNE loc_239AC .text:0002398C LDR R3, [R11,#var_120] .text:00023990 STR R6, [R11,#var_11C] .text:00023994 CMP R3, #0 .text:00023998 MOVEQ R0, #1 .text:0002399C MOVEQ R6, 0x3FE .text:000239A4 STREQ R0, [R11,#var_11C] .text:000239A8 B loc_239E0 .text:000239AC ; --------------------------------------------------------------------------- .text:000239AC .text:000239AC loc_239AC ; CODE XREF: __printf_fphex+590j .text:000239AC MOV R3, 0x3FE .text:000239B4 CMP R6, R3 .text:000239B8 BLE loc_239D0 .text:000239BC MOV R2, #0 .text:000239C0 SUB R6, R6, #0x3FC .text:000239C4 SUB R6, R6, #3 .text:000239C8 STR R2, [R11,#var_11C] .text:000239CC B loc_239E0 .text:000239D0 ; --------------------------------------------------------------------------- .text:000239D0 .text:000239D0 loc_239D0 ; CODE XREF: __printf_fphex+5C0j .text:000239D0 MOV R3, #1 .text:000239D4 RSB R6, R6, #0x3FC .text:000239D8 ADD R6, R6, #3 .text:000239DC STR R3, [R11,#var_11C] .text:000239E0 .text:000239E0 loc_239E0 ; CODE XREF: __printf_fphex+5B0j .text:000239E0 ; __printf_fphex+5D4j .text:000239E0 LDR R0, [R11,#var_120] .text:000239E4 CMP R0, #0 .text:000239E8 BNE loc_23C18 .text:000239EC ADD R2, R11, #0x12C .text:000239F0 LDR R3, [R2,#-4] .text:000239F4 STR R1, [R11,#var_108] .text:000239F8 CMP R3, #0x30 .text:000239FC BNE loc_23A1C .text:00023A00 .text:00023A00 loc_23A00 ; CODE XREF: __printf_fphex+620j .text:00023A00 LDR R1, [R11,#var_108] .text:00023A04 SUB R2, R2, #4 .text:00023A08 LDR R3, [R2,#-4] .text:00023A0C SUB R1, R1, #1 .text:00023A10 CMP R3, #0x30 .text:00023A14 STR R1, [R11,#var_108] .text:00023A18 BEQ loc_23A00 .text:00023A1C .text:00023A1C loc_23A1C ; CODE XREF: __printf_fphex+604j .text:00023A1C LDR R2, [R11,#var_128] .text:00023A20 CMN R2, #1 .text:00023A24 BNE loc_23A3C .text:00023A28 LDR R3, [R11,#var_108] .text:00023A2C LDR R0, [R11,#var_104] .text:00023A30 RSB R3, R0, R3 .text:00023A34 STR R3, [R11,#var_128] .text:00023A38 B loc_23C34 .text:00023A3C ; --------------------------------------------------------------------------- .text:00023A3C .text:00023A3C loc_23A3C ; CODE XREF: __printf_fphex+62Cj .text:00023A3C SUB R1, R11, #-var_108 .text:00023A40 LDMIA R1, {R1,R3} .text:00023A44 LDR R0, [R11,#var_128] .text:00023A48 RSB R2, R3, R1 .text:00023A4C CMP R0, R2 .text:00023A50 BGE loc_23C34 .text:00023A54 LDRB R3, [R3,R0] .text:00023A58 CMP R3, #0x38 .text:00023A5C BHI loc_23B04 .text:00023A60 BNE loc_23C34 .text:00023A64 ADD R3, R0, #1 .text:00023A68 CMP R3, R2 .text:00023A6C BLT loc_23B04 .text:00023A70 CMP R0, #0 .text:00023A74 BLE loc_23AC0 .text:00023A78 LDR R2, [R11,#var_104] .text:00023A7C MOV R12, 0xFFFFFFFF .text:00023A80 LDR R1, =__ctype_b .text:00023A84 ADD R0, R0, R2 .text:00023A88 LDRB R3, [R0,R12] .text:00023A8C LDR R2, [R1] .text:00023A90 MOV R3, R3,LSL#1 .text:00023A94 ADD R3, R3, R2 .text:00023A98 LDRB R1, [R3,#1] .text:00023A9C LDRB R2, [R0,R12] .text:00023AA0 TST R1, #8 .text:00023AA4 AND R2, R2, #1 .text:00023AA8 BNE loc_23AB8 .text:00023AAC CMP R2, #0 .text:00023AB0 BEQ loc_23B04 .text:00023AB4 B loc_23AC0 .text:00023AB8 ; --------------------------------------------------------------------------- .text:00023AB8 .text:00023AB8 loc_23AB8 ; CODE XREF: __printf_fphex+6B0j .text:00023AB8 CMP R2, #0 .text:00023ABC BNE loc_23B04 .text:00023AC0 .text:00023AC0 loc_23AC0 ; CODE XREF: __printf_fphex+67Cj .text:00023AC0 ; __printf_fphex+6BCj .text:00023AC0 LDR R3, [R11,#var_128] .text:00023AC4 CMP R3, #0 .text:00023AC8 BNE loc_23C34 .text:00023ACC LDR R2, =__ctype_b .text:00023AD0 LDR R0, [R11,#var_124] .text:00023AD4 LDR R1, [R2] .text:00023AD8 MOV R3, R0,LSL#1 .text:00023ADC ADD R3, R3, R1 .text:00023AE0 LDRB R2, [R3,#1] .text:00023AE4 AND R3, R0, #1 .text:00023AE8 TST R2, #8 .text:00023AEC BNE loc_23AFC .text:00023AF0 CMP R3, #0 .text:00023AF4 BEQ loc_23B04 .text:00023AF8 B loc_23C34 .text:00023AFC ; --------------------------------------------------------------------------- .text:00023AFC .text:00023AFC loc_23AFC ; CODE XREF: __printf_fphex+6F4j .text:00023AFC CMP R3, #0 .text:00023B00 BEQ loc_23C34 .text:00023B04 .text:00023B04 loc_23B04 ; CODE XREF: __printf_fphex+664j .text:00023B04 ; __printf_fphex+674j ... .text:00023B04 LDR R1, [R11,#var_128] .text:00023B08 SUBS R0, R1, #1 .text:00023B0C BMI loc_23BA8 .text:00023B10 LDR R2, [R11,#var_104] .text:00023B14 LDRB R1, [R2,R0] .text:00023B18 CMP R1, #0x39 .text:00023B1C BNE loc_23B50 .text:00023B20 LDR R1, [R11,#var_F8] .text:00023B24 LDR R2, [R11,#var_10C] .text:00023B28 B loc_23B94 .text:00023B2C ; --------------------------------------------------------------------------- .text:00023B2C .text:00023B2C loc_23B2C ; CODE XREF: __printf_fphex+768j .text:00023B2C LDR R1, [R11,#var_104] .text:00023B30 LDRB R3, [R1,R0] .text:00023B34 ADD R3, R3, #1 .text:00023B38 STRB R3, [R1,R0] .text:00023B3C LDR R3, [R11,#var_10C] .text:00023B40 LDR R2, [R3,R0,LSL#2] .text:00023B44 ADD R2, R2, #1 .text:00023B48 STR R2, [R3,R0,LSL#2] .text:00023B4C B loc_23BA8 .text:00023B50 ; --------------------------------------------------------------------------- .text:00023B50 .text:00023B50 loc_23B50 ; CODE XREF: __printf_fphex+724j .text:00023B50 ; __printf_fphex+794j .text:00023B50 LDR R3, =__ctype_tolower .text:00023B54 LDR R2, [R3] .text:00023B58 LDR R1, [R2,R1,LSL#2] .text:00023B5C CMP R1, #0x65 .text:00023B60 BLE loc_23B2C .text:00023B64 LDR R1, [R11,#var_104] .text:00023B68 MOV R3, #0x30 .text:00023B6C STRB R3, [R1,R0] .text:00023B70 LDR R2, [R11,#var_10C] .text:00023B74 STR R3, [R2,R0,LSL#2] .text:00023B78 SUBS R0, R0, #1 .text:00023B7C BMI loc_23BA8 .text:00023B80 LDR R3, [R11,#var_104] .text:00023B84 LDRB R1, [R3,R0] .text:00023B88 CMP R1, #0x39 .text:00023B8C BNE loc_23B50 .text:00023B90 LDR R1, [R11,#var_F8] .text:00023B94 .text:00023B94 loc_23B94 ; CODE XREF: __printf_fphex+730j .text:00023B94 LDR R3, [R1,#8] .text:00023B98 STR R3, [R2,R0,LSL#2] .text:00023B9C LDR R3, [R11,#var_104] .text:00023BA0 LDRB R2, [R1,#8] .text:00023BA4 STRB R2, [R3,R0] .text:00023BA8 .text:00023BA8 loc_23BA8 ; CODE XREF: __printf_fphex+714j .text:00023BA8 ; __printf_fphex+754j ... .text:00023BA8 CMP R0, #0 .text:00023BAC BGE loc_23C34 .text:00023BB0 LDR R0, [R11,#var_124] .text:00023BB4 CMP R0, #0x39 .text:00023BB8 LDREQ R1, [R11,#var_F8] .text:00023BBC LDREQB R1, [R1,#8] .text:00023BC0 STREQ R1, [R11,#var_124] .text:00023BC4 BEQ loc_23C34 .text:00023BC8 LDR R3, =__ctype_tolower .text:00023BCC LDR R2, [R3] .text:00023BD0 LDR R3, [R11,#var_124] .text:00023BD4 LDR R1, [R2,R3,LSL#2] .text:00023BD8 CMP R1, #0x65 .text:00023BDC ADDLE R3, R3, #1 .text:00023BE0 ANDLE R3, R3, #0xFF .text:00023BE4 STRLE R3, [R11,#var_124] .text:00023BE8 BLE loc_23C34 .text:00023BEC LDR R1, [R11,#var_11C] .text:00023BF0 MOV R0, #1 .text:00023BF4 STR R0, [R11,#var_124] .text:00023BF8 CMP R1, #0 .text:00023BFC BEQ loc_23C10 .text:00023C00 ADDS R6, R6, #4 .text:00023C04 MOVPL R1, #0 .text:00023C08 STR R1, [R11,#var_11C] .text:00023C0C B loc_23C34 .text:00023C10 ; --------------------------------------------------------------------------- .text:00023C10 .text:00023C10 loc_23C10 ; CODE XREF: __printf_fphex+804j .text:00023C10 ADD R6, R6, #4 .text:00023C14 B loc_23C34 .text:00023C18 ; --------------------------------------------------------------------------- .text:00023C18 .text:00023C18 loc_23C18 ; CODE XREF: __printf_fphex+5F0j .text:00023C18 LDR R2, [R11,#var_128] .text:00023C1C MOV R3, R2 .text:00023C20 CMN R3, #1 .text:00023C24 MOVEQ R2, #0 .text:00023C28 STR R2, [R11,#var_128] .text:00023C2C LDR R0, [R11,#var_104] .text:00023C30 STR R0, [R11,#var_108] .text:00023C34 .text:00023C34 loc_23C34 ; CODE XREF: __printf_fphex+640j .text:00023C34 ; __printf_fphex+658j ... .text:00023C34 MOV R4, R6 .text:00023C38 LDR R1, [R11,#var_128] .text:00023C3C MOV R5, LR .text:00023C40 ADD R1, R1, #3 .text:00023C44 STR R1, [R11,#var_12C] .text:00023C48 .text:00023C48 loc_23C48 ; CODE XREF: __printf_fphex+878j .text:00023C48 MOV R0, R4 .text:00023C4C MOV R1, #0xA .text:00023C50 BL __umodsi3 .text:00023C54 LDR R2, =_itoa_lower_digits .text:00023C58 LDRB R3, [R2,R0] .text:00023C5C STRB R3, [R5,#-1]! .text:00023C60 MOV R1, #0xA .text:00023C64 MOV R0, R4 .text:00023C68 BL __udivsi3 .text:00023C6C SUBS R4, R0, #0 .text:00023C70 BNE loc_23C48 .text:00023C74 STR R5, [R11,#var_114] .text:00023C78 LDR R3, [R11,#var_114] .text:00023C7C MOV R4, R6 .text:00023C80 LDR R5, [R11,#var_134] .text:00023C84 SUB R3, R3, #5 .text:00023C88 STR R3, [R11,#var_130] .text:00023C8C .text:00023C8C loc_23C8C ; CODE XREF: __printf_fphex+8BCj .text:00023C8C MOV R0, R4 .text:00023C90 MOV R1, #0xA .text:00023C94 BL __umodsi3 .text:00023C98 LDR R1, =_itowa_lower_digits .text:00023C9C LDR R3, [R1,R0,LSL#2] .text:00023CA0 STR R3, [R5,#-4]! .text:00023CA4 MOV R0, R4 .text:00023CA8 MOV R1, #0xA .text:00023CAC BL __udivsi3 .text:00023CB0 SUBS R4, R0, #0 .text:00023CB4 BNE loc_23C8C .text:00023CB8 LDR R2, [R11,#var_110] .text:00023CBC MOV R0, R4 .text:00023CC0 STR R5, [R11,#var_118] .text:00023CC4 CMP R2, #0 .text:00023CC8 BNE loc_23CE0 .text:00023CCC LDR R1, [R11,#var_F8] .text:00023CD0 LDRB R3, [R1,#0xC] .text:00023CD4 AND R3, R3, #0x50 .text:00023CD8 CMP R3, #0 .text:00023CDC BEQ loc_23CE4 .text:00023CE0 .text:00023CE0 loc_23CE0 ; CODE XREF: __printf_fphex+8D0j .text:00023CE0 MOV R0, #1 .text:00023CE4 .text:00023CE4 loc_23CE4 ; CODE XREF: __printf_fphex+8E4j .text:00023CE4 SUB R1, R11, #-var_130 .text:00023CE8 LDMIA R1, {R1,R3} .text:00023CEC ADD R2, R0, R3 .text:00023CF0 LDR R0, [R11,#var_134] .text:00023CF4 RSB R3, R1, R0 .text:00023CF8 ADD R3, R3, #2 .text:00023CFC ADD R2, R2, R3 .text:00023D00 RSB R9, R2, R9 .text:00023D04 LDR R2, [R11,#var_128] .text:00023D08 CMP R2, #0 .text:00023D0C BGT loc_23D20 .text:00023D10 LDR R0, [R11,#var_F8] .text:00023D14 LDRB R3, [R0,#0xC] .text:00023D18 TST R3, #8 .text:00023D1C BEQ loc_23D3C .text:00023D20 .text:00023D20 loc_23D20 ; CODE XREF: __printf_fphex+914j .text:00023D20 CMP R8, #0 .text:00023D24 BNE loc_23D38 .text:00023D28 LDR R0, [R11,#var_FC] .text:00023D2C BL strlen .text:00023D30 RSB R9, R0, R9 .text:00023D34 B loc_23D3C .text:00023D38 ; --------------------------------------------------------------------------- .text:00023D38 .text:00023D38 loc_23D38 ; CODE XREF: __printf_fphex+92Cj .text:00023D38 SUB R9, R9, #1 .text:00023D3C .text:00023D3C loc_23D3C ; CODE XREF: __printf_fphex+924j .text:00023D3C ; __printf_fphex+93Cj .text:00023D3C LDR R1, [R11,#var_128] .text:00023D40 LDR R3, [R11,#var_F8] .text:00023D44 CMP R1, #0 .text:00023D48 LDRB R2, [R3,#0xC] .text:00023D4C BNE loc_23D58 .text:00023D50 TST R2, #8 .text:00023D54 ADDEQ R9, R9, #1 .text:00023D58 .text:00023D58 loc_23D58 ; CODE XREF: __printf_fphex+954j .text:00023D58 TST R2, #0x20 .text:00023D5C MOVNE R3, #0 .text:00023D60 MOVEQ R3, #1 .text:00023D64 CMP R3, #0 .text:00023D68 CMPNE R9, #0 .text:00023D6C BLE loc_23DA8 .text:00023D70 CMP R8, #0 .text:00023D74 BEQ loc_23D8C .text:00023D78 MOV R0, R7 .text:00023D7C MOV R1, #0x20 .text:00023D80 MOV R2, R9 .text:00023D84 BL _IO_wpadn .text:00023D88 B loc_23D9C .text:00023D8C ; --------------------------------------------------------------------------- .text:00023D8C .text:00023D8C loc_23D8C ; CODE XREF: __printf_fphex+97Cj .text:00023D8C MOV R0, R7 .text:00023D90 MOV R1, #0x20 .text:00023D94 MOV R2, R9 .text:00023D98 BL _IO_padn .text:00023D9C .text:00023D9C loc_23D9C ; CODE XREF: __printf_fphex+990j .text:00023D9C CMP R0, R9 .text:00023DA0 BNE loc_245FC .text:00023DA4 ADD R10, R10, R9 .text:00023DA8 .text:00023DA8 loc_23DA8 ; CODE XREF: __printf_fphex+974j .text:00023DA8 LDR R0, [R11,#var_110] .text:00023DAC CMP R0, #0 .text:00023DB0 BEQ loc_23E04 .text:00023DB4 CMP R8, #0 .text:00023DB8 MOV R1, #0x2D .text:00023DBC BEQ loc_23DE0 .text:00023DC0 LDR R0, [R7,#0x58] .text:00023DC4 ADD R2, R0, #0x10 .text:00023DC8 LDMIA R2, {R2,R3} .text:00023DCC CMP R2, R3 .text:00023DD0 BCC loc_23E84 .text:00023DD4 MOV R0, R7 .text:00023DD8 BL __woverflow .text:00023DDC B loc_23DF8 .text:00023DE0 ; --------------------------------------------------------------------------- .text:00023DE0 .text:00023DE0 loc_23DE0 ; CODE XREF: __printf_fphex+9C4j .text:00023DE0 ; __printf_fphex+A24j ... .text:00023DE0 ADD R2, R7, #0x14 .text:00023DE4 LDMIA R2, {R2,R3} .text:00023DE8 CMP R2, R3 .text:00023DEC BCC loc_23E90 .text:00023DF0 MOV R0, R7 .text:00023DF4 BL __overflow .text:00023DF8 .text:00023DF8 loc_23DF8 ; CODE XREF: __printf_fphex+9E4j .text:00023DF8 ; __printf_fphex+A44j ... .text:00023DF8 CMN R0, #1 .text:00023DFC BEQ loc_245FC .text:00023E00 B loc_23E98 .text:00023E04 ; --------------------------------------------------------------------------- .text:00023E04 .text:00023E04 loc_23E04 ; CODE XREF: __printf_fphex+9B8j .text:00023E04 LDR R1, [R11,#var_F8] .text:00023E08 LDRB R3, [R1,#0xC] .text:00023E0C TST R3, #0x40 .text:00023E10 BEQ loc_23E50 .text:00023E14 CMP R8, #0 .text:00023E18 MOV R1, #0x2B .text:00023E1C BEQ loc_23DE0 .text:00023E20 LDR R0, [R7,#0x58] .text:00023E24 ADD R2, R0, #0x10 .text:00023E28 LDMIA R2, {R2,R3} .text:00023E2C CMP R2, R3 .text:00023E30 BCC loc_23E84 .text:00023E34 MOV R0, R7 .text:00023E38 BL __woverflow .text:00023E3C B loc_23DF8 .text:00023E3C ; --------------------------------------------------------------------------- .text:00023E40 off_23E40 DCD __ctype_b ; DATA XREF: __printf_fphex+688r .text:00023E40 ; __printf_fphex+6D4r .text:00023E44 off_23E44 DCD __ctype_tolower ; DATA XREF: __printf_fphex:loc_23B50r .text:00023E44 ; __printf_fphex+7D0r .text:00023E48 off_23E48 DCD _itoa_lower_digits ; DATA XREF: __printf_fphex+85Cr .text:00023E4C off_23E4C DCD _itowa_lower_digits ; DATA XREF: __printf_fphex+8A0r .text:00023E50 ; --------------------------------------------------------------------------- .text:00023E50 .text:00023E50 loc_23E50 ; CODE XREF: __printf_fphex+A18j .text:00023E50 TST R3, #0x10 .text:00023E54 BEQ loc_23E9C .text:00023E58 CMP R8, #0 .text:00023E5C MOV R1, #0x20 .text:00023E60 BEQ loc_23DE0 .text:00023E64 LDR R0, [R7,#0x58] .text:00023E68 ADD R2, R0, #0x10 .text:00023E6C LDMIA R2, {R2,R3} .text:00023E70 CMP R2, R3 .text:00023E74 BCC loc_23E84 .text:00023E78 MOV R0, R7 .text:00023E7C BL __woverflow .text:00023E80 B loc_23DF8 .text:00023E84 ; --------------------------------------------------------------------------- .text:00023E84 .text:00023E84 loc_23E84 ; CODE XREF: __printf_fphex+9D8j .text:00023E84 ; __printf_fphex+A38j ... .text:00023E84 STR R1, [R2],#4 .text:00023E88 STR R2, [R0,#0x10] .text:00023E8C B loc_23E98 .text:00023E90 ; --------------------------------------------------------------------------- .text:00023E90 .text:00023E90 loc_23E90 ; CODE XREF: __printf_fphex+9F4j .text:00023E90 STRB R1, [R2],#1 .text:00023E94 STR R2, [R7,#0x14] .text:00023E98 .text:00023E98 loc_23E98 ; CODE XREF: __printf_fphex+A08j .text:00023E98 ; __printf_fphex+A94j .text:00023E98 ADD R10, R10, #1 .text:00023E9C .text:00023E9C loc_23E9C ; CODE XREF: __printf_fphex+A5Cj .text:00023E9C CMP R8, #0 .text:00023EA0 MOV R1, #0x30 .text:00023EA4 BEQ loc_23ED4 .text:00023EA8 LDR R0, [R7,#0x58] .text:00023EAC ADD R2, R0, #0x10 .text:00023EB0 LDMIA R2, {R2,R3} .text:00023EB4 CMP R2, R3 .text:00023EB8 BCC loc_23EC8 .text:00023EBC MOV R0, R7 .text:00023EC0 BL __woverflow .text:00023EC4 B loc_23EEC .text:00023EC8 ; --------------------------------------------------------------------------- .text:00023EC8 .text:00023EC8 loc_23EC8 ; CODE XREF: __printf_fphex+AC0j .text:00023EC8 STR R1, [R2],#4 .text:00023ECC STR R2, [R0,#0x10] .text:00023ED0 B loc_23F00 .text:00023ED4 ; --------------------------------------------------------------------------- .text:00023ED4 .text:00023ED4 loc_23ED4 ; CODE XREF: __printf_fphex+AACj .text:00023ED4 ADD R2, R7, #0x14 .text:00023ED8 LDMIA R2, {R2,R3} .text:00023EDC CMP R2, R3 .text:00023EE0 BCC loc_23EF8 .text:00023EE4 MOV R0, R7 .text:00023EE8 BL __overflow .text:00023EEC .text:00023EEC loc_23EEC ; CODE XREF: __printf_fphex+ACCj .text:00023EEC CMN R0, #1 .text:00023EF0 BEQ loc_245FC .text:00023EF4 B loc_23F00 .text:00023EF8 ; --------------------------------------------------------------------------- .text:00023EF8 .text:00023EF8 loc_23EF8 ; CODE XREF: __printf_fphex+AE8j .text:00023EF8 STRB R1, [R2],#1 .text:00023EFC STR R2, [R7,#0x14] .text:00023F00 .text:00023F00 loc_23F00 ; CODE XREF: __printf_fphex+AD8j .text:00023F00 ; __printf_fphex+AFCj .text:00023F00 ADD R10, R10, #1 .text:00023F04 LDR R2, [R11,#var_F8] .text:00023F08 LDR R3, [R2,#8] .text:00023F0C CMP R8, #0 .text:00023F10 ADD R1, R3, #0x17 .text:00023F14 BEQ loc_23F48 .text:00023F18 LDR R0, [R7,#0x58] .text:00023F1C ADD R2, R0, #0x10 .text:00023F20 LDMIA R2, {R2,R3} .text:00023F24 CMP R2, R3 .text:00023F28 BCC loc_23F38 .text:00023F2C MOV R0, R7 .text:00023F30 BL __woverflow .text:00023F34 B loc_23F64 .text:00023F38 ; --------------------------------------------------------------------------- .text:00023F38 .text:00023F38 loc_23F38 ; CODE XREF: __printf_fphex+B30j .text:00023F38 STR R1, [R2],#4 .text:00023F3C CMN R1, #1 .text:00023F40 STR R2, [R0,#0x10] .text:00023F44 B loc_23F7C .text:00023F48 ; --------------------------------------------------------------------------- .text:00023F48 .text:00023F48 loc_23F48 ; CODE XREF: __printf_fphex+B1Cj .text:00023F48 ADD R2, R7, #0x14 .text:00023F4C LDMIA R2, {R2,R3} .text:00023F50 CMP R2, R3 .text:00023F54 BCC loc_23F6C .text:00023F58 MOV R0, R7 .text:00023F5C AND R1, R1, #0xFF .text:00023F60 BL __overflow .text:00023F64 .text:00023F64 loc_23F64 ; CODE XREF: __printf_fphex+B3Cj .text:00023F64 CMN R0, #1 .text:00023F68 B loc_23F7C .text:00023F6C ; --------------------------------------------------------------------------- .text:00023F6C .text:00023F6C loc_23F6C ; CODE XREF: __printf_fphex+B5Cj .text:00023F6C STRB R1, [R2],#1 .text:00023F70 AND R3, R1, #0xFF .text:00023F74 CMN R3, #1 .text:00023F78 STR R2, [R7,#0x14] .text:00023F7C .text:00023F7C loc_23F7C ; CODE XREF: __printf_fphex+B4Cj .text:00023F7C ; __printf_fphex+B70j .text:00023F7C BEQ loc_245FC .text:00023F80 ADD R10, R10, #1 .text:00023F84 CMP R8, #0 .text:00023F88 BEQ loc_23FC4 .text:00023F8C LDR R1, [R7,#0x58] .text:00023F90 ADD R2, R1, #0x10 .text:00023F94 LDMIA R2, {R2,R3} .text:00023F98 CMP R2, R3 .text:00023F9C BCC loc_23FB0 .text:00023FA0 LDR R1, [R11,#var_124] .text:00023FA4 MOV R0, R7 .text:00023FA8 BL __woverflow .text:00023FAC B loc_23FE0 .text:00023FB0 ; --------------------------------------------------------------------------- .text:00023FB0 .text:00023FB0 loc_23FB0 ; CODE XREF: __printf_fphex+BA4j .text:00023FB0 LDR R3, [R11,#var_124] .text:00023FB4 STR R3, [R2],#4 .text:00023FB8 CMN R3, #1 .text:00023FBC STR R2, [R1,#0x10] .text:00023FC0 B loc_23FF8 .text:00023FC4 ; --------------------------------------------------------------------------- .text:00023FC4 .text:00023FC4 loc_23FC4 ; CODE XREF: __printf_fphex+B90j .text:00023FC4 ADD R2, R7, #0x14 .text:00023FC8 LDMIA R2, {R2,R3} .text:00023FCC CMP R2, R3 .text:00023FD0 BCC loc_23FE8 .text:00023FD4 LDR R1, [R11,#var_124] .text:00023FD8 MOV R0, R7 .text:00023FDC BL __overflow .text:00023FE0 .text:00023FE0 loc_23FE0 ; CODE XREF: __printf_fphex+BB4j .text:00023FE0 CMN R0, #1 .text:00023FE4 B loc_23FF8 .text:00023FE8 ; --------------------------------------------------------------------------- .text:00023FE8 .text:00023FE8 loc_23FE8 ; CODE XREF: __printf_fphex+BD8j .text:00023FE8 LDR R0, [R11,#var_124] .text:00023FEC STRB R0, [R2],#1 .text:00023FF0 CMN R0, #1 .text:00023FF4 STR R2, [R7,#0x14] .text:00023FF8 .text:00023FF8 loc_23FF8 ; CODE XREF: __printf_fphex+BC8j .text:00023FF8 ; __printf_fphex+BECj .text:00023FF8 BEQ loc_245FC .text:00023FFC ADD R10, R10, #1 .text:00024000 LDR R1, [R11,#var_128] .text:00024004 CMP R1, #0 .text:00024008 BGT loc_2401C .text:0002400C LDR R2, [R11,#var_F8] .text:00024010 LDRB R3, [R2,#0xC] .text:00024014 TST R3, #8 .text:00024018 BEQ loc_24168 .text:0002401C .text:0002401C loc_2401C ; CODE XREF: __printf_fphex+C10j .text:0002401C SUB R5, R11, #-var_F4 .text:00024020 CMP R8, #0 .text:00024024 BNE loc_24038 .text:00024028 LDR R0, [R11,#var_FC] .text:0002402C BL strlen .text:00024030 MOV R4, R0 .text:00024034 B loc_2403C .text:00024038 ; --------------------------------------------------------------------------- .text:00024038 .text:00024038 loc_24038 ; CODE XREF: __printf_fphex+C2Cj .text:00024038 MOV R4, #1 .text:0002403C .text:0002403C loc_2403C ; CODE XREF: __printf_fphex+C3Cj .text:0002403C CMP R8, #0 .text:00024040 BEQ loc_24158 .text:00024044 MOV R3, R4 .text:00024048 SUB R4, R4, #1 .text:0002404C CMP R3, #0 .text:00024050 BEQ loc_24168 .text:00024054 .text:00024054 loc_24054 ; CODE XREF: __printf_fphex+CE0j .text:00024054 CMP R8, #0 .text:00024058 LDR R1, [R5],#4 .text:0002405C BEQ loc_24090 .text:00024060 LDR R0, [R7,#0x58] .text:00024064 ADD R2, R0, #0x10 .text:00024068 LDMIA R2, {R2,R3} .text:0002406C CMP R2, R3 .text:00024070 BCC loc_24080 .text:00024074 MOV R0, R7 .text:00024078 BL __woverflow .text:0002407C B loc_240AC .text:00024080 ; --------------------------------------------------------------------------- .text:00024080 .text:00024080 loc_24080 ; CODE XREF: __printf_fphex+C78j .text:00024080 STR R1, [R2],#4 .text:00024084 CMN R1, #1 .text:00024088 STR R2, [R0,#0x10] .text:0002408C B loc_240C4 .text:00024090 ; --------------------------------------------------------------------------- .text:00024090 .text:00024090 loc_24090 ; CODE XREF: __printf_fphex+C64j .text:00024090 ADD R2, R7, #0x14 .text:00024094 LDMIA R2, {R2,R3} .text:00024098 CMP R2, R3 .text:0002409C BCC loc_240B4 .text:000240A0 MOV R0, R7 .text:000240A4 AND R1, R1, #0xFF .text:000240A8 BL __overflow .text:000240AC .text:000240AC loc_240AC ; CODE XREF: __printf_fphex+C84j .text:000240AC CMN R0, #1 .text:000240B0 B loc_240C4 .text:000240B4 ; --------------------------------------------------------------------------- .text:000240B4 .text:000240B4 loc_240B4 ; CODE XREF: __printf_fphex+CA4j .text:000240B4 STRB R1, [R2],#1 .text:000240B8 AND R3, R1, #0xFF .text:000240BC CMN R3, #1 .text:000240C0 STR R2, [R7,#0x14] .text:000240C4 .text:000240C4 loc_240C4 ; CODE XREF: __printf_fphex+C94j .text:000240C4 ; __printf_fphex+CB8j .text:000240C4 BEQ loc_245FC .text:000240C8 ADD R10, R10, #1 .text:000240CC MOV R3, R4 .text:000240D0 SUB R4, R4, #1 .text:000240D4 CMP R3, #0 .text:000240D8 BNE loc_24054 .text:000240DC B loc_24168 .text:000240E0 ; --------------------------------------------------------------------------- .text:000240E0 .text:000240E0 loc_240E0 ; CODE XREF: __printf_fphex+D6Cj .text:000240E0 LDR R3, [R11,#var_FC] .text:000240E4 LDRB R1, [R3],#1 .text:000240E8 CMP R8, #0 .text:000240EC STR R3, [R11,#var_FC] .text:000240F0 BEQ loc_24124 .text:000240F4 LDR R0, [R7,#0x58] .text:000240F8 ADD R2, R0, #0x10 .text:000240FC LDMIA R2, {R2,R3} .text:00024100 CMP R2, R3 .text:00024104 BCC loc_24114 .text:00024108 MOV R0, R7 .text:0002410C BL __woverflow .text:00024110 B loc_2413C .text:00024114 ; --------------------------------------------------------------------------- .text:00024114 .text:00024114 loc_24114 ; CODE XREF: __printf_fphex+D0Cj .text:00024114 STR R1, [R2],#4 .text:00024118 CMN R1, #1 .text:0002411C STR R2, [R0,#0x10] .text:00024120 B loc_24150 .text:00024124 ; --------------------------------------------------------------------------- .text:00024124 .text:00024124 loc_24124 ; CODE XREF: __printf_fphex+CF8j .text:00024124 ADD R2, R7, #0x14 .text:00024128 LDMIA R2, {R2,R3} .text:0002412C CMP R2, R3 .text:00024130 BCC loc_24144 .text:00024134 MOV R0, R7 .text:00024138 BL __overflow .text:0002413C .text:0002413C loc_2413C ; CODE XREF: __printf_fphex+D18j .text:0002413C CMN R0, #1 .text:00024140 B loc_24150 .text:00024144 ; --------------------------------------------------------------------------- .text:00024144 .text:00024144 loc_24144 ; CODE XREF: __printf_fphex+D38j .text:00024144 STRB R1, [R2],#1 .text:00024148 CMN R1, #1 .text:0002414C STR R2, [R7,#0x14] .text:00024150 .text:00024150 loc_24150 ; CODE XREF: __printf_fphex+D28j .text:00024150 ; __printf_fphex+D48j .text:00024150 BEQ loc_245FC .text:00024154 ADD R10, R10, #1 .text:00024158 .text:00024158 loc_24158 ; CODE XREF: __printf_fphex+C48j .text:00024158 MOV R3, R4 .text:0002415C SUB R4, R4, #1 .text:00024160 CMP R3, #0 .text:00024164 BNE loc_240E0 .text:00024168 .text:00024168 loc_24168 ; CODE XREF: __printf_fphex+C20j .text:00024168 ; __printf_fphex+C58j ... .text:00024168 LDR R0, [R11,#var_128] .text:0002416C CMP R0, #0 .text:00024170 BLE loc_24304 .text:00024174 SUB R1, R11, #-var_108 .text:00024178 LDMIA R1, {R1,R2} .text:0002417C RSB R3, R2, R1 .text:00024180 RSB R4, R3, R0 .text:00024184 MOV R6, R0 .text:00024188 CMP R6, R3 .text:0002418C MOVGE R6, R3 .text:00024190 CMP R8, #0 .text:00024194 BEQ loc_242B4 .text:00024198 MOV R3, R6 .text:0002419C SUB R6, R6, #1 .text:000241A0 CMP R3, #0 .text:000241A4 BEQ loc_242C4 .text:000241A8 .text:000241A8 loc_241A8 ; CODE XREF: __printf_fphex+E3Cj .text:000241A8 LDR R3, [R11,#var_10C] .text:000241AC LDR R1, [R3],#4 .text:000241B0 CMP R8, #0 .text:000241B4 STR R3, [R11,#var_10C] .text:000241B8 BEQ loc_241EC .text:000241BC LDR R0, [R7,#0x58] .text:000241C0 ADD R2, R0, #0x10 .text:000241C4 LDMIA R2, {R2,R3} .text:000241C8 CMP R2, R3 .text:000241CC BCC loc_241DC .text:000241D0 MOV R0, R7 .text:000241D4 BL __woverflow .text:000241D8 B loc_24208 .text:000241DC ; --------------------------------------------------------------------------- .text:000241DC .text:000241DC loc_241DC ; CODE XREF: __printf_fphex+DD4j .text:000241DC STR R1, [R2],#4 .text:000241E0 CMN R1, #1 .text:000241E4 STR R2, [R0,#0x10] .text:000241E8 B loc_24220 .text:000241EC ; --------------------------------------------------------------------------- .text:000241EC .text:000241EC loc_241EC ; CODE XREF: __printf_fphex+DC0j .text:000241EC ADD R2, R7, #0x14 .text:000241F0 LDMIA R2, {R2,R3} .text:000241F4 CMP R2, R3 .text:000241F8 BCC loc_24210 .text:000241FC MOV R0, R7 .text:00024200 AND R1, R1, #0xFF .text:00024204 BL __overflow .text:00024208 .text:00024208 loc_24208 ; CODE XREF: __printf_fphex+DE0j .text:00024208 CMN R0, #1 .text:0002420C B loc_24220 .text:00024210 ; --------------------------------------------------------------------------- .text:00024210 .text:00024210 loc_24210 ; CODE XREF: __printf_fphex+E00j .text:00024210 STRB R1, [R2],#1 .text:00024214 AND R3, R1, #0xFF .text:00024218 CMN R3, #1 .text:0002421C STR R2, [R7,#0x14] .text:00024220 .text:00024220 loc_24220 ; CODE XREF: __printf_fphex+DF0j .text:00024220 ; __printf_fphex+E14j .text:00024220 BEQ loc_245FC .text:00024224 ADD R10, R10, #1 .text:00024228 MOV R3, R6 .text:0002422C SUB R6, R6, #1 .text:00024230 CMP R3, #0 .text:00024234 BNE loc_241A8 .text:00024238 B loc_242C4 .text:0002423C ; --------------------------------------------------------------------------- .text:0002423C .text:0002423C loc_2423C ; CODE XREF: __printf_fphex+EC8j .text:0002423C LDR R0, [R11,#var_104] .text:00024240 LDRB R1, [R0],#1 .text:00024244 CMP R8, #0 .text:00024248 STR R0, [R11,#var_104] .text:0002424C BEQ loc_24280 .text:00024250 LDR R0, [R7,#0x58] .text:00024254 ADD R2, R0, #0x10 .text:00024258 LDMIA R2, {R2,R3} .text:0002425C CMP R2, R3 .text:00024260 BCC loc_24270 .text:00024264 MOV R0, R7 .text:00024268 BL __woverflow .text:0002426C B loc_24298 .text:00024270 ; --------------------------------------------------------------------------- .text:00024270 .text:00024270 loc_24270 ; CODE XREF: __printf_fphex+E68j .text:00024270 STR R1, [R2],#4 .text:00024274 CMN R1, #1 .text:00024278 STR R2, [R0,#0x10] .text:0002427C B loc_242AC .text:00024280 ; --------------------------------------------------------------------------- .text:00024280 .text:00024280 loc_24280 ; CODE XREF: __printf_fphex+E54j .text:00024280 ADD R2, R7, #0x14 .text:00024284 LDMIA R2, {R2,R3} .text:00024288 CMP R2, R3 .text:0002428C BCC loc_242A0 .text:00024290 MOV R0, R7 .text:00024294 BL __overflow .text:00024298 .text:00024298 loc_24298 ; CODE XREF: __printf_fphex+E74j .text:00024298 CMN R0, #1 .text:0002429C B loc_242AC .text:000242A0 ; --------------------------------------------------------------------------- .text:000242A0 .text:000242A0 loc_242A0 ; CODE XREF: __printf_fphex+E94j .text:000242A0 STRB R1, [R2],#1 .text:000242A4 CMN R1, #1 .text:000242A8 STR R2, [R7,#0x14] .text:000242AC .text:000242AC loc_242AC ; CODE XREF: __printf_fphex+E84j .text:000242AC ; __printf_fphex+EA4j .text:000242AC BEQ loc_245FC .text:000242B0 ADD R10, R10, #1 .text:000242B4 .text:000242B4 loc_242B4 ; CODE XREF: __printf_fphex+D9Cj .text:000242B4 MOV R3, R6 .text:000242B8 SUB R6, R6, #1 .text:000242BC CMP R3, #0 .text:000242C0 BNE loc_2423C .text:000242C4 .text:000242C4 loc_242C4 ; CODE XREF: __printf_fphex+DACj .text:000242C4 ; __printf_fphex+E40j .text:000242C4 CMP R4, #0 .text:000242C8 BLE loc_24304 .text:000242CC CMP R8, #0 .text:000242D0 BEQ loc_242E8 .text:000242D4 MOV R0, R7 .text:000242D8 MOV R1, #0x30 .text:000242DC MOV R2, R4 .text:000242E0 BL _IO_wpadn .text:000242E4 B loc_242F8 .text:000242E8 ; --------------------------------------------------------------------------- .text:000242E8 .text:000242E8 loc_242E8 ; CODE XREF: __printf_fphex+ED8j .text:000242E8 MOV R0, R7 .text:000242EC MOV R1, #0x30 .text:000242F0 MOV R2, R4 .text:000242F4 BL _IO_padn .text:000242F8 .text:000242F8 loc_242F8 ; CODE XREF: __printf_fphex+EECj .text:000242F8 CMP R0, R4 .text:000242FC BNE loc_245FC .text:00024300 ADD R10, R10, R4 .text:00024304 .text:00024304 loc_24304 ; CODE XREF: __printf_fphex+D78j .text:00024304 ; __printf_fphex+ED0j .text:00024304 LDR R1, [R11,#var_F8] .text:00024308 LDRB R3, [R1,#0xC] .text:0002430C TST R3, #0x20 .text:00024310 BEQ loc_2436C .text:00024314 LDR R2, [R1,#0x10] .text:00024318 CMP R9, #0 .text:0002431C MOVLE R3, #0 .text:00024320 MOVGT R3, #1 .text:00024324 CMP R2, #0x30 .text:00024328 MOVNE R3, #0 .text:0002432C CMP R3, #0 .text:00024330 BEQ loc_2436C .text:00024334 CMP R8, #0 .text:00024338 BEQ loc_24350 .text:0002433C MOV R0, R7 .text:00024340 MOV R1, #0x30 .text:00024344 MOV R2, R9 .text:00024348 BL _IO_wpadn .text:0002434C B loc_24360 .text:00024350 ; --------------------------------------------------------------------------- .text:00024350 .text:00024350 loc_24350 ; CODE XREF: __printf_fphex+F40j .text:00024350 MOV R0, R7 .text:00024354 MOV R1, #0x30 .text:00024358 MOV R2, R9 .text:0002435C BL _IO_padn .text:00024360 .text:00024360 loc_24360 ; CODE XREF: __printf_fphex+F54j .text:00024360 CMP R0, R9 .text:00024364 BNE loc_245FC .text:00024368 ADD R10, R10, R9 .text:0002436C .text:0002436C loc_2436C ; CODE XREF: __printf_fphex+F18j .text:0002436C ; __printf_fphex+F38j .text:0002436C LDR R2, [R11,#var_F8] .text:00024370 LDR R3, [R2,#8] .text:00024374 CMP R8, #0 .text:00024378 ADD R1, R3, #0xF .text:0002437C BEQ loc_243B0 .text:00024380 LDR R0, [R7,#0x58] .text:00024384 ADD R2, R0, #0x10 .text:00024388 LDMIA R2, {R2,R3} .text:0002438C CMP R2, R3 .text:00024390 BCC loc_243A0 .text:00024394 MOV R0, R7 .text:00024398 BL __woverflow .text:0002439C B loc_243CC .text:000243A0 ; --------------------------------------------------------------------------- .text:000243A0 .text:000243A0 loc_243A0 ; CODE XREF: __printf_fphex+F98j .text:000243A0 STR R1, [R2],#4 .text:000243A4 CMN R1, #1 .text:000243A8 STR R2, [R0,#0x10] .text:000243AC B loc_243E4 .text:000243B0 ; --------------------------------------------------------------------------- .text:000243B0 .text:000243B0 loc_243B0 ; CODE XREF: __printf_fphex+F84j .text:000243B0 ADD R2, R7, #0x14 .text:000243B4 LDMIA R2, {R2,R3} .text:000243B8 CMP R2, R3 .text:000243BC BCC loc_243D4 .text:000243C0 MOV R0, R7 .text:000243C4 AND R1, R1, #0xFF .text:000243C8 BL __overflow .text:000243CC .text:000243CC loc_243CC ; CODE XREF: __printf_fphex+FA4j .text:000243CC CMN R0, #1 .text:000243D0 B loc_243E4 .text:000243D4 ; --------------------------------------------------------------------------- .text:000243D4 .text:000243D4 loc_243D4 ; CODE XREF: __printf_fphex+FC4j .text:000243D4 STRB R1, [R2],#1 .text:000243D8 AND R3, R1, #0xFF .text:000243DC CMN R3, #1 .text:000243E0 STR R2, [R7,#0x14] .text:000243E4 .text:000243E4 loc_243E4 ; CODE XREF: __printf_fphex+FB4j .text:000243E4 ; __printf_fphex+FD8j .text:000243E4 BEQ loc_245FC .text:000243E8 ADD R10, R10, #1 .text:000243EC LDR R3, [R11,#var_11C] .text:000243F0 CMP R3, #0 .text:000243F4 MOVEQ R1, #0x2B .text:000243F8 MOVNE R1, #0x2D .text:000243FC CMP R8, #0 .text:00024400 BEQ loc_24434 .text:00024404 LDR R0, [R7,#0x58] .text:00024408 ADD R2, R0, #0x10 .text:0002440C LDMIA R2, {R2,R3} .text:00024410 CMP R2, R3 .text:00024414 BCC loc_24424 .text:00024418 MOV R0, R7 .text:0002441C BL __woverflow .text:00024420 B loc_2444C .text:00024424 ; --------------------------------------------------------------------------- .text:00024424 .text:00024424 loc_24424 ; CODE XREF: __printf_fphex+101Cj .text:00024424 STR R1, [R2],#4 .text:00024428 CMN R1, #1 .text:0002442C STR R2, [R0,#0x10] .text:00024430 B loc_24460 .text:00024434 ; --------------------------------------------------------------------------- .text:00024434 .text:00024434 loc_24434 ; CODE XREF: __printf_fphex+1008j .text:00024434 ADD R2, R7, #0x14 .text:00024438 LDMIA R2, {R2,R3} .text:0002443C CMP R2, R3 .text:00024440 BCC loc_24454 .text:00024444 MOV R0, R7 .text:00024448 BL __overflow .text:0002444C .text:0002444C loc_2444C ; CODE XREF: __printf_fphex+1028j .text:0002444C CMN R0, #1 .text:00024450 B loc_24460 .text:00024454 ; --------------------------------------------------------------------------- .text:00024454 .text:00024454 loc_24454 ; CODE XREF: __printf_fphex+1048j .text:00024454 STRB R1, [R2],#1 .text:00024458 CMN R1, #1 .text:0002445C STR R2, [R7,#0x14] .text:00024460 .text:00024460 loc_24460 ; CODE XREF: __printf_fphex+1038j .text:00024460 ; __printf_fphex+1058j .text:00024460 BEQ loc_245FC .text:00024464 ADD R10, R10, #1 .text:00024468 SUB R0, R11, #-var_134 .text:0002446C LDMIA R0, {R0,R1} .text:00024470 RSB R4, R1, R0 .text:00024474 CMP R8, #0 .text:00024478 BEQ loc_24598 .text:0002447C MOV R3, R4 .text:00024480 SUB R4, R4, #1 .text:00024484 CMP R3, #0 .text:00024488 BEQ loc_245A8 .text:0002448C .text:0002448C loc_2448C ; CODE XREF: __printf_fphex+1120j .text:0002448C LDR R2, [R11,#var_118] .text:00024490 LDR R1, [R2],#4 .text:00024494 CMP R8, #0 .text:00024498 STR R2, [R11,#var_118] .text:0002449C BEQ loc_244D0 .text:000244A0 LDR R0, [R7,#0x58] .text:000244A4 ADD R2, R0, #0x10 .text:000244A8 LDMIA R2, {R2,R3} .text:000244AC CMP R2, R3 .text:000244B0 BCC loc_244C0 .text:000244B4 MOV R0, R7 .text:000244B8 BL __woverflow .text:000244BC B loc_244EC .text:000244C0 ; --------------------------------------------------------------------------- .text:000244C0 .text:000244C0 loc_244C0 ; CODE XREF: __printf_fphex+10B8j .text:000244C0 STR R1, [R2],#4 .text:000244C4 CMN R1, #1 .text:000244C8 STR R2, [R0,#0x10] .text:000244CC B loc_24504 .text:000244D0 ; --------------------------------------------------------------------------- .text:000244D0 .text:000244D0 loc_244D0 ; CODE XREF: __printf_fphex+10A4j .text:000244D0 ADD R2, R7, #0x14 .text:000244D4 LDMIA R2, {R2,R3} .text:000244D8 CMP R2, R3 .text:000244DC BCC loc_244F4 .text:000244E0 MOV R0, R7 .text:000244E4 AND R1, R1, #0xFF .text:000244E8 BL __overflow .text:000244EC .text:000244EC loc_244EC ; CODE XREF: __printf_fphex+10C4j .text:000244EC CMN R0, #1 .text:000244F0 B loc_24504 .text:000244F4 ; --------------------------------------------------------------------------- .text:000244F4 .text:000244F4 loc_244F4 ; CODE XREF: __printf_fphex+10E4j .text:000244F4 STRB R1, [R2],#1 .text:000244F8 AND R3, R1, #0xFF .text:000244FC CMN R3, #1 .text:00024500 STR R2, [R7,#0x14] .text:00024504 .text:00024504 loc_24504 ; CODE XREF: __printf_fphex+10D4j .text:00024504 ; __printf_fphex+10F8j .text:00024504 BEQ loc_245FC .text:00024508 ADD R10, R10, #1 .text:0002450C MOV R3, R4 .text:00024510 SUB R4, R4, #1 .text:00024514 CMP R3, #0 .text:00024518 BNE loc_2448C .text:0002451C B loc_245A8 .text:00024520 ; --------------------------------------------------------------------------- .text:00024520 .text:00024520 loc_24520 ; CODE XREF: __printf_fphex+11ACj .text:00024520 LDR R3, [R11,#var_114] .text:00024524 LDRB R1, [R3],#1 .text:00024528 CMP R8, #0 .text:0002452C STR R3, [R11,#var_114] .text:00024530 BEQ loc_24564 .text:00024534 LDR R0, [R7,#0x58] .text:00024538 ADD R2, R0, #0x10 .text:0002453C LDMIA R2, {R2,R3} .text:00024540 CMP R2, R3 .text:00024544 BCC loc_24554 .text:00024548 MOV R0, R7 .text:0002454C BL __woverflow .text:00024550 B loc_2457C .text:00024554 ; --------------------------------------------------------------------------- .text:00024554 .text:00024554 loc_24554 ; CODE XREF: __printf_fphex+114Cj .text:00024554 STR R1, [R2],#4 .text:00024558 CMN R1, #1 .text:0002455C STR R2, [R0,#0x10] .text:00024560 B loc_24590 .text:00024564 ; --------------------------------------------------------------------------- .text:00024564 .text:00024564 loc_24564 ; CODE XREF: __printf_fphex+1138j .text:00024564 ADD R2, R7, #0x14 .text:00024568 LDMIA R2, {R2,R3} .text:0002456C CMP R2, R3 .text:00024570 BCC loc_24584 .text:00024574 MOV R0, R7 .text:00024578 BL __overflow .text:0002457C .text:0002457C loc_2457C ; CODE XREF: __printf_fphex+1158j .text:0002457C CMN R0, #1 .text:00024580 B loc_24590 .text:00024584 ; --------------------------------------------------------------------------- .text:00024584 .text:00024584 loc_24584 ; CODE XREF: __printf_fphex+1178j .text:00024584 STRB R1, [R2],#1 .text:00024588 CMN R1, #1 .text:0002458C STR R2, [R7,#0x14] .text:00024590 .text:00024590 loc_24590 ; CODE XREF: __printf_fphex+1168j .text:00024590 ; __printf_fphex+1188j .text:00024590 BEQ loc_245FC .text:00024594 ADD R10, R10, #1 .text:00024598 .text:00024598 loc_24598 ; CODE XREF: __printf_fphex+1080j .text:00024598 MOV R3, R4 .text:0002459C SUB R4, R4, #1 .text:000245A0 CMP R3, #0 .text:000245A4 BNE loc_24520 .text:000245A8 .text:000245A8 loc_245A8 ; CODE XREF: __printf_fphex+1090j .text:000245A8 ; __printf_fphex+1124j .text:000245A8 LDR R0, [R11,#var_F8] .text:000245AC LDRB R3, [R0,#0xC] .text:000245B0 TST R3, #0x20 .text:000245B4 BEQ loc_24608 .text:000245B8 LDR R1, [R0,#0x10] .text:000245BC CMP R1, #0x30 .text:000245C0 CMPNE R9, #0 .text:000245C4 BLE loc_24608 .text:000245C8 CMP R8, #0 .text:000245CC BEQ loc_245E8 .text:000245D0 MOV R0, R7 .text:000245D4 MOV R2, R9 .text:000245D8 BL _IO_wpadn .text:000245DC CMP R0, R9 .text:000245E0 BNE loc_245FC .text:000245E4 B loc_24604 .text:000245E8 ; --------------------------------------------------------------------------- .text:000245E8 .text:000245E8 loc_245E8 ; CODE XREF: __printf_fphex+11D4j .text:000245E8 MOV R0, R7 .text:000245EC MOV R2, R9 .text:000245F0 BL _IO_padn .text:000245F4 CMP R0, R9 .text:000245F8 BEQ loc_24604 .text:000245FC .text:000245FC loc_245FC ; CODE XREF: __printf_fphex+1E8j .text:000245FC ; __printf_fphex+244j ... .text:000245FC MOV R0, 0xFFFFFFFF .text:00024600 B locret_2460C .text:00024604 ; --------------------------------------------------------------------------- .text:00024604 .text:00024604 loc_24604 ; CODE XREF: __printf_fphex+11ECj .text:00024604 ; __printf_fphex+1200j .text:00024604 ADD R10, R10, R9 .text:00024608 .text:00024608 loc_24608 ; CODE XREF: __printf_fphex+44Cj .text:00024608 ; __printf_fphex+488j ... .text:00024608 MOV R0, R10 .text:0002460C .text:0002460C locret_2460C ; CODE XREF: __printf_fphex+1208j .text:0002460C LDMDB R11, {R4-R11,SP,PC} .text:0002460C ; End of function __printf_fphex .text:0002460C .text:00024610 .text:00024610 ; =============== S U B R O U T I N E ======================================= .text:00024610 .text:00024610 ; Attributes: bp-based frame .text:00024610 .text:00024610 EXPORT fprintf .text:00024610 fprintf ; CODE XREF: perror+B0p .text:00024610 ; __malloc_check_init+7Cp ... .text:00024610 .text:00024610 varg_r1 = 4 .text:00024610 varg_r2 = 8 .text:00024610 varg_r3 = 0xC .text:00024610 .text:00024610 MOV R12, SP ; Alternative name is '_IO_fprintf' .text:00024614 STMFD SP!, {R1-R3} .text:00024618 STMFD SP!, {R11,R12,LR,PC} .text:0002461C SUB R11, R12, #0x10 .text:00024620 LDR R1, [R11,#varg_r1] .text:00024624 ADD R2, R11, #8 .text:00024628 BL vfprintf .text:0002462C LDMDB R11, {R11,SP,PC} .text:0002462C ; End of function fprintf .text:0002462C .text:00024630 .text:00024630 ; =============== S U B R O U T I N E ======================================= .text:00024630 .text:00024630 ; Attributes: bp-based frame .text:00024630 .text:00024630 EXPORT _IO_vfscanf .text:00024630 _IO_vfscanf ; CODE XREF: vsscanf+70p .text:00024630 ; vfscanf+10p .text:00024630 .text:00024630 var_520 = -0x520 .text:00024630 var_51C = -0x51C .text:00024630 var_118 = -0x118 .text:00024630 var_114 = -0x114 .text:00024630 var_110 = -0x110 .text:00024630 var_10C = -0x10C .text:00024630 var_108 = -0x108 .text:00024630 var_104 = -0x104 .text:00024630 var_100 = -0x100 .text:00024630 var_FC = -0xFC .text:00024630 var_F8 = -0xF8 .text:00024630 var_F4 = -0xF4 .text:00024630 var_F0 = -0xF0 .text:00024630 var_EC = -0xEC .text:00024630 var_E8 = -0xE8 .text:00024630 var_E4 = -0xE4 .text:00024630 var_E0 = -0xE0 .text:00024630 var_DC = -0xDC .text:00024630 var_D8 = -0xD8 .text:00024630 var_D4 = -0xD4 .text:00024630 var_D0 = -0xD0 .text:00024630 var_CC = -0xCC .text:00024630 var_C8 = -0xC8 .text:00024630 var_C4 = -0xC4 .text:00024630 var_C0 = -0xC0 .text:00024630 var_BC = -0xBC .text:00024630 var_B8 = -0xB8 .text:00024630 var_B4 = -0xB4 .text:00024630 var_B0 = -0xB0 .text:00024630 var_AC = -0xAC .text:00024630 var_A8 = -0xA8 .text:00024630 var_A4 = -0xA4 .text:00024630 var_A0 = -0xA0 .text:00024630 var_9C = -0x9C .text:00024630 var_98 = -0x98 .text:00024630 var_94 = -0x94 .text:00024630 var_8C = -0x8C .text:00024630 var_88 = -0x88 .text:00024630 var_80 = -0x80 .text:00024630 var_78 = -0x78 .text:00024630 var_70 = -0x70 .text:00024630 var_48 = -0x48 .text:00024630 var_38 = -0x38 .text:00024630 .text:00024630 MOV R12, SP .text:00024634 STMFD SP!, {R4-R12,LR,PC} .text:00024638 SUB R11, R12, #4 .text:0002463C MOV R6, R1 .text:00024640 SUB SP, SP, #0xF0 .text:00024644 STR R6, [R11,#var_A4] .text:00024648 MOV R1, #0 .text:0002464C STR R1, [R11,#var_A8] .text:00024650 STR R1, [R11,#var_AC] .text:00024654 MOV R10, R1 .text:00024658 STR R10, [R11,#var_D8] .text:0002465C STR R10, [R11,#var_DC] .text:00024660 STR R10, [R11,#var_E0] .text:00024664 STR R10, [R11,#var_E4] .text:00024668 STR R10, [R11,#var_E8] .text:0002466C STR R10, [R11,#var_F0] .text:00024670 STR R10, [R11,#var_F4] .text:00024674 STR R2, [R11,#var_98] .text:00024678 LDR R12, [R11,#var_98] .text:0002467C MOV R7, R0 .text:00024680 LDRB R2, [R7,#0x46] .text:00024684 STR R12, [R11,#var_A0] .text:00024688 STR R3, [R11,#var_9C] .text:0002468C CMP R2, R1 .text:00024690 BNE loc_246C4 .text:00024694 LDR R3, [R7,#0x5C] .text:00024698 MOV R2, 0xFFFFFFFF .text:0002469C CMP R3, R1 .text:000246A0 STREQ R2, [R7,#0x5C] .text:000246A4 LDR R2, [R7,#0x5C] .text:000246A8 CMN R2, #1 .text:000246AC BEQ loc_246C4 .text:000246B0 MOV R0, 0xFFFFFFFF .text:000246B4 B loc_292C4 .text:000246B8 ; --------------------------------------------------------------------------- .text:000246B8 .text:000246B8 loc_246B8 ; CODE XREF: _IO_vfscanf+9Cj .text:000246B8 BL __errno_location .text:000246BC MOV R3, #9 .text:000246C0 B loc_246E0 .text:000246C4 ; --------------------------------------------------------------------------- .text:000246C4 .text:000246C4 loc_246C4 ; CODE XREF: _IO_vfscanf+60j .text:000246C4 ; _IO_vfscanf+7Cj .text:000246C4 LDR R3, [R7] .text:000246C8 ANDS R5, R3, #4 .text:000246CC BNE loc_246B8 .text:000246D0 CMP R6, #0 .text:000246D4 BNE loc_246EC .text:000246D8 BL __errno_location .text:000246DC MOV R3, #0x16 .text:000246E0 .text:000246E0 loc_246E0 ; CODE XREF: _IO_vfscanf+90j .text:000246E0 STR R3, [R0] .text:000246E4 MOV R0, 0xFFFFFFFF .text:000246E8 B loc_292C4 .text:000246EC ; --------------------------------------------------------------------------- .text:000246EC .text:000246EC loc_246EC ; CODE XREF: _IO_vfscanf+A4j .text:000246EC LDR R3, =_nl_current_LC_NUMERIC .text:000246F0 LDR R2, [R3] .text:000246F4 LDR LR, [R2,#0x24] .text:000246F8 LDRB R3, [LR] .text:000246FC LDR R12, =0 .text:00024700 CMP R3, #0 .text:00024704 MOVEQ LR, #0 .text:00024708 STR LR, [R11,#var_CC] .text:0002470C SUBS R0, R12, #0 .text:00024710 MOVNE R0, #1 .text:00024714 STR R0, [R11,#var_FC] .text:00024718 LDR R2, [R2,#0x20] .text:0002471C CMP R0, #0 .text:00024720 STR R2, [R11,#var_C8] .text:00024724 BEQ loc_2473C .text:00024728 SUB R0, R11, #-var_38 .text:0002472C LDR R1, =funlockfile .text:00024730 MOV R2, R7 .text:00024734 MOV LR, PC .text:00024738 MOV PC, R12 .text:0002473C .text:0002473C loc_2473C ; CODE XREF: _IO_vfscanf+F4j .text:0002473C LDR R3, [R7] .text:00024740 TST R3, #0x8000 .text:00024744 BNE loc_24750 .text:00024748 MOV R0, R7 .text:0002474C BL flockfile .text:00024750 .text:00024750 loc_24750 ; CODE XREF: _IO_vfscanf+114j .text:00024750 SUB R4, R11, #-var_78 .text:00024754 MOV R0, R4 .text:00024758 MOV R1, R5 .text:0002475C MOV R2, #8 .text:00024760 BL memset .text:00024764 LDRB R3, [R6] .text:00024768 CMP R3, #0 .text:0002476C BEQ loc_29228 .text:00024770 MOV R1, 0x17F .text:00024778 STR R1, [R11,#var_104] .text:0002477C .text:0002477C loc_2477C ; CODE XREF: _IO_vfscanf+4BF4j .text:0002477C LDR R2, [R11,#var_A4] .text:00024780 LDRB R3, [R2] .text:00024784 TST R3, #0x80 .text:00024788 BEQ loc_2485C .text:0002478C MOV R0, R2 .text:00024790 BL strlen .text:00024794 MOV R1, R0 .text:00024798 LDR R0, [R11,#var_A4] .text:0002479C SUB R2, R11, #-var_78 .text:000247A0 BL mbrlen .text:000247A4 SUBS R4, R0, #0 .text:000247A8 BLE loc_2485C .text:000247AC .text:000247AC loc_247AC ; CODE XREF: _IO_vfscanf+224j .text:000247AC CMN R10, #1 .text:000247B0 BEQ loc_247E8 .text:000247B4 LDMIB R7, {R2,R3} .text:000247B8 CMP R2, R3 .text:000247BC BCC loc_247D0 .text:000247C0 MOV R0, R7 .text:000247C4 BL __uflow .text:000247C8 MOV R10, R0 .text:000247CC B loc_247D8 .text:000247D0 ; --------------------------------------------------------------------------- .text:000247D0 .text:000247D0 loc_247D0 ; CODE XREF: _IO_vfscanf+18Cj .text:000247D0 LDRB R10, [R2],#1 .text:000247D4 STR R2, [R7,#4] .text:000247D8 .text:000247D8 loc_247D8 ; CODE XREF: _IO_vfscanf+19Cj .text:000247D8 CMN R10, #1 .text:000247DC LDRNE R3, [R11,#var_AC] .text:000247E0 ADDNE R3, R3, #1 .text:000247E4 STRNE R3, [R11,#var_AC] .text:000247E8 .text:000247E8 loc_247E8 ; CODE XREF: _IO_vfscanf+180j .text:000247E8 MOV R1, R10 .text:000247EC CMN R10, #1 .text:000247F0 BEQ loc_28F30 .text:000247F4 LDR R2, [R11,#var_A4] .text:000247F8 LDRB R3, [R2],#1 .text:000247FC CMP R1, R3 .text:00024800 STR R2, [R11,#var_A4] .text:00024804 BEQ loc_2484C .text:00024808 MOV R0, R7 .text:0002480C AND R1, R1, #0xFF .text:00024810 BL _IO_sputbackc .text:00024814 LDR R3, [R11,#var_9C] .text:00024818 CMP R3, #0 .text:0002481C LDRNE R3, [R3] .text:00024820 LDRNE R12, [R11,#var_9C] .text:00024824 ORRNE R3, R3, #2 .text:00024828 STRNE R3, [R12] .text:0002482C LDR R3, [R7] .text:00024830 TST R3, #0x8000 .text:00024834 BNE loc_24840 .text:00024838 MOV R0, R7 .text:0002483C BL funlockfile .text:00024840 .text:00024840 loc_24840 ; CODE XREF: _IO_vfscanf+204j .text:00024840 LDR LR, [R11,#var_FC] .text:00024844 CMP LR, #0 .text:00024848 B loc_292B0 .text:0002484C ; --------------------------------------------------------------------------- .text:0002484C .text:0002484C loc_2484C ; CODE XREF: _IO_vfscanf+1D4j .text:0002484C SUB R4, R4, #1 .text:00024850 CMP R4, #0 .text:00024854 BGT loc_247AC .text:00024858 B loc_29218 .text:0002485C ; --------------------------------------------------------------------------- .text:0002485C .text:0002485C loc_2485C ; CODE XREF: _IO_vfscanf+158j .text:0002485C ; _IO_vfscanf+178j .text:0002485C LDR R0, [R11,#var_A4] .text:00024860 LDRB R4, [R0],#1 .text:00024864 CMP R4, #0x25 .text:00024868 STR R0, [R11,#var_A4] .text:0002486C BEQ loc_24A30 .text:00024870 LDR R0, =__ctype_b .text:00024874 LDR R2, [R0] .text:00024878 MOV R3, R4,LSL#1 .text:0002487C ADD R3, R3, R2 .text:00024880 LDRB R1, [R3,#1] .text:00024884 TST R1, #0x20 .text:00024888 MOVNE R1, #1 .text:0002488C STRNE R1, [R11,#var_E8] .text:00024890 BNE loc_29218 .text:00024894 CMN R10, #1 .text:00024898 BEQ loc_248D0 .text:0002489C LDMIB R7, {R2,R3} .text:000248A0 CMP R2, R3 .text:000248A4 BCC loc_248B8 .text:000248A8 MOV R0, R7 .text:000248AC BL __uflow .text:000248B0 MOV R10, R0 .text:000248B4 B loc_248C0 .text:000248B8 ; --------------------------------------------------------------------------- .text:000248B8 .text:000248B8 loc_248B8 ; CODE XREF: _IO_vfscanf+274j .text:000248B8 LDRB R10, [R2],#1 .text:000248BC STR R2, [R7,#4] .text:000248C0 .text:000248C0 loc_248C0 ; CODE XREF: _IO_vfscanf+284j .text:000248C0 CMN R10, #1 .text:000248C4 LDRNE R2, [R11,#var_AC] .text:000248C8 ADDNE R2, R2, #1 .text:000248CC STRNE R2, [R11,#var_AC] .text:000248D0 .text:000248D0 loc_248D0 ; CODE XREF: _IO_vfscanf+268j .text:000248D0 MOV R2, R10 .text:000248D4 CMN R10, #1 .text:000248D8 BNE loc_24908 .text:000248DC LDR R3, [R7] .text:000248E0 TST R3, #0x8000 .text:000248E4 BNE loc_248F0 .text:000248E8 MOV R0, R7 .text:000248EC BL funlockfile .text:000248F0 .text:000248F0 loc_248F0 ; CODE XREF: _IO_vfscanf+2B4j .text:000248F0 LDR R3, [R11,#var_9C] .text:000248F4 CMP R3, #0 .text:000248F8 BEQ loc_28F5C .text:000248FC LDR R3, [R3] .text:00024900 LDR R12, [R11,#var_9C] .text:00024904 B loc_28F54 .text:00024908 ; --------------------------------------------------------------------------- .text:00024908 .text:00024908 loc_24908 ; CODE XREF: _IO_vfscanf+2A8j .text:00024908 LDR R1, [R11,#var_E8] .text:0002490C CMP R1, #0 .text:00024910 BEQ loc_249D0 .text:00024914 LDR R12, =__ctype_b .text:00024918 LDR R3, [R12] .text:0002491C MOV R2, R2,LSL#1 .text:00024920 B loc_249B8 .text:00024924 ; --------------------------------------------------------------------------- .text:00024924 .text:00024924 loc_24924 ; CODE XREF: _IO_vfscanf+394j .text:00024924 CMN R10, #1 .text:00024928 BEQ loc_24968 .text:0002492C LDMIB R7, {R2,R3} .text:00024930 CMP R2, R3 .text:00024934 BCC loc_24948 .text:00024938 MOV R0, R7 .text:0002493C BL __uflow .text:00024940 MOV R10, R0 .text:00024944 B loc_24950 .text:00024948 ; --------------------------------------------------------------------------- .text:00024948 .text:00024948 loc_24948 ; CODE XREF: _IO_vfscanf+304j .text:00024948 LDRB R10, [R2],#1 .text:0002494C STR R2, [R7,#4] .text:00024950 .text:00024950 loc_24950 ; CODE XREF: _IO_vfscanf+314j .text:00024950 CMN R10, #1 .text:00024954 LDRNE LR, [R11,#var_AC] .text:00024958 ADDNE LR, LR, #1 .text:0002495C STRNE LR, [R11,#var_AC] .text:00024960 CMN R10, #1 .text:00024964 BNE loc_249AC .text:00024968 .text:00024968 loc_24968 ; CODE XREF: _IO_vfscanf+2F8j .text:00024968 BL __errno_location .text:0002496C LDR R3, [R0] .text:00024970 CMP R3, #4 .text:00024974 BNE loc_249AC .text:00024978 LDR R0, [R11,#var_9C] .text:0002497C CMP R0, #0 .text:00024980 LDRNE R3, [R0] .text:00024984 ORRNE R3, R3, #2 .text:00024988 STRNE R3, [R0] .text:0002498C LDR R3, [R7] .text:00024990 TST R3, #0x8000 .text:00024994 BNE loc_249A0 .text:00024998 MOV R0, R7 .text:0002499C BL funlockfile .text:000249A0 .text:000249A0 loc_249A0 ; CODE XREF: _IO_vfscanf+364j .text:000249A0 LDR R1, [R11,#var_FC] .text:000249A4 CMP R1, #0 .text:000249A8 B loc_292B0 .text:000249AC ; --------------------------------------------------------------------------- .text:000249AC .text:000249AC loc_249AC ; CODE XREF: _IO_vfscanf+334j .text:000249AC ; _IO_vfscanf+344j .text:000249AC LDR R2, =__ctype_b .text:000249B0 LDR R3, [R2] .text:000249B4 MOV R2, R10,LSL#1 .text:000249B8 .text:000249B8 loc_249B8 ; CODE XREF: _IO_vfscanf+2F0j .text:000249B8 ADD R2, R2, R3 .text:000249BC LDRB R1, [R2,#1] .text:000249C0 TST R1, #0x20 .text:000249C4 BNE loc_24924 .text:000249C8 MOV R3, #0 .text:000249CC STR R3, [R11,#var_E8] .text:000249D0 .text:000249D0 loc_249D0 ; CODE XREF: _IO_vfscanf+2E0j .text:000249D0 CMP R10, R4 .text:000249D4 BEQ loc_29218 .text:000249D8 CMN R10, #1 .text:000249DC BEQ loc_249EC .text:000249E0 MOV R0, R7 .text:000249E4 AND R1, R10, #0xFF .text:000249E8 BL _IO_sputbackc .text:000249EC .text:000249EC loc_249EC ; CODE XREF: _IO_vfscanf+3ACj .text:000249EC LDR R12, [R11,#var_9C] .text:000249F0 CMP R12, #0 .text:000249F4 LDRNE R3, [R12] .text:000249F8 ORRNE R3, R3, #2 .text:000249FC STRNE R3, [R12] .text:00024A00 LDR R3, [R7] .text:00024A04 TST R3, #0x8000 .text:00024A08 BNE loc_24A14 .text:00024A0C MOV R0, R7 .text:00024A10 BL funlockfile .text:00024A14 .text:00024A14 loc_24A14 ; CODE XREF: _IO_vfscanf+3D8j .text:00024A14 LDR LR, [R11,#var_FC] .text:00024A18 CMP LR, #0 .text:00024A1C B loc_292B0 .text:00024A1C ; --------------------------------------------------------------------------- .text:00024A20 off_24A20 DCD _nl_current_LC_NUMERIC .text:00024A20 ; DATA XREF: _IO_vfscanf:loc_246ECr .text:00024A24 off_24A24 DCD 0 ; DATA XREF: _IO_vfscanf+CCr .text:00024A28 off_24A28 DCD funlockfile ; DATA XREF: _IO_vfscanf+FCr .text:00024A2C off_24A2C DCD __ctype_b ; DATA XREF: _IO_vfscanf+240r .text:00024A2C ; _IO_vfscanf+2E4r ... .text:00024A30 ; --------------------------------------------------------------------------- .text:00024A30 .text:00024A30 loc_24A30 ; CODE XREF: _IO_vfscanf+23Cj .text:00024A30 MOV R0, #0 .text:00024A34 STR R0, [R11,#var_EC] .text:00024A38 STR R0, [R11,#var_B4] .text:00024A3C LDR R1, [R11,#var_A4] .text:00024A40 LDR R2, [R11,#var_EC] .text:00024A44 LDRB R0, [R1] .text:00024A48 STR R2, [R11,#var_100] .text:00024A4C STR R2, [R11,#var_F8] .text:00024A50 LDR R3, =__ctype_b .text:00024A54 LDR R12, [R3] .text:00024A58 MOV R2, R0,LSL#1 .text:00024A5C ADD R2, R2, R12 .text:00024A60 LDRB R1, [R2,#1] .text:00024A64 TST R1, #8 .text:00024A68 BEQ loc_24B0C .text:00024A6C LDR R3, [R11,#var_A4] .text:00024A70 LDRB R1, [R3,#1]! .text:00024A74 STR R3, [R11,#var_A4] .text:00024A78 MOV R3, R1,LSL#1 .text:00024A7C ADD R3, R3, R12 .text:00024A80 LDRB R2, [R3,#1] .text:00024A84 SUB R0, R0, #0x30 .text:00024A88 STR R0, [R11,#var_100] .text:00024A8C TST R2, #8 .text:00024A90 BEQ loc_24AD0 .text:00024A94 MOV R0, R12 .text:00024A98 .text:00024A98 loc_24A98 ; CODE XREF: _IO_vfscanf+49Cj .text:00024A98 LDR R12, [R11,#var_100] .text:00024A9C ADD R3, R12, R12,LSL#2 .text:00024AA0 MOV R3, R3,LSL#1 .text:00024AA4 SUB R3, R3, #0x30 .text:00024AA8 ADD R3, R3, R1 .text:00024AAC STR R3, [R11,#var_100] .text:00024AB0 LDR LR, [R11,#var_A4] .text:00024AB4 LDRB R1, [LR,#1]! .text:00024AB8 STR LR, [R11,#var_A4] .text:00024ABC MOV R3, R1,LSL#1 .text:00024AC0 ADD R3, R3, R0 .text:00024AC4 LDRB R2, [R3,#1] .text:00024AC8 TST R2, #8 .text:00024ACC BNE loc_24A98 .text:00024AD0 .text:00024AD0 loc_24AD0 ; CODE XREF: _IO_vfscanf+460j .text:00024AD0 LDR R0, [R11,#var_A4] .text:00024AD4 LDRB R3, [R0] .text:00024AD8 CMP R3, #0x24 .text:00024ADC BEQ loc_24B00 .text:00024AE0 LDR R1, [R11,#var_100] .text:00024AE4 LDR R2, [R11,#var_EC] .text:00024AE8 STR R1, [R11,#var_B0] .text:00024AEC ORR R2, R2, #0x40 .text:00024AF0 STR R2, [R11,#var_B4] .text:00024AF4 MOV R3, #0 .text:00024AF8 STR R3, [R11,#var_100] .text:00024AFC B loc_24C0C .text:00024B00 ; --------------------------------------------------------------------------- .text:00024B00 .text:00024B00 loc_24B00 ; CODE XREF: _IO_vfscanf+4ACj .text:00024B00 LDR R12, [R11,#var_A4] .text:00024B04 ADD R12, R12, #1 .text:00024B08 STR R12, [R11,#var_A4] .text:00024B0C .text:00024B0C loc_24B0C ; CODE XREF: _IO_vfscanf+438j .text:00024B0C LDR LR, [R11,#var_A4] .text:00024B10 LDRB R3, [LR] .text:00024B14 B loc_24B7C .text:00024B18 ; --------------------------------------------------------------------------- .text:00024B18 .text:00024B18 loc_24B18 ; CODE XREF: _IO_vfscanf+554j .text:00024B18 ; _IO_vfscanf+55Cj .text:00024B18 LDR R0, [R11,#var_A4] .text:00024B1C LDRB R3, [R0],#1 .text:00024B20 CMP R3, #0x2A .text:00024B24 STR R0, [R11,#var_A4] .text:00024B28 BEQ loc_24B48 .text:00024B2C BGT loc_24B3C .text:00024B30 CMP R3, #0x27 .text:00024B34 BEQ loc_24B58 .text:00024B38 B loc_24B74 .text:00024B3C ; --------------------------------------------------------------------------- .text:00024B3C .text:00024B3C loc_24B3C ; CODE XREF: _IO_vfscanf+4FCj .text:00024B3C CMP R3, #0x49 .text:00024B40 BEQ loc_24B68 .text:00024B44 B loc_24B74 .text:00024B48 ; --------------------------------------------------------------------------- .text:00024B48 .text:00024B48 loc_24B48 ; CODE XREF: _IO_vfscanf+4F8j .text:00024B48 LDR R1, [R11,#var_B4] .text:00024B4C ORR R1, R1, #8 .text:00024B50 STR R1, [R11,#var_B4] .text:00024B54 B loc_24B74 .text:00024B58 ; --------------------------------------------------------------------------- .text:00024B58 .text:00024B58 loc_24B58 ; CODE XREF: _IO_vfscanf+504j .text:00024B58 LDR R2, [R11,#var_B4] .text:00024B5C ORR R2, R2, #0x80 .text:00024B60 STR R2, [R11,#var_B4] .text:00024B64 B loc_24B74 .text:00024B68 ; --------------------------------------------------------------------------- .text:00024B68 .text:00024B68 loc_24B68 ; CODE XREF: _IO_vfscanf+510j .text:00024B68 LDR R3, [R11,#var_B4] .text:00024B6C ORR R3, R3, #0x400 .text:00024B70 STR R3, [R11,#var_B4] .text:00024B74 .text:00024B74 loc_24B74 ; CODE XREF: _IO_vfscanf+508j .text:00024B74 ; _IO_vfscanf+514j ... .text:00024B74 LDR R12, [R11,#var_A4] .text:00024B78 LDRB R3, [R12] .text:00024B7C .text:00024B7C loc_24B7C ; CODE XREF: _IO_vfscanf+4E4j .text:00024B7C CMP R3, #0x27 .text:00024B80 CMPNE R3, #0x2A .text:00024B84 BEQ loc_24B18 .text:00024B88 CMP R3, #0x49 .text:00024B8C BEQ loc_24B18 .text:00024B90 LDR LR, [R11,#var_A4] .text:00024B94 LDR R2, =__ctype_b .text:00024B98 LDR R12, [R11,#var_B4] .text:00024B9C LDRB R1, [LR] .text:00024BA0 LDR R0, [R2] .text:00024BA4 MOV R3, R1,LSL#1 .text:00024BA8 ADD R3, R3, R0 .text:00024BAC LDRB R2, [R3,#1] .text:00024BB0 MOV R3, #0 .text:00024BB4 STR R3, [R11,#var_B0] .text:00024BB8 MOV R2, R2,LSL#8 .text:00024BBC AND R2, R2, #0x800 .text:00024BC0 CMP R2, R3 .text:00024BC4 ORR R3, R12, #0x40 .text:00024BC8 MOVNE R12, R3 .text:00024BCC STR R12, [R11,#var_B4] .text:00024BD0 BEQ loc_24C0C .text:00024BD4 .text:00024BD4 loc_24BD4 ; CODE XREF: _IO_vfscanf+5D8j .text:00024BD4 LDR LR, [R11,#var_B0] .text:00024BD8 ADD R3, LR, LR,LSL#2 .text:00024BDC MOV R3, R3,LSL#1 .text:00024BE0 SUB R2, R3, #0x30 .text:00024BE4 ADD R2, R2, R1 .text:00024BE8 STR R2, [R11,#var_B0] .text:00024BEC LDR R2, [R11,#var_A4] .text:00024BF0 LDRB R1, [R2,#1]! .text:00024BF4 STR R2, [R11,#var_A4] .text:00024BF8 MOV R3, R1,LSL#1 .text:00024BFC ADD R3, R3, R0 .text:00024C00 LDRB R2, [R3,#1] .text:00024C04 TST R2, #8 .text:00024C08 BNE loc_24BD4 .text:00024C0C .text:00024C0C loc_24C0C ; CODE XREF: _IO_vfscanf+4CCj .text:00024C0C ; _IO_vfscanf+5A0j .text:00024C0C LDR R3, [R11,#var_B0] .text:00024C10 LDR R12, [R11,#var_A4] .text:00024C14 LDR LR, [R11,#var_B0] .text:00024C18 CMP R3, #0 .text:00024C1C LDRB R3, [R12],#1 .text:00024C20 MOVEQ LR, 0xFFFFFFFF .text:00024C24 STR LR, [R11,#var_B0] .text:00024C28 STR R12, [R11,#var_A4] .text:00024C2C SUB R3, R3, #0x4C .text:00024C30 CMP R3, #0x2E ; switch 47 cases .text:00024C34 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00024C38 B loc_24DC0 ; jumptable 00024C34 default case .text:00024C38 ; --------------------------------------------------------------------------- .text:00024C3C DCD loc_24D68 ; jump table for switch statement .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24D78 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24CF8 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DAC .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24D30 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24D68 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DCC .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DC0 .text:00024C3C DCD loc_24DCC .text:00024CF8 ; --------------------------------------------------------------------------- .text:00024CF8 .text:00024CF8 loc_24CF8 ; CODE XREF: _IO_vfscanf+604j .text:00024CF8 ; DATA XREF: _IO_vfscanf+60Co .text:00024CF8 LDR R0, [R11,#var_A4] ; jumptable 00024C34 case 28 .text:00024CFC LDRB R3, [R0] .text:00024D00 CMP R3, #0x68 .text:00024D04 BNE loc_24D20 .text:00024D08 LDR R1, [R11,#var_B4] .text:00024D0C ADD R0, R0, #1 .text:00024D10 STR R0, [R11,#var_A4] .text:00024D14 ORR R1, R1, #0x200 .text:00024D18 STR R1, [R11,#var_B4] .text:00024D1C B loc_24DCC ; jumptable 00024C34 cases 40,46 .text:00024D20 ; --------------------------------------------------------------------------- .text:00024D20 .text:00024D20 loc_24D20 ; CODE XREF: _IO_vfscanf+6D4j .text:00024D20 LDR R2, [R11,#var_B4] .text:00024D24 ORR R2, R2, #4 .text:00024D28 STR R2, [R11,#var_B4] .text:00024D2C B loc_24DCC ; jumptable 00024C34 cases 40,46 .text:00024D30 ; --------------------------------------------------------------------------- .text:00024D30 .text:00024D30 loc_24D30 ; CODE XREF: _IO_vfscanf+604j .text:00024D30 ; DATA XREF: _IO_vfscanf+60Co .text:00024D30 LDR R12, [R11,#var_A4] ; jumptable 00024C34 case 32 .text:00024D34 LDRB R3, [R12] .text:00024D38 CMP R3, #0x6C .text:00024D3C BNE loc_24D58 .text:00024D40 LDR LR, [R11,#var_B4] .text:00024D44 ADD R12, R12, #1 .text:00024D48 STR R12, [R11,#var_A4] .text:00024D4C ORR LR, LR, #3 .text:00024D50 STR LR, [R11,#var_B4] .text:00024D54 B loc_24DCC ; jumptable 00024C34 cases 40,46 .text:00024D58 ; --------------------------------------------------------------------------- .text:00024D58 .text:00024D58 loc_24D58 ; CODE XREF: _IO_vfscanf+70Cj .text:00024D58 LDR R0, [R11,#var_B4] .text:00024D5C ORR R0, R0, #1 .text:00024D60 STR R0, [R11,#var_B4] .text:00024D64 B loc_24DCC ; jumptable 00024C34 cases 40,46 .text:00024D68 ; --------------------------------------------------------------------------- .text:00024D68 .text:00024D68 loc_24D68 ; CODE XREF: _IO_vfscanf+604j .text:00024D68 ; DATA XREF: _IO_vfscanf+60Co .text:00024D68 LDR R1, [R11,#var_B4] ; jumptable 00024C34 cases 0,37 .text:00024D6C ORR R1, R1, #3 .text:00024D70 STR R1, [R11,#var_B4] .text:00024D74 B loc_24DCC ; jumptable 00024C34 cases 40,46 .text:00024D78 ; --------------------------------------------------------------------------- .text:00024D78 .text:00024D78 loc_24D78 ; CODE XREF: _IO_vfscanf+604j .text:00024D78 ; DATA XREF: _IO_vfscanf+60Co .text:00024D78 LDR R2, [R11,#var_A4] ; jumptable 00024C34 case 21 .text:00024D7C LDRB R3, [R2] .text:00024D80 CMP R3, #0x73 .text:00024D84 CMPNE R3, #0x53 .text:00024D88 BEQ loc_24D9C .text:00024D8C CMP R3, #0x5B .text:00024D90 SUBNE R2, R2, #1 .text:00024D94 STRNE R2, [R11,#var_A4] .text:00024D98 BNE loc_24DCC ; jumptable 00024C34 cases 40,46 .text:00024D9C .text:00024D9C loc_24D9C ; CODE XREF: _IO_vfscanf+758j .text:00024D9C LDR R3, [R11,#var_B4] .text:00024DA0 ORR R3, R3, #0x100 .text:00024DA4 STR R3, [R11,#var_B4] .text:00024DA8 B loc_24DCC ; jumptable 00024C34 cases 40,46 .text:00024DAC ; --------------------------------------------------------------------------- .text:00024DAC .text:00024DAC loc_24DAC ; CODE XREF: _IO_vfscanf+604j .text:00024DAC ; DATA XREF: _IO_vfscanf+60Co .text:00024DAC LDR R12, [R11,#var_B4] ; jumptable 00024C34 case 30 .text:00024DB0 ORR R12, R12, #2 .text:00024DB4 STR R12, [R11,#var_B4] .text:00024DB8 B loc_24DCC ; jumptable 00024C34 cases 40,46 .text:00024DB8 ; --------------------------------------------------------------------------- .text:00024DBC off_24DBC DCD __ctype_b ; DATA XREF: _IO_vfscanf+420r .text:00024DBC ; _IO_vfscanf+564r .text:00024DC0 ; --------------------------------------------------------------------------- .text:00024DC0 .text:00024DC0 loc_24DC0 ; CODE XREF: _IO_vfscanf+604j .text:00024DC0 ; _IO_vfscanf+608j .text:00024DC0 ; DATA XREF: ... .text:00024DC0 LDR LR, [R11,#var_A4] ; jumptable 00024C34 default case .text:00024DC4 SUB LR, LR, #1 .text:00024DC8 STR LR, [R11,#var_A4] .text:00024DCC .text:00024DCC loc_24DCC ; CODE XREF: _IO_vfscanf+604j .text:00024DCC ; _IO_vfscanf+6ECj ... .text:00024DCC LDR R0, [R11,#var_A4] ; jumptable 00024C34 cases 40,46 .text:00024DD0 LDRB R4, [R0] .text:00024DD4 CMP R4, #0 .text:00024DD8 BEQ loc_286F4 .text:00024DDC LDR R12, [R11,#var_A4] .text:00024DE0 LDR R3, [R11,#var_E8] .text:00024DE4 LDRB R4, [R12],#1 .text:00024DE8 CMP R3, #0 .text:00024DEC STR R12, [R11,#var_A4] .text:00024DF0 BNE loc_24E0C .text:00024DF4 CMP R4, #0x5B .text:00024DF8 CMPNE R4, #0x63 .text:00024DFC BEQ loc_24EC0 .text:00024E00 CMP R4, #0x43 .text:00024E04 CMPNE R4, #0x6E .text:00024E08 BEQ loc_24EC0 .text:00024E0C .text:00024E0C loc_24E0C ; CODE XREF: _IO_vfscanf+7C0j .text:00024E0C BL __errno_location .text:00024E10 LDR R6, [R0] .text:00024E14 BL __errno_location .text:00024E18 MOV LR, #0 .text:00024E1C STR LR, [R0] .text:00024E20 .text:00024E20 loc_24E20 ; CODE XREF: _IO_vfscanf+860j .text:00024E20 CMN R10, #1 .text:00024E24 BEQ loc_24E64 .text:00024E28 LDMIB R7, {R2,R3} .text:00024E2C CMP R2, R3 .text:00024E30 BCC loc_24E44 .text:00024E34 MOV R0, R7 .text:00024E38 BL __uflow .text:00024E3C MOV R10, R0 .text:00024E40 B loc_24E4C .text:00024E44 ; --------------------------------------------------------------------------- .text:00024E44 .text:00024E44 loc_24E44 ; CODE XREF: _IO_vfscanf+800j .text:00024E44 LDRB R10, [R2],#1 .text:00024E48 STR R2, [R7,#4] .text:00024E4C .text:00024E4C loc_24E4C ; CODE XREF: _IO_vfscanf+810j .text:00024E4C CMN R10, #1 .text:00024E50 LDRNE R0, [R11,#var_AC] .text:00024E54 ADDNE R0, R0, #1 .text:00024E58 STRNE R0, [R11,#var_AC] .text:00024E5C CMN R10, #1 .text:00024E60 BNE loc_24E74 .text:00024E64 .text:00024E64 loc_24E64 ; CODE XREF: _IO_vfscanf+7F4j .text:00024E64 BL __errno_location .text:00024E68 LDR R3, [R0] .text:00024E6C CMP R3, #4 .text:00024E70 BEQ loc_27AF4 .text:00024E74 .text:00024E74 loc_24E74 ; CODE XREF: _IO_vfscanf+830j .text:00024E74 LDR R12, =__ctype_b .text:00024E78 LDR R1, [R12] .text:00024E7C MOV R2, R10,LSL#1 .text:00024E80 ADD R2, R2, R1 .text:00024E84 LDRB R3, [R2,#1] .text:00024E88 MOV R3, R3,LSL#8 .text:00024E8C ANDS R5, R3, #0x2000 .text:00024E90 BNE loc_24E20 .text:00024E94 BL __errno_location .text:00024E98 CMN R10, #1 .text:00024E9C STR R6, [R0] .text:00024EA0 BEQ loc_24EBC .text:00024EA4 LDR LR, [R11,#var_AC] .text:00024EA8 SUB LR, LR, #1 .text:00024EAC STR LR, [R11,#var_AC] .text:00024EB0 MOV R0, R7 .text:00024EB4 AND R1, R10, #0xFF .text:00024EB8 BL _IO_sputbackc .text:00024EBC .text:00024EBC loc_24EBC ; CODE XREF: _IO_vfscanf+870j .text:00024EBC STR R5, [R11,#var_E8] .text:00024EC0 .text:00024EC0 loc_24EC0 ; CODE XREF: _IO_vfscanf+7CCj .text:00024EC0 ; _IO_vfscanf+7D8j .text:00024EC0 SUB R3, R4, #0x25 .text:00024EC4 CMP R3, #0x53 ; switch 84 cases .text:00024EC8 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00024ECC B loc_291E0 ; jumptable 00024EC8 default case .text:00024ECC ; --------------------------------------------------------------------------- .text:00024ED0 DCD loc_25020, loc_291E0, loc_291E0, loc_291E0, loc_291E0 ; jump table for switch statement .text:00024ED0 DCD loc_291E0, loc_291E0, loc_291E0, loc_291E0, loc_291E0 .text:00024ED0 DCD loc_291E0, loc_291E0, loc_291E0, loc_291E0, loc_291E0 .text:00024ED0 DCD loc_291E0, loc_291E0, loc_291E0, loc_291E0, loc_291E0 .text:00024ED0 DCD loc_291E0, loc_291E0, loc_291E0, loc_291E0, loc_291E0 .text:00024ED0 DCD loc_291E0, loc_291E0, loc_291E0, loc_2716C, loc_291E0 .text:00024ED0 DCD loc_25404, loc_291E0, loc_2716C, loc_2716C, loc_2716C .text:00024ED0 DCD loc_291E0, loc_291E0, loc_291E0, loc_291E0, loc_291E0 .text:00024ED0 DCD loc_291E0, loc_291E0, loc_291E0, loc_291E0, loc_291E0 .text:00024ED0 DCD loc_291E0, loc_25A10, loc_291E0, loc_291E0, loc_291E0 .text:00024ED0 DCD loc_291E0, loc_25EE8, loc_291E0, loc_291E0, loc_28724 .text:00024ED0 DCD loc_291E0, loc_291E0, loc_291E0, loc_291E0, loc_291E0 .text:00024ED0 DCD loc_2716C, loc_291E0, loc_25220, loc_25F20, loc_2716C .text:00024ED0 DCD loc_2716C, loc_2716C, loc_291E0, loc_25F34, loc_291E0 .text:00024ED0 DCD loc_291E0, loc_291E0, loc_291E0, loc_250B0, loc_25EFC .text:00024ED0 DCD loc_291B8, loc_291E0, loc_291E0, loc_256A8, loc_291E0 .text:00024ED0 DCD loc_25F0C, loc_291E0, loc_291E0, loc_25EE8 .text:00025020 ; --------------------------------------------------------------------------- .text:00025020 .text:00025020 loc_25020 ; CODE XREF: _IO_vfscanf+898j .text:00025020 ; DATA XREF: _IO_vfscanf+8A0o .text:00025020 CMN R10, #1 ; jumptable 00024EC8 case 0 .text:00025024 BEQ loc_2505C .text:00025028 LDMIB R7, {R2,R3} .text:0002502C CMP R2, R3 .text:00025030 BCC loc_25044 .text:00025034 MOV R0, R7 .text:00025038 BL __uflow .text:0002503C MOV R10, R0 .text:00025040 B loc_2504C .text:00025044 ; --------------------------------------------------------------------------- .text:00025044 .text:00025044 loc_25044 ; CODE XREF: _IO_vfscanf+A00j .text:00025044 LDRB R10, [R2],#1 .text:00025048 STR R2, [R7,#4] .text:0002504C .text:0002504C loc_2504C ; CODE XREF: _IO_vfscanf+A10j .text:0002504C CMN R10, #1 .text:00025050 LDRNE R0, [R11,#var_AC] .text:00025054 ADDNE R0, R0, #1 .text:00025058 STRNE R0, [R11,#var_AC] .text:0002505C .text:0002505C loc_2505C ; CODE XREF: _IO_vfscanf+9F4j .text:0002505C MOV R1, R10 .text:00025060 CMN R10, #1 .text:00025064 BEQ loc_27AF4 .text:00025068 CMP R1, R4 .text:0002506C BEQ loc_29218 .text:00025070 MOV R0, R7 .text:00025074 AND R1, R1, #0xFF .text:00025078 BL _IO_sputbackc .text:0002507C LDR R12, [R11,#var_9C] .text:00025080 CMP R12, #0 .text:00025084 LDRNE R3, [R12] .text:00025088 ORRNE R3, R3, #2 .text:0002508C STRNE R3, [R12] .text:00025090 LDR R3, [R7] .text:00025094 TST R3, #0x8000 .text:00025098 BNE loc_250A4 .text:0002509C MOV R0, R7 .text:000250A0 BL funlockfile .text:000250A4 .text:000250A4 loc_250A4 ; CODE XREF: _IO_vfscanf+A68j .text:000250A4 LDR LR, [R11,#var_FC] .text:000250A8 CMP LR, #0 .text:000250AC B loc_292B0 .text:000250B0 ; --------------------------------------------------------------------------- .text:000250B0 .text:000250B0 loc_250B0 ; CODE XREF: _IO_vfscanf+898j .text:000250B0 ; DATA XREF: _IO_vfscanf+8A0o .text:000250B0 LDR R0, [R11,#var_B4] ; jumptable 00024EC8 case 73 .text:000250B4 TST R0, #8 .text:000250B8 BNE loc_29218 .text:000250BC TST R0, #2 .text:000250C0 BEQ loc_25120 .text:000250C4 LDR R1, [R11,#var_100] .text:000250C8 CMP R1, #0 .text:000250CC BNE loc_250EC .text:000250D0 LDR R12, [R11,#var_A0] .text:000250D4 LDR R2, [R11,#var_AC] .text:000250D8 LDR R3, [R12],#4 .text:000250DC MOV R0, R2 .text:000250E0 MOV R1, #0 .text:000250E4 STR R12, [R11,#var_A0] .text:000250E8 B loc_25118 .text:000250EC ; --------------------------------------------------------------------------- .text:000250EC .text:000250EC loc_250EC ; CODE XREF: _IO_vfscanf+A9Cj .text:000250EC LDR R2, [R11,#var_98] .text:000250F0 LDR LR, [R11,#var_100] .text:000250F4 LDR R12, [R11,#var_AC] .text:000250F8 SUBS R3, LR, #1 .text:000250FC MOV R0, R12 .text:00025100 MOV R1, #0 .text:00025104 BEQ loc_25114 .text:00025108 .text:00025108 loc_25108 ; CODE XREF: _IO_vfscanf+AE0j .text:00025108 ADD R2, R2, #4 .text:0002510C SUBS R3, R3, #1 .text:00025110 BNE loc_25108 .text:00025114 .text:00025114 loc_25114 ; CODE XREF: _IO_vfscanf+AD4j .text:00025114 LDR R3, [R2] .text:00025118 .text:00025118 loc_25118 ; CODE XREF: _IO_vfscanf+AB8j .text:00025118 STMIA R3, {R0,R1} .text:0002511C B loc_29218 .text:00025120 ; --------------------------------------------------------------------------- .text:00025120 .text:00025120 loc_25120 ; CODE XREF: _IO_vfscanf+A90j .text:00025120 LDR LR, [R11,#var_B4] .text:00025124 TST LR, #4 .text:00025128 BEQ loc_25188 .text:0002512C LDR R0, [R11,#var_100] .text:00025130 CMP R0, #0 .text:00025134 BNE loc_25150 .text:00025138 LDR R12, [R11,#var_A0] .text:0002513C LDR R2, [R11,#var_AC] .text:00025140 LDR R3, [R12],#4 .text:00025144 MOV R1, R2,ASR#8 .text:00025148 STR R12, [R11,#var_A0] .text:0002514C B loc_25178 .text:00025150 ; --------------------------------------------------------------------------- .text:00025150 .text:00025150 loc_25150 ; CODE XREF: _IO_vfscanf+B04j .text:00025150 LDR R2, [R11,#var_98] .text:00025154 LDR LR, [R11,#var_100] .text:00025158 LDR R0, [R11,#var_AC] .text:0002515C SUBS R3, LR, #1 .text:00025160 MOV R1, R0,ASR#8 .text:00025164 BEQ loc_25174 .text:00025168 .text:00025168 loc_25168 ; CODE XREF: _IO_vfscanf+B40j .text:00025168 ADD R2, R2, #4 .text:0002516C SUBS R3, R3, #1 .text:00025170 BNE loc_25168 .text:00025174 .text:00025174 loc_25174 ; CODE XREF: _IO_vfscanf+B34j .text:00025174 LDR R3, [R2] .text:00025178 .text:00025178 loc_25178 ; CODE XREF: _IO_vfscanf+B1Cj .text:00025178 LDR R2, [R11,#var_AC] .text:0002517C STRB R1, [R3,#1] .text:00025180 STRB R2, [R3] .text:00025184 B loc_29218 .text:00025188 ; --------------------------------------------------------------------------- .text:00025188 .text:00025188 loc_25188 ; CODE XREF: _IO_vfscanf+AF8j .text:00025188 LDR R3, [R11,#var_B4] .text:0002518C TST R3, #0x200 .text:00025190 BNE loc_251D8 .text:00025194 LDR R12, [R11,#var_100] .text:00025198 CMP R12, #0 .text:0002519C LDREQ LR, [R11,#var_A0] .text:000251A0 LDREQ R3, [LR],#4 .text:000251A4 STREQ LR, [R11,#var_A0] .text:000251A8 BEQ loc_251CC .text:000251AC LDR R0, [R11,#var_100] .text:000251B0 LDR R2, [R11,#var_98] .text:000251B4 SUBS R3, R0, #1 .text:000251B8 BEQ loc_251C8 .text:000251BC .text:000251BC loc_251BC ; CODE XREF: _IO_vfscanf+B94j .text:000251BC ADD R2, R2, #4 .text:000251C0 SUBS R3, R3, #1 .text:000251C4 BNE loc_251BC .text:000251C8 .text:000251C8 loc_251C8 ; CODE XREF: _IO_vfscanf+B88j .text:000251C8 LDR R3, [R2] .text:000251CC .text:000251CC loc_251CC ; CODE XREF: _IO_vfscanf+B78j .text:000251CC LDR R1, [R11,#var_AC] .text:000251D0 STR R1, [R3] .text:000251D4 B loc_29218 .text:000251D8 ; --------------------------------------------------------------------------- .text:000251D8 .text:000251D8 loc_251D8 ; CODE XREF: _IO_vfscanf+B60j .text:000251D8 LDR R2, [R11,#var_100] .text:000251DC CMP R2, #0 .text:000251E0 LDREQ R12, [R11,#var_A0] .text:000251E4 LDREQ R3, [R12],#4 .text:000251E8 STREQ R12, [R11,#var_A0] .text:000251EC BEQ loc_25210 .text:000251F0 LDR LR, [R11,#var_100] .text:000251F4 LDR R2, [R11,#var_98] .text:000251F8 SUBS R3, LR, #1 .text:000251FC BEQ loc_2520C .text:00025200 .text:00025200 loc_25200 ; CODE XREF: _IO_vfscanf+BD8j .text:00025200 ADD R2, R2, #4 .text:00025204 SUBS R3, R3, #1 .text:00025208 BNE loc_25200 .text:0002520C .text:0002520C loc_2520C ; CODE XREF: _IO_vfscanf+BCCj .text:0002520C LDR R3, [R2] .text:00025210 .text:00025210 loc_25210 ; CODE XREF: _IO_vfscanf+BBCj .text:00025210 LDR R0, [R11,#var_AC] .text:00025214 STRB R0, [R3] .text:00025218 B loc_29218 .text:00025218 ; --------------------------------------------------------------------------- .text:0002521C off_2521C DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_24E74r .text:00025220 ; --------------------------------------------------------------------------- .text:00025220 .text:00025220 loc_25220 ; CODE XREF: _IO_vfscanf+898j .text:00025220 ; DATA XREF: _IO_vfscanf+8A0o .text:00025220 LDR R1, [R11,#var_B4] ; jumptable 00024EC8 case 62 .text:00025224 TST R1, #1 .text:00025228 BNE loc_25404 ; jumptable 00024EC8 case 30 .text:0002522C ANDS R3, R1, #8 .text:00025230 MOV R8, R3 .text:00025234 BNE loc_252C8 .text:00025238 LDR R2, [R11,#var_100] .text:0002523C CMP R2, #0 .text:00025240 BNE loc_25258 .text:00025244 LDR R3, [R11,#var_A0] .text:00025248 LDR R12, [R3],#4 .text:0002524C STR R12, [R11,#var_D8] .text:00025250 STR R3, [R11,#var_A0] .text:00025254 B loc_2527C .text:00025258 ; --------------------------------------------------------------------------- .text:00025258 .text:00025258 loc_25258 ; CODE XREF: _IO_vfscanf+C10j .text:00025258 LDR LR, [R11,#var_100] .text:0002525C LDR R0, [R11,#var_98] .text:00025260 SUBS R3, LR, #1 .text:00025264 BEQ loc_25274 .text:00025268 .text:00025268 loc_25268 ; CODE XREF: _IO_vfscanf+C40j .text:00025268 ADD R0, R0, #4 .text:0002526C SUBS R3, R3, #1 .text:00025270 BNE loc_25268 .text:00025274 .text:00025274 loc_25274 ; CODE XREF: _IO_vfscanf+C34j .text:00025274 LDR R0, [R0] .text:00025278 STR R0, [R11,#var_D8] .text:0002527C .text:0002527C loc_2527C ; CODE XREF: _IO_vfscanf+C24j .text:0002527C LDR R0, [R11,#var_D8] .text:00025280 CMP R0, #0 .text:00025284 BNE loc_252C8 .text:00025288 LDR R1, [R11,#var_9C] .text:0002528C CMP R1, #0 .text:00025290 LDRNE R3, [R1] .text:00025294 ORRNE R3, R3, #2 .text:00025298 STRNE R3, [R1] .text:0002529C LDR R3, [R7] .text:000252A0 TST R3, #0x8000 .text:000252A4 BNE loc_252B0 .text:000252A8 MOV R0, R7 .text:000252AC BL funlockfile .text:000252B0 .text:000252B0 loc_252B0 ; CODE XREF: _IO_vfscanf+C74j .text:000252B0 LDR R2, [R11,#var_FC] .text:000252B4 CMP R2, #0 .text:000252B8 BEQ loc_292C0 .text:000252BC LDR R1, [R11,#var_D8] .text:000252C0 SUB R0, R11, #-var_38 .text:000252C4 B loc_292BC .text:000252C8 ; --------------------------------------------------------------------------- .text:000252C8 .text:000252C8 loc_252C8 ; CODE XREF: _IO_vfscanf+C04j .text:000252C8 ; _IO_vfscanf+C54j .text:000252C8 CMN R10, #1 .text:000252CC BEQ loc_25304 .text:000252D0 LDMIB R7, {R2,R3} .text:000252D4 CMP R2, R3 .text:000252D8 BCC loc_252EC .text:000252DC MOV R0, R7 .text:000252E0 BL __uflow .text:000252E4 MOV R10, R0 .text:000252E8 B loc_252F4 .text:000252EC ; --------------------------------------------------------------------------- .text:000252EC .text:000252EC loc_252EC ; CODE XREF: _IO_vfscanf+CA8j .text:000252EC LDRB R10, [R2],#1 .text:000252F0 STR R2, [R7,#4] .text:000252F4 .text:000252F4 loc_252F4 ; CODE XREF: _IO_vfscanf+CB8j .text:000252F4 CMN R10, #1 .text:000252F8 LDRNE R3, [R11,#var_AC] .text:000252FC ADDNE R3, R3, #1 .text:00025300 STRNE R3, [R11,#var_AC] .text:00025304 .text:00025304 loc_25304 ; CODE XREF: _IO_vfscanf+C9Cj .text:00025304 CMN R10, #1 .text:00025308 BEQ loc_28F30 .text:0002530C LDR R1, [R11,#var_B0] .text:00025310 LDR R3, [R11,#var_A8] .text:00025314 MOV R2, R1 .text:00025318 CMN R2, #1 .text:0002531C MOVEQ R1, #1 .text:00025320 CMP R8, #0 .text:00025324 ADD R4, R3, #1 .text:00025328 STR R1, [R11,#var_B0] .text:0002532C BNE loc_25398 .text:00025330 .text:00025330 loc_25330 ; CODE XREF: _IO_vfscanf+D60j .text:00025330 LDR R12, [R11,#var_B0] .text:00025334 SUB R12, R12, #1 .text:00025338 STR R12, [R11,#var_B0] .text:0002533C LDR LR, [R11,#var_D8] .text:00025340 STRB R10, [LR],#1 .text:00025344 CMP R12, #0 .text:00025348 STR LR, [R11,#var_D8] .text:0002534C BLE loc_253F0 .text:00025350 CMN R10, #1 .text:00025354 BEQ loc_253F0 .text:00025358 LDMIB R7, {R2,R3} .text:0002535C CMP R2, R3 .text:00025360 BCC loc_25374 .text:00025364 MOV R0, R7 .text:00025368 BL __uflow .text:0002536C MOV R10, R0 .text:00025370 B loc_2537C .text:00025374 ; --------------------------------------------------------------------------- .text:00025374 .text:00025374 loc_25374 ; CODE XREF: _IO_vfscanf+D30j .text:00025374 LDRB R10, [R2],#1 .text:00025378 STR R2, [R7,#4] .text:0002537C .text:0002537C loc_2537C ; CODE XREF: _IO_vfscanf+D40j .text:0002537C CMN R10, #1 .text:00025380 LDRNE R0, [R11,#var_AC] .text:00025384 ADDNE R0, R0, #1 .text:00025388 STRNE R0, [R11,#var_AC] .text:0002538C CMN R10, #1 .text:00025390 BNE loc_25330 .text:00025394 B loc_253F0 .text:00025398 ; --------------------------------------------------------------------------- .text:00025398 .text:00025398 loc_25398 ; CODE XREF: _IO_vfscanf+CFCj .text:00025398 ; _IO_vfscanf+DBCj .text:00025398 LDR R1, [R11,#var_B0] .text:0002539C SUB R1, R1, #1 .text:000253A0 CMP R1, #0 .text:000253A4 STR R1, [R11,#var_B0] .text:000253A8 BLE loc_253F0 .text:000253AC CMN R10, #1 .text:000253B0 BEQ loc_253F0 .text:000253B4 LDMIB R7, {R2,R3} .text:000253B8 CMP R2, R3 .text:000253BC BCC loc_253D0 .text:000253C0 MOV R0, R7 .text:000253C4 BL __uflow .text:000253C8 MOV R10, R0 .text:000253CC B loc_253D8 .text:000253D0 ; --------------------------------------------------------------------------- .text:000253D0 .text:000253D0 loc_253D0 ; CODE XREF: _IO_vfscanf+D8Cj .text:000253D0 LDRB R10, [R2],#1 .text:000253D4 STR R2, [R7,#4] .text:000253D8 .text:000253D8 loc_253D8 ; CODE XREF: _IO_vfscanf+D9Cj .text:000253D8 CMN R10, #1 .text:000253DC LDRNE R2, [R11,#var_AC] .text:000253E0 ADDNE R2, R2, #1 .text:000253E4 STRNE R2, [R11,#var_AC] .text:000253E8 CMN R10, #1 .text:000253EC BNE loc_25398 .text:000253F0 .text:000253F0 loc_253F0 ; CODE XREF: _IO_vfscanf+D1Cj .text:000253F0 ; _IO_vfscanf+D24j ... .text:000253F0 LDR R3, [R11,#var_A8] .text:000253F4 CMP R8, #0 .text:000253F8 MOVEQ R3, R4 .text:000253FC STR R3, [R11,#var_A8] .text:00025400 B loc_29218 .text:00025404 ; --------------------------------------------------------------------------- .text:00025404 .text:00025404 loc_25404 ; CODE XREF: _IO_vfscanf+898j .text:00025404 ; _IO_vfscanf+BF8j .text:00025404 ; DATA XREF: ... .text:00025404 LDR R12, [R11,#var_B4] ; jumptable 00024EC8 case 30 .text:00025408 ANDS R3, R12, #8 .text:0002540C MOV R8, R3 .text:00025410 BNE loc_254A4 .text:00025414 LDR LR, [R11,#var_100] .text:00025418 CMP LR, #0 .text:0002541C BNE loc_25434 .text:00025420 LDR R0, [R11,#var_A0] .text:00025424 LDR R1, [R0],#4 .text:00025428 STR R1, [R11,#var_DC] .text:0002542C STR R0, [R11,#var_A0] .text:00025430 B loc_25458 .text:00025434 ; --------------------------------------------------------------------------- .text:00025434 .text:00025434 loc_25434 ; CODE XREF: _IO_vfscanf+DECj .text:00025434 LDR R3, [R11,#var_100] .text:00025438 LDR R0, [R11,#var_98] .text:0002543C SUBS R2, R3, #1 .text:00025440 BEQ loc_25450 .text:00025444 .text:00025444 loc_25444 ; CODE XREF: _IO_vfscanf+E1Cj .text:00025444 ADD R0, R0, #4 .text:00025448 SUBS R2, R2, #1 .text:0002544C BNE loc_25444 .text:00025450 .text:00025450 loc_25450 ; CODE XREF: _IO_vfscanf+E10j .text:00025450 LDR R0, [R0] .text:00025454 STR R0, [R11,#var_DC] .text:00025458 .text:00025458 loc_25458 ; CODE XREF: _IO_vfscanf+E00j .text:00025458 LDR R12, [R11,#var_DC] .text:0002545C CMP R12, #0 .text:00025460 BNE loc_254A4 .text:00025464 LDR LR, [R11,#var_9C] .text:00025468 CMP LR, #0 .text:0002546C LDRNE R3, [LR] .text:00025470 ORRNE R3, R3, #2 .text:00025474 STRNE R3, [LR] .text:00025478 LDR R3, [R7] .text:0002547C TST R3, #0x8000 .text:00025480 BNE loc_2548C .text:00025484 MOV R0, R7 .text:00025488 BL funlockfile .text:0002548C .text:0002548C loc_2548C ; CODE XREF: _IO_vfscanf+E50j .text:0002548C LDR R0, [R11,#var_FC] .text:00025490 CMP R0, #0 .text:00025494 BEQ loc_292C0 .text:00025498 LDR R1, [R11,#var_DC] .text:0002549C SUB R0, R11, #-var_38 .text:000254A0 B loc_292BC .text:000254A4 ; --------------------------------------------------------------------------- .text:000254A4 .text:000254A4 loc_254A4 ; CODE XREF: _IO_vfscanf+DE0j .text:000254A4 ; _IO_vfscanf+E30j .text:000254A4 CMN R10, #1 .text:000254A8 BEQ loc_254E0 .text:000254AC LDMIB R7, {R2,R3} .text:000254B0 CMP R2, R3 .text:000254B4 BCC loc_254C8 .text:000254B8 MOV R0, R7 .text:000254BC BL __uflow .text:000254C0 MOV R10, R0 .text:000254C4 B loc_254D0 .text:000254C8 ; --------------------------------------------------------------------------- .text:000254C8 .text:000254C8 loc_254C8 ; CODE XREF: _IO_vfscanf+E84j .text:000254C8 LDRB R10, [R2],#1 .text:000254CC STR R2, [R7,#4] .text:000254D0 .text:000254D0 loc_254D0 ; CODE XREF: _IO_vfscanf+E94j .text:000254D0 CMN R10, #1 .text:000254D4 LDRNE R1, [R11,#var_AC] .text:000254D8 ADDNE R1, R1, #1 .text:000254DC STRNE R1, [R11,#var_AC] .text:000254E0 .text:000254E0 loc_254E0 ; CODE XREF: _IO_vfscanf+E78j .text:000254E0 CMN R10, #1 .text:000254E4 BEQ loc_28BB8 .text:000254E8 SUB R0, R11, #-var_80 .text:000254EC MOV R1, #0 .text:000254F0 MOV R2, #8 .text:000254F4 BL memset .text:000254F8 SUB R6, R11, #-var_80 .text:000254FC SUB R5, R11, #-var_48 .text:00025500 .text:00025500 loc_25500 ; CODE XREF: _IO_vfscanf+105Cj .text:00025500 MOV R4, #1 .text:00025504 STRB R10, [R11,#var_48] .text:00025508 .text:00025508 loc_25508 ; CODE XREF: _IO_vfscanf+FBCj .text:00025508 CMP R8, #0 .text:0002550C MOV R1, R5 .text:00025510 MOV R2, R4 .text:00025514 LDR R0, [R11,#var_DC] .text:00025518 MOV R3, R6 .text:0002551C MOVNE R0, #0 .text:00025520 BL mbrtowc .text:00025524 CMN R0, #2 .text:00025528 BNE loc_255F0 .text:0002552C BL __ctype_get_mb_cur_max .text:00025530 CMP R4, R0 .text:00025534 BCC loc_25550 .text:00025538 LDR R0, =aCnt__ctype_get ; "cnt < (__ctype_get_mb_cur_max ())" .text:0002553C LDR R1, =aVfscanf_c ; "vfscanf.c" .text:00025540 MOV R2, #0x30C .text:00025544 LDR R3, =a_io_vfscanf ; "_IO_vfscanf" .text:00025548 ADD R2, R2, #2 .text:0002554C BL __assert_fail .text:00025550 ; --------------------------------------------------------------------------- .text:00025550 .text:00025550 loc_25550 ; CODE XREF: _IO_vfscanf+F04j .text:00025550 CMN R10, #1 .text:00025554 BEQ loc_25594 .text:00025558 LDMIB R7, {R2,R3} .text:0002555C CMP R2, R3 .text:00025560 BCC loc_25574 .text:00025564 MOV R0, R7 .text:00025568 BL __uflow .text:0002556C MOV R10, R0 .text:00025570 B loc_2557C .text:00025574 ; --------------------------------------------------------------------------- .text:00025574 .text:00025574 loc_25574 ; CODE XREF: _IO_vfscanf+F30j .text:00025574 LDRB R10, [R2],#1 .text:00025578 STR R2, [R7,#4] .text:0002557C .text:0002557C loc_2557C ; CODE XREF: _IO_vfscanf+F40j .text:0002557C CMN R10, #1 .text:00025580 LDRNE LR, [R11,#var_AC] .text:00025584 ADDNE LR, LR, #1 .text:00025588 STRNE LR, [R11,#var_AC] .text:0002558C CMN R10, #1 .text:00025590 BNE loc_255E4 .text:00025594 .text:00025594 loc_25594 ; CODE XREF: _IO_vfscanf+F24j .text:00025594 ; _IO_vfscanf+4644j .text:00025594 LDR R0, [R11,#var_9C] .text:00025598 CMP R0, #0 .text:0002559C LDRNE R3, [R0] .text:000255A0 ORRNE R3, R3, #4 .text:000255A4 STRNE R3, [R0] .text:000255A8 LDR R3, [R7] .text:000255AC TST R3, #0x8000 .text:000255B0 BNE loc_255BC .text:000255B4 MOV R0, R7 .text:000255B8 BL funlockfile .text:000255BC .text:000255BC loc_255BC ; CODE XREF: _IO_vfscanf+F80j .text:000255BC LDR R1, [R11,#var_FC] .text:000255C0 CMP R1, #0 .text:000255C4 .text:000255C4 loc_255C4 ; CODE XREF: _IO_vfscanf+FF8j .text:000255C4 ; _IO_vfscanf+1660j ... .text:000255C4 BEQ loc_255D4 .text:000255C8 SUB R0, R11, #-var_38 .text:000255CC MOV R1, #0 .text:000255D0 BL 0 .text:000255D4 .text:000255D4 loc_255D4 ; CODE XREF: _IO_vfscanf:loc_255C4j .text:000255D4 BL __errno_location .text:000255D8 MOV R3, #0x54 .text:000255DC STR R3, [R0] .text:000255E0 B loc_292C0 .text:000255E4 ; --------------------------------------------------------------------------- .text:000255E4 .text:000255E4 loc_255E4 ; CODE XREF: _IO_vfscanf+F60j .text:000255E4 STRB R10, [R5,R4] .text:000255E8 ADD R4, R4, #1 .text:000255EC B loc_25508 .text:000255F0 ; --------------------------------------------------------------------------- .text:000255F0 .text:000255F0 loc_255F0 ; CODE XREF: _IO_vfscanf+EF8j .text:000255F0 CMP R0, R4 .text:000255F4 BEQ loc_2562C .text:000255F8 LDR R2, [R11,#var_9C] .text:000255FC CMP R2, #0 .text:00025600 LDRNE R3, [R2] .text:00025604 ORRNE R3, R3, #4 .text:00025608 STRNE R3, [R2] .text:0002560C LDR R3, [R7] .text:00025610 TST R3, #0x8000 .text:00025614 BNE loc_25620 .text:00025618 MOV R0, R7 .text:0002561C BL funlockfile .text:00025620 .text:00025620 loc_25620 ; CODE XREF: _IO_vfscanf+FE4j .text:00025620 LDR R3, [R11,#var_FC] .text:00025624 CMP R3, #0 .text:00025628 B loc_255C4 .text:0002562C ; --------------------------------------------------------------------------- .text:0002562C .text:0002562C loc_2562C ; CODE XREF: _IO_vfscanf+FC4j .text:0002562C LDR R12, [R11,#var_DC] .text:00025630 LDR LR, [R11,#var_B0] .text:00025634 ADD R12, R12, #4 .text:00025638 STR R12, [R11,#var_DC] .text:0002563C SUB LR, LR, #1 .text:00025640 CMP LR, #0 .text:00025644 STR LR, [R11,#var_B0] .text:00025648 BLE loc_25690 .text:0002564C CMN R10, #1 .text:00025650 BEQ loc_25690 .text:00025654 LDMIB R7, {R2,R3} .text:00025658 CMP R2, R3 .text:0002565C BCC loc_25670 .text:00025660 MOV R0, R7 .text:00025664 BL __uflow .text:00025668 MOV R10, R0 .text:0002566C B loc_25678 .text:00025670 ; --------------------------------------------------------------------------- .text:00025670 .text:00025670 loc_25670 ; CODE XREF: _IO_vfscanf+102Cj .text:00025670 LDRB R10, [R2],#1 .text:00025674 STR R2, [R7,#4] .text:00025678 .text:00025678 loc_25678 ; CODE XREF: _IO_vfscanf+103Cj .text:00025678 CMN R10, #1 .text:0002567C LDRNE R0, [R11,#var_AC] .text:00025680 ADDNE R0, R0, #1 .text:00025684 STRNE R0, [R11,#var_AC] .text:00025688 CMN R10, #1 .text:0002568C BNE loc_25500 .text:00025690 .text:00025690 loc_25690 ; CODE XREF: _IO_vfscanf+1018j .text:00025690 ; _IO_vfscanf+1020j .text:00025690 LDR R1, [R11,#var_A8] .text:00025694 CMP R8, #0 .text:00025698 MOV R2, R1 .text:0002569C ADDEQ R1, R2, #1 .text:000256A0 STR R1, [R11,#var_A8] .text:000256A4 B loc_29218 .text:000256A8 ; --------------------------------------------------------------------------- .text:000256A8 .text:000256A8 loc_256A8 ; CODE XREF: _IO_vfscanf+898j .text:000256A8 ; DATA XREF: _IO_vfscanf+8A0o .text:000256A8 LDR R3, [R11,#var_B4] ; jumptable 00024EC8 case 78 .text:000256AC TST R3, #1 .text:000256B0 BNE loc_25A10 ; jumptable 00024EC8 case 46 .text:000256B4 ANDS R3, R3, #8 .text:000256B8 MOV R8, R3 .text:000256BC BNE loc_25810 .text:000256C0 LDR R12, [R11,#var_B4] .text:000256C4 TST R12, #0x100 .text:000256C8 BEQ loc_2577C .text:000256CC LDR LR, [R11,#var_100] .text:000256D0 CMP LR, #0 .text:000256D4 BNE loc_256EC .text:000256D8 LDR R0, [R11,#var_A0] .text:000256DC LDR R1, [R0],#4 .text:000256E0 STR R1, [R11,#var_E0] .text:000256E4 STR R0, [R11,#var_A0] .text:000256E8 B loc_25710 .text:000256EC ; --------------------------------------------------------------------------- .text:000256EC .text:000256EC loc_256EC ; CODE XREF: _IO_vfscanf+10A4j .text:000256EC LDR R3, [R11,#var_100] .text:000256F0 LDR R0, [R11,#var_98] .text:000256F4 SUBS R2, R3, #1 .text:000256F8 BEQ loc_25708 .text:000256FC .text:000256FC loc_256FC ; CODE XREF: _IO_vfscanf+10D4j .text:000256FC ADD R0, R0, #4 .text:00025700 SUBS R2, R2, #1 .text:00025704 BNE loc_256FC .text:00025708 .text:00025708 loc_25708 ; CODE XREF: _IO_vfscanf+10C8j .text:00025708 LDR R0, [R0] .text:0002570C STR R0, [R11,#var_E0] .text:00025710 .text:00025710 loc_25710 ; CODE XREF: _IO_vfscanf+10B8j .text:00025710 LDR R12, [R11,#var_E0] .text:00025714 CMP R12, #0 .text:00025718 BNE loc_2575C .text:0002571C LDR LR, [R11,#var_9C] .text:00025720 CMP LR, #0 .text:00025724 LDRNE R3, [LR] .text:00025728 ORRNE R3, R3, #2 .text:0002572C STRNE R3, [LR] .text:00025730 LDR R3, [R7] .text:00025734 TST R3, #0x8000 .text:00025738 BNE loc_25744 .text:0002573C MOV R0, R7 .text:00025740 BL funlockfile .text:00025744 .text:00025744 loc_25744 ; CODE XREF: _IO_vfscanf+1108j .text:00025744 LDR R0, [R11,#var_FC] .text:00025748 CMP R0, #0 .text:0002574C BEQ loc_292C0 .text:00025750 LDR R1, [R11,#var_E0] .text:00025754 SUB R0, R11, #-var_38 .text:00025758 B loc_292BC .text:0002575C ; --------------------------------------------------------------------------- .text:0002575C .text:0002575C loc_2575C ; CODE XREF: _IO_vfscanf+10E8j .text:0002575C MOV R1, #0x64 .text:00025760 STR R1, [R11,#var_E4] .text:00025764 MOV R0, R1 .text:00025768 BL malloc .text:0002576C STR R0, [R11,#var_D8] .text:00025770 LDR R2, [R11,#var_E0] .text:00025774 STR R0, [R2] .text:00025778 B loc_257C0 .text:0002577C ; --------------------------------------------------------------------------- .text:0002577C .text:0002577C loc_2577C ; CODE XREF: _IO_vfscanf+1098j .text:0002577C LDR R3, [R11,#var_100] .text:00025780 CMP R3, #0 .text:00025784 BNE loc_2579C .text:00025788 LDR R12, [R11,#var_A0] .text:0002578C LDR LR, [R12],#4 .text:00025790 STR LR, [R11,#var_D8] .text:00025794 STR R12, [R11,#var_A0] .text:00025798 B loc_257C0 .text:0002579C ; --------------------------------------------------------------------------- .text:0002579C .text:0002579C loc_2579C ; CODE XREF: _IO_vfscanf+1154j .text:0002579C LDR R1, [R11,#var_100] .text:000257A0 LDR R0, [R11,#var_98] .text:000257A4 SUBS R3, R1, #1 .text:000257A8 BEQ loc_257B8 .text:000257AC .text:000257AC loc_257AC ; CODE XREF: _IO_vfscanf+1184j .text:000257AC ADD R0, R0, #4 .text:000257B0 SUBS R3, R3, #1 .text:000257B4 BNE loc_257AC .text:000257B8 .text:000257B8 loc_257B8 ; CODE XREF: _IO_vfscanf+1178j .text:000257B8 LDR R0, [R0] .text:000257BC STR R0, [R11,#var_D8] .text:000257C0 .text:000257C0 loc_257C0 ; CODE XREF: _IO_vfscanf+1148j .text:000257C0 ; _IO_vfscanf+1168j .text:000257C0 LDR R2, [R11,#var_D8] .text:000257C4 CMP R2, #0 .text:000257C8 BNE loc_25810 .text:000257CC LDR R3, [R11,#var_9C] .text:000257D0 CMP R3, #0 .text:000257D4 LDRNE R3, [R3] .text:000257D8 LDRNE R12, [R11,#var_9C] .text:000257DC ORRNE R3, R3, #2 .text:000257E0 STRNE R3, [R12] .text:000257E4 LDR R3, [R7] .text:000257E8 TST R3, #0x8000 .text:000257EC BNE loc_257F8 .text:000257F0 MOV R0, R7 .text:000257F4 BL funlockfile .text:000257F8 .text:000257F8 loc_257F8 ; CODE XREF: _IO_vfscanf+11BCj .text:000257F8 LDR LR, [R11,#var_FC] .text:000257FC CMP LR, #0 .text:00025800 BEQ loc_292C0 .text:00025804 LDR R1, [R11,#var_D8] .text:00025808 SUB R0, R11, #-var_38 .text:0002580C B loc_292BC .text:00025810 ; --------------------------------------------------------------------------- .text:00025810 .text:00025810 loc_25810 ; CODE XREF: _IO_vfscanf+108Cj .text:00025810 ; _IO_vfscanf+1198j .text:00025810 CMN R10, #1 .text:00025814 BEQ loc_2584C .text:00025818 LDMIB R7, {R2,R3} .text:0002581C CMP R2, R3 .text:00025820 BCC loc_25834 .text:00025824 MOV R0, R7 .text:00025828 BL __uflow .text:0002582C MOV R10, R0 .text:00025830 B loc_2583C .text:00025834 ; --------------------------------------------------------------------------- .text:00025834 .text:00025834 loc_25834 ; CODE XREF: _IO_vfscanf+11F0j .text:00025834 LDRB R10, [R2],#1 .text:00025838 STR R2, [R7,#4] .text:0002583C .text:0002583C loc_2583C ; CODE XREF: _IO_vfscanf+1200j .text:0002583C CMN R10, #1 .text:00025840 LDRNE R0, [R11,#var_AC] .text:00025844 ADDNE R0, R0, #1 .text:00025848 STRNE R0, [R11,#var_AC] .text:0002584C .text:0002584C loc_2584C ; CODE XREF: _IO_vfscanf+11E4j .text:0002584C CMN R10, #1 .text:00025850 BNE loc_259D8 .text:00025854 B loc_27AF4 .text:00025854 ; --------------------------------------------------------------------------- .text:00025858 off_25858 DCD aCnt__ctype_get ; DATA XREF: _IO_vfscanf+F08r .text:00025858 ; "cnt < (__ctype_get_mb_cur_max ())" .text:0002585C off_2585C DCD aVfscanf_c ; DATA XREF: _IO_vfscanf+F0Cr .text:0002585C ; "vfscanf.c" .text:00025860 off_25860 DCD a_io_vfscanf ; DATA XREF: _IO_vfscanf+F14r .text:00025860 ; "_IO_vfscanf" .text:00025864 ; --------------------------------------------------------------------------- .text:00025864 .text:00025864 loc_25864 ; CODE XREF: _IO_vfscanf+13C0j .text:00025864 CMP R8, #0 .text:00025868 BNE loc_25978 .text:0002586C LDR LR, [R11,#var_D8] .text:00025870 LDR R12, [R11,#var_B4] .text:00025874 STRB R10, [LR],#1 .text:00025878 TST R12, #0x100 .text:0002587C STR LR, [R11,#var_D8] .text:00025880 BEQ loc_25978 .text:00025884 LDR R1, [R11,#var_E0] .text:00025888 LDR R2, [R11,#var_E4] .text:0002588C LDR R0, [R1] .text:00025890 ADD R3, R0, R2 .text:00025894 CMP LR, R3 .text:00025898 BNE loc_25978 .text:0002589C MOV R4, R2,LSL#1 .text:000258A0 MOV R1, R4 .text:000258A4 BL realloc .text:000258A8 CMP R0, #0 .text:000258AC STR R0, [R11,#var_D8] .text:000258B0 BNE loc_2595C .text:000258B4 LDR R12, [R11,#var_E4] .text:000258B8 LDR R3, [R11,#var_E0] .text:000258BC ADD R4, R12, #1 .text:000258C0 LDR R0, [R3] .text:000258C4 MOV R1, R4 .text:000258C8 BL realloc .text:000258CC CMP R0, #0 .text:000258D0 STR R0, [R11,#var_D8] .text:000258D4 BNE loc_25940 .text:000258D8 LDR LR, [R11,#var_E0] .text:000258DC LDR R0, [R11,#var_A8] .text:000258E0 LDR R3, [LR] .text:000258E4 ADD R0, R0, #1 .text:000258E8 STR R0, [R11,#var_A8] .text:000258EC LDR R1, [R11,#var_E4] .text:000258F0 LDR R2, [R11,#var_D8] .text:000258F4 ADD R3, R1, R3 .text:000258F8 STRB R2, [R3,#-1] .text:000258FC LDR R3, [R11,#var_9C] .text:00025900 CMP R3, #0 .text:00025904 LDRNE R3, [R3] .text:00025908 LDRNE R12, [R11,#var_9C] .text:0002590C ORRNE R3, R3, #2 .text:00025910 STRNE R3, [R12] .text:00025914 LDR R3, [R7] .text:00025918 TST R3, #0x8000 .text:0002591C BNE loc_25928 .text:00025920 MOV R0, R7 .text:00025924 BL funlockfile .text:00025928 .text:00025928 loc_25928 ; CODE XREF: _IO_vfscanf+12ECj .text:00025928 LDR LR, [R11,#var_FC] .text:0002592C CMP LR, #0 .text:00025930 BEQ loc_292C0 .text:00025934 LDR R1, [R11,#var_D8] .text:00025938 SUB R0, R11, #-var_38 .text:0002593C B loc_292BC .text:00025940 ; --------------------------------------------------------------------------- .text:00025940 .text:00025940 loc_25940 ; CODE XREF: _IO_vfscanf+12A4j .text:00025940 LDR R1, [R11,#var_D8] .text:00025944 LDR R0, [R11,#var_E0] .text:00025948 STR R1, [R0] .text:0002594C LDR R2, [R11,#var_E4] .text:00025950 ADD R1, R1, R2 .text:00025954 STR R1, [R11,#var_D8] .text:00025958 B loc_25974 .text:0002595C ; --------------------------------------------------------------------------- .text:0002595C .text:0002595C loc_2595C ; CODE XREF: _IO_vfscanf+1280j .text:0002595C LDR R12, [R11,#var_D8] .text:00025960 LDR R3, [R11,#var_E0] .text:00025964 STR R12, [R3] .text:00025968 LDR LR, [R11,#var_E4] .text:0002596C ADD R12, R12, LR .text:00025970 STR R12, [R11,#var_D8] .text:00025974 .text:00025974 loc_25974 ; CODE XREF: _IO_vfscanf+1328j .text:00025974 STR R4, [R11,#var_E4] .text:00025978 .text:00025978 loc_25978 ; CODE XREF: _IO_vfscanf+1238j .text:00025978 ; _IO_vfscanf+1250j ... .text:00025978 LDR R0, [R11,#var_B0] .text:0002597C CMP R0, #0 .text:00025980 BLE loc_25994 .text:00025984 SUB R0, R0, #1 .text:00025988 CMP R0, #0 .text:0002598C STR R0, [R11,#var_B0] .text:00025990 BLE loc_29160 .text:00025994 .text:00025994 loc_25994 ; CODE XREF: _IO_vfscanf+1350j .text:00025994 CMN R10, #1 .text:00025998 BEQ loc_29160 .text:0002599C LDMIB R7, {R2,R3} .text:000259A0 CMP R2, R3 .text:000259A4 BCC loc_259B8 .text:000259A8 MOV R0, R7 .text:000259AC BL __uflow .text:000259B0 MOV R10, R0 .text:000259B4 B loc_259C0 .text:000259B8 ; --------------------------------------------------------------------------- .text:000259B8 .text:000259B8 loc_259B8 ; CODE XREF: _IO_vfscanf+1374j .text:000259B8 LDRB R10, [R2],#1 .text:000259BC STR R2, [R7,#4] .text:000259C0 .text:000259C0 loc_259C0 ; CODE XREF: _IO_vfscanf+1384j .text:000259C0 CMN R10, #1 .text:000259C4 LDRNE R1, [R11,#var_AC] .text:000259C8 ADDNE R1, R1, #1 .text:000259CC STRNE R1, [R11,#var_AC] .text:000259D0 CMN R10, #1 .text:000259D4 BEQ loc_29160 .text:000259D8 .text:000259D8 loc_259D8 ; CODE XREF: _IO_vfscanf+1220j .text:000259D8 LDR R2, =__ctype_b .text:000259DC LDR R3, [R2] .text:000259E0 MOV R2, R10,LSL#1 .text:000259E4 ADD R2, R2, R3 .text:000259E8 LDRB R1, [R2,#1] .text:000259EC TST R1, #0x20 .text:000259F0 BEQ loc_25864 .text:000259F4 LDR R3, [R11,#var_AC] .text:000259F8 SUB R3, R3, #1 .text:000259FC STR R3, [R11,#var_AC] .text:00025A00 MOV R0, R7 .text:00025A04 AND R1, R10, #0xFF .text:00025A08 BL _IO_sputbackc .text:00025A0C B loc_29160 .text:00025A10 ; --------------------------------------------------------------------------- .text:00025A10 .text:00025A10 loc_25A10 ; CODE XREF: _IO_vfscanf+898j .text:00025A10 ; _IO_vfscanf+1080j .text:00025A10 ; DATA XREF: ... .text:00025A10 LDR LR, [R11,#var_B4] ; jumptable 00024EC8 case 46 .text:00025A14 ANDS R3, LR, #8 .text:00025A18 MOV R8, R3 .text:00025A1C BNE loc_25B6C .text:00025A20 TST LR, #0x100 .text:00025A24 BEQ loc_25AD8 .text:00025A28 LDR R0, [R11,#var_100] .text:00025A2C CMP R0, #0 .text:00025A30 BNE loc_25A48 .text:00025A34 LDR R1, [R11,#var_A0] .text:00025A38 LDR R2, [R1],#4 .text:00025A3C STR R2, [R11,#var_E0] .text:00025A40 STR R1, [R11,#var_A0] .text:00025A44 B loc_25A6C .text:00025A48 ; --------------------------------------------------------------------------- .text:00025A48 .text:00025A48 loc_25A48 ; CODE XREF: _IO_vfscanf+1400j .text:00025A48 LDR R3, [R11,#var_100] .text:00025A4C LDR R0, [R11,#var_98] .text:00025A50 SUBS R2, R3, #1 .text:00025A54 BEQ loc_25A64 .text:00025A58 .text:00025A58 loc_25A58 ; CODE XREF: _IO_vfscanf+1430j .text:00025A58 ADD R0, R0, #4 .text:00025A5C SUBS R2, R2, #1 .text:00025A60 BNE loc_25A58 .text:00025A64 .text:00025A64 loc_25A64 ; CODE XREF: _IO_vfscanf+1424j .text:00025A64 LDR R0, [R0] .text:00025A68 STR R0, [R11,#var_E0] .text:00025A6C .text:00025A6C loc_25A6C ; CODE XREF: _IO_vfscanf+1414j .text:00025A6C LDR R12, [R11,#var_E0] .text:00025A70 CMP R12, #0 .text:00025A74 BNE loc_25AB8 .text:00025A78 LDR LR, [R11,#var_9C] .text:00025A7C CMP LR, #0 .text:00025A80 LDRNE R3, [LR] .text:00025A84 ORRNE R3, R3, #2 .text:00025A88 STRNE R3, [LR] .text:00025A8C LDR R3, [R7] .text:00025A90 TST R3, #0x8000 .text:00025A94 BNE loc_25AA0 .text:00025A98 MOV R0, R7 .text:00025A9C BL funlockfile .text:00025AA0 .text:00025AA0 loc_25AA0 ; CODE XREF: _IO_vfscanf+1464j .text:00025AA0 LDR R0, [R11,#var_FC] .text:00025AA4 CMP R0, #0 .text:00025AA8 BEQ loc_292C0 .text:00025AAC LDR R1, [R11,#var_E0] .text:00025AB0 SUB R0, R11, #-var_38 .text:00025AB4 B loc_292BC .text:00025AB8 ; --------------------------------------------------------------------------- .text:00025AB8 .text:00025AB8 loc_25AB8 ; CODE XREF: _IO_vfscanf+1444j .text:00025AB8 MOV R1, #0x64 .text:00025ABC STR R1, [R11,#var_E4] .text:00025AC0 MOV R0, R1,LSL#2 .text:00025AC4 BL malloc .text:00025AC8 STR R0, [R11,#var_DC] .text:00025ACC LDR R2, [R11,#var_E0] .text:00025AD0 STR R0, [R2] .text:00025AD4 B loc_25B1C .text:00025AD8 ; --------------------------------------------------------------------------- .text:00025AD8 .text:00025AD8 loc_25AD8 ; CODE XREF: _IO_vfscanf+13F4j .text:00025AD8 LDR R3, [R11,#var_100] .text:00025ADC CMP R3, #0 .text:00025AE0 BNE loc_25AF8 .text:00025AE4 LDR R12, [R11,#var_A0] .text:00025AE8 LDR LR, [R12],#4 .text:00025AEC STR LR, [R11,#var_DC] .text:00025AF0 STR R12, [R11,#var_A0] .text:00025AF4 B loc_25B1C .text:00025AF8 ; --------------------------------------------------------------------------- .text:00025AF8 .text:00025AF8 loc_25AF8 ; CODE XREF: _IO_vfscanf+14B0j .text:00025AF8 LDR R1, [R11,#var_100] .text:00025AFC LDR R0, [R11,#var_98] .text:00025B00 SUBS R2, R1, #1 .text:00025B04 BEQ loc_25B14 .text:00025B08 .text:00025B08 loc_25B08 ; CODE XREF: _IO_vfscanf+14E0j .text:00025B08 ADD R0, R0, #4 .text:00025B0C SUBS R2, R2, #1 .text:00025B10 BNE loc_25B08 .text:00025B14 .text:00025B14 loc_25B14 ; CODE XREF: _IO_vfscanf+14D4j .text:00025B14 LDR R0, [R0] .text:00025B18 STR R0, [R11,#var_DC] .text:00025B1C .text:00025B1C loc_25B1C ; CODE XREF: _IO_vfscanf+14A4j .text:00025B1C ; _IO_vfscanf+14C4j .text:00025B1C LDR R2, [R11,#var_DC] .text:00025B20 CMP R2, #0 .text:00025B24 BNE loc_25B6C .text:00025B28 LDR R3, [R11,#var_9C] .text:00025B2C CMP R3, #0 .text:00025B30 LDRNE R3, [R3] .text:00025B34 LDRNE R12, [R11,#var_9C] .text:00025B38 ORRNE R3, R3, #2 .text:00025B3C STRNE R3, [R12] .text:00025B40 LDR R3, [R7] .text:00025B44 TST R3, #0x8000 .text:00025B48 BNE loc_25B54 .text:00025B4C MOV R0, R7 .text:00025B50 BL funlockfile .text:00025B54 .text:00025B54 loc_25B54 ; CODE XREF: _IO_vfscanf+1518j .text:00025B54 LDR LR, [R11,#var_FC] .text:00025B58 CMP LR, #0 .text:00025B5C BEQ loc_292C0 .text:00025B60 LDR R1, [R11,#var_DC] .text:00025B64 SUB R0, R11, #-var_38 .text:00025B68 B loc_292BC .text:00025B6C ; --------------------------------------------------------------------------- .text:00025B6C .text:00025B6C loc_25B6C ; CODE XREF: _IO_vfscanf+13ECj .text:00025B6C ; _IO_vfscanf+14F4j .text:00025B6C CMN R10, #1 .text:00025B70 BEQ loc_25BA8 .text:00025B74 LDMIB R7, {R2,R3} .text:00025B78 CMP R2, R3 .text:00025B7C BCC loc_25B90 .text:00025B80 MOV R0, R7 .text:00025B84 BL __uflow .text:00025B88 MOV R10, R0 .text:00025B8C B loc_25B98 .text:00025B90 ; --------------------------------------------------------------------------- .text:00025B90 .text:00025B90 loc_25B90 ; CODE XREF: _IO_vfscanf+154Cj .text:00025B90 LDRB R10, [R2],#1 .text:00025B94 STR R2, [R7,#4] .text:00025B98 .text:00025B98 loc_25B98 ; CODE XREF: _IO_vfscanf+155Cj .text:00025B98 CMN R10, #1 .text:00025B9C LDRNE R0, [R11,#var_AC] .text:00025BA0 ADDNE R0, R0, #1 .text:00025BA4 STRNE R0, [R11,#var_AC] .text:00025BA8 .text:00025BA8 loc_25BA8 ; CODE XREF: _IO_vfscanf+1540j .text:00025BA8 CMN R10, #1 .text:00025BAC BEQ loc_27AF4 .text:00025BB0 SUB R0, R11, #-var_88 .text:00025BB4 MOV R1, #0 .text:00025BB8 MOV R2, #8 .text:00025BBC BL memset .text:00025BC0 SUB R9, R11, #-var_88 .text:00025BC4 B loc_25E54 .text:00025BC8 ; --------------------------------------------------------------------------- .text:00025BC8 .text:00025BC8 loc_25BC8 ; CODE XREF: _IO_vfscanf+183Cj .text:00025BC8 MOV R4, #1 .text:00025BCC SUB R5, R11, #-var_48 .text:00025BD0 STRB R10, [R11,#var_48] .text:00025BD4 .text:00025BD4 loc_25BD4 ; CODE XREF: _IO_vfscanf+166Cj .text:00025BD4 CMP R8, #0 .text:00025BD8 MOV R1, R5 .text:00025BDC MOV R2, R4 .text:00025BE0 LDR R0, [R11,#var_DC] .text:00025BE4 MOV R3, R9 .text:00025BE8 MOVNE R0, #0 .text:00025BEC BL mbrtowc .text:00025BF0 CMN R0, #2 .text:00025BF4 BNE loc_25CA0 .text:00025BF8 BL __ctype_get_mb_cur_max .text:00025BFC CMP R4, R0 .text:00025C00 BCC loc_25C1C .text:00025C04 LDR R0, =aCnt__ctype_get ; "cnt < (__ctype_get_mb_cur_max ())" .text:00025C08 LDR R1, =aVfscanf_c ; "vfscanf.c" .text:00025C0C MOV R2, #0x430 .text:00025C10 LDR R3, =a_io_vfscanf ; "_IO_vfscanf" .text:00025C14 ADD R2, R2, #0xB .text:00025C18 BL __assert_fail .text:00025C1C ; --------------------------------------------------------------------------- .text:00025C1C .text:00025C1C loc_25C1C ; CODE XREF: _IO_vfscanf+15D0j .text:00025C1C CMN R10, #1 .text:00025C20 BEQ loc_25C60 .text:00025C24 LDMIB R7, {R2,R3} .text:00025C28 CMP R2, R3 .text:00025C2C BCC loc_25C40 .text:00025C30 MOV R0, R7 .text:00025C34 BL __uflow .text:00025C38 MOV R10, R0 .text:00025C3C B loc_25C48 .text:00025C40 ; --------------------------------------------------------------------------- .text:00025C40 .text:00025C40 loc_25C40 ; CODE XREF: _IO_vfscanf+15FCj .text:00025C40 LDRB R10, [R2],#1 .text:00025C44 STR R2, [R7,#4] .text:00025C48 .text:00025C48 loc_25C48 ; CODE XREF: _IO_vfscanf+160Cj .text:00025C48 CMN R10, #1 .text:00025C4C LDRNE R12, [R11,#var_AC] .text:00025C50 ADDNE R12, R12, #1 .text:00025C54 STRNE R12, [R11,#var_AC] .text:00025C58 CMN R10, #1 .text:00025C5C BNE loc_25C94 .text:00025C60 .text:00025C60 loc_25C60 ; CODE XREF: _IO_vfscanf+15F0j .text:00025C60 LDR LR, [R11,#var_9C] .text:00025C64 CMP LR, #0 .text:00025C68 LDRNE R3, [LR] .text:00025C6C ORRNE R3, R3, #4 .text:00025C70 STRNE R3, [LR] .text:00025C74 LDR R3, [R7] .text:00025C78 TST R3, #0x8000 .text:00025C7C BNE loc_25C88 .text:00025C80 MOV R0, R7 .text:00025C84 BL funlockfile .text:00025C88 .text:00025C88 loc_25C88 ; CODE XREF: _IO_vfscanf+164Cj .text:00025C88 LDR R0, [R11,#var_FC] .text:00025C8C CMP R0, #0 .text:00025C90 B loc_255C4 .text:00025C94 ; --------------------------------------------------------------------------- .text:00025C94 .text:00025C94 loc_25C94 ; CODE XREF: _IO_vfscanf+162Cj .text:00025C94 STRB R10, [R5,R4] .text:00025C98 ADD R4, R4, #1 .text:00025C9C B loc_25BD4 .text:00025CA0 ; --------------------------------------------------------------------------- .text:00025CA0 .text:00025CA0 loc_25CA0 ; CODE XREF: _IO_vfscanf+15C4j .text:00025CA0 CMP R0, R4 .text:00025CA4 BEQ loc_25CEC .text:00025CA8 LDR R1, [R11,#var_9C] .text:00025CAC CMP R1, #0 .text:00025CB0 LDRNE R3, [R1] .text:00025CB4 ORRNE R3, R3, #4 .text:00025CB8 STRNE R3, [R1] .text:00025CBC LDR R3, [R7] .text:00025CC0 TST R3, #0x8000 .text:00025CC4 BNE loc_25CD0 .text:00025CC8 MOV R0, R7 .text:00025CCC BL funlockfile .text:00025CD0 .text:00025CD0 loc_25CD0 ; CODE XREF: _IO_vfscanf+1694j .text:00025CD0 LDR R2, [R11,#var_FC] .text:00025CD4 CMP R2, #0 .text:00025CD8 B loc_255C4 .text:00025CD8 ; --------------------------------------------------------------------------- .text:00025CDC off_25CDC DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_259D8r .text:00025CE0 off_25CE0 DCD aCnt__ctype_get ; DATA XREF: _IO_vfscanf+15D4r .text:00025CE0 ; "cnt < (__ctype_get_mb_cur_max ())" .text:00025CE4 off_25CE4 DCD aVfscanf_c ; DATA XREF: _IO_vfscanf+15D8r .text:00025CE4 ; "vfscanf.c" .text:00025CE8 off_25CE8 DCD a_io_vfscanf ; DATA XREF: _IO_vfscanf+15E0r .text:00025CE8 ; "_IO_vfscanf" .text:00025CEC ; --------------------------------------------------------------------------- .text:00025CEC .text:00025CEC loc_25CEC ; CODE XREF: _IO_vfscanf+1674j .text:00025CEC LDR R12, [R11,#var_B4] .text:00025CF0 AND R3, R12, #0x108 .text:00025CF4 CMP R3, #0x100 .text:00025CF8 BNE loc_25DF4 .text:00025CFC LDR LR, [R11,#var_E4] .text:00025D00 SUB R1, R11, #-var_E0 .text:00025D04 LDMIA R1, {R1,R2} .text:00025D08 MOV R3, LR,LSL#2 .text:00025D0C LDR R0, [R1] .text:00025D10 MOV R6, R3 .text:00025D14 ADD R3, R0, R3 .text:00025D18 CMP R2, R3 .text:00025D1C BNE loc_25DF4 .text:00025D20 MOV R1, LR,LSL#3 .text:00025D24 BL realloc .text:00025D28 CMP R0, #0 .text:00025D2C STR R0, [R11,#var_DC] .text:00025D30 BNE loc_25DD4 .text:00025D34 LDR R12, [R11,#var_E4] .text:00025D38 LDR R3, [R11,#var_E0] .text:00025D3C ADD R4, R12, #1 .text:00025D40 LDR R0, [R3] .text:00025D44 MOV R1, R4,LSL#2 .text:00025D48 BL realloc .text:00025D4C CMP R0, #0 .text:00025D50 STR R0, [R11,#var_DC] .text:00025D54 BNE loc_25DB8 .text:00025D58 LDR LR, [R11,#var_E0] .text:00025D5C LDR R0, [R11,#var_A8] .text:00025D60 LDR R3, [LR] .text:00025D64 ADD R0, R0, #1 .text:00025D68 STR R0, [R11,#var_A8] .text:00025D6C LDR R1, [R11,#var_DC] .text:00025D70 ADD R3, R6, R3 .text:00025D74 STR R1, [R3,#-4] .text:00025D78 LDR R2, [R11,#var_9C] .text:00025D7C CMP R2, #0 .text:00025D80 LDRNE R3, [R2] .text:00025D84 ORRNE R3, R3, #2 .text:00025D88 STRNE R3, [R2] .text:00025D8C LDR R3, [R7] .text:00025D90 TST R3, #0x8000 .text:00025D94 BNE loc_25DA0 .text:00025D98 MOV R0, R7 .text:00025D9C BL funlockfile .text:00025DA0 .text:00025DA0 loc_25DA0 ; CODE XREF: _IO_vfscanf+1764j .text:00025DA0 LDR R3, [R11,#var_FC] .text:00025DA4 CMP R3, #0 .text:00025DA8 BEQ loc_292C0 .text:00025DAC LDR R1, [R11,#var_DC] .text:00025DB0 SUB R0, R11, #-var_38 .text:00025DB4 B loc_292BC .text:00025DB8 ; --------------------------------------------------------------------------- .text:00025DB8 .text:00025DB8 loc_25DB8 ; CODE XREF: _IO_vfscanf+1724j .text:00025DB8 SUB R12, R11, #-var_E0 .text:00025DBC LDMIA R12, {R12,LR} .text:00025DC0 STR LR, [R12] .text:00025DC4 ADD LR, LR, R6 .text:00025DC8 STR LR, [R11,#var_DC] .text:00025DCC STR R4, [R11,#var_E4] .text:00025DD0 B loc_25DF4 .text:00025DD4 ; --------------------------------------------------------------------------- .text:00025DD4 .text:00025DD4 loc_25DD4 ; CODE XREF: _IO_vfscanf+1700j .text:00025DD4 SUB R0, R11, #-var_E0 .text:00025DD8 LDMIA R0, {R0,R1} .text:00025DDC STR R1, [R0] .text:00025DE0 LDR R2, [R11,#var_E4] .text:00025DE4 ADD R1, R1, R6 .text:00025DE8 STR R1, [R11,#var_DC] .text:00025DEC MOV R2, R2,LSL#1 .text:00025DF0 STR R2, [R11,#var_E4] .text:00025DF4 .text:00025DF4 loc_25DF4 ; CODE XREF: _IO_vfscanf+16C8j .text:00025DF4 ; _IO_vfscanf+16ECj ... .text:00025DF4 LDR R3, [R11,#var_B0] .text:00025DF8 CMP R3, #0 .text:00025DFC BLE loc_25E10 .text:00025E00 SUB R3, R3, #1 .text:00025E04 CMP R3, #0 .text:00025E08 STR R3, [R11,#var_B0] .text:00025E0C BLE loc_25E88 .text:00025E10 .text:00025E10 loc_25E10 ; CODE XREF: _IO_vfscanf+17CCj .text:00025E10 CMN R10, #1 .text:00025E14 BEQ loc_25E88 .text:00025E18 LDMIB R7, {R2,R3} .text:00025E1C CMP R2, R3 .text:00025E20 BCC loc_25E34 .text:00025E24 MOV R0, R7 .text:00025E28 BL __uflow .text:00025E2C MOV R10, R0 .text:00025E30 B loc_25E3C .text:00025E34 ; --------------------------------------------------------------------------- .text:00025E34 .text:00025E34 loc_25E34 ; CODE XREF: _IO_vfscanf+17F0j .text:00025E34 LDRB R10, [R2],#1 .text:00025E38 STR R2, [R7,#4] .text:00025E3C .text:00025E3C loc_25E3C ; CODE XREF: _IO_vfscanf+1800j .text:00025E3C CMN R10, #1 .text:00025E40 LDRNE R12, [R11,#var_AC] .text:00025E44 ADDNE R12, R12, #1 .text:00025E48 STRNE R12, [R11,#var_AC] .text:00025E4C CMN R10, #1 .text:00025E50 BEQ loc_25E88 .text:00025E54 .text:00025E54 loc_25E54 ; CODE XREF: _IO_vfscanf+1594j .text:00025E54 LDR LR, =__ctype_b .text:00025E58 LDR R3, [LR] .text:00025E5C MOV R2, R10,LSL#1 .text:00025E60 ADD R2, R2, R3 .text:00025E64 LDRB R1, [R2,#1] .text:00025E68 TST R1, #0x20 .text:00025E6C BEQ loc_25BC8 .text:00025E70 LDR R0, [R11,#var_AC] .text:00025E74 SUB R0, R0, #1 .text:00025E78 STR R0, [R11,#var_AC] .text:00025E7C AND R1, R10, #0xFF .text:00025E80 MOV R0, R7 .text:00025E84 BL _IO_sputbackc .text:00025E88 .text:00025E88 loc_25E88 ; CODE XREF: _IO_vfscanf+17DCj .text:00025E88 ; _IO_vfscanf+17E4j ... .text:00025E88 CMP R8, #0 .text:00025E8C BNE loc_29218 .text:00025E90 LDR R2, [R11,#var_DC] .text:00025E94 LDR R1, [R11,#var_B4] .text:00025E98 STR R8, [R2],#4 .text:00025E9C TST R1, #0x100 .text:00025EA0 STR R2, [R11,#var_DC] .text:00025EA4 BEQ loc_25ED8 .text:00025EA8 LDR R3, [R11,#var_E0] .text:00025EAC LDR R0, [R3] .text:00025EB0 LDR R12, [R11,#var_E4] .text:00025EB4 RSB R3, R0, R2 .text:00025EB8 MOV R1, R3,ASR#2 .text:00025EBC CMP R1, R12 .text:00025EC0 BEQ loc_25ED8 .text:00025EC4 MOV R1, R1,LSL#2 .text:00025EC8 BL realloc .text:00025ECC CMP R0, #0 .text:00025ED0 LDRNE LR, [R11,#var_E0] .text:00025ED4 STRNE R0, [LR] .text:00025ED8 .text:00025ED8 loc_25ED8 ; CODE XREF: _IO_vfscanf+1874j .text:00025ED8 ; _IO_vfscanf+1890j .text:00025ED8 LDR R0, [R11,#var_A8] .text:00025EDC ADD R0, R0, #1 .text:00025EE0 STR R0, [R11,#var_A8] .text:00025EE4 B loc_29218 .text:00025EE8 ; --------------------------------------------------------------------------- .text:00025EE8 .text:00025EE8 loc_25EE8 ; CODE XREF: _IO_vfscanf+898j .text:00025EE8 ; DATA XREF: _IO_vfscanf+8A0o .text:00025EE8 MOV R1, #0x10 ; jumptable 00024EC8 cases 51,83 .text:00025EEC STR R1, [R11,#var_C0] .text:00025EF0 MOV R2, #0 .text:00025EF4 STR R2, [R11,#var_C4] .text:00025EF8 B loc_25F44 .text:00025EFC ; --------------------------------------------------------------------------- .text:00025EFC .text:00025EFC loc_25EFC ; CODE XREF: _IO_vfscanf+898j .text:00025EFC ; DATA XREF: _IO_vfscanf+8A0o .text:00025EFC MOV R3, #8 ; jumptable 00024EC8 case 74 .text:00025F00 STR R3, [R11,#var_C0] .text:00025F04 MOV R12, #0 .text:00025F08 B loc_25F40 .text:00025F0C ; --------------------------------------------------------------------------- .text:00025F0C .text:00025F0C loc_25F0C ; CODE XREF: _IO_vfscanf+898j .text:00025F0C ; DATA XREF: _IO_vfscanf+8A0o .text:00025F0C MOV LR, #0xA ; jumptable 00024EC8 case 80 .text:00025F10 STR LR, [R11,#var_C0] .text:00025F14 MOV R0, #0 .text:00025F18 STR R0, [R11,#var_C4] .text:00025F1C B loc_25F44 .text:00025F20 ; --------------------------------------------------------------------------- .text:00025F20 .text:00025F20 loc_25F20 ; CODE XREF: _IO_vfscanf+898j .text:00025F20 ; DATA XREF: _IO_vfscanf+8A0o .text:00025F20 MOV R1, #0xA ; jumptable 00024EC8 case 63 .text:00025F24 STR R1, [R11,#var_C0] .text:00025F28 MOV R2, #1 .text:00025F2C STR R2, [R11,#var_C4] .text:00025F30 B loc_25F44 .text:00025F34 ; --------------------------------------------------------------------------- .text:00025F34 .text:00025F34 loc_25F34 ; CODE XREF: _IO_vfscanf+898j .text:00025F34 ; DATA XREF: _IO_vfscanf+8A0o .text:00025F34 MOV R3, #0 ; jumptable 00024EC8 case 68 .text:00025F38 STR R3, [R11,#var_C0] .text:00025F3C MOV R12, #1 .text:00025F40 .text:00025F40 loc_25F40 ; CODE XREF: _IO_vfscanf+18D8j .text:00025F40 STR R12, [R11,#var_C4] .text:00025F44 .text:00025F44 loc_25F44 ; CODE XREF: _IO_vfscanf+18C8j .text:00025F44 ; _IO_vfscanf+18ECj ... .text:00025F44 CMN R10, #1 .text:00025F48 BEQ loc_25F80 .text:00025F4C LDMIB R7, {R2,R3} .text:00025F50 CMP R2, R3 .text:00025F54 BCC loc_25F68 .text:00025F58 MOV R0, R7 .text:00025F5C BL __uflow .text:00025F60 MOV R10, R0 .text:00025F64 B loc_25F70 .text:00025F68 ; --------------------------------------------------------------------------- .text:00025F68 .text:00025F68 loc_25F68 ; CODE XREF: _IO_vfscanf+1924j .text:00025F68 LDRB R10, [R2],#1 .text:00025F6C STR R2, [R7,#4] .text:00025F70 .text:00025F70 loc_25F70 ; CODE XREF: _IO_vfscanf+1934j .text:00025F70 CMN R10, #1 .text:00025F74 LDRNE LR, [R11,#var_AC] .text:00025F78 ADDNE LR, LR, #1 .text:00025F7C STRNE LR, [R11,#var_AC] .text:00025F80 .text:00025F80 loc_25F80 ; CODE XREF: _IO_vfscanf+1918j .text:00025F80 MOV R4, R10 .text:00025F84 CMN R10, #1 .text:00025F88 BEQ loc_279C4 .text:00025F8C CMP R4, #0x2B .text:00025F90 CMPNE R4, #0x2D .text:00025F94 BNE loc_2603C .text:00025F98 SUB R3, R11, #-var_F8 .text:00025F9C LDMIA R3, {R3,R12} .text:00025FA0 CMP R3, R12 .text:00025FA4 BNE loc_25FD8 .text:00025FA8 MOV R3, R12,LSL#1 .text:00025FAC CMP R3, #0x100 .text:00025FB0 MOVCC R3, #0x100 .text:00025FB4 STR R3, [R11,#var_F4] .text:00025FB8 LDR R1, [R11,#var_F0] .text:00025FBC SUB SP, SP, R3,LSL#2 .text:00025FC0 STR SP, [R11,#var_F0] .text:00025FC4 CMP R1, #0 .text:00025FC8 BEQ loc_25FD8 .text:00025FCC LDR R2, [R11,#var_F8] .text:00025FD0 MOV R0, SP .text:00025FD4 BL memcpy .text:00025FD8 .text:00025FD8 loc_25FD8 ; CODE XREF: _IO_vfscanf+1974j .text:00025FD8 ; _IO_vfscanf+1998j .text:00025FD8 LDR LR, [R11,#var_F0] .text:00025FDC LDR R0, [R11,#var_F8] .text:00025FE0 STRB R4, [LR,R0] .text:00025FE4 ADD R0, R0, #1 .text:00025FE8 STR R0, [R11,#var_F8] .text:00025FEC LDR R1, [R11,#var_B0] .text:00025FF0 MOV R2, R1 .text:00025FF4 CMP R2, #0 .text:00025FF8 SUBGT R1, R1, #1 .text:00025FFC CMN R4, #1 .text:00026000 STR R1, [R11,#var_B0] .text:00026004 BEQ loc_2603C .text:00026008 LDMIB R7, {R2,R3} .text:0002600C CMP R2, R3 .text:00026010 BCC loc_26024 .text:00026014 MOV R0, R7 .text:00026018 BL __uflow .text:0002601C MOV R10, R0 .text:00026020 B loc_2602C .text:00026024 ; --------------------------------------------------------------------------- .text:00026024 .text:00026024 loc_26024 ; CODE XREF: _IO_vfscanf+19E0j .text:00026024 LDRB R10, [R2],#1 .text:00026028 STR R2, [R7,#4] .text:0002602C .text:0002602C loc_2602C ; CODE XREF: _IO_vfscanf+19F0j .text:0002602C CMN R10, #1 .text:00026030 LDRNE R3, [R11,#var_AC] .text:00026034 ADDNE R3, R3, #1 .text:00026038 STRNE R3, [R11,#var_AC] .text:0002603C .text:0002603C loc_2603C ; CODE XREF: _IO_vfscanf+1964j .text:0002603C ; _IO_vfscanf+19D4j .text:0002603C LDR R12, [R11,#var_B0] .text:00026040 CMP R10, #0x30 .text:00026044 MOVNE R3, #0 .text:00026048 MOVEQ R3, #1 .text:0002604C CMP R12, #0 .text:00026050 MOVEQ R3, #0 .text:00026054 CMP R3, #0 .text:00026058 BEQ loc_261B8 .text:0002605C CMP R12, #0 .text:00026060 SUBGT R12, R12, #1 .text:00026064 STR R12, [R11,#var_B0] .text:00026068 LDR LR, [R11,#var_F8] .text:0002606C LDR R0, [R11,#var_F4] .text:00026070 CMP LR, R0 .text:00026074 BNE loc_260A8 .text:00026078 MOV R3, R0,LSL#1 .text:0002607C CMP R3, #0x100 .text:00026080 MOVCC R3, #0x100 .text:00026084 STR R3, [R11,#var_F4] .text:00026088 LDR R1, [R11,#var_F0] .text:0002608C SUB SP, SP, R3,LSL#2 .text:00026090 STR SP, [R11,#var_F0] .text:00026094 CMP R1, #0 .text:00026098 BEQ loc_260A8 .text:0002609C MOV R0, SP .text:000260A0 MOV R2, LR .text:000260A4 BL memcpy .text:000260A8 .text:000260A8 loc_260A8 ; CODE XREF: _IO_vfscanf+1A44j .text:000260A8 ; _IO_vfscanf+1A68j .text:000260A8 LDR R1, [R11,#var_F0] .text:000260AC LDR R2, [R11,#var_F8] .text:000260B0 STRB R10, [R1,R2] .text:000260B4 ADD R2, R2, #1 .text:000260B8 STR R2, [R11,#var_F8] .text:000260BC CMN R10, #1 .text:000260C0 BEQ loc_260F8 .text:000260C4 LDMIB R7, {R2,R3} .text:000260C8 CMP R2, R3 .text:000260CC BCC loc_260E0 .text:000260D0 MOV R0, R7 .text:000260D4 BL __uflow .text:000260D8 MOV R10, R0 .text:000260DC B loc_260E8 .text:000260E0 ; --------------------------------------------------------------------------- .text:000260E0 .text:000260E0 loc_260E0 ; CODE XREF: _IO_vfscanf+1A9Cj .text:000260E0 LDRB R10, [R2],#1 .text:000260E4 STR R2, [R7,#4] .text:000260E8 .text:000260E8 loc_260E8 ; CODE XREF: _IO_vfscanf+1AACj .text:000260E8 CMN R10, #1 .text:000260EC LDRNE R3, [R11,#var_AC] .text:000260F0 ADDNE R3, R3, #1 .text:000260F4 STRNE R3, [R11,#var_AC] .text:000260F8 .text:000260F8 loc_260F8 ; CODE XREF: _IO_vfscanf+1A90j .text:000260F8 MOV R2, R10 .text:000260FC LDR R12, [R11,#var_B0] .text:00026100 CMP R12, #0 .text:00026104 BEQ loc_261A4 .text:00026108 LDR LR, [R11,#var_104] .text:0002610C ADD R3, R2, #0x80 .text:00026110 CMP R3, LR .text:00026114 LDRLS R0, =__ctype_tolower .text:00026118 LDRLS R3, [R0] .text:0002611C LDRLS R3, [R3,R2,LSL#2] .text:00026120 MOVHI R3, R2 .text:00026124 CMP R3, #0x78 .text:00026128 BNE loc_261A4 .text:0002612C LDR R1, [R11,#var_C0] .text:00026130 MOV R3, R1 .text:00026134 CMP R3, #0 .text:00026138 MOVEQ R1, #0x10 .text:0002613C CMP R1, #0x10 .text:00026140 STR R1, [R11,#var_C0] .text:00026144 BNE loc_261B8 .text:00026148 LDR R12, [R11,#var_B0] .text:0002614C MOV LR, R12 .text:00026150 CMP LR, #0 .text:00026154 SUBGT R12, R12, #1 .text:00026158 CMN R2, #1 .text:0002615C STR R12, [R11,#var_B0] .text:00026160 BEQ loc_261B8 .text:00026164 LDMIB R7, {R2,R3} .text:00026168 CMP R2, R3 .text:0002616C BCC loc_26180 .text:00026170 MOV R0, R7 .text:00026174 BL __uflow .text:00026178 MOV R10, R0 .text:0002617C B loc_26188 .text:00026180 ; --------------------------------------------------------------------------- .text:00026180 .text:00026180 loc_26180 ; CODE XREF: _IO_vfscanf+1B3Cj .text:00026180 LDRB R10, [R2],#1 .text:00026184 STR R2, [R7,#4] .text:00026188 .text:00026188 loc_26188 ; CODE XREF: _IO_vfscanf+1B4Cj .text:00026188 CMN R10, #1 .text:0002618C LDRNE R0, [R11,#var_AC] .text:00026190 ADDNE R0, R0, #1 .text:00026194 STRNE R0, [R11,#var_AC] .text:00026198 B loc_261B8 .text:00026198 ; --------------------------------------------------------------------------- .text:0002619C off_2619C DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_25E54r .text:000261A0 off_261A0 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+1AE4r .text:000261A4 ; --------------------------------------------------------------------------- .text:000261A4 .text:000261A4 loc_261A4 ; CODE XREF: _IO_vfscanf+1AD4j .text:000261A4 ; _IO_vfscanf+1AF8j .text:000261A4 LDR R1, [R11,#var_C0] .text:000261A8 MOV R2, R1 .text:000261AC CMP R2, #0 .text:000261B0 MOVEQ R1, #8 .text:000261B4 STR R1, [R11,#var_C0] .text:000261B8 .text:000261B8 loc_261B8 ; CODE XREF: _IO_vfscanf+1A28j .text:000261B8 ; _IO_vfscanf+1B14j ... .text:000261B8 LDR R3, [R11,#var_C0] .text:000261BC MOV R12, R3 .text:000261C0 CMP R12, #0 .text:000261C4 MOVEQ R3, #0xA .text:000261C8 CMP R3, #0xA .text:000261CC STR R3, [R11,#var_C0] .text:000261D0 BNE loc_26844 .text:000261D4 LDR LR, [R11,#var_B4] .text:000261D8 TST LR, #0x400 .text:000261DC BEQ loc_26844 .text:000261E0 LDR R3, =_nl_current_LC_CTYPE .text:000261E4 LDR R2, [R3] .text:000261E8 MOV R0, #0 .text:000261EC STR R0, [R11,#var_108] .text:000261F0 LDR R1, [R2,#0x6C] .text:000261F4 LDR R2, [R11,#var_B0] .text:000261F8 CMN R10, #1 .text:000261FC CMPNE R2, R0 .text:00026200 SUB R1, R1, #1 .text:00026204 STR R1, [R11,#var_10C] .text:00026208 BEQ loc_26B34 .text:0002620C SUB R3, R11, #-var_70 .text:00026210 STR R3, [R11,#var_114] .text:00026214 .text:00026214 loc_26214 ; CODE XREF: _IO_vfscanf+220Cj .text:00026214 MOV R12, #0 .text:00026218 .text:00026218 loc_26218 ; CODE XREF: _IO_vfscanf+1DACj .text:00026218 ADD R2, R12, #0x14 .text:0002621C LDR LR, [R11,#var_B0] .text:00026220 MOV R2, R2,LSL#16 .text:00026224 LDR R0, [R11,#var_108] .text:00026228 MOV R2, R2,LSR#16 .text:0002622C LDR R1, =_nl_current_LC_CTYPE .text:00026230 CMP LR, #0 .text:00026234 MOV R9, LR .text:00026238 MOVLE R9, 0x7FFFFFFF .text:0002623C LDR R3, [R1] .text:00026240 CMP R0, #0 .text:00026244 ADD R3, R3, #0x20 .text:00026248 LDR R1, [R3,R2,LSL#2] .text:0002624C MOV R0, R12,LSL#2 .text:00026250 LDR R2, [R11,#var_114] .text:00026254 MOV R6, R0 .text:00026258 STR R1, [R2,R0] .text:0002625C BLE loc_26290 .text:00026260 LDR R4, [R11,#var_114] .text:00026264 MOV R5, R6 .text:00026268 LDR R8, [R11,#var_108] .text:0002626C .text:0002626C loc_2626C ; CODE XREF: _IO_vfscanf+1C5Cj .text:0002626C LDR R0, [R4,R5] .text:00026270 STR R12, [R11,#var_118] .text:00026274 MOV R1, #0 .text:00026278 BL rawmemchr .text:0002627C ADD R0, R0, #1 .text:00026280 STR R0, [R4,R5] .text:00026284 SUBS R8, R8, #1 .text:00026288 LDR R12, [R11,#var_118] .text:0002628C BNE loc_2626C .text:00026290 .text:00026290 loc_26290 ; CODE XREF: _IO_vfscanf+1C2Cj .text:00026290 LDR R3, [R11,#var_114] .text:00026294 LDR R4, [R3,R6] .text:00026298 LDRB R2, [R4] .text:0002629C CMP R9, #0 .text:000262A0 MOVLE R3, #0 .text:000262A4 MOVGT R3, #1 .text:000262A8 CMP R2, R10 .text:000262AC B loc_26318 .text:000262B0 ; --------------------------------------------------------------------------- .text:000262B0 .text:000262B0 loc_262B0 ; CODE XREF: _IO_vfscanf+1CFCj .text:000262B0 CMN R10, #1 .text:000262B4 BEQ loc_262F4 .text:000262B8 LDMIB R7, {R2,R3} .text:000262BC CMP R2, R3 .text:000262C0 BCC loc_262DC .text:000262C4 STR R12, [R11,#var_118] .text:000262C8 MOV R0, R7 .text:000262CC BL __uflow .text:000262D0 MOV R10, R0 .text:000262D4 LDR R12, [R11,#var_118] .text:000262D8 B loc_262E4 .text:000262DC ; --------------------------------------------------------------------------- .text:000262DC .text:000262DC loc_262DC ; CODE XREF: _IO_vfscanf+1C90j .text:000262DC LDRB R10, [R2],#1 .text:000262E0 STR R2, [R7,#4] .text:000262E4 .text:000262E4 loc_262E4 ; CODE XREF: _IO_vfscanf+1CA8j .text:000262E4 CMN R10, #1 .text:000262E8 LDRNE LR, [R11,#var_AC] .text:000262EC ADDNE LR, LR, #1 .text:000262F0 STRNE LR, [R11,#var_AC] .text:000262F4 .text:000262F4 loc_262F4 ; CODE XREF: _IO_vfscanf+1C84j .text:000262F4 MOV R1, R10 .text:000262F8 CMN R10, #1 .text:000262FC BEQ loc_26330 .text:00026300 SUB R9, R9, #1 .text:00026304 LDRB R2, [R4] .text:00026308 CMP R9, #0 .text:0002630C MOVLE R3, #0 .text:00026310 MOVGT R3, #1 .text:00026314 CMP R2, R1 .text:00026318 .text:00026318 loc_26318 ; CODE XREF: _IO_vfscanf+1C7Cj .text:00026318 MOVNE R3, #0 .text:0002631C CMP R3, #0 .text:00026320 BEQ loc_26330 .text:00026324 LDRB R3, [R4,#1]! .text:00026328 CMP R3, #0 .text:0002632C BNE loc_262B0 .text:00026330 .text:00026330 loc_26330 ; CODE XREF: _IO_vfscanf+1CCCj .text:00026330 ; _IO_vfscanf+1CF0j .text:00026330 LDRB R3, [R4] .text:00026334 CMP R3, #0 .text:00026338 BEQ loc_265B4 .text:0002633C LDR R0, [R11,#var_114] .text:00026340 LDR R3, [R0,R6] .text:00026344 ADD R5, R12, #1 .text:00026348 CMP R4, R3 .text:0002634C BLS loc_263B0 .text:00026350 CMN R10, #1 .text:00026354 BEQ loc_26370 .text:00026358 LDR R1, [R11,#var_AC] .text:0002635C SUB R1, R1, #1 .text:00026360 STR R1, [R11,#var_AC] .text:00026364 MOV R0, R7 .text:00026368 AND R1, R10, #0xFF .text:0002636C BL _IO_sputbackc .text:00026370 .text:00026370 loc_26370 ; CODE XREF: _IO_vfscanf+1D24j .text:00026370 LDR R2, [R11,#var_114] .text:00026374 LDR R3, [R2,R6] .text:00026378 SUB R4, R4, #1 .text:0002637C CMP R4, R3 .text:00026380 BLS loc_263AC .text:00026384 .text:00026384 loc_26384 ; CODE XREF: _IO_vfscanf+1D78j .text:00026384 LDRB R1, [R4],#-1 .text:00026388 MOV R0, R7 .text:0002638C BL _IO_sputbackc .text:00026390 LDR R12, [R11,#var_114] .text:00026394 LDR LR, [R11,#var_AC] .text:00026398 LDR R3, [R12,R6] .text:0002639C SUB LR, LR, #1 .text:000263A0 STR LR, [R11,#var_AC] .text:000263A4 CMP R4, R3 .text:000263A8 BHI loc_26384 .text:000263AC .text:000263AC loc_263AC ; CODE XREF: _IO_vfscanf+1D50j .text:000263AC LDRB R10, [R4] .text:000263B0 .text:000263B0 loc_263B0 ; CODE XREF: _IO_vfscanf+1D1Cj .text:000263B0 LDR R2, [R11,#var_114] .text:000263B4 LDR R0, [R2,R6] .text:000263B8 MOV R12, R5 .text:000263BC STR R12, [R11,#var_118] .text:000263C0 MOV R1, #0 .text:000263C4 BL rawmemchr .text:000263C8 LDR R12, [R11,#var_118] .text:000263CC ADD R0, R0, #1 .text:000263D0 LDR R3, [R11,#var_114] .text:000263D4 CMP R12, #9 .text:000263D8 STR R0, [R3,R6] .text:000263DC BLE loc_26218 .text:000263E0 .text:000263E0 loc_263E0 ; CODE XREF: _IO_vfscanf+1FA0j .text:000263E0 CMP R12, #0xA .text:000263E4 BNE loc_265A0 .text:000263E8 SUB R0, R11, #-var_10C .text:000263EC LDMIA R0, {R0,LR} .text:000263F0 ADD R8, LR, #1 .text:000263F4 CMP R8, R0 .text:000263F8 BGT loc_265A0 .text:000263FC LDR R9, [R11,#var_114] .text:00026400 .text:00026400 loc_26400 ; CODE XREF: _IO_vfscanf+1F6Cj .text:00026400 MOV R12, #0 .text:00026404 .text:00026404 loc_26404 ; CODE XREF: _IO_vfscanf+1F30j .text:00026404 MOV R3, R12,LSL#2 .text:00026408 LDR R1, [R11,#var_B0] .text:0002640C MOV R6, R3 .text:00026410 LDR R2, [R11,#var_114] .text:00026414 CMP R1, #0 .text:00026418 MOV R5, R1 .text:0002641C LDR R4, [R2,R3] .text:00026420 MOVLE R5, 0x7FFFFFFF .text:00026424 LDRB R2, [R4] .text:00026428 CMP R5, #0 .text:0002642C MOVLE R3, #0 .text:00026430 MOVGT R3, #1 .text:00026434 CMP R2, R10 .text:00026438 B loc_264A4 .text:0002643C ; --------------------------------------------------------------------------- .text:0002643C .text:0002643C loc_2643C ; CODE XREF: _IO_vfscanf+1E88j .text:0002643C CMN R10, #1 .text:00026440 BEQ loc_26480 .text:00026444 LDMIB R7, {R2,R3} .text:00026448 CMP R2, R3 .text:0002644C BCC loc_26468 .text:00026450 STR R12, [R11,#var_118] .text:00026454 MOV R0, R7 .text:00026458 BL __uflow .text:0002645C MOV R10, R0 .text:00026460 LDR R12, [R11,#var_118] .text:00026464 B loc_26470 .text:00026468 ; --------------------------------------------------------------------------- .text:00026468 .text:00026468 loc_26468 ; CODE XREF: _IO_vfscanf+1E1Cj .text:00026468 LDRB R10, [R2],#1 .text:0002646C STR R2, [R7,#4] .text:00026470 .text:00026470 loc_26470 ; CODE XREF: _IO_vfscanf+1E34j .text:00026470 CMN R10, #1 .text:00026474 LDRNE R3, [R11,#var_AC] .text:00026478 ADDNE R3, R3, #1 .text:0002647C STRNE R3, [R11,#var_AC] .text:00026480 .text:00026480 loc_26480 ; CODE XREF: _IO_vfscanf+1E10j .text:00026480 MOV R1, R10 .text:00026484 CMN R10, #1 .text:00026488 BEQ loc_264BC .text:0002648C SUB R5, R5, #1 .text:00026490 LDRB R2, [R4] .text:00026494 CMP R5, #0 .text:00026498 MOVLE R3, #0 .text:0002649C MOVGT R3, #1 .text:000264A0 CMP R2, R1 .text:000264A4 .text:000264A4 loc_264A4 ; CODE XREF: _IO_vfscanf+1E08j .text:000264A4 MOVNE R3, #0 .text:000264A8 CMP R3, #0 .text:000264AC BEQ loc_264BC .text:000264B0 LDRB R3, [R4,#1]! .text:000264B4 CMP R3, #0 .text:000264B8 BNE loc_2643C .text:000264BC .text:000264BC loc_264BC ; CODE XREF: _IO_vfscanf+1E58j .text:000264BC ; _IO_vfscanf+1E7Cj .text:000264BC LDRB R3, [R4] .text:000264C0 CMP R3, #0 .text:000264C4 BEQ loc_26578 .text:000264C8 LDR LR, [R11,#var_114] .text:000264CC LDR R3, [LR,R6] .text:000264D0 ADD R5, R12, #1 .text:000264D4 CMP R4, R3 .text:000264D8 BLS loc_2653C .text:000264DC CMN R10, #1 .text:000264E0 BEQ loc_264FC .text:000264E4 LDR R0, [R11,#var_AC] .text:000264E8 SUB R0, R0, #1 .text:000264EC STR R0, [R11,#var_AC] .text:000264F0 AND R1, R10, #0xFF .text:000264F4 MOV R0, R7 .text:000264F8 BL _IO_sputbackc .text:000264FC .text:000264FC loc_264FC ; CODE XREF: _IO_vfscanf+1EB0j .text:000264FC LDR R1, [R11,#var_114] .text:00026500 LDR R3, [R1,R6] .text:00026504 SUB R4, R4, #1 .text:00026508 CMP R4, R3 .text:0002650C BLS loc_26538 .text:00026510 .text:00026510 loc_26510 ; CODE XREF: _IO_vfscanf+1F04j .text:00026510 LDRB R1, [R4],#-1 .text:00026514 MOV R0, R7 .text:00026518 BL _IO_sputbackc .text:0002651C LDR R2, [R11,#var_114] .text:00026520 LDR R12, [R11,#var_AC] .text:00026524 LDR R3, [R2,R6] .text:00026528 SUB R12, R12, #1 .text:0002652C STR R12, [R11,#var_AC] .text:00026530 CMP R4, R3 .text:00026534 BHI loc_26510 .text:00026538 .text:00026538 loc_26538 ; CODE XREF: _IO_vfscanf+1EDCj .text:00026538 LDRB R10, [R4] .text:0002653C .text:0002653C loc_2653C ; CODE XREF: _IO_vfscanf+1EA8j .text:0002653C LDR R0, [R9,R6] .text:00026540 MOV R12, R5 .text:00026544 STR R12, [R11,#var_118] .text:00026548 MOV R1, #0 .text:0002654C BL rawmemchr .text:00026550 LDR R12, [R11,#var_118] .text:00026554 ADD R0, R0, #1 .text:00026558 STR R0, [R9,R6] .text:0002655C CMP R12, #9 .text:00026560 BLE loc_26404 .text:00026564 .text:00026564 loc_26564 ; CODE XREF: _IO_vfscanf+1F5Cj .text:00026564 CMP R12, #9 .text:00026568 BGT loc_26590 .text:0002656C STR R8, [R11,#var_108] .text:00026570 STR R8, [R11,#var_10C] .text:00026574 B loc_265A0 .text:00026578 ; --------------------------------------------------------------------------- .text:00026578 .text:00026578 loc_26578 ; CODE XREF: _IO_vfscanf+1E94j .text:00026578 LDR LR, [R11,#var_B0] .text:0002657C MOV R0, LR .text:00026580 CMP R0, #0 .text:00026584 MOVGT LR, R5 .text:00026588 STR LR, [R11,#var_B0] .text:0002658C B loc_26564 .text:00026590 ; --------------------------------------------------------------------------- .text:00026590 .text:00026590 loc_26590 ; CODE XREF: _IO_vfscanf+1F38j .text:00026590 LDR R1, [R11,#var_10C] .text:00026594 ADD R8, R8, #1 .text:00026598 CMP R8, R1 .text:0002659C BLE loc_26400 .text:000265A0 .text:000265A0 loc_265A0 ; CODE XREF: _IO_vfscanf+1DB4j .text:000265A0 ; _IO_vfscanf+1DC8j ... .text:000265A0 CMP R12, #9 .text:000265A4 BGT loc_265D4 .text:000265A8 ADD R10, R12, #0x30 .text:000265AC B loc_2678C .text:000265AC ; --------------------------------------------------------------------------- .text:000265B0 off_265B0 DCD _nl_current_LC_CTYPE ; DATA XREF: _IO_vfscanf+1BB0r .text:000265B0 ; _IO_vfscanf+1BFCr .text:000265B4 ; --------------------------------------------------------------------------- .text:000265B4 .text:000265B4 loc_265B4 ; CODE XREF: _IO_vfscanf+1D08j .text:000265B4 LDR R2, [R11,#var_B0] .text:000265B8 MOV R3, R2 .text:000265BC CMP R3, #0 .text:000265C0 MOVGT R2, R9 .text:000265C4 STR R2, [R11,#var_B0] .text:000265C8 LDR LR, [R11,#var_108] .text:000265CC STR LR, [R11,#var_10C] .text:000265D0 B loc_263E0 .text:000265D4 ; --------------------------------------------------------------------------- .text:000265D4 .text:000265D4 loc_265D4 ; CODE XREF: _IO_vfscanf+1F74j .text:000265D4 LDR R0, [R11,#var_B4] .text:000265D8 LDR R1, [R11,#var_CC] .text:000265DC MOV R3, R0,LSR#7 .text:000265E0 CMP R1, #0 .text:000265E4 ANDNE R3, R3, #1 .text:000265E8 MOVEQ R3, #0 .text:000265EC CMP R3, #0 .text:000265F0 BEQ loc_26B34 .text:000265F4 LDR R2, [R11,#var_B0] .text:000265F8 MOV R4, R1 .text:000265FC CMP R2, #0 .text:00026600 MOV R5, R2 .text:00026604 MOVLE R5, 0x7FFFFFFF .text:00026608 LDRB R2, [R1] .text:0002660C CMP R5, #0 .text:00026610 MOVLE R3, #0 .text:00026614 MOVGT R3, #1 .text:00026618 CMP R2, R10 .text:0002661C B loc_266E0 .text:00026620 ; --------------------------------------------------------------------------- .text:00026620 .text:00026620 loc_26620 ; CODE XREF: _IO_vfscanf+20B8j .text:00026620 SUB R3, R11, #-var_F8 .text:00026624 LDMIA R3, {R3,R12} .text:00026628 CMP R3, R12 .text:0002662C BNE loc_26660 .text:00026630 MOV R3, R12,LSL#1 .text:00026634 CMP R3, #0x100 .text:00026638 MOVCC R3, #0x100 .text:0002663C STR R3, [R11,#var_F4] .text:00026640 LDR R1, [R11,#var_F0] .text:00026644 SUB SP, SP, R3,LSL#2 .text:00026648 STR SP, [R11,#var_F0] .text:0002664C CMP R1, #0 .text:00026650 BEQ loc_26660 .text:00026654 LDR R2, [R11,#var_F8] .text:00026658 MOV R0, SP .text:0002665C BL memcpy .text:00026660 .text:00026660 loc_26660 ; CODE XREF: _IO_vfscanf+1FFCj .text:00026660 ; _IO_vfscanf+2020j .text:00026660 LDR LR, [R11,#var_F0] .text:00026664 LDR R0, [R11,#var_F8] .text:00026668 STRB R10, [LR,R0] .text:0002666C ADD R0, R0, #1 .text:00026670 STR R0, [R11,#var_F8] .text:00026674 LDRB R3, [R4,#1]! .text:00026678 CMP R3, #0 .text:0002667C BEQ loc_266EC .text:00026680 CMN R10, #1 .text:00026684 BEQ loc_266BC .text:00026688 LDMIB R7, {R2,R3} .text:0002668C CMP R2, R3 .text:00026690 BCC loc_266A4 .text:00026694 MOV R0, R7 .text:00026698 BL __uflow .text:0002669C MOV R10, R0 .text:000266A0 B loc_266AC .text:000266A4 ; --------------------------------------------------------------------------- .text:000266A4 .text:000266A4 loc_266A4 ; CODE XREF: _IO_vfscanf+2060j .text:000266A4 LDRB R10, [R2],#1 .text:000266A8 STR R2, [R7,#4] .text:000266AC .text:000266AC loc_266AC ; CODE XREF: _IO_vfscanf+2070j .text:000266AC CMN R10, #1 .text:000266B0 LDRNE R1, [R11,#var_AC] .text:000266B4 ADDNE R1, R1, #1 .text:000266B8 STRNE R1, [R11,#var_AC] .text:000266BC .text:000266BC loc_266BC ; CODE XREF: _IO_vfscanf+2054j .text:000266BC MOV R1, R10 .text:000266C0 CMN R10, #1 .text:000266C4 BEQ loc_266EC .text:000266C8 SUB R5, R5, #1 .text:000266CC LDRB R2, [R4] .text:000266D0 CMP R5, #0 .text:000266D4 MOVLE R3, #0 .text:000266D8 MOVGT R3, #1 .text:000266DC CMP R2, R1 .text:000266E0 .text:000266E0 loc_266E0 ; CODE XREF: _IO_vfscanf+1FECj .text:000266E0 MOVNE R3, #0 .text:000266E4 CMP R3, #0 .text:000266E8 BNE loc_26620 .text:000266EC .text:000266EC loc_266EC ; CODE XREF: _IO_vfscanf+204Cj .text:000266EC ; _IO_vfscanf+2094j .text:000266EC LDRB R3, [R4] .text:000266F0 CMP R3, #0 .text:000266F4 BEQ loc_2676C .text:000266F8 LDR R2, [R11,#var_CC] .text:000266FC CMP R4, R2 .text:00026700 BLS loc_26B34 .text:00026704 RSB R3, R2, R4 .text:00026708 LDR R12, [R11,#var_F8] .text:0002670C CMN R10, #1 .text:00026710 RSB R12, R3, R12 .text:00026714 STR R12, [R11,#var_F8] .text:00026718 BEQ loc_26734 .text:0002671C LDR LR, [R11,#var_AC] .text:00026720 SUB LR, LR, #1 .text:00026724 STR LR, [R11,#var_AC] .text:00026728 MOV R0, R7 .text:0002672C AND R1, R10, #0xFF .text:00026730 BL _IO_sputbackc .text:00026734 .text:00026734 loc_26734 ; CODE XREF: _IO_vfscanf+20E8j .text:00026734 LDR R0, [R11,#var_CC] .text:00026738 SUB R4, R4, #1 .text:0002673C CMP R4, R0 .text:00026740 BLS loc_26A34 .text:00026744 .text:00026744 loc_26744 ; CODE XREF: _IO_vfscanf+2134j .text:00026744 LDR R1, [R11,#var_AC] .text:00026748 SUB R1, R1, #1 .text:0002674C STR R1, [R11,#var_AC] .text:00026750 LDRB R1, [R4],#-1 .text:00026754 MOV R0, R7 .text:00026758 BL _IO_sputbackc .text:0002675C LDR R2, [R11,#var_CC] .text:00026760 CMP R4, R2 .text:00026764 BHI loc_26744 .text:00026768 B loc_26A34 .text:0002676C ; --------------------------------------------------------------------------- .text:0002676C .text:0002676C loc_2676C ; CODE XREF: _IO_vfscanf+20C4j .text:0002676C LDR R3, [R11,#var_B0] .text:00026770 LDR LR, [R11,#var_F8] .text:00026774 MOV R12, R3 .text:00026778 CMP R12, #0 .text:0002677C MOVGT R3, R5 .text:00026780 STR R3, [R11,#var_B0] .text:00026784 SUB LR, LR, #1 .text:00026788 STR LR, [R11,#var_F8] .text:0002678C .text:0002678C loc_2678C ; CODE XREF: _IO_vfscanf+1F7Cj .text:0002678C SUB R0, R11, #-var_F8 .text:00026790 LDMIA R0, {R0,R1} .text:00026794 CMP R0, R1 .text:00026798 BNE loc_267CC .text:0002679C MOV R3, R1,LSL#1 .text:000267A0 CMP R3, #0x100 .text:000267A4 MOVCC R3, #0x100 .text:000267A8 STR R3, [R11,#var_F4] .text:000267AC LDR R1, [R11,#var_F0] .text:000267B0 SUB SP, SP, R3,LSL#2 .text:000267B4 STR SP, [R11,#var_F0] .text:000267B8 CMP R1, #0 .text:000267BC BEQ loc_267CC .text:000267C0 LDR R2, [R11,#var_F8] .text:000267C4 MOV R0, SP .text:000267C8 BL memcpy .text:000267CC .text:000267CC loc_267CC ; CODE XREF: _IO_vfscanf+2168j .text:000267CC ; _IO_vfscanf+218Cj .text:000267CC LDR R2, [R11,#var_F0] .text:000267D0 LDR R3, [R11,#var_F8] .text:000267D4 STRB R10, [R2,R3] .text:000267D8 ADD R3, R3, #1 .text:000267DC STR R3, [R11,#var_F8] .text:000267E0 LDR R12, [R11,#var_B0] .text:000267E4 MOV LR, R12 .text:000267E8 CMP LR, #0 .text:000267EC SUBGT R12, R12, #1 .text:000267F0 CMN R10, #1 .text:000267F4 STR R12, [R11,#var_B0] .text:000267F8 BEQ loc_26830 .text:000267FC LDMIB R7, {R2,R3} .text:00026800 CMP R2, R3 .text:00026804 BCC loc_26818 .text:00026808 MOV R0, R7 .text:0002680C BL __uflow .text:00026810 MOV R10, R0 .text:00026814 B loc_26820 .text:00026818 ; --------------------------------------------------------------------------- .text:00026818 .text:00026818 loc_26818 ; CODE XREF: _IO_vfscanf+21D4j .text:00026818 LDRB R10, [R2],#1 .text:0002681C STR R2, [R7,#4] .text:00026820 .text:00026820 loc_26820 ; CODE XREF: _IO_vfscanf+21E4j .text:00026820 CMN R10, #1 .text:00026824 LDRNE R0, [R11,#var_AC] .text:00026828 ADDNE R0, R0, #1 .text:0002682C STRNE R0, [R11,#var_AC] .text:00026830 .text:00026830 loc_26830 ; CODE XREF: _IO_vfscanf+21C8j .text:00026830 LDR R1, [R11,#var_B0] .text:00026834 CMN R10, #1 .text:00026838 CMPNE R1, #0 .text:0002683C BNE loc_26214 .text:00026840 B loc_26B34 .text:00026844 ; --------------------------------------------------------------------------- .text:00026844 .text:00026844 loc_26844 ; CODE XREF: _IO_vfscanf+1BA0j .text:00026844 ; _IO_vfscanf+1BACj .text:00026844 LDR R2, [R11,#var_B0] .text:00026848 CMN R10, #1 .text:0002684C CMPNE R2, #0 .text:00026850 BEQ loc_26B34 .text:00026854 LDR R3, [R11,#var_C0] .text:00026858 CMP R3, #0x10 .text:0002685C LDREQ R12, =__ctype_b .text:00026860 LDREQ R3, [R12] .text:00026864 BEQ loc_26B20 .text:00026868 .text:00026868 loc_26868 ; CODE XREF: _IO_vfscanf+24E4j .text:00026868 LDR LR, =__ctype_b .text:0002686C LDR R3, [LR] .text:00026870 MOV R2, R10,LSL#1 .text:00026874 ADD R2, R2, R3 .text:00026878 LDRB R1, [R2,#1] .text:0002687C TST R1, #8 .text:00026880 BEQ loc_26894 .text:00026884 LDR R0, [R11,#var_C0] .text:00026888 SUB R3, R10, #0x30 .text:0002688C CMP R3, R0 .text:00026890 BLT loc_26A5C .text:00026894 .text:00026894 loc_26894 ; CODE XREF: _IO_vfscanf+2250j .text:00026894 LDR R1, [R11,#var_C0] .text:00026898 CMP R1, #0xA .text:0002689C BNE loc_26B34 .text:000268A0 LDR R2, [R11,#var_B4] .text:000268A4 LDR R12, [R11,#var_CC] .text:000268A8 MOV R3, R2,LSR#7 .text:000268AC CMP R12, #0 .text:000268B0 ANDNE R3, R3, #1 .text:000268B4 MOVEQ R3, #0 .text:000268B8 CMP R3, #0 .text:000268BC BEQ loc_26B34 .text:000268C0 LDR LR, [R11,#var_B0] .text:000268C4 MOV R4, R12 .text:000268C8 LDRB R2, [R12] .text:000268CC CMP LR, #0 .text:000268D0 MOV R5, LR .text:000268D4 MOVLE R5, 0x7FFFFFFF .text:000268D8 CMP R5, #0 .text:000268DC MOVLE R3, #0 .text:000268E0 MOVGT R3, #1 .text:000268E4 CMP R2, R10 .text:000268E8 B loc_269AC .text:000268EC ; --------------------------------------------------------------------------- .text:000268EC .text:000268EC loc_268EC ; CODE XREF: _IO_vfscanf+2384j .text:000268EC SUB R0, R11, #-var_F8 .text:000268F0 LDMIA R0, {R0,R1} .text:000268F4 CMP R0, R1 .text:000268F8 BNE loc_2692C .text:000268FC MOV R3, R1,LSL#1 .text:00026900 CMP R3, #0x100 .text:00026904 MOVCC R3, #0x100 .text:00026908 STR R3, [R11,#var_F4] .text:0002690C LDR R1, [R11,#var_F0] .text:00026910 SUB SP, SP, R3,LSL#2 .text:00026914 STR SP, [R11,#var_F0] .text:00026918 CMP R1, #0 .text:0002691C BEQ loc_2692C .text:00026920 LDR R2, [R11,#var_F8] .text:00026924 MOV R0, SP .text:00026928 BL memcpy .text:0002692C .text:0002692C loc_2692C ; CODE XREF: _IO_vfscanf+22C8j .text:0002692C ; _IO_vfscanf+22ECj .text:0002692C LDR R2, [R11,#var_F0] .text:00026930 LDR R3, [R11,#var_F8] .text:00026934 STRB R10, [R2,R3] .text:00026938 ADD R3, R3, #1 .text:0002693C STR R3, [R11,#var_F8] .text:00026940 LDRB R3, [R4,#1]! .text:00026944 CMP R3, #0 .text:00026948 BEQ loc_269B8 .text:0002694C CMN R10, #1 .text:00026950 BEQ loc_26988 .text:00026954 LDMIB R7, {R2,R3} .text:00026958 CMP R2, R3 .text:0002695C BCC loc_26970 .text:00026960 MOV R0, R7 .text:00026964 BL __uflow .text:00026968 MOV R10, R0 .text:0002696C B loc_26978 .text:00026970 ; --------------------------------------------------------------------------- .text:00026970 .text:00026970 loc_26970 ; CODE XREF: _IO_vfscanf+232Cj .text:00026970 LDRB R10, [R2],#1 .text:00026974 STR R2, [R7,#4] .text:00026978 .text:00026978 loc_26978 ; CODE XREF: _IO_vfscanf+233Cj .text:00026978 CMN R10, #1 .text:0002697C LDRNE R12, [R11,#var_AC] .text:00026980 ADDNE R12, R12, #1 .text:00026984 STRNE R12, [R11,#var_AC] .text:00026988 .text:00026988 loc_26988 ; CODE XREF: _IO_vfscanf+2320j .text:00026988 MOV R1, R10 .text:0002698C CMN R10, #1 .text:00026990 BEQ loc_269B8 .text:00026994 SUB R5, R5, #1 .text:00026998 LDRB R2, [R4] .text:0002699C CMP R5, #0 .text:000269A0 MOVLE R3, #0 .text:000269A4 MOVGT R3, #1 .text:000269A8 CMP R2, R1 .text:000269AC .text:000269AC loc_269AC ; CODE XREF: _IO_vfscanf+22B8j .text:000269AC MOVNE R3, #0 .text:000269B0 CMP R3, #0 .text:000269B4 BNE loc_268EC .text:000269B8 .text:000269B8 loc_269B8 ; CODE XREF: _IO_vfscanf+2318j .text:000269B8 ; _IO_vfscanf+2360j .text:000269B8 LDRB R3, [R4] .text:000269BC CMP R3, #0 .text:000269C0 BEQ loc_26A3C .text:000269C4 LDR LR, [R11,#var_CC] .text:000269C8 CMP R4, LR .text:000269CC BLS loc_26B34 .text:000269D0 RSB R3, LR, R4 .text:000269D4 LDR R0, [R11,#var_F8] .text:000269D8 CMN R10, #1 .text:000269DC RSB R0, R3, R0 .text:000269E0 STR R0, [R11,#var_F8] .text:000269E4 BEQ loc_26A00 .text:000269E8 LDR R1, [R11,#var_AC] .text:000269EC SUB R1, R1, #1 .text:000269F0 STR R1, [R11,#var_AC] .text:000269F4 MOV R0, R7 .text:000269F8 AND R1, R10, #0xFF .text:000269FC BL _IO_sputbackc .text:00026A00 .text:00026A00 loc_26A00 ; CODE XREF: _IO_vfscanf+23B4j .text:00026A00 LDR R2, [R11,#var_CC] .text:00026A04 SUB R4, R4, #1 .text:00026A08 CMP R4, R2 .text:00026A0C BLS loc_26A34 .text:00026A10 .text:00026A10 loc_26A10 ; CODE XREF: _IO_vfscanf+2400j .text:00026A10 LDR R3, [R11,#var_AC] .text:00026A14 SUB R3, R3, #1 .text:00026A18 STR R3, [R11,#var_AC] .text:00026A1C LDRB R1, [R4],#-1 .text:00026A20 MOV R0, R7 .text:00026A24 BL _IO_sputbackc .text:00026A28 LDR R12, [R11,#var_CC] .text:00026A2C CMP R4, R12 .text:00026A30 BHI loc_26A10 .text:00026A34 .text:00026A34 loc_26A34 ; CODE XREF: _IO_vfscanf+2110j .text:00026A34 ; _IO_vfscanf+2138j ... .text:00026A34 LDRB R10, [R4] .text:00026A38 B loc_26B34 .text:00026A3C ; --------------------------------------------------------------------------- .text:00026A3C .text:00026A3C loc_26A3C ; CODE XREF: _IO_vfscanf+2390j .text:00026A3C LDR LR, [R11,#var_B0] .text:00026A40 LDR R1, [R11,#var_F8] .text:00026A44 MOV R0, LR .text:00026A48 CMP R0, #0 .text:00026A4C MOVGT LR, R5 .text:00026A50 STR LR, [R11,#var_B0] .text:00026A54 SUB R1, R1, #1 .text:00026A58 STR R1, [R11,#var_F8] .text:00026A5C .text:00026A5C loc_26A5C ; CODE XREF: _IO_vfscanf+2260j .text:00026A5C ; _IO_vfscanf+2500j .text:00026A5C SUB R2, R11, #-var_F8 .text:00026A60 LDMIA R2, {R2,R3} .text:00026A64 CMP R2, R3 .text:00026A68 BNE loc_26A98 .text:00026A6C MOV R3, R3,LSL#1 .text:00026A70 CMP R3, #0x100 .text:00026A74 MOVCC R3, #0x100 .text:00026A78 STR R3, [R11,#var_F4] .text:00026A7C LDR R1, [R11,#var_F0] .text:00026A80 SUB SP, SP, R3,LSL#2 .text:00026A84 STR SP, [R11,#var_F0] .text:00026A88 CMP R1, #0 .text:00026A8C BEQ loc_26A98 .text:00026A90 MOV R0, SP .text:00026A94 BL memcpy .text:00026A98 .text:00026A98 loc_26A98 ; CODE XREF: _IO_vfscanf+2438j .text:00026A98 ; _IO_vfscanf+245Cj .text:00026A98 LDR R12, [R11,#var_F0] .text:00026A9C LDR LR, [R11,#var_F8] .text:00026AA0 STRB R10, [R12,LR] .text:00026AA4 ADD LR, LR, #1 .text:00026AA8 STR LR, [R11,#var_F8] .text:00026AAC LDR R0, [R11,#var_B0] .text:00026AB0 MOV R1, R0 .text:00026AB4 CMP R1, #0 .text:00026AB8 SUBGT R0, R0, #1 .text:00026ABC CMN R10, #1 .text:00026AC0 STR R0, [R11,#var_B0] .text:00026AC4 BEQ loc_26AFC .text:00026AC8 LDMIB R7, {R2,R3} .text:00026ACC CMP R2, R3 .text:00026AD0 BCC loc_26AE4 .text:00026AD4 MOV R0, R7 .text:00026AD8 BL __uflow .text:00026ADC MOV R10, R0 .text:00026AE0 B loc_26AEC .text:00026AE4 ; --------------------------------------------------------------------------- .text:00026AE4 .text:00026AE4 loc_26AE4 ; CODE XREF: _IO_vfscanf+24A0j .text:00026AE4 LDRB R10, [R2],#1 .text:00026AE8 STR R2, [R7,#4] .text:00026AEC .text:00026AEC loc_26AEC ; CODE XREF: _IO_vfscanf+24B0j .text:00026AEC CMN R10, #1 .text:00026AF0 LDRNE R2, [R11,#var_AC] .text:00026AF4 ADDNE R2, R2, #1 .text:00026AF8 STRNE R2, [R11,#var_AC] .text:00026AFC .text:00026AFC loc_26AFC ; CODE XREF: _IO_vfscanf+2494j .text:00026AFC LDR R3, [R11,#var_B0] .text:00026B00 CMN R10, #1 .text:00026B04 CMPNE R3, #0 .text:00026B08 BEQ loc_26B34 .text:00026B0C LDR R12, [R11,#var_C0] .text:00026B10 CMP R12, #0x10 .text:00026B14 BNE loc_26868 .text:00026B18 LDR LR, =__ctype_b .text:00026B1C LDR R3, [LR] .text:00026B20 .text:00026B20 loc_26B20 ; CODE XREF: _IO_vfscanf+2234j .text:00026B20 MOV R2, R10,LSL#1 .text:00026B24 ADD R2, R2, R3 .text:00026B28 LDRB R1, [R2,#1] .text:00026B2C TST R1, #0x10 .text:00026B30 BNE loc_26A5C .text:00026B34 .text:00026B34 loc_26B34 ; CODE XREF: _IO_vfscanf+1BD8j .text:00026B34 ; _IO_vfscanf+1FC0j ... .text:00026B34 LDR R0, [R11,#var_F8] .text:00026B38 CMP R0, #0 .text:00026B3C BEQ loc_26B5C .text:00026B40 CMP R0, #1 .text:00026B44 BNE loc_26D88 .text:00026B48 LDR R1, [R11,#var_F0] .text:00026B4C LDRB R3, [R1] .text:00026B50 CMP R3, #0x2D .text:00026B54 CMPNE R3, #0x2B .text:00026B58 BNE loc_26D88 .text:00026B5C .text:00026B5C loc_26B5C ; CODE XREF: _IO_vfscanf+250Cj .text:00026B5C LDR R2, [R11,#var_F8] .text:00026B60 LDR R12, [R11,#var_EC] .text:00026B64 CMP R2, #0 .text:00026B68 MOVNE R3, #0 .text:00026B6C MOVEQ R3, #1 .text:00026B70 TST R3, R12 .text:00026B74 BEQ loc_26D40 .text:00026B78 CMP R10, #0x28 .text:00026B7C BNE loc_26D40 .text:00026B80 LDMIB R7, {R2,R3} .text:00026B84 CMP R2, R3 .text:00026B88 BCC loc_26B9C .text:00026B8C MOV R0, R7 .text:00026B90 BL __uflow .text:00026B94 MOV R10, R0 .text:00026B98 B loc_26BA4 .text:00026B9C ; --------------------------------------------------------------------------- .text:00026B9C .text:00026B9C loc_26B9C ; CODE XREF: _IO_vfscanf+2558j .text:00026B9C LDRB R10, [R2],#1 .text:00026BA0 STR R2, [R7,#4] .text:00026BA4 .text:00026BA4 loc_26BA4 ; CODE XREF: _IO_vfscanf+2568j .text:00026BA4 CMN R10, #1 .text:00026BA8 LDRNE LR, [R11,#var_AC] .text:00026BAC ADDNE LR, LR, #1 .text:00026BB0 STRNE LR, [R11,#var_AC] .text:00026BB4 LDR R0, [R11,#var_104] .text:00026BB8 ADD R3, R10, #0x80 .text:00026BBC CMP R3, R0 .text:00026BC0 LDRLS R1, =__ctype_tolower .text:00026BC4 LDRLS R3, [R1] .text:00026BC8 LDRLS R3, [R3,R10,LSL#2] .text:00026BCC MOVHI R3, R10 .text:00026BD0 CMP R3, #0x6E .text:00026BD4 BNE loc_26D40 .text:00026BD8 CMN R10, #1 .text:00026BDC BEQ loc_26C1C .text:00026BE0 LDMIB R7, {R2,R3} .text:00026BE4 CMP R2, R3 .text:00026BE8 BCC loc_26C04 .text:00026BEC MOV R0, R7 .text:00026BF0 BL __uflow .text:00026BF4 MOV R10, R0 .text:00026BF8 B loc_26C0C .text:00026BF8 ; --------------------------------------------------------------------------- .text:00026BFC off_26BFC DCD __ctype_b ; DATA XREF: _IO_vfscanf+222Cr .text:00026BFC ; _IO_vfscanf:loc_26868r ... .text:00026C00 off_26C00 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+2590r .text:00026C04 ; --------------------------------------------------------------------------- .text:00026C04 .text:00026C04 loc_26C04 ; CODE XREF: _IO_vfscanf+25B8j .text:00026C04 LDRB R10, [R2],#1 .text:00026C08 STR R2, [R7,#4] .text:00026C0C .text:00026C0C loc_26C0C ; CODE XREF: _IO_vfscanf+25C8j .text:00026C0C CMN R10, #1 .text:00026C10 LDRNE R2, [R11,#var_AC] .text:00026C14 ADDNE R2, R2, #1 .text:00026C18 STRNE R2, [R11,#var_AC] .text:00026C1C .text:00026C1C loc_26C1C ; CODE XREF: _IO_vfscanf+25ACj .text:00026C1C LDR R12, [R11,#var_104] .text:00026C20 ADD R3, R10, #0x80 .text:00026C24 CMP R3, R12 .text:00026C28 LDRLS LR, =__ctype_tolower .text:00026C2C LDRLS R3, [LR] .text:00026C30 LDRLS R3, [R3,R10,LSL#2] .text:00026C34 MOVHI R3, R10 .text:00026C38 CMP R3, #0x69 .text:00026C3C BNE loc_26D40 .text:00026C40 CMN R10, #1 .text:00026C44 BEQ loc_26C7C .text:00026C48 LDMIB R7, {R2,R3} .text:00026C4C CMP R2, R3 .text:00026C50 BCC loc_26C64 .text:00026C54 MOV R0, R7 .text:00026C58 BL __uflow .text:00026C5C MOV R10, R0 .text:00026C60 B loc_26C6C .text:00026C64 ; --------------------------------------------------------------------------- .text:00026C64 .text:00026C64 loc_26C64 ; CODE XREF: _IO_vfscanf+2620j .text:00026C64 LDRB R10, [R2],#1 .text:00026C68 STR R2, [R7,#4] .text:00026C6C .text:00026C6C loc_26C6C ; CODE XREF: _IO_vfscanf+2630j .text:00026C6C CMN R10, #1 .text:00026C70 LDRNE R0, [R11,#var_AC] .text:00026C74 ADDNE R0, R0, #1 .text:00026C78 STRNE R0, [R11,#var_AC] .text:00026C7C .text:00026C7C loc_26C7C ; CODE XREF: _IO_vfscanf+2614j .text:00026C7C LDR R1, [R11,#var_104] .text:00026C80 ADD R3, R10, #0x80 .text:00026C84 CMP R3, R1 .text:00026C88 LDRLS R2, =__ctype_tolower .text:00026C8C LDRLS R3, [R2] .text:00026C90 LDRLS R3, [R3,R10,LSL#2] .text:00026C94 MOVHI R3, R10 .text:00026C98 CMP R3, #0x6C .text:00026C9C BNE loc_26D40 .text:00026CA0 CMN R10, #1 .text:00026CA4 BEQ loc_26D40 .text:00026CA8 LDMIB R7, {R2,R3} .text:00026CAC CMP R2, R3 .text:00026CB0 BCC loc_26CC4 .text:00026CB4 MOV R0, R7 .text:00026CB8 BL __uflow .text:00026CBC MOV R10, R0 .text:00026CC0 B loc_26CCC .text:00026CC4 ; --------------------------------------------------------------------------- .text:00026CC4 .text:00026CC4 loc_26CC4 ; CODE XREF: _IO_vfscanf+2680j .text:00026CC4 LDRB R10, [R2],#1 .text:00026CC8 STR R2, [R7,#4] .text:00026CCC .text:00026CCC loc_26CCC ; CODE XREF: _IO_vfscanf+2690j .text:00026CCC CMN R10, #1 .text:00026CD0 LDRNE R3, [R11,#var_AC] .text:00026CD4 ADDNE R3, R3, #1 .text:00026CD8 STRNE R3, [R11,#var_AC] .text:00026CDC CMP R10, #0x29 .text:00026CE0 BNE loc_26D40 .text:00026CE4 SUB R12, R11, #-var_F8 .text:00026CE8 LDMIA R12, {R12,LR} .text:00026CEC CMP R12, LR .text:00026CF0 BNE loc_26D24 .text:00026CF4 MOV R3, LR,LSL#1 .text:00026CF8 CMP R3, #0x100 .text:00026CFC MOVCC R3, #0x100 .text:00026D00 STR R3, [R11,#var_F4] .text:00026D04 LDR R1, [R11,#var_F0] .text:00026D08 SUB SP, SP, R3,LSL#2 .text:00026D0C STR SP, [R11,#var_F0] .text:00026D10 CMP R1, #0 .text:00026D14 BEQ loc_26D24 .text:00026D18 MOV R0, SP .text:00026D1C MOV R2, R12 .text:00026D20 BL memcpy .text:00026D24 .text:00026D24 loc_26D24 ; CODE XREF: _IO_vfscanf+26C0j .text:00026D24 ; _IO_vfscanf+26E4j .text:00026D24 LDR R0, [R11,#var_F0] .text:00026D28 LDR R1, [R11,#var_F8] .text:00026D2C MOV R3, #0x30 .text:00026D30 STRB R3, [R0,R1] .text:00026D34 ADD R1, R1, #1 .text:00026D38 STR R1, [R11,#var_F8] .text:00026D3C B loc_26DA8 .text:00026D40 ; --------------------------------------------------------------------------- .text:00026D40 .text:00026D40 loc_26D40 ; CODE XREF: _IO_vfscanf+2544j .text:00026D40 ; _IO_vfscanf+254Cj ... .text:00026D40 CMN R10, #1 .text:00026D44 BEQ loc_26D54 .text:00026D48 MOV R0, R7 .text:00026D4C AND R1, R10, #0xFF .text:00026D50 BL _IO_sputbackc .text:00026D54 .text:00026D54 loc_26D54 ; CODE XREF: _IO_vfscanf+2714j .text:00026D54 LDR R2, [R11,#var_9C] .text:00026D58 CMP R2, #0 .text:00026D5C LDRNE R3, [R2] .text:00026D60 ORRNE R3, R3, #2 .text:00026D64 STRNE R3, [R2] .text:00026D68 LDR R3, [R7] .text:00026D6C TST R3, #0x8000 .text:00026D70 BNE loc_26D7C .text:00026D74 MOV R0, R7 .text:00026D78 BL funlockfile .text:00026D7C .text:00026D7C loc_26D7C ; CODE XREF: _IO_vfscanf+2740j .text:00026D7C LDR R3, [R11,#var_FC] .text:00026D80 CMP R3, #0 .text:00026D84 B loc_292B0 .text:00026D88 ; --------------------------------------------------------------------------- .text:00026D88 .text:00026D88 loc_26D88 ; CODE XREF: _IO_vfscanf+2514j .text:00026D88 ; _IO_vfscanf+2528j .text:00026D88 CMN R10, #1 .text:00026D8C BEQ loc_26DA8 .text:00026D90 LDR R12, [R11,#var_AC] .text:00026D94 SUB R12, R12, #1 .text:00026D98 STR R12, [R11,#var_AC] .text:00026D9C MOV R0, R7 .text:00026DA0 AND R1, R10, #0xFF .text:00026DA4 BL _IO_sputbackc .text:00026DA8 .text:00026DA8 loc_26DA8 ; CODE XREF: _IO_vfscanf+270Cj .text:00026DA8 ; _IO_vfscanf+275Cj .text:00026DA8 LDR LR, [R11,#var_F8] .text:00026DAC LDR R0, [R11,#var_F4] .text:00026DB0 CMP LR, R0 .text:00026DB4 BNE loc_26DE8 .text:00026DB8 MOV R3, R0,LSL#1 .text:00026DBC CMP R3, #0x100 .text:00026DC0 MOVCC R3, #0x100 .text:00026DC4 STR R3, [R11,#var_F4] .text:00026DC8 LDR R1, [R11,#var_F0] .text:00026DCC SUB SP, SP, R3,LSL#2 .text:00026DD0 STR SP, [R11,#var_F0] .text:00026DD4 CMP R1, #0 .text:00026DD8 BEQ loc_26DE8 .text:00026DDC MOV R0, SP .text:00026DE0 MOV R2, LR .text:00026DE4 BL memcpy .text:00026DE8 .text:00026DE8 loc_26DE8 ; CODE XREF: _IO_vfscanf+2784j .text:00026DE8 ; _IO_vfscanf+27A8j .text:00026DE8 LDR R1, [R11,#var_F0] .text:00026DEC LDR R2, [R11,#var_F8] .text:00026DF0 MOV R3, #0 .text:00026DF4 STRB R3, [R1,R2] .text:00026DF8 LDR R12, [R11,#var_B4] .text:00026DFC ANDS R3, R12, #2 .text:00026E00 MOV R4, R3 .text:00026E04 BEQ loc_26E58 .text:00026E08 LDR LR, [R11,#var_C4] .text:00026E0C CMP LR, #0 .text:00026E10 BEQ loc_26E34 .text:00026E14 LDR R0, [R11,#var_F0] .text:00026E18 SUB R1, R11, #-var_8C .text:00026E1C LDR R2, [R11,#var_C0] .text:00026E20 AND R3, R12, #0x80 .text:00026E24 BL __strtoll_internal .text:00026E28 SUB R2, R11, #-var_D0 .text:00026E2C STMDA R2, {R0,R1} .text:00026E30 B loc_26E9C .text:00026E34 ; --------------------------------------------------------------------------- .text:00026E34 .text:00026E34 loc_26E34 ; CODE XREF: _IO_vfscanf+27E0j .text:00026E34 LDR R0, [R11,#var_F0] .text:00026E38 LDR R12, [R11,#var_B4] .text:00026E3C SUB R1, R11, #-var_8C .text:00026E40 LDR R2, [R11,#var_C0] .text:00026E44 AND R3, R12, #0x80 .text:00026E48 BL __strtoull_internal .text:00026E4C SUB LR, R11, #-var_D0 .text:00026E50 STMDA LR, {R0,R1} .text:00026E54 B loc_26E9C .text:00026E58 ; --------------------------------------------------------------------------- .text:00026E58 .text:00026E58 loc_26E58 ; CODE XREF: _IO_vfscanf+27D4j .text:00026E58 LDR R0, [R11,#var_C4] .text:00026E5C CMP R0, #0 .text:00026E60 BEQ loc_26E80 .text:00026E64 LDR R0, [R11,#var_F0] .text:00026E68 LDR R12, [R11,#var_B4] .text:00026E6C SUB R1, R11, #-var_8C .text:00026E70 LDR R2, [R11,#var_C0] .text:00026E74 AND R3, R12, #0x80 .text:00026E78 BL __strtol_internal .text:00026E7C B loc_26E98 .text:00026E80 ; --------------------------------------------------------------------------- .text:00026E80 .text:00026E80 loc_26E80 ; CODE XREF: _IO_vfscanf+2830j .text:00026E80 LDR R0, [R11,#var_F0] .text:00026E84 LDR LR, [R11,#var_B4] .text:00026E88 SUB R1, R11, #-var_8C .text:00026E8C LDR R2, [R11,#var_C0] .text:00026E90 AND R3, LR, #0x80 .text:00026E94 BL __strtoul_internal .text:00026E98 .text:00026E98 loc_26E98 ; CODE XREF: _IO_vfscanf+284Cj .text:00026E98 STR R0, [R11,#var_D4] .text:00026E9C .text:00026E9C loc_26E9C ; CODE XREF: _IO_vfscanf+2800j .text:00026E9C ; _IO_vfscanf+2824j .text:00026E9C LDR R3, [R11,#var_8C] .text:00026EA0 LDR R0, [R11,#var_F0] .text:00026EA4 CMP R0, R3 .text:00026EA8 BEQ loc_286F4 .text:00026EAC LDR R3, [R11,#var_B4] .text:00026EB0 TST R3, #8 .text:00026EB4 BNE loc_29218 .text:00026EB8 LDR R12, [R11,#var_C4] .text:00026EBC CMP R12, #0 .text:00026EC0 BNE loc_26FD0 .text:00026EC4 CMP R4, #0 .text:00026EC8 BEQ loc_26F18 .text:00026ECC LDR LR, [R11,#var_100] .text:00026ED0 CMP LR, #0 .text:00026ED4 BNE loc_26EF0 .text:00026ED8 LDR R1, [R11,#var_A0] .text:00026EDC LDR R0, [R11,#var_A8] .text:00026EE0 LDR R3, [R1],#4 .text:00026EE4 ADD R4, R0, #1 .text:00026EE8 STR R1, [R11,#var_A0] .text:00026EEC B loc_27024 .text:00026EF0 ; --------------------------------------------------------------------------- .text:00026EF0 .text:00026EF0 loc_26EF0 ; CODE XREF: _IO_vfscanf+28A4j .text:00026EF0 LDR R2, [R11,#var_98] .text:00026EF4 LDR R12, [R11,#var_100] .text:00026EF8 LDR LR, [R11,#var_A8] .text:00026EFC SUBS R3, R12, #1 .text:00026F00 ADD R4, LR, #1 .text:00026F04 BEQ loc_27020 .text:00026F08 .text:00026F08 loc_26F08 ; CODE XREF: _IO_vfscanf+28E0j .text:00026F08 ADD R2, R2, #4 .text:00026F0C SUBS R3, R3, #1 .text:00026F10 BNE loc_26F08 .text:00026F14 B loc_27020 .text:00026F18 ; --------------------------------------------------------------------------- .text:00026F18 .text:00026F18 loc_26F18 ; CODE XREF: _IO_vfscanf+2898j .text:00026F18 LDR R2, [R11,#var_B4] .text:00026F1C TST R2, #4 .text:00026F20 BEQ loc_26F58 .text:00026F24 LDR R3, [R11,#var_100] .text:00026F28 CMP R3, #0 .text:00026F2C BEQ loc_2704C .text:00026F30 LDR R2, [R11,#var_98] .text:00026F34 LDR R0, [R11,#var_100] .text:00026F38 LDR R1, [R11,#var_A8] .text:00026F3C SUBS R3, R0, #1 .text:00026F40 ADD R4, R1, #1 .text:00026F44 BEQ loc_27088 .text:00026F48 .text:00026F48 loc_26F48 ; CODE XREF: _IO_vfscanf+2920j .text:00026F48 ADD R2, R2, #4 .text:00026F4C SUBS R3, R3, #1 .text:00026F50 BNE loc_26F48 .text:00026F54 B loc_27088 .text:00026F58 ; --------------------------------------------------------------------------- .text:00026F58 .text:00026F58 loc_26F58 ; CODE XREF: _IO_vfscanf+28F0j .text:00026F58 LDR R2, [R11,#var_B4] .text:00026F5C TST R2, #0x200 .text:00026F60 BNE loc_26F98 .text:00026F64 LDR R3, [R11,#var_100] .text:00026F68 CMP R3, #0 .text:00026F6C BEQ loc_270C4 .text:00026F70 LDR R2, [R11,#var_98] .text:00026F74 LDR R0, [R11,#var_100] .text:00026F78 LDR R1, [R11,#var_A8] .text:00026F7C SUBS R3, R0, #1 .text:00026F80 ADD R4, R1, #1 .text:00026F84 BEQ loc_27100 .text:00026F88 .text:00026F88 loc_26F88 ; CODE XREF: _IO_vfscanf+2960j .text:00026F88 ADD R2, R2, #4 .text:00026F8C SUBS R3, R3, #1 .text:00026F90 BNE loc_26F88 .text:00026F94 B loc_27100 .text:00026F98 ; --------------------------------------------------------------------------- .text:00026F98 .text:00026F98 loc_26F98 ; CODE XREF: _IO_vfscanf+2930j .text:00026F98 LDR R3, [R11,#var_100] .text:00026F9C CMP R3, #0 .text:00026FA0 BEQ loc_2711C .text:00026FA4 LDR R2, [R11,#var_98] .text:00026FA8 LDR R0, [R11,#var_100] .text:00026FAC LDR R1, [R11,#var_A8] .text:00026FB0 SUBS R3, R0, #1 .text:00026FB4 ADD R4, R1, #1 .text:00026FB8 BEQ loc_27158 .text:00026FBC .text:00026FBC loc_26FBC ; CODE XREF: _IO_vfscanf+2994j .text:00026FBC ADD R2, R2, #4 .text:00026FC0 SUBS R3, R3, #1 .text:00026FC4 BNE loc_26FBC .text:00026FC8 B loc_27158 .text:00026FC8 ; --------------------------------------------------------------------------- .text:00026FCC off_26FCC DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+25F8r .text:00026FCC ; _IO_vfscanf+2658r .text:00026FD0 ; --------------------------------------------------------------------------- .text:00026FD0 .text:00026FD0 loc_26FD0 ; CODE XREF: _IO_vfscanf+2890j .text:00026FD0 CMP R4, #0 .text:00026FD4 BEQ loc_27034 .text:00026FD8 LDR R3, [R11,#var_100] .text:00026FDC CMP R3, #0 .text:00026FE0 BNE loc_26FFC .text:00026FE4 LDR LR, [R11,#var_A0] .text:00026FE8 LDR R12, [R11,#var_A8] .text:00026FEC LDR R3, [LR],#4 .text:00026FF0 ADD R4, R12, #1 .text:00026FF4 STR LR, [R11,#var_A0] .text:00026FF8 B loc_27024 .text:00026FFC ; --------------------------------------------------------------------------- .text:00026FFC .text:00026FFC loc_26FFC ; CODE XREF: _IO_vfscanf+29B0j .text:00026FFC LDR R2, [R11,#var_98] .text:00027000 LDR R0, [R11,#var_100] .text:00027004 LDR R1, [R11,#var_A8] .text:00027008 SUBS R3, R0, #1 .text:0002700C ADD R4, R1, #1 .text:00027010 BEQ loc_27020 .text:00027014 .text:00027014 loc_27014 ; CODE XREF: _IO_vfscanf+29ECj .text:00027014 ADD R2, R2, #4 .text:00027018 SUBS R3, R3, #1 .text:0002701C BNE loc_27014 .text:00027020 .text:00027020 loc_27020 ; CODE XREF: _IO_vfscanf+28D4j .text:00027020 ; _IO_vfscanf+28E4j ... .text:00027020 LDR R3, [R2] .text:00027024 .text:00027024 loc_27024 ; CODE XREF: _IO_vfscanf+28BCj .text:00027024 ; _IO_vfscanf+29C8j .text:00027024 SUB R1, R11, #-var_D0 .text:00027028 LDMDA R1, {R0,R1} .text:0002702C STMIA R3, {R0,R1} .text:00027030 B loc_27164 .text:00027034 ; --------------------------------------------------------------------------- .text:00027034 .text:00027034 loc_27034 ; CODE XREF: _IO_vfscanf+29A4j .text:00027034 LDR R2, [R11,#var_B4] .text:00027038 TST R2, #4 .text:0002703C BEQ loc_270AC .text:00027040 LDR R3, [R11,#var_100] .text:00027044 CMP R3, #0 .text:00027048 BNE loc_27064 .text:0002704C .text:0002704C loc_2704C ; CODE XREF: _IO_vfscanf+28FCj .text:0002704C LDR LR, [R11,#var_A0] .text:00027050 LDR R12, [R11,#var_A8] .text:00027054 LDR R2, [LR],#4 .text:00027058 ADD R4, R12, #1 .text:0002705C STR LR, [R11,#var_A0] .text:00027060 B loc_2708C .text:00027064 ; --------------------------------------------------------------------------- .text:00027064 .text:00027064 loc_27064 ; CODE XREF: _IO_vfscanf+2A18j .text:00027064 LDR R2, [R11,#var_98] .text:00027068 LDR R0, [R11,#var_100] .text:0002706C LDR R1, [R11,#var_A8] .text:00027070 SUBS R3, R0, #1 .text:00027074 ADD R4, R1, #1 .text:00027078 BEQ loc_27088 .text:0002707C .text:0002707C loc_2707C ; CODE XREF: _IO_vfscanf+2A54j .text:0002707C ADD R2, R2, #4 .text:00027080 SUBS R3, R3, #1 .text:00027084 BNE loc_2707C .text:00027088 .text:00027088 loc_27088 ; CODE XREF: _IO_vfscanf+2914j .text:00027088 ; _IO_vfscanf+2924j ... .text:00027088 LDR R2, [R2] .text:0002708C .text:0002708C loc_2708C ; CODE XREF: _IO_vfscanf+2A30j .text:0002708C LDRB R0, [R11,#var_D4] .text:00027090 LDRB R1, [R11,#var_D4+1] .text:00027094 ORR R1, R0, R1,LSL#8 .text:00027098 MOV R3, R1 .text:0002709C STRB R3, [R2] .text:000270A0 MOV R3, R3,ASR#8 .text:000270A4 STRB R3, [R2,#1] .text:000270A8 B loc_27164 .text:000270AC ; --------------------------------------------------------------------------- .text:000270AC .text:000270AC loc_270AC ; CODE XREF: _IO_vfscanf+2A0Cj .text:000270AC LDR R2, [R11,#var_B4] .text:000270B0 TST R2, #0x200 .text:000270B4 BNE loc_27110 .text:000270B8 LDR R3, [R11,#var_100] .text:000270BC CMP R3, #0 .text:000270C0 BNE loc_270DC .text:000270C4 .text:000270C4 loc_270C4 ; CODE XREF: _IO_vfscanf+293Cj .text:000270C4 LDR LR, [R11,#var_A0] .text:000270C8 LDR R12, [R11,#var_A8] .text:000270CC LDR R3, [LR],#4 .text:000270D0 ADD R4, R12, #1 .text:000270D4 STR LR, [R11,#var_A0] .text:000270D8 B loc_27104 .text:000270DC ; --------------------------------------------------------------------------- .text:000270DC .text:000270DC loc_270DC ; CODE XREF: _IO_vfscanf+2A90j .text:000270DC LDR R2, [R11,#var_98] .text:000270E0 LDR R0, [R11,#var_100] .text:000270E4 LDR R1, [R11,#var_A8] .text:000270E8 SUBS R3, R0, #1 .text:000270EC ADD R4, R1, #1 .text:000270F0 BEQ loc_27100 .text:000270F4 .text:000270F4 loc_270F4 ; CODE XREF: _IO_vfscanf+2ACCj .text:000270F4 ADD R2, R2, #4 .text:000270F8 SUBS R3, R3, #1 .text:000270FC BNE loc_270F4 .text:00027100 .text:00027100 loc_27100 ; CODE XREF: _IO_vfscanf+2954j .text:00027100 ; _IO_vfscanf+2964j ... .text:00027100 LDR R3, [R2] .text:00027104 .text:00027104 loc_27104 ; CODE XREF: _IO_vfscanf+2AA8j .text:00027104 LDR R2, [R11,#var_D4] .text:00027108 STR R2, [R3] .text:0002710C B loc_27164 .text:00027110 ; --------------------------------------------------------------------------- .text:00027110 .text:00027110 loc_27110 ; CODE XREF: _IO_vfscanf+2A84j .text:00027110 LDR R3, [R11,#var_100] .text:00027114 CMP R3, #0 .text:00027118 BNE loc_27134 .text:0002711C .text:0002711C loc_2711C ; CODE XREF: _IO_vfscanf+2970j .text:0002711C LDR LR, [R11,#var_A0] .text:00027120 LDR R12, [R11,#var_A8] .text:00027124 LDR R3, [LR],#4 .text:00027128 ADD R4, R12, #1 .text:0002712C STR LR, [R11,#var_A0] .text:00027130 B loc_2715C .text:00027134 ; --------------------------------------------------------------------------- .text:00027134 .text:00027134 loc_27134 ; CODE XREF: _IO_vfscanf+2AE8j .text:00027134 LDR R2, [R11,#var_98] .text:00027138 LDR R0, [R11,#var_100] .text:0002713C LDR R1, [R11,#var_A8] .text:00027140 SUBS R3, R0, #1 .text:00027144 ADD R4, R1, #1 .text:00027148 BEQ loc_27158 .text:0002714C .text:0002714C loc_2714C ; CODE XREF: _IO_vfscanf+2B24j .text:0002714C ADD R2, R2, #4 .text:00027150 SUBS R3, R3, #1 .text:00027154 BNE loc_2714C .text:00027158 .text:00027158 loc_27158 ; CODE XREF: _IO_vfscanf+2988j .text:00027158 ; _IO_vfscanf+2998j ... .text:00027158 LDR R3, [R2] .text:0002715C .text:0002715C loc_2715C ; CODE XREF: _IO_vfscanf+2B00j .text:0002715C LDRB R2, [R11,#var_D4] .text:00027160 STRB R2, [R3] .text:00027164 .text:00027164 loc_27164 ; CODE XREF: _IO_vfscanf+2A00j .text:00027164 ; _IO_vfscanf+2A78j ... .text:00027164 STR R4, [R11,#var_A8] .text:00027168 B loc_29218 .text:0002716C ; --------------------------------------------------------------------------- .text:0002716C .text:0002716C loc_2716C ; CODE XREF: _IO_vfscanf+898j .text:0002716C ; DATA XREF: _IO_vfscanf+8A0o .text:0002716C CMN R10, #1 ; jumptable 00024EC8 cases 28,32-34,60,64-66 .text:00027170 BEQ loc_271A8 .text:00027174 LDMIB R7, {R2,R3} .text:00027178 CMP R2, R3 .text:0002717C BCC loc_27190 .text:00027180 MOV R0, R7 .text:00027184 BL __uflow .text:00027188 MOV R10, R0 .text:0002718C B loc_27198 .text:00027190 ; --------------------------------------------------------------------------- .text:00027190 .text:00027190 loc_27190 ; CODE XREF: _IO_vfscanf+2B4Cj .text:00027190 LDRB R10, [R2],#1 .text:00027194 STR R2, [R7,#4] .text:00027198 .text:00027198 loc_27198 ; CODE XREF: _IO_vfscanf+2B5Cj .text:00027198 CMN R10, #1 .text:0002719C LDRNE R3, [R11,#var_AC] .text:000271A0 ADDNE R3, R3, #1 .text:000271A4 STRNE R3, [R11,#var_AC] .text:000271A8 .text:000271A8 loc_271A8 ; CODE XREF: _IO_vfscanf+2B40j .text:000271A8 MOV R2, R10 .text:000271AC CMN R10, #1 .text:000271B0 BEQ loc_28F30 .text:000271B4 CMP R2, #0x2B .text:000271B8 MOVNE R3, #0 .text:000271BC MOVEQ R3, #1 .text:000271C0 CMP R2, #0x2D .text:000271C4 MOVEQ R3, #1 .text:000271C8 CMP R3, #0 .text:000271CC BEQ loc_273C8 .text:000271D0 LDR R3, [R11,#var_B0] .text:000271D4 CMP R2, #0x2D .text:000271D8 MOVNE R1, #0 .text:000271DC MOVEQ R1, #1 .text:000271E0 STR R1, [R11,#var_B8] .text:000271E4 CMP R3, #0 .text:000271E8 BEQ loc_27230 .text:000271EC CMN R2, #1 .text:000271F0 BEQ loc_27230 .text:000271F4 LDMIB R7, {R2,R3} .text:000271F8 CMP R2, R3 .text:000271FC BCC loc_27210 .text:00027200 MOV R0, R7 .text:00027204 BL __uflow .text:00027208 MOV R10, R0 .text:0002720C B loc_27218 .text:00027210 ; --------------------------------------------------------------------------- .text:00027210 .text:00027210 loc_27210 ; CODE XREF: _IO_vfscanf+2BCCj .text:00027210 LDRB R10, [R2],#1 .text:00027214 STR R2, [R7,#4] .text:00027218 .text:00027218 loc_27218 ; CODE XREF: _IO_vfscanf+2BDCj .text:00027218 CMN R10, #1 .text:0002721C LDRNE R12, [R11,#var_AC] .text:00027220 ADDNE R12, R12, #1 .text:00027224 STRNE R12, [R11,#var_AC] .text:00027228 CMN R10, #1 .text:0002722C BNE loc_27264 .text:00027230 .text:00027230 loc_27230 ; CODE XREF: _IO_vfscanf+2BB8j .text:00027230 ; _IO_vfscanf+2BC0j .text:00027230 LDR LR, [R11,#var_9C] .text:00027234 CMP LR, #0 .text:00027238 LDRNE R3, [LR] .text:0002723C ORRNE R3, R3, #2 .text:00027240 STRNE R3, [LR] .text:00027244 LDR R3, [R7] .text:00027248 TST R3, #0x8000 .text:0002724C BNE loc_27258 .text:00027250 MOV R0, R7 .text:00027254 BL funlockfile .text:00027258 .text:00027258 loc_27258 ; CODE XREF: _IO_vfscanf+2C1Cj .text:00027258 LDR R0, [R11,#var_FC] .text:0002725C CMP R0, #0 .text:00027260 B loc_292B0 .text:00027264 ; --------------------------------------------------------------------------- .text:00027264 .text:00027264 loc_27264 ; CODE XREF: _IO_vfscanf+2BFCj .text:00027264 LDR R1, =__ctype_b .text:00027268 LDR R3, [R1] .text:0002726C MOV R2, R10,LSL#1 .text:00027270 ADD R2, R2, R3 .text:00027274 LDRB R1, [R2,#1] .text:00027278 TST R1, #8 .text:0002727C BNE loc_273B0 .text:00027280 LDR R2, [R11,#var_B0] .text:00027284 LDR R4, [R11,#var_C8] .text:00027288 CMP R2, #0 .text:0002728C MOV R5, R2 .text:00027290 MOVLE R5, 0x7FFFFFFF .text:00027294 LDRB R2, [R4] .text:00027298 CMP R5, #0 .text:0002729C MOVLE R3, #0 .text:000272A0 MOVGT R3, #1 .text:000272A4 CMP R2, R10 .text:000272A8 MOVNE R3, #0 .text:000272AC CMP R3, #0 .text:000272B0 BEQ loc_27334 .text:000272B4 LDRB R3, [R4,#1]! .text:000272B8 CMP R3, #0 .text:000272BC BEQ loc_27334 .text:000272C0 .text:000272C0 loc_272C0 ; CODE XREF: _IO_vfscanf+2D00j .text:000272C0 CMN R10, #1 .text:000272C4 BEQ loc_27334 .text:000272C8 LDMIB R7, {R2,R3} .text:000272CC CMP R2, R3 .text:000272D0 BCC loc_272E4 .text:000272D4 MOV R0, R7 .text:000272D8 BL __uflow .text:000272DC MOV R10, R0 .text:000272E0 B loc_272EC .text:000272E4 ; --------------------------------------------------------------------------- .text:000272E4 .text:000272E4 loc_272E4 ; CODE XREF: _IO_vfscanf+2CA0j .text:000272E4 LDRB R10, [R2],#1 .text:000272E8 STR R2, [R7,#4] .text:000272EC .text:000272EC loc_272EC ; CODE XREF: _IO_vfscanf+2CB0j .text:000272EC CMN R10, #1 .text:000272F0 LDRNE R3, [R11,#var_AC] .text:000272F4 ADDNE R3, R3, #1 .text:000272F8 STRNE R3, [R11,#var_AC] .text:000272FC CMN R10, #1 .text:00027300 BEQ loc_27334 .text:00027304 SUB R5, R5, #1 .text:00027308 LDRB R2, [R4] .text:0002730C CMP R5, #0 .text:00027310 MOVLE R3, #0 .text:00027314 MOVGT R3, #1 .text:00027318 CMP R2, R10 .text:0002731C MOVNE R3, #0 .text:00027320 CMP R3, #0 .text:00027324 BEQ loc_27334 .text:00027328 LDRB R3, [R4,#1]! .text:0002732C CMP R3, #0 .text:00027330 BNE loc_272C0 .text:00027334 .text:00027334 loc_27334 ; CODE XREF: _IO_vfscanf+2C80j .text:00027334 ; _IO_vfscanf+2C8Cj ... .text:00027334 LDRB R3, [R4] .text:00027338 CMP R3, #0 .text:0002733C BEQ loc_2739C .text:00027340 B loc_27348 .text:00027344 ; --------------------------------------------------------------------------- .text:00027344 .text:00027344 loc_27344 ; CODE XREF: _IO_vfscanf+2D34j .text:00027344 LDRB R10, [R4,#-1]! .text:00027348 .text:00027348 loc_27348 ; CODE XREF: _IO_vfscanf+2D10j .text:00027348 CMN R10, #1 .text:0002734C BEQ loc_2735C .text:00027350 MOV R0, R7 .text:00027354 AND R1, R10, #0xFF .text:00027358 BL _IO_sputbackc .text:0002735C .text:0002735C loc_2735C ; CODE XREF: _IO_vfscanf+2D1Cj .text:0002735C LDR R12, [R11,#var_C8] .text:00027360 CMP R4, R12 .text:00027364 BNE loc_27344 .text:00027368 LDR LR, [R11,#var_9C] .text:0002736C CMP LR, #0 .text:00027370 LDRNE R3, [LR] .text:00027374 ORRNE R3, R3, #2 .text:00027378 STRNE R3, [LR] .text:0002737C LDR R3, [R7] .text:00027380 TST R3, #0x8000 .text:00027384 BNE loc_27390 .text:00027388 MOV R0, R7 .text:0002738C BL funlockfile .text:00027390 .text:00027390 loc_27390 ; CODE XREF: _IO_vfscanf+2D54j .text:00027390 LDR R0, [R11,#var_FC] .text:00027394 CMP R0, #0 .text:00027398 B loc_292B0 .text:0002739C ; --------------------------------------------------------------------------- .text:0002739C .text:0002739C loc_2739C ; CODE XREF: _IO_vfscanf+2D0Cj .text:0002739C LDR R1, [R11,#var_B0] .text:000273A0 MOV R2, R1 .text:000273A4 CMP R2, #0 .text:000273A8 MOVGT R1, R5 .text:000273AC STR R1, [R11,#var_B0] .text:000273B0 .text:000273B0 loc_273B0 ; CODE XREF: _IO_vfscanf+2C4Cj .text:000273B0 LDR R3, [R11,#var_B0] .text:000273B4 MOV R12, R3 .text:000273B8 CMP R12, #0 .text:000273BC SUBGT R3, R3, #1 .text:000273C0 STR R3, [R11,#var_B0] .text:000273C4 B loc_273CC .text:000273C8 ; --------------------------------------------------------------------------- .text:000273C8 .text:000273C8 loc_273C8 ; CODE XREF: _IO_vfscanf+2B9Cj .text:000273C8 STR R3, [R11,#var_B8] .text:000273CC .text:000273CC loc_273CC ; CODE XREF: _IO_vfscanf+2D94j .text:000273CC ADD R3, R10, #0x80 .text:000273D0 LDR LR, [R11,#var_104] .text:000273D4 MOV R2, R3 .text:000273D8 CMP R3, LR .text:000273DC LDRLS R0, =__ctype_tolower .text:000273E0 LDRLS R3, [R0] .text:000273E4 LDRLS R3, [R3,R10,LSL#2] .text:000273E8 MOVHI R3, R10 .text:000273EC CMP R3, #0x6E .text:000273F0 BNE loc_27648 .text:000273F4 LDR R1, [R11,#var_EC] .text:000273F8 LDR R2, [R11,#var_F4] .text:000273FC CMP R1, R2 .text:00027400 BNE loc_2742C .text:00027404 MOV R3, #0x100 .text:00027408 STR R3, [R11,#var_F4] .text:0002740C LDR R1, [R11,#var_F0] .text:00027410 SUB SP, SP, #0x400 .text:00027414 STR SP, [R11,#var_F0] .text:00027418 CMP R1, #0 .text:0002741C BEQ loc_2742C .text:00027420 MOV R0, SP .text:00027424 MOV R2, #0 .text:00027428 BL memcpy .text:0002742C .text:0002742C loc_2742C ; CODE XREF: _IO_vfscanf+2DD0j .text:0002742C ; _IO_vfscanf+2DECj .text:0002742C MOV R12, #1 .text:00027430 STR R12, [R11,#var_F8] .text:00027434 LDR LR, [R11,#var_F0] .text:00027438 STRB R10, [LR] .text:0002743C LDR R0, [R11,#var_B0] .text:00027440 CMP R0, #0 .text:00027444 BEQ loc_274B0 .text:00027448 CMN R10, #1 .text:0002744C BEQ loc_274B0 .text:00027450 LDMIB R7, {R2,R3} .text:00027454 CMP R2, R3 .text:00027458 BCC loc_2746C .text:0002745C MOV R0, R7 .text:00027460 BL __uflow .text:00027464 MOV R10, R0 .text:00027468 B loc_27474 .text:0002746C ; --------------------------------------------------------------------------- .text:0002746C .text:0002746C loc_2746C ; CODE XREF: _IO_vfscanf+2E28j .text:0002746C LDRB R10, [R2],#1 .text:00027470 STR R2, [R7,#4] .text:00027474 .text:00027474 loc_27474 ; CODE XREF: _IO_vfscanf+2E38j .text:00027474 CMN R10, #1 .text:00027478 LDRNE R1, [R11,#var_AC] .text:0002747C ADDNE R1, R1, #1 .text:00027480 STRNE R1, [R11,#var_AC] .text:00027484 CMN R10, #1 .text:00027488 BEQ loc_274B0 .text:0002748C LDR R2, [R11,#var_104] .text:00027490 ADD R3, R10, #0x80 .text:00027494 CMP R3, R2 .text:00027498 LDRLS R12, =__ctype_tolower .text:0002749C LDRLS R3, [R12] .text:000274A0 LDRLS R3, [R3,R10,LSL#2] .text:000274A4 MOVHI R3, R10 .text:000274A8 CMP R3, #0x61 .text:000274AC BEQ loc_27504 .text:000274B0 .text:000274B0 loc_274B0 ; CODE XREF: _IO_vfscanf+2E14j .text:000274B0 ; _IO_vfscanf+2E1Cj ... .text:000274B0 LDR R3, [R7] .text:000274B4 TST R3, #0x8000 .text:000274B8 BNE loc_274C4 .text:000274BC MOV R0, R7 .text:000274C0 BL funlockfile .text:000274C4 .text:000274C4 loc_274C4 ; CODE XREF: _IO_vfscanf+2E88j .text:000274C4 LDR LR, [R11,#var_9C] .text:000274C8 CMP LR, #0 .text:000274CC LDRNE R3, [LR] .text:000274D0 ORRNE R3, R3, #1 .text:000274D4 STRNE R3, [LR] .text:000274D8 LDR R0, [R11,#var_FC] .text:000274DC CMP R0, #0 .text:000274E0 BEQ loc_274F0 .text:000274E4 SUB R0, R11, #-var_38 .text:000274E8 MOV R1, #0 .text:000274EC BL 0 .text:000274F0 .text:000274F0 loc_274F0 ; CODE XREF: _IO_vfscanf+2EB0j .text:000274F0 LDR R1, [R11,#var_A8] .text:000274F4 CMP R1, #0 .text:000274F8 MOV R0, R1 .text:000274FC MOVEQ R0, 0xFFFFFFFF .text:00027500 B loc_292C4 .text:00027504 ; --------------------------------------------------------------------------- .text:00027504 .text:00027504 loc_27504 ; CODE XREF: _IO_vfscanf+2E7Cj .text:00027504 LDR R2, [R11,#var_B0] .text:00027508 MOV R3, R2 .text:0002750C CMP R3, #0 .text:00027510 SUBGT R2, R2, #1 .text:00027514 STR R2, [R11,#var_B0] .text:00027518 SUB R12, R11, #-var_F8 .text:0002751C LDMIA R12, {R12,LR} .text:00027520 CMP R12, LR .text:00027524 BNE loc_27558 .text:00027528 MOV R3, LR,LSL#1 .text:0002752C CMP R3, #0x100 .text:00027530 MOVCC R3, #0x100 .text:00027534 STR R3, [R11,#var_F4] .text:00027538 LDR R1, [R11,#var_F0] .text:0002753C SUB SP, SP, R3,LSL#2 .text:00027540 STR SP, [R11,#var_F0] .text:00027544 CMP R1, #0 .text:00027548 BEQ loc_27558 .text:0002754C MOV R0, SP .text:00027550 MOV R2, R12 .text:00027554 BL memcpy .text:00027558 .text:00027558 loc_27558 ; CODE XREF: _IO_vfscanf+2EF4j .text:00027558 ; _IO_vfscanf+2F18j .text:00027558 LDR R0, [R11,#var_F0] .text:0002755C LDR R1, [R11,#var_F8] .text:00027560 STRB R10, [R0,R1] .text:00027564 ADD R1, R1, #1 .text:00027568 STR R1, [R11,#var_F8] .text:0002756C LDR R2, [R11,#var_B0] .text:00027570 CMP R2, #0 .text:00027574 BEQ loc_279C4 .text:00027578 CMN R10, #1 .text:0002757C BEQ loc_279C4 .text:00027580 LDMIB R7, {R2,R3} .text:00027584 CMP R2, R3 .text:00027588 BCC loc_2759C .text:0002758C MOV R0, R7 .text:00027590 BL __uflow .text:00027594 MOV R10, R0 .text:00027598 B loc_275A4 .text:0002759C ; --------------------------------------------------------------------------- .text:0002759C .text:0002759C loc_2759C ; CODE XREF: _IO_vfscanf+2F58j .text:0002759C LDRB R10, [R2],#1 .text:000275A0 STR R2, [R7,#4] .text:000275A4 .text:000275A4 loc_275A4 ; CODE XREF: _IO_vfscanf+2F68j .text:000275A4 CMN R10, #1 .text:000275A8 LDRNE R3, [R11,#var_AC] .text:000275AC ADDNE R3, R3, #1 .text:000275B0 STRNE R3, [R11,#var_AC] .text:000275B4 CMN R10, #1 .text:000275B8 BEQ loc_279C4 .text:000275BC LDR R12, [R11,#var_104] .text:000275C0 ADD R3, R10, #0x80 .text:000275C4 CMP R3, R12 .text:000275C8 BHI loc_275E4 .text:000275CC LDR LR, =__ctype_tolower .text:000275D0 LDR R3, [LR] .text:000275D4 LDR R3, [R3,R10,LSL#2] .text:000275D8 B loc_275E8 .text:000275D8 ; --------------------------------------------------------------------------- .text:000275DC off_275DC DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_27264r .text:000275E0 off_275E0 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+2DACr .text:000275E0 ; _IO_vfscanf+2E68r ... .text:000275E4 ; --------------------------------------------------------------------------- .text:000275E4 .text:000275E4 loc_275E4 ; CODE XREF: _IO_vfscanf+2F98j .text:000275E4 MOV R3, R10 .text:000275E8 .text:000275E8 loc_275E8 ; CODE XREF: _IO_vfscanf+2FA8j .text:000275E8 CMP R3, #0x6E .text:000275EC BNE loc_279C4 .text:000275F0 SUB R3, R11, #-var_F8 .text:000275F4 LDMIA R3, {R3,R12} .text:000275F8 CMP R3, R12 .text:000275FC BNE loc_27630 .text:00027600 MOV R3, R12,LSL#1 .text:00027604 CMP R3, #0x100 .text:00027608 MOVCC R3, #0x100 .text:0002760C STR R3, [R11,#var_F4] .text:00027610 LDR R1, [R11,#var_F0] .text:00027614 SUB SP, SP, R3,LSL#2 .text:00027618 STR SP, [R11,#var_F0] .text:0002761C CMP R1, #0 .text:00027620 BEQ loc_27630 .text:00027624 LDR R2, [R11,#var_F8] .text:00027628 MOV R0, SP .text:0002762C BL memcpy .text:00027630 .text:00027630 loc_27630 ; CODE XREF: _IO_vfscanf+2FCCj .text:00027630 ; _IO_vfscanf+2FF0j .text:00027630 LDR LR, [R11,#var_F0] .text:00027634 LDR R0, [R11,#var_F8] .text:00027638 STRB R10, [LR,R0] .text:0002763C ADD R0, R0, #1 .text:00027640 STR R0, [R11,#var_F8] .text:00027644 B loc_284F8 .text:00027648 ; --------------------------------------------------------------------------- .text:00027648 .text:00027648 loc_27648 ; CODE XREF: _IO_vfscanf+2DC0j .text:00027648 LDR R1, [R11,#var_104] .text:0002764C CMP R2, R1 .text:00027650 LDRLS R2, =__ctype_tolower .text:00027654 LDRLS R3, [R2] .text:00027658 LDRLS R3, [R3,R10,LSL#2] .text:0002765C MOVHI R3, R10 .text:00027660 CMP R3, #0x69 .text:00027664 BNE loc_27DA8 .text:00027668 LDR R3, [R11,#var_EC] .text:0002766C LDR R12, [R11,#var_F4] .text:00027670 CMP R3, R12 .text:00027674 BNE loc_276A0 .text:00027678 MOV LR, #0x100 .text:0002767C STR LR, [R11,#var_F4] .text:00027680 LDR R1, [R11,#var_F0] .text:00027684 SUB SP, SP, #0x400 .text:00027688 STR SP, [R11,#var_F0] .text:0002768C CMP R1, #0 .text:00027690 BEQ loc_276A0 .text:00027694 MOV R0, SP .text:00027698 MOV R2, #0 .text:0002769C BL memcpy .text:000276A0 .text:000276A0 loc_276A0 ; CODE XREF: _IO_vfscanf+3044j .text:000276A0 ; _IO_vfscanf+3060j .text:000276A0 MOV R0, #1 .text:000276A4 STR R0, [R11,#var_F8] .text:000276A8 LDR R1, [R11,#var_F0] .text:000276AC STRB R10, [R1] .text:000276B0 LDR R2, [R11,#var_B0] .text:000276B4 CMP R2, #0 .text:000276B8 BEQ loc_279C4 .text:000276BC CMN R10, #1 .text:000276C0 BEQ loc_279C4 .text:000276C4 LDMIB R7, {R2,R3} .text:000276C8 CMP R2, R3 .text:000276CC BCC loc_276E0 .text:000276D0 MOV R0, R7 .text:000276D4 BL __uflow .text:000276D8 MOV R10, R0 .text:000276DC B loc_276E8 .text:000276E0 ; --------------------------------------------------------------------------- .text:000276E0 .text:000276E0 loc_276E0 ; CODE XREF: _IO_vfscanf+309Cj .text:000276E0 LDRB R10, [R2],#1 .text:000276E4 STR R2, [R7,#4] .text:000276E8 .text:000276E8 loc_276E8 ; CODE XREF: _IO_vfscanf+30ACj .text:000276E8 CMN R10, #1 .text:000276EC LDRNE R3, [R11,#var_AC] .text:000276F0 ADDNE R3, R3, #1 .text:000276F4 STRNE R3, [R11,#var_AC] .text:000276F8 CMN R10, #1 .text:000276FC BEQ loc_279C4 .text:00027700 LDR R12, [R11,#var_104] .text:00027704 ADD R3, R10, #0x80 .text:00027708 CMP R3, R12 .text:0002770C LDRLS LR, =__ctype_tolower .text:00027710 LDRLS R3, [LR] .text:00027714 LDRLS R3, [R3,R10,LSL#2] .text:00027718 MOVHI R3, R10 .text:0002771C CMP R3, #0x6E .text:00027720 BNE loc_279C4 .text:00027724 LDR R3, [R11,#var_B0] .text:00027728 MOV R12, R3 .text:0002772C CMP R12, #0 .text:00027730 SUBGT R3, R3, #1 .text:00027734 STR R3, [R11,#var_B0] .text:00027738 LDR LR, [R11,#var_F8] .text:0002773C LDR R0, [R11,#var_F4] .text:00027740 CMP LR, R0 .text:00027744 BNE loc_27778 .text:00027748 MOV R3, R0,LSL#1 .text:0002774C CMP R3, #0x100 .text:00027750 MOVCC R3, #0x100 .text:00027754 STR R3, [R11,#var_F4] .text:00027758 LDR R1, [R11,#var_F0] .text:0002775C SUB SP, SP, R3,LSL#2 .text:00027760 STR SP, [R11,#var_F0] .text:00027764 CMP R1, #0 .text:00027768 BEQ loc_27778 .text:0002776C MOV R0, SP .text:00027770 MOV R2, LR .text:00027774 BL memcpy .text:00027778 .text:00027778 loc_27778 ; CODE XREF: _IO_vfscanf+3114j .text:00027778 ; _IO_vfscanf+3138j .text:00027778 LDR R1, [R11,#var_F0] .text:0002777C LDR R2, [R11,#var_F8] .text:00027780 STRB R10, [R1,R2] .text:00027784 ADD R2, R2, #1 .text:00027788 STR R2, [R11,#var_F8] .text:0002778C LDR R3, [R11,#var_B0] .text:00027790 CMP R3, #0 .text:00027794 BEQ loc_27AF4 .text:00027798 CMN R10, #1 .text:0002779C BEQ loc_27AF4 .text:000277A0 LDMIB R7, {R2,R3} .text:000277A4 CMP R2, R3 .text:000277A8 BCC loc_277BC .text:000277AC MOV R0, R7 .text:000277B0 BL __uflow .text:000277B4 MOV R10, R0 .text:000277B8 B loc_277C4 .text:000277BC ; --------------------------------------------------------------------------- .text:000277BC .text:000277BC loc_277BC ; CODE XREF: _IO_vfscanf+3178j .text:000277BC LDRB R10, [R2],#1 .text:000277C0 STR R2, [R7,#4] .text:000277C4 .text:000277C4 loc_277C4 ; CODE XREF: _IO_vfscanf+3188j .text:000277C4 CMN R10, #1 .text:000277C8 LDRNE R12, [R11,#var_AC] .text:000277CC ADDNE R12, R12, #1 .text:000277D0 STRNE R12, [R11,#var_AC] .text:000277D4 CMN R10, #1 .text:000277D8 BEQ loc_27AF4 .text:000277DC LDR LR, [R11,#var_104] .text:000277E0 ADD R3, R10, #0x80 .text:000277E4 CMP R3, LR .text:000277E8 LDRLS R0, =__ctype_tolower .text:000277EC LDRLS R3, [R0] .text:000277F0 LDRLS R3, [R3,R10,LSL#2] .text:000277F4 MOVHI R3, R10 .text:000277F8 CMP R3, #0x66 .text:000277FC BNE loc_27AF4 .text:00027800 LDR R12, [R11,#var_B0] .text:00027804 MOV LR, R12 .text:00027808 CMP LR, #0 .text:0002780C SUBGT R12, R12, #1 .text:00027810 STR R12, [R11,#var_B0] .text:00027814 SUB R0, R11, #-var_F8 .text:00027818 LDMIA R0, {R0,R1} .text:0002781C CMP R0, R1 .text:00027820 BNE loc_27854 .text:00027824 MOV R3, R1,LSL#1 .text:00027828 CMP R3, #0x100 .text:0002782C MOVCC R3, #0x100 .text:00027830 STR R3, [R11,#var_F4] .text:00027834 LDR R1, [R11,#var_F0] .text:00027838 SUB SP, SP, R3,LSL#2 .text:0002783C STR SP, [R11,#var_F0] .text:00027840 CMP R1, #0 .text:00027844 BEQ loc_27854 .text:00027848 LDR R2, [R11,#var_F8] .text:0002784C MOV R0, SP .text:00027850 BL memcpy .text:00027854 .text:00027854 loc_27854 ; CODE XREF: _IO_vfscanf+31F0j .text:00027854 ; _IO_vfscanf+3214j .text:00027854 LDR R2, [R11,#var_F0] .text:00027858 LDR R3, [R11,#var_F8] .text:0002785C STRB R10, [R2,R3] .text:00027860 ADD R3, R3, #1 .text:00027864 STR R3, [R11,#var_F8] .text:00027868 LDR R12, [R11,#var_B0] .text:0002786C CMP R12, #0 .text:00027870 BEQ loc_284F8 .text:00027874 CMN R10, #1 .text:00027878 BEQ loc_284F8 .text:0002787C LDMIB R7, {R2,R3} .text:00027880 CMP R2, R3 .text:00027884 BCC loc_27898 .text:00027888 MOV R0, R7 .text:0002788C BL __uflow .text:00027890 MOV R10, R0 .text:00027894 B loc_278A0 .text:00027898 ; --------------------------------------------------------------------------- .text:00027898 .text:00027898 loc_27898 ; CODE XREF: _IO_vfscanf+3254j .text:00027898 LDRB R10, [R2],#1 .text:0002789C STR R2, [R7,#4] .text:000278A0 .text:000278A0 loc_278A0 ; CODE XREF: _IO_vfscanf+3264j .text:000278A0 CMN R10, #1 .text:000278A4 LDRNE LR, [R11,#var_AC] .text:000278A8 ADDNE LR, LR, #1 .text:000278AC STRNE LR, [R11,#var_AC] .text:000278B0 CMN R10, #1 .text:000278B4 BEQ loc_284F8 .text:000278B8 LDR R0, [R11,#var_104] .text:000278BC ADD R3, R10, #0x80 .text:000278C0 CMP R3, R0 .text:000278C4 LDRLS R1, =__ctype_tolower .text:000278C8 LDRLS R3, [R1] .text:000278CC LDRLS R3, [R3,R10,LSL#2] .text:000278D0 MOVHI R3, R10 .text:000278D4 CMP R3, #0x69 .text:000278D8 BNE loc_27D84 .text:000278DC LDR R2, [R11,#var_B0] .text:000278E0 MOV R3, R2 .text:000278E4 CMP R3, #0 .text:000278E8 SUBGT R2, R2, #1 .text:000278EC STR R2, [R11,#var_B0] .text:000278F0 SUB R12, R11, #-var_F8 .text:000278F4 LDMIA R12, {R12,LR} .text:000278F8 CMP R12, LR .text:000278FC BNE loc_27930 .text:00027900 MOV R3, LR,LSL#1 .text:00027904 CMP R3, #0x100 .text:00027908 MOVCC R3, #0x100 .text:0002790C STR R3, [R11,#var_F4] .text:00027910 LDR R1, [R11,#var_F0] .text:00027914 SUB SP, SP, R3,LSL#2 .text:00027918 STR SP, [R11,#var_F0] .text:0002791C CMP R1, #0 .text:00027920 BEQ loc_27930 .text:00027924 MOV R0, SP .text:00027928 MOV R2, R12 .text:0002792C BL memcpy .text:00027930 .text:00027930 loc_27930 ; CODE XREF: _IO_vfscanf+32CCj .text:00027930 ; _IO_vfscanf+32F0j .text:00027930 LDR R0, [R11,#var_F0] .text:00027934 LDR R1, [R11,#var_F8] .text:00027938 STRB R10, [R0,R1] .text:0002793C ADD R1, R1, #1 .text:00027940 STR R1, [R11,#var_F8] .text:00027944 LDR R2, [R11,#var_B0] .text:00027948 CMP R2, #0 .text:0002794C BEQ loc_279C4 .text:00027950 CMN R10, #1 .text:00027954 BEQ loc_279C4 .text:00027958 LDMIB R7, {R2,R3} .text:0002795C CMP R2, R3 .text:00027960 BCC loc_27974 .text:00027964 MOV R0, R7 .text:00027968 BL __uflow .text:0002796C MOV R10, R0 .text:00027970 B loc_2797C .text:00027974 ; --------------------------------------------------------------------------- .text:00027974 .text:00027974 loc_27974 ; CODE XREF: _IO_vfscanf+3330j .text:00027974 LDRB R10, [R2],#1 .text:00027978 STR R2, [R7,#4] .text:0002797C .text:0002797C loc_2797C ; CODE XREF: _IO_vfscanf+3340j .text:0002797C CMN R10, #1 .text:00027980 LDRNE R3, [R11,#var_AC] .text:00027984 ADDNE R3, R3, #1 .text:00027988 STRNE R3, [R11,#var_AC] .text:0002798C CMN R10, #1 .text:00027990 BEQ loc_279C4 .text:00027994 LDR R12, [R11,#var_104] .text:00027998 ADD R3, R10, #0x80 .text:0002799C CMP R3, R12 .text:000279A0 BHI loc_279B8 .text:000279A4 LDR LR, =__ctype_tolower .text:000279A8 LDR R3, [LR] .text:000279AC LDR R3, [R3,R10,LSL#2] .text:000279B0 B loc_279BC .text:000279B0 ; --------------------------------------------------------------------------- .text:000279B4 off_279B4 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+3020r .text:000279B4 ; _IO_vfscanf+30DCr ... .text:000279B8 ; --------------------------------------------------------------------------- .text:000279B8 .text:000279B8 loc_279B8 ; CODE XREF: _IO_vfscanf+3370j .text:000279B8 MOV R3, R10 .text:000279BC .text:000279BC loc_279BC ; CODE XREF: _IO_vfscanf+3380j .text:000279BC CMP R3, #0x6E .text:000279C0 BEQ loc_27A18 .text:000279C4 .text:000279C4 loc_279C4 ; CODE XREF: _IO_vfscanf+1958j .text:000279C4 ; _IO_vfscanf+2F44j ... .text:000279C4 LDR R3, [R7] .text:000279C8 TST R3, #0x8000 .text:000279CC BNE loc_279D8 .text:000279D0 MOV R0, R7 .text:000279D4 BL funlockfile .text:000279D8 .text:000279D8 loc_279D8 ; CODE XREF: _IO_vfscanf+339Cj .text:000279D8 LDR R0, [R11,#var_9C] .text:000279DC CMP R0, #0 .text:000279E0 LDRNE R3, [R0] .text:000279E4 ORRNE R3, R3, #1 .text:000279E8 STRNE R3, [R0] .text:000279EC LDR R1, [R11,#var_FC] .text:000279F0 CMP R1, #0 .text:000279F4 BEQ loc_27A04 .text:000279F8 SUB R0, R11, #-var_38 .text:000279FC MOV R1, #0 .text:00027A00 BL 0 .text:00027A04 .text:00027A04 loc_27A04 ; CODE XREF: _IO_vfscanf+33C4j .text:00027A04 LDR R2, [R11,#var_A8] .text:00027A08 CMP R2, #0 .text:00027A0C MOV R0, R2 .text:00027A10 MOVEQ R0, 0xFFFFFFFF .text:00027A14 B loc_292C4 .text:00027A18 ; --------------------------------------------------------------------------- .text:00027A18 .text:00027A18 loc_27A18 ; CODE XREF: _IO_vfscanf+3390j .text:00027A18 LDR R3, [R11,#var_B0] .text:00027A1C MOV R12, R3 .text:00027A20 CMP R12, #0 .text:00027A24 SUBGT R3, R3, #1 .text:00027A28 STR R3, [R11,#var_B0] .text:00027A2C LDR LR, [R11,#var_F8] .text:00027A30 LDR R0, [R11,#var_F4] .text:00027A34 CMP LR, R0 .text:00027A38 BNE loc_27A6C .text:00027A3C MOV R3, R0,LSL#1 .text:00027A40 CMP R3, #0x100 .text:00027A44 MOVCC R3, #0x100 .text:00027A48 STR R3, [R11,#var_F4] .text:00027A4C LDR R1, [R11,#var_F0] .text:00027A50 SUB SP, SP, R3,LSL#2 .text:00027A54 STR SP, [R11,#var_F0] .text:00027A58 CMP R1, #0 .text:00027A5C BEQ loc_27A6C .text:00027A60 MOV R0, SP .text:00027A64 MOV R2, LR .text:00027A68 BL memcpy .text:00027A6C .text:00027A6C loc_27A6C ; CODE XREF: _IO_vfscanf+3408j .text:00027A6C ; _IO_vfscanf+342Cj .text:00027A6C LDR R1, [R11,#var_F0] .text:00027A70 LDR R2, [R11,#var_F8] .text:00027A74 STRB R10, [R1,R2] .text:00027A78 ADD R2, R2, #1 .text:00027A7C STR R2, [R11,#var_F8] .text:00027A80 LDR R3, [R11,#var_B0] .text:00027A84 CMP R3, #0 .text:00027A88 BEQ loc_27AF4 .text:00027A8C CMN R10, #1 .text:00027A90 BEQ loc_27AF4 .text:00027A94 LDMIB R7, {R2,R3} .text:00027A98 CMP R2, R3 .text:00027A9C BCC loc_27AB0 .text:00027AA0 MOV R0, R7 .text:00027AA4 BL __uflow .text:00027AA8 MOV R10, R0 .text:00027AAC B loc_27AB8 .text:00027AB0 ; --------------------------------------------------------------------------- .text:00027AB0 .text:00027AB0 loc_27AB0 ; CODE XREF: _IO_vfscanf+346Cj .text:00027AB0 LDRB R10, [R2],#1 .text:00027AB4 STR R2, [R7,#4] .text:00027AB8 .text:00027AB8 loc_27AB8 ; CODE XREF: _IO_vfscanf+347Cj .text:00027AB8 CMN R10, #1 .text:00027ABC LDRNE R12, [R11,#var_AC] .text:00027AC0 ADDNE R12, R12, #1 .text:00027AC4 STRNE R12, [R11,#var_AC] .text:00027AC8 CMN R10, #1 .text:00027ACC BEQ loc_27AF4 .text:00027AD0 LDR LR, [R11,#var_104] .text:00027AD4 ADD R3, R10, #0x80 .text:00027AD8 CMP R3, LR .text:00027ADC LDRLS R0, =__ctype_tolower .text:00027AE0 LDRLS R3, [R0] .text:00027AE4 LDRLS R3, [R3,R10,LSL#2] .text:00027AE8 MOVHI R3, R10 .text:00027AEC CMP R3, #0x69 .text:00027AF0 BEQ loc_27B48 .text:00027AF4 .text:00027AF4 loc_27AF4 ; CODE XREF: _IO_vfscanf+840j .text:00027AF4 ; _IO_vfscanf+A34j ... .text:00027AF4 LDR R3, [R7] .text:00027AF8 TST R3, #0x8000 .text:00027AFC BNE loc_27B08 .text:00027B00 MOV R0, R7 .text:00027B04 BL funlockfile .text:00027B08 .text:00027B08 loc_27B08 ; CODE XREF: _IO_vfscanf+34CCj .text:00027B08 LDR R1, [R11,#var_9C] .text:00027B0C CMP R1, #0 .text:00027B10 LDRNE R3, [R1] .text:00027B14 ORRNE R3, R3, #1 .text:00027B18 STRNE R3, [R1] .text:00027B1C LDR R2, [R11,#var_FC] .text:00027B20 CMP R2, #0 .text:00027B24 BEQ loc_27B34 .text:00027B28 SUB R0, R11, #-var_38 .text:00027B2C MOV R1, #0 .text:00027B30 BL 0 .text:00027B34 .text:00027B34 loc_27B34 ; CODE XREF: _IO_vfscanf+34F4j .text:00027B34 LDR R3, [R11,#var_A8] .text:00027B38 CMP R3, #0 .text:00027B3C MOV R0, R3 .text:00027B40 MOVEQ R0, 0xFFFFFFFF .text:00027B44 B loc_292C4 .text:00027B48 ; --------------------------------------------------------------------------- .text:00027B48 .text:00027B48 loc_27B48 ; CODE XREF: _IO_vfscanf+34C0j .text:00027B48 LDR R12, [R11,#var_B0] .text:00027B4C MOV LR, R12 .text:00027B50 CMP LR, #0 .text:00027B54 SUBGT R12, R12, #1 .text:00027B58 STR R12, [R11,#var_B0] .text:00027B5C SUB R0, R11, #-var_F8 .text:00027B60 LDMIA R0, {R0,R1} .text:00027B64 CMP R0, R1 .text:00027B68 BNE loc_27B9C .text:00027B6C MOV R3, R1,LSL#1 .text:00027B70 CMP R3, #0x100 .text:00027B74 MOVCC R3, #0x100 .text:00027B78 STR R3, [R11,#var_F4] .text:00027B7C LDR R1, [R11,#var_F0] .text:00027B80 SUB SP, SP, R3,LSL#2 .text:00027B84 STR SP, [R11,#var_F0] .text:00027B88 CMP R1, #0 .text:00027B8C BEQ loc_27B9C .text:00027B90 LDR R2, [R11,#var_F8] .text:00027B94 MOV R0, SP .text:00027B98 BL memcpy .text:00027B9C .text:00027B9C loc_27B9C ; CODE XREF: _IO_vfscanf+3538j .text:00027B9C ; _IO_vfscanf+355Cj .text:00027B9C LDR R2, [R11,#var_F0] .text:00027BA0 LDR R3, [R11,#var_F8] .text:00027BA4 STRB R10, [R2,R3] .text:00027BA8 ADD R3, R3, #1 .text:00027BAC STR R3, [R11,#var_F8] .text:00027BB0 LDR R12, [R11,#var_B0] .text:00027BB4 CMP R12, #0 .text:00027BB8 BEQ loc_28BB8 .text:00027BBC CMN R10, #1 .text:00027BC0 BEQ loc_28BB8 .text:00027BC4 LDMIB R7, {R2,R3} .text:00027BC8 CMP R2, R3 .text:00027BCC BCC loc_27BE0 .text:00027BD0 MOV R0, R7 .text:00027BD4 BL __uflow .text:00027BD8 MOV R10, R0 .text:00027BDC B loc_27BE8 .text:00027BE0 ; --------------------------------------------------------------------------- .text:00027BE0 .text:00027BE0 loc_27BE0 ; CODE XREF: _IO_vfscanf+359Cj .text:00027BE0 LDRB R10, [R2],#1 .text:00027BE4 STR R2, [R7,#4] .text:00027BE8 .text:00027BE8 loc_27BE8 ; CODE XREF: _IO_vfscanf+35ACj .text:00027BE8 CMN R10, #1 .text:00027BEC LDRNE LR, [R11,#var_AC] .text:00027BF0 ADDNE LR, LR, #1 .text:00027BF4 STRNE LR, [R11,#var_AC] .text:00027BF8 CMN R10, #1 .text:00027BFC BEQ loc_28BB8 .text:00027C00 LDR R0, [R11,#var_104] .text:00027C04 ADD R3, R10, #0x80 .text:00027C08 CMP R3, R0 .text:00027C0C LDRLS R1, =__ctype_tolower .text:00027C10 LDRLS R3, [R1] .text:00027C14 LDRLS R3, [R3,R10,LSL#2] .text:00027C18 MOVHI R3, R10 .text:00027C1C CMP R3, #0x74 .text:00027C20 BNE loc_28BB8 .text:00027C24 LDR LR, [R11,#var_B0] .text:00027C28 MOV R0, LR .text:00027C2C CMP R0, #0 .text:00027C30 SUBGT LR, LR, #1 .text:00027C34 STR LR, [R11,#var_B0] .text:00027C38 SUB R1, R11, #-var_F8 .text:00027C3C LDMIA R1, {R1,R2} .text:00027C40 CMP R1, R2 .text:00027C44 BNE loc_27C78 .text:00027C48 MOV R3, R2,LSL#1 .text:00027C4C CMP R3, #0x100 .text:00027C50 MOVCC R3, #0x100 .text:00027C54 STR R3, [R11,#var_F4] .text:00027C58 LDR R1, [R11,#var_F0] .text:00027C5C SUB SP, SP, R3,LSL#2 .text:00027C60 STR SP, [R11,#var_F0] .text:00027C64 CMP R1, #0 .text:00027C68 BEQ loc_27C78 .text:00027C6C LDR R2, [R11,#var_F8] .text:00027C70 MOV R0, SP .text:00027C74 BL memcpy .text:00027C78 .text:00027C78 loc_27C78 ; CODE XREF: _IO_vfscanf+3614j .text:00027C78 ; _IO_vfscanf+3638j .text:00027C78 LDR R3, [R11,#var_F0] .text:00027C7C LDR R12, [R11,#var_F8] .text:00027C80 STRB R10, [R3,R12] .text:00027C84 ADD R12, R12, #1 .text:00027C88 STR R12, [R11,#var_F8] .text:00027C8C LDR LR, [R11,#var_B0] .text:00027C90 CMP LR, #0 .text:00027C94 BEQ loc_27D00 .text:00027C98 CMN R10, #1 .text:00027C9C BEQ loc_27D00 .text:00027CA0 LDMIB R7, {R2,R3} .text:00027CA4 CMP R2, R3 .text:00027CA8 BCC loc_27CBC .text:00027CAC MOV R0, R7 .text:00027CB0 BL __uflow .text:00027CB4 MOV R10, R0 .text:00027CB8 B loc_27CC4 .text:00027CBC ; --------------------------------------------------------------------------- .text:00027CBC .text:00027CBC loc_27CBC ; CODE XREF: _IO_vfscanf+3678j .text:00027CBC LDRB R10, [R2],#1 .text:00027CC0 STR R2, [R7,#4] .text:00027CC4 .text:00027CC4 loc_27CC4 ; CODE XREF: _IO_vfscanf+3688j .text:00027CC4 CMN R10, #1 .text:00027CC8 LDRNE R0, [R11,#var_AC] .text:00027CCC ADDNE R0, R0, #1 .text:00027CD0 STRNE R0, [R11,#var_AC] .text:00027CD4 CMN R10, #1 .text:00027CD8 BEQ loc_27D00 .text:00027CDC LDR R1, [R11,#var_104] .text:00027CE0 ADD R3, R10, #0x80 .text:00027CE4 CMP R3, R1 .text:00027CE8 LDRLS R2, =__ctype_tolower .text:00027CEC LDRLS R3, [R2] .text:00027CF0 LDRLS R3, [R3,R10,LSL#2] .text:00027CF4 MOVHI R3, R10 .text:00027CF8 CMP R3, #0x79 .text:00027CFC BEQ loc_27D2C .text:00027D00 .text:00027D00 loc_27D00 ; CODE XREF: _IO_vfscanf+3664j .text:00027D00 ; _IO_vfscanf+366Cj ... .text:00027D00 LDR R3, [R7] .text:00027D04 TST R3, #0x8000 .text:00027D08 BNE loc_27D14 .text:00027D0C MOV R0, R7 .text:00027D10 BL funlockfile .text:00027D14 .text:00027D14 loc_27D14 ; CODE XREF: _IO_vfscanf+36D8j .text:00027D14 LDR R3, [R11,#var_9C] .text:00027D18 CMP R3, #0 .text:00027D1C BEQ loc_28F5C .text:00027D20 LDR R3, [R3] .text:00027D24 LDR R12, [R11,#var_9C] .text:00027D28 B loc_28F54 .text:00027D2C ; --------------------------------------------------------------------------- .text:00027D2C .text:00027D2C loc_27D2C ; CODE XREF: _IO_vfscanf+36CCj .text:00027D2C SUB R1, R11, #-var_F8 .text:00027D30 LDMIA R1, {R1,R2} .text:00027D34 CMP R1, R2 .text:00027D38 BNE loc_27D6C .text:00027D3C MOV R3, R2,LSL#1 .text:00027D40 CMP R3, #0x100 .text:00027D44 MOVCC R3, #0x100 .text:00027D48 STR R3, [R11,#var_F4] .text:00027D4C LDR R1, [R11,#var_F0] .text:00027D50 SUB SP, SP, R3,LSL#2 .text:00027D54 STR SP, [R11,#var_F0] .text:00027D58 CMP R1, #0 .text:00027D5C BEQ loc_27D6C .text:00027D60 LDR R2, [R11,#var_F8] .text:00027D64 MOV R0, SP .text:00027D68 BL memcpy .text:00027D6C .text:00027D6C loc_27D6C ; CODE XREF: _IO_vfscanf+3708j .text:00027D6C ; _IO_vfscanf+372Cj .text:00027D6C LDR R3, [R11,#var_F0] .text:00027D70 LDR R12, [R11,#var_F8] .text:00027D74 STRB R10, [R3,R12] .text:00027D78 ADD R12, R12, #1 .text:00027D7C STR R12, [R11,#var_F8] .text:00027D80 B loc_284F8 .text:00027D84 ; --------------------------------------------------------------------------- .text:00027D84 .text:00027D84 loc_27D84 ; CODE XREF: _IO_vfscanf+32A8j .text:00027D84 CMN R10, #1 .text:00027D88 BEQ loc_284F8 .text:00027D8C LDR LR, [R11,#var_AC] .text:00027D90 SUB LR, LR, #1 .text:00027D94 STR LR, [R11,#var_AC] .text:00027D98 MOV R0, R7 .text:00027D9C AND R1, R10, #0xFF .text:00027DA0 BL _IO_sputbackc .text:00027DA4 B loc_284F8 .text:00027DA8 ; --------------------------------------------------------------------------- .text:00027DA8 .text:00027DA8 loc_27DA8 ; CODE XREF: _IO_vfscanf+3034j .text:00027DA8 MOV R0, #0 .text:00027DAC STR R0, [R11,#var_C4] .text:00027DB0 MOV R1, #0x65 .text:00027DB4 LDR R2, [R11,#var_B0] .text:00027DB8 CMP R10, #0x30 .text:00027DBC MOVNE R3, #0 .text:00027DC0 MOVEQ R3, #1 .text:00027DC4 STR R1, [R11,#var_BC] .text:00027DC8 CMP R2, R0 .text:00027DCC MOVEQ R3, R0 .text:00027DD0 CMP R3, R0 .text:00027DD4 BEQ loc_27F64 .text:00027DD8 LDR R3, [R11,#var_EC] .text:00027DDC LDR R12, [R11,#var_F4] .text:00027DE0 CMP R3, R12 .text:00027DE4 BNE loc_27E10 .text:00027DE8 MOV LR, #0x100 .text:00027DEC STR LR, [R11,#var_F4] .text:00027DF0 LDR R1, [R11,#var_F0] .text:00027DF4 SUB SP, SP, #0x400 .text:00027DF8 STR SP, [R11,#var_F0] .text:00027DFC CMP R1, R0 .text:00027E00 BEQ loc_27E10 .text:00027E04 LDR R2, [R11,#var_C4] .text:00027E08 MOV R0, SP .text:00027E0C BL memcpy .text:00027E10 .text:00027E10 loc_27E10 ; CODE XREF: _IO_vfscanf+37B4j .text:00027E10 ; _IO_vfscanf+37D0j .text:00027E10 MOV R0, #1 .text:00027E14 STR R0, [R11,#var_F8] .text:00027E18 LDR R1, [R11,#var_F0] .text:00027E1C STRB R10, [R1] .text:00027E20 CMN R10, #1 .text:00027E24 BEQ loc_27E60 .text:00027E28 LDMIB R7, {R2,R3} .text:00027E2C CMP R2, R3 .text:00027E30 BCC loc_27E48 .text:00027E34 MOV R0, R7 .text:00027E38 BL __uflow .text:00027E3C MOV R10, R0 .text:00027E40 B loc_27E50 .text:00027E40 ; --------------------------------------------------------------------------- .text:00027E44 off_27E44 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+34ACr .text:00027E44 ; _IO_vfscanf+35DCr ... .text:00027E48 ; --------------------------------------------------------------------------- .text:00027E48 .text:00027E48 loc_27E48 ; CODE XREF: _IO_vfscanf+3800j .text:00027E48 LDRB R10, [R2],#1 .text:00027E4C STR R2, [R7,#4] .text:00027E50 .text:00027E50 loc_27E50 ; CODE XREF: _IO_vfscanf+3810j .text:00027E50 CMN R10, #1 .text:00027E54 LDRNE R2, [R11,#var_AC] .text:00027E58 ADDNE R2, R2, #1 .text:00027E5C STRNE R2, [R11,#var_AC] .text:00027E60 .text:00027E60 loc_27E60 ; CODE XREF: _IO_vfscanf+37F4j .text:00027E60 MOV R4, R10 .text:00027E64 LDR R3, [R11,#var_B0] .text:00027E68 MOV R12, R3 .text:00027E6C CMP R12, #0 .text:00027E70 SUBGT R3, R3, #1 .text:00027E74 CMP R3, #0 .text:00027E78 STR R3, [R11,#var_B0] .text:00027E7C BEQ loc_27F64 .text:00027E80 LDR LR, [R11,#var_104] .text:00027E84 ADD R3, R4, #0x80 .text:00027E88 CMP R3, LR .text:00027E8C LDRLS R0, =__ctype_tolower .text:00027E90 LDRLS R3, [R0] .text:00027E94 LDRLS R3, [R3,R4,LSL#2] .text:00027E98 MOVHI R3, R4 .text:00027E9C CMP R3, #0x78 .text:00027EA0 BNE loc_27F64 .text:00027EA4 SUB R1, R11, #-var_F8 .text:00027EA8 LDMIA R1, {R1,R2} .text:00027EAC CMP R1, R2 .text:00027EB0 BNE loc_27EE4 .text:00027EB4 MOV R3, R2,LSL#1 .text:00027EB8 CMP R3, #0x100 .text:00027EBC MOVCC R3, #0x100 .text:00027EC0 STR R3, [R11,#var_F4] .text:00027EC4 LDR R1, [R11,#var_F0] .text:00027EC8 SUB SP, SP, R3,LSL#2 .text:00027ECC STR SP, [R11,#var_F0] .text:00027ED0 CMP R1, #0 .text:00027ED4 BEQ loc_27EE4 .text:00027ED8 LDR R2, [R11,#var_F8] .text:00027EDC MOV R0, SP .text:00027EE0 BL memcpy .text:00027EE4 .text:00027EE4 loc_27EE4 ; CODE XREF: _IO_vfscanf+3880j .text:00027EE4 ; _IO_vfscanf+38A4j .text:00027EE4 LDR R3, [R11,#var_F0] .text:00027EE8 LDR R12, [R11,#var_F8] .text:00027EEC STRB R4, [R3,R12] .text:00027EF0 ADD R12, R12, #1 .text:00027EF4 STR R12, [R11,#var_F8] .text:00027EF8 MOV LR, #1 .text:00027EFC STR LR, [R11,#var_C4] .text:00027F00 LDR R1, [R11,#var_B4] .text:00027F04 MOV R0, #0x70 .text:00027F08 STR R0, [R11,#var_BC] .text:00027F0C CMN R4, #1 .text:00027F10 BIC R1, R1, #0x80 .text:00027F14 STR R1, [R11,#var_B4] .text:00027F18 BEQ loc_27F50 .text:00027F1C LDMIB R7, {R2,R3} .text:00027F20 CMP R2, R3 .text:00027F24 BCC loc_27F38 .text:00027F28 MOV R0, R7 .text:00027F2C BL __uflow .text:00027F30 MOV R10, R0 .text:00027F34 B loc_27F40 .text:00027F38 ; --------------------------------------------------------------------------- .text:00027F38 .text:00027F38 loc_27F38 ; CODE XREF: _IO_vfscanf+38F4j .text:00027F38 LDRB R10, [R2],#1 .text:00027F3C STR R2, [R7,#4] .text:00027F40 .text:00027F40 loc_27F40 ; CODE XREF: _IO_vfscanf+3904j .text:00027F40 CMN R10, #1 .text:00027F44 LDRNE R2, [R11,#var_AC] .text:00027F48 ADDNE R2, R2, #1 .text:00027F4C STRNE R2, [R11,#var_AC] .text:00027F50 .text:00027F50 loc_27F50 ; CODE XREF: _IO_vfscanf+38E8j .text:00027F50 LDR R3, [R11,#var_B0] .text:00027F54 MOV R12, R3 .text:00027F58 CMP R12, #0 .text:00027F5C SUBGT R3, R3, #1 .text:00027F60 STR R3, [R11,#var_B0] .text:00027F64 .text:00027F64 loc_27F64 ; CODE XREF: _IO_vfscanf+37A4j .text:00027F64 ; _IO_vfscanf+384Cj ... .text:00027F64 MOV R8, #0 .text:00027F68 MOV R9, R8 .text:00027F6C .text:00027F6C loc_27F6C ; CODE XREF: _IO_vfscanf+3EA0j .text:00027F6C LDR LR, =__ctype_b .text:00027F70 LDR R1, [LR] .text:00027F74 MOV R3, R10,LSL#1 .text:00027F78 LDRB R0, [R3,R1] .text:00027F7C ADD R3, R3, R1 .text:00027F80 LDRB R2, [R3,#1] .text:00027F84 ORR R2, R0, R2,LSL#8 .text:00027F88 TST R2, #0x800 .text:00027F8C BEQ loc_27FD0 .text:00027F90 SUB R0, R11, #-var_F8 .text:00027F94 LDMIA R0, {R0,R1} .text:00027F98 CMP R0, R1 .text:00027F9C BNE loc_280B4 .text:00027FA0 MOV R3, R1,LSL#1 .text:00027FA4 CMP R3, #0x100 .text:00027FA8 MOVCC R3, #0x100 .text:00027FAC STR R3, [R11,#var_F4] .text:00027FB0 LDR R1, [R11,#var_F0] .text:00027FB4 SUB SP, SP, R3,LSL#2 .text:00027FB8 STR SP, [R11,#var_F0] .text:00027FBC CMP R1, #0 .text:00027FC0 BEQ loc_280B4 .text:00027FC4 LDR R2, [R11,#var_F8] .text:00027FC8 MOV R0, SP .text:00027FCC B loc_280B0 .text:00027FD0 ; --------------------------------------------------------------------------- .text:00027FD0 .text:00027FD0 loc_27FD0 ; CODE XREF: _IO_vfscanf+395Cj .text:00027FD0 LDR R12, [R11,#var_C4] .text:00027FD4 CMP R12, #0 .text:00027FD8 EORNE R3, R8, #1 .text:00027FDC MOVEQ R3, #0 .text:00027FE0 CMP R3, #0 .text:00027FE4 BEQ loc_28048 .text:00027FE8 TST R2, #0x1000 .text:00027FEC BEQ loc_28048 .text:00027FF0 LDR LR, [R11,#var_F8] .text:00027FF4 LDR R0, [R11,#var_F4] .text:00027FF8 CMP LR, R0 .text:00027FFC BNE loc_28030 .text:00028000 MOV R3, R0,LSL#1 .text:00028004 CMP R3, #0x100 .text:00028008 MOVCC R3, #0x100 .text:0002800C STR R3, [R11,#var_F4] .text:00028010 LDR R1, [R11,#var_F0] .text:00028014 SUB SP, SP, R3,LSL#2 .text:00028018 STR SP, [R11,#var_F0] .text:0002801C CMP R1, #0 .text:00028020 BEQ loc_28030 .text:00028024 MOV R0, SP .text:00028028 MOV R2, LR .text:0002802C BL memcpy .text:00028030 .text:00028030 loc_28030 ; CODE XREF: _IO_vfscanf+39CCj .text:00028030 ; _IO_vfscanf+39F0j .text:00028030 LDR R1, [R11,#var_F0] .text:00028034 LDR R2, [R11,#var_F8] .text:00028038 STRB R10, [R1,R2] .text:0002803C ADD R2, R2, #1 .text:00028040 STR R2, [R11,#var_F8] .text:00028044 B loc_28474 .text:00028048 ; --------------------------------------------------------------------------- .text:00028048 .text:00028048 loc_28048 ; CODE XREF: _IO_vfscanf+39B4j .text:00028048 ; _IO_vfscanf+39BCj .text:00028048 CMP R8, #0 .text:0002804C BEQ loc_280CC .text:00028050 LDR R12, [R11,#var_F8] .text:00028054 LDR LR, [R11,#var_F0] .text:00028058 LDR R0, [R11,#var_BC] .text:0002805C ADD R3, R12, LR .text:00028060 LDRB R2, [R3,#-1] .text:00028064 CMP R2, R0 .text:00028068 BNE loc_280CC .text:0002806C CMP R10, #0x2B .text:00028070 CMPNE R10, #0x2D .text:00028074 BNE loc_280CC .text:00028078 LDR R1, [R11,#var_F4] .text:0002807C CMP R12, R1 .text:00028080 BNE loc_280B4 .text:00028084 MOV R3, R1,LSL#1 .text:00028088 CMP R3, #0x100 .text:0002808C MOVCC R3, #0x100 .text:00028090 SUB SP, SP, R3,LSL#2 .text:00028094 STR R3, [R11,#var_F4] .text:00028098 MOV R1, LR .text:0002809C CMP R1, #0 .text:000280A0 STR SP, [R11,#var_F0] .text:000280A4 BEQ loc_280B4 .text:000280A8 MOV R0, SP .text:000280AC MOV R2, R12 .text:000280B0 .text:000280B0 loc_280B0 ; CODE XREF: _IO_vfscanf+399Cj .text:000280B0 BL memcpy .text:000280B4 .text:000280B4 loc_280B4 ; CODE XREF: _IO_vfscanf+396Cj .text:000280B4 ; _IO_vfscanf+3990j ... .text:000280B4 LDR R2, [R11,#var_F0] .text:000280B8 LDR R3, [R11,#var_F8] .text:000280BC STRB R10, [R2,R3] .text:000280C0 ADD R3, R3, #1 .text:000280C4 STR R3, [R11,#var_F8] .text:000280C8 B loc_28474 .text:000280CC ; --------------------------------------------------------------------------- .text:000280CC .text:000280CC loc_280CC ; CODE XREF: _IO_vfscanf+3A1Cj .text:000280CC ; _IO_vfscanf+3A38j ... .text:000280CC LDR R12, [R11,#var_F8] .text:000280D0 CMP R12, #0 .text:000280D4 EORNE R3, R8, #1 .text:000280D8 MOVEQ R3, #0 .text:000280DC CMP R3, #0 .text:000280E0 BEQ loc_2816C .text:000280E4 LDR LR, [R11,#var_104] .text:000280E8 ADD R3, R10, #0x80 .text:000280EC CMP R3, LR .text:000280F0 LDRLS R0, =__ctype_tolower .text:000280F4 LDRLS R3, [R0] .text:000280F8 LDRLS R3, [R3,R10,LSL#2] .text:000280FC MOVHI R3, R10 .text:00028100 LDR R1, [R11,#var_BC] .text:00028104 CMP R3, R1 .text:00028108 BNE loc_2816C .text:0002810C SUB R2, R11, #-var_F8 .text:00028110 LDMIA R2, {R2,R3} .text:00028114 CMP R2, R3 .text:00028118 BNE loc_28148 .text:0002811C MOV R3, R3,LSL#1 .text:00028120 CMP R3, #0x100 .text:00028124 MOVCC R3, #0x100 .text:00028128 STR R3, [R11,#var_F4] .text:0002812C LDR R1, [R11,#var_F0] .text:00028130 SUB SP, SP, R3,LSL#2 .text:00028134 STR SP, [R11,#var_F0] .text:00028138 CMP R1, #0 .text:0002813C BEQ loc_28148 .text:00028140 MOV R0, SP .text:00028144 BL memcpy .text:00028148 .text:00028148 loc_28148 ; CODE XREF: _IO_vfscanf+3AE8j .text:00028148 ; _IO_vfscanf+3B0Cj .text:00028148 LDR R0, [R11,#var_BC] .text:0002814C LDR R12, [R11,#var_F0] .text:00028150 LDR LR, [R11,#var_F8] .text:00028154 STRB R0, [R12,LR] .text:00028158 ADD LR, LR, #1 .text:0002815C STR LR, [R11,#var_F8] .text:00028160 MOV R8, #1 .text:00028164 MOV R9, R8 .text:00028168 B loc_28474 .text:0002816C ; --------------------------------------------------------------------------- .text:0002816C .text:0002816C loc_2816C ; CODE XREF: _IO_vfscanf+3AB0j .text:0002816C ; _IO_vfscanf+3AD8j .text:0002816C LDR R1, [R11,#var_B0] .text:00028170 LDR R5, [R11,#var_C8] .text:00028174 CMP R1, #0 .text:00028178 MOV R6, R1 .text:0002817C MOVLE R6, 0x7FFFFFFF .text:00028180 CMP R9, #0 .text:00028184 BNE loc_28208 .text:00028188 B loc_281DC .text:0002818C ; --------------------------------------------------------------------------- .text:0002818C .text:0002818C loc_2818C ; CODE XREF: _IO_vfscanf+3BD4j .text:0002818C CMN R10, #1 .text:00028190 BEQ loc_28208 .text:00028194 LDMIB R7, {R2,R3} .text:00028198 CMP R2, R3 .text:0002819C BCC loc_281B8 .text:000281A0 MOV R0, R7 .text:000281A4 BL __uflow .text:000281A8 MOV R10, R0 .text:000281AC B loc_281C0 .text:000281AC ; --------------------------------------------------------------------------- .text:000281B0 off_281B0 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+385Cr .text:000281B0 ; _IO_vfscanf+3AC0r .text:000281B4 off_281B4 DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_27F6Cr .text:000281B8 ; --------------------------------------------------------------------------- .text:000281B8 .text:000281B8 loc_281B8 ; CODE XREF: _IO_vfscanf+3B6Cj .text:000281B8 LDRB R10, [R2],#1 .text:000281BC STR R2, [R7,#4] .text:000281C0 .text:000281C0 loc_281C0 ; CODE XREF: _IO_vfscanf+3B7Cj .text:000281C0 CMN R10, #1 .text:000281C4 LDRNE R2, [R11,#var_AC] .text:000281C8 ADDNE R2, R2, #1 .text:000281CC STRNE R2, [R11,#var_AC] .text:000281D0 CMN R10, #1 .text:000281D4 BEQ loc_28208 .text:000281D8 SUB R6, R6, #1 .text:000281DC .text:000281DC loc_281DC ; CODE XREF: _IO_vfscanf+3B58j .text:000281DC LDRB R2, [R5] .text:000281E0 CMP R6, #0 .text:000281E4 MOVLE R3, #0 .text:000281E8 MOVGT R3, #1 .text:000281EC CMP R2, R10 .text:000281F0 MOVNE R3, #0 .text:000281F4 CMP R3, #0 .text:000281F8 BEQ loc_28208 .text:000281FC LDRB R3, [R5,#1]! .text:00028200 CMP R3, #0 .text:00028204 BNE loc_2818C .text:00028208 .text:00028208 loc_28208 ; CODE XREF: _IO_vfscanf+3B54j .text:00028208 ; _IO_vfscanf+3B60j ... .text:00028208 LDRB R3, [R5] .text:0002820C CMP R3, #0 .text:00028210 BNE loc_282A4 .text:00028214 LDR R5, [R11,#var_C8] .text:00028218 LDRB R3, [R5] .text:0002821C CMP R3, #0 .text:00028220 BEQ loc_28288 .text:00028224 .text:00028224 loc_28224 ; CODE XREF: _IO_vfscanf+3C54j .text:00028224 SUB R3, R11, #-var_F8 .text:00028228 LDMIA R3, {R3,R12} .text:0002822C CMP R3, R12 .text:00028230 BNE loc_28264 .text:00028234 MOV R3, R12,LSL#1 .text:00028238 CMP R3, #0x100 .text:0002823C MOVCC R3, #0x100 .text:00028240 STR R3, [R11,#var_F4] .text:00028244 LDR R1, [R11,#var_F0] .text:00028248 SUB SP, SP, R3,LSL#2 .text:0002824C STR SP, [R11,#var_F0] .text:00028250 CMP R1, #0 .text:00028254 BEQ loc_28264 .text:00028258 LDR R2, [R11,#var_F8] .text:0002825C MOV R0, SP .text:00028260 BL memcpy .text:00028264 .text:00028264 loc_28264 ; CODE XREF: _IO_vfscanf+3C00j .text:00028264 ; _IO_vfscanf+3C24j .text:00028264 LDRB R3, [R5] .text:00028268 LDR LR, [R11,#var_F0] .text:0002826C LDR R0, [R11,#var_F8] .text:00028270 STRB R3, [LR,R0] .text:00028274 ADD R0, R0, #1 .text:00028278 STR R0, [R11,#var_F8] .text:0002827C LDRB R3, [R5,#1]! .text:00028280 CMP R3, #0 .text:00028284 BNE loc_28224 .text:00028288 .text:00028288 loc_28288 ; CODE XREF: _IO_vfscanf+3BF0j .text:00028288 LDR R1, [R11,#var_B0] .text:0002828C MOV R9, #1 .text:00028290 MOV R2, R1 .text:00028294 CMP R2, #0 .text:00028298 MOVGT R1, R6 .text:0002829C STR R1, [R11,#var_B0] .text:000282A0 B loc_28474 .text:000282A4 ; --------------------------------------------------------------------------- .text:000282A4 .text:000282A4 loc_282A4 ; CODE XREF: _IO_vfscanf+3BE0j .text:000282A4 LDR R4, [R11,#var_CC] .text:000282A8 CMP R4, #0 .text:000282AC EORNE R3, R9, #1 .text:000282B0 MOVEQ R3, #0 .text:000282B4 CMP R3, #0 .text:000282B8 BEQ loc_283B0 .text:000282BC CMP R4, R5 .text:000282C0 BCS loc_28304 .text:000282C4 LDRB R2, [R4] .text:000282C8 LDR R12, [R11,#var_C8] .text:000282CC MOV LR, #0 .text:000282D0 LDRB R3, [R12,LR] .text:000282D4 CMP R2, R3 .text:000282D8 BNE loc_28304 .text:000282DC .text:000282DC loc_282DC ; CODE XREF: _IO_vfscanf+3CD0j .text:000282DC ADD R4, R4, #1 .text:000282E0 CMP R4, R5 .text:000282E4 BCS loc_28304 .text:000282E8 LDRB R3, [R4] .text:000282EC SUB R0, R11, #-var_CC .text:000282F0 LDMIA R0, {R0,R12} .text:000282F4 RSB R2, R0, R4 .text:000282F8 LDRB R1, [R12,R2] .text:000282FC CMP R3, R1 .text:00028300 BEQ loc_282DC .text:00028304 .text:00028304 loc_28304 ; CODE XREF: _IO_vfscanf+3C90j .text:00028304 ; _IO_vfscanf+3CA8j ... .text:00028304 CMP R4, R5 .text:00028308 BNE loc_283B0 .text:0002830C LDRB R2, [R5] .text:00028310 CMP R6, #0 .text:00028314 MOVLE R3, #0 .text:00028318 MOVGT R3, #1 .text:0002831C CMP R2, R10 .text:00028320 MOVNE R3, #0 .text:00028324 CMP R3, #0 .text:00028328 BEQ loc_283B0 .text:0002832C LDRB R3, [R5,#1]! .text:00028330 MOV R4, R5 .text:00028334 CMP R3, #0 .text:00028338 BEQ loc_283B0 .text:0002833C .text:0002833C loc_2833C ; CODE XREF: _IO_vfscanf+3D7Cj .text:0002833C CMN R10, #1 .text:00028340 BEQ loc_283B0 .text:00028344 LDMIB R7, {R2,R3} .text:00028348 CMP R2, R3 .text:0002834C BCC loc_28360 .text:00028350 MOV R0, R7 .text:00028354 BL __uflow .text:00028358 MOV R10, R0 .text:0002835C B loc_28368 .text:00028360 ; --------------------------------------------------------------------------- .text:00028360 .text:00028360 loc_28360 ; CODE XREF: _IO_vfscanf+3D1Cj .text:00028360 LDRB R10, [R2],#1 .text:00028364 STR R2, [R7,#4] .text:00028368 .text:00028368 loc_28368 ; CODE XREF: _IO_vfscanf+3D2Cj .text:00028368 CMN R10, #1 .text:0002836C LDRNE LR, [R11,#var_AC] .text:00028370 ADDNE LR, LR, #1 .text:00028374 STRNE LR, [R11,#var_AC] .text:00028378 CMN R10, #1 .text:0002837C BEQ loc_283B0 .text:00028380 SUB R6, R6, #1 .text:00028384 LDRB R2, [R4] .text:00028388 CMP R6, #0 .text:0002838C MOVLE R3, #0 .text:00028390 MOVGT R3, #1 .text:00028394 CMP R2, R10 .text:00028398 MOVNE R3, #0 .text:0002839C CMP R3, #0 .text:000283A0 BEQ loc_283B0 .text:000283A4 LDRB R3, [R4,#1]! .text:000283A8 CMP R3, #0 .text:000283AC BNE loc_2833C .text:000283B0 .text:000283B0 loc_283B0 ; CODE XREF: _IO_vfscanf+3C88j .text:000283B0 ; _IO_vfscanf+3CD8j ... .text:000283B0 CMP R4, #0 .text:000283B4 BEQ loc_28450 .text:000283B8 LDRB R3, [R4] .text:000283BC CMP R3, #0 .text:000283C0 BNE loc_28450 .text:000283C4 LDR R5, [R11,#var_CC] .text:000283C8 LDRB R3, [R5] .text:000283CC CMP R3, #0 .text:000283D0 BEQ loc_28438 .text:000283D4 .text:000283D4 loc_283D4 ; CODE XREF: _IO_vfscanf+3E04j .text:000283D4 SUB R0, R11, #-var_F8 .text:000283D8 LDMIA R0, {R0,R1} .text:000283DC CMP R0, R1 .text:000283E0 BNE loc_28414 .text:000283E4 MOV R3, R1,LSL#1 .text:000283E8 CMP R3, #0x100 .text:000283EC MOVCC R3, #0x100 .text:000283F0 STR R3, [R11,#var_F4] .text:000283F4 LDR R1, [R11,#var_F0] .text:000283F8 SUB SP, SP, R3,LSL#2 .text:000283FC STR SP, [R11,#var_F0] .text:00028400 CMP R1, #0 .text:00028404 BEQ loc_28414 .text:00028408 LDR R2, [R11,#var_F8] .text:0002840C MOV R0, SP .text:00028410 BL memcpy .text:00028414 .text:00028414 loc_28414 ; CODE XREF: _IO_vfscanf+3DB0j .text:00028414 ; _IO_vfscanf+3DD4j .text:00028414 LDRB R3, [R5] .text:00028418 LDR R2, [R11,#var_F0] .text:0002841C LDR R12, [R11,#var_F8] .text:00028420 STRB R3, [R2,R12] .text:00028424 ADD R12, R12, #1 .text:00028428 STR R12, [R11,#var_F8] .text:0002842C LDRB R3, [R5,#1]! .text:00028430 CMP R3, #0 .text:00028434 BNE loc_283D4 .text:00028438 .text:00028438 loc_28438 ; CODE XREF: _IO_vfscanf+3DA0j .text:00028438 LDR LR, [R11,#var_B0] .text:0002843C MOV R0, LR .text:00028440 CMP R0, #0 .text:00028444 MOVGT LR, R6 .text:00028448 STR LR, [R11,#var_B0] .text:0002844C B loc_28474 .text:00028450 ; --------------------------------------------------------------------------- .text:00028450 .text:00028450 loc_28450 ; CODE XREF: _IO_vfscanf+3D84j .text:00028450 ; _IO_vfscanf+3D90j .text:00028450 CMN R10, #1 .text:00028454 BEQ loc_284D4 .text:00028458 LDR R1, [R11,#var_AC] .text:0002845C SUB R1, R1, #1 .text:00028460 STR R1, [R11,#var_AC] .text:00028464 MOV R0, R7 .text:00028468 AND R1, R10, #0xFF .text:0002846C BL _IO_sputbackc .text:00028470 B loc_284D4 .text:00028474 ; --------------------------------------------------------------------------- .text:00028474 .text:00028474 loc_28474 ; CODE XREF: _IO_vfscanf+3A14j .text:00028474 ; _IO_vfscanf+3A98j ... .text:00028474 LDR R2, [R11,#var_B0] .text:00028478 MOV R3, R2 .text:0002847C CMP R3, #0 .text:00028480 SUBGT R2, R2, #1 .text:00028484 CMP R2, #0 .text:00028488 STR R2, [R11,#var_B0] .text:0002848C BEQ loc_284D4 .text:00028490 CMN R10, #1 .text:00028494 BEQ loc_284D4 .text:00028498 LDMIB R7, {R2,R3} .text:0002849C CMP R2, R3 .text:000284A0 BCC loc_284B4 .text:000284A4 MOV R0, R7 .text:000284A8 BL __uflow .text:000284AC MOV R10, R0 .text:000284B0 B loc_284BC .text:000284B4 ; --------------------------------------------------------------------------- .text:000284B4 .text:000284B4 loc_284B4 ; CODE XREF: _IO_vfscanf+3E70j .text:000284B4 LDRB R10, [R2],#1 .text:000284B8 STR R2, [R7,#4] .text:000284BC .text:000284BC loc_284BC ; CODE XREF: _IO_vfscanf+3E80j .text:000284BC CMN R10, #1 .text:000284C0 LDRNE R12, [R11,#var_AC] .text:000284C4 ADDNE R12, R12, #1 .text:000284C8 STRNE R12, [R11,#var_AC] .text:000284CC CMN R10, #1 .text:000284D0 BNE loc_27F6C .text:000284D4 .text:000284D4 loc_284D4 ; CODE XREF: _IO_vfscanf+3E24j .text:000284D4 ; _IO_vfscanf+3E40j ... .text:000284D4 LDR LR, [R11,#var_F8] .text:000284D8 CMP LR, #0 .text:000284DC BEQ loc_286F4 .text:000284E0 LDR R0, [R11,#var_C4] .text:000284E4 CMP R0, #0 .text:000284E8 BEQ loc_284F8 .text:000284EC CMP LR, #2 .text:000284F0 CMPNE R8, #0 .text:000284F4 BEQ loc_286F4 .text:000284F8 .text:000284F8 loc_284F8 ; CODE XREF: _IO_vfscanf+3014j .text:000284F8 ; _IO_vfscanf+3240j ... .text:000284F8 SUB R3, R11, #-var_F8 .text:000284FC LDMIA R3, {R3,R12} .text:00028500 CMP R3, R12 .text:00028504 BNE loc_28538 .text:00028508 MOV R3, R12,LSL#1 .text:0002850C CMP R3, #0x100 .text:00028510 MOVCC R3, #0x100 .text:00028514 STR R3, [R11,#var_F4] .text:00028518 LDR R1, [R11,#var_F0] .text:0002851C SUB SP, SP, R3,LSL#2 .text:00028520 STR SP, [R11,#var_F0] .text:00028524 CMP R1, #0 .text:00028528 BEQ loc_28538 .text:0002852C LDR R2, [R11,#var_F8] .text:00028530 MOV R0, SP .text:00028534 BL memcpy .text:00028538 .text:00028538 loc_28538 ; CODE XREF: _IO_vfscanf+3ED4j .text:00028538 ; _IO_vfscanf+3EF8j .text:00028538 LDR LR, [R11,#var_F0] .text:0002853C LDR R0, [R11,#var_F8] .text:00028540 MOV R1, #0 .text:00028544 STRB R1, [LR,R0] .text:00028548 LDR R2, [R11,#var_B4] .text:0002854C TST R2, #2 .text:00028550 BEQ loc_285B8 .text:00028554 SUB R1, R11, #-var_8C .text:00028558 LDR R0, [R11,#var_F0] .text:0002855C AND R2, R2, #0x80 .text:00028560 BL __strtold_internal .text:00028564 LDR R12, [R11,#var_B4] .text:00028568 STC p1, c8, [SP,#0x518+var_520]! .text:0002856C LDMFD SP!, {R0,R1} .text:00028570 ANDS R3, R12, #8 .text:00028574 MOV R8, R3 .text:00028578 BNE loc_286E4 .text:0002857C LDR R3, [R11,#var_8C] .text:00028580 LDR LR, [R11,#var_F0] .text:00028584 CMP R3, LR .text:00028588 BEQ loc_286E4 .text:0002858C LDR R2, [R11,#var_100] .text:00028590 CMP R2, #0 .text:00028594 BEQ loc_2860C .text:00028598 LDR LR, [R11,#var_100] .text:0002859C LDR R2, [R11,#var_98] .text:000285A0 SUBS R3, LR, #1 .text:000285A4 BEQ loc_28638 .text:000285A8 .text:000285A8 loc_285A8 ; CODE XREF: _IO_vfscanf+3F80j .text:000285A8 ADD R2, R2, #4 .text:000285AC SUBS R3, R3, #1 .text:000285B0 BNE loc_285A8 .text:000285B4 B loc_28638 .text:000285B8 ; --------------------------------------------------------------------------- .text:000285B8 .text:000285B8 loc_285B8 ; CODE XREF: _IO_vfscanf+3F20j .text:000285B8 LDR R1, [R11,#var_B4] .text:000285BC TST R1, #1 .text:000285C0 BEQ loc_28658 .text:000285C4 LDR R3, [R11,#var_B4] .text:000285C8 SUB R1, R11, #-var_8C .text:000285CC LDR R0, [R11,#var_F0] .text:000285D0 AND R2, R3, #0x80 .text:000285D4 BL __strtod_internal .text:000285D8 LDR R12, [R11,#var_B4] .text:000285DC STC p1, c8, [SP,#0x518+var_520]! .text:000285E0 LDMFD SP!, {R0,R1} .text:000285E4 ANDS R3, R12, #8 .text:000285E8 MOV R8, R3 .text:000285EC BNE loc_286E4 .text:000285F0 LDR R3, [R11,#var_8C] .text:000285F4 LDR LR, [R11,#var_F0] .text:000285F8 CMP R3, LR .text:000285FC BEQ loc_286E4 .text:00028600 LDR R2, [R11,#var_100] .text:00028604 CMP R2, #0 .text:00028608 BNE loc_2861C .text:0002860C .text:0002860C loc_2860C ; CODE XREF: _IO_vfscanf+3F64j .text:0002860C LDR R12, [R11,#var_A0] .text:00028610 LDR R3, [R12],#4 .text:00028614 STR R12, [R11,#var_A0] .text:00028618 B loc_2863C .text:0002861C ; --------------------------------------------------------------------------- .text:0002861C .text:0002861C loc_2861C ; CODE XREF: _IO_vfscanf+3FD8j .text:0002861C LDR LR, [R11,#var_100] .text:00028620 LDR R2, [R11,#var_98] .text:00028624 SUBS R3, LR, #1 .text:00028628 BEQ loc_28638 .text:0002862C .text:0002862C loc_2862C ; CODE XREF: _IO_vfscanf+4004j .text:0002862C ADD R2, R2, #4 .text:00028630 SUBS R3, R3, #1 .text:00028634 BNE loc_2862C .text:00028638 .text:00028638 loc_28638 ; CODE XREF: _IO_vfscanf+3F74j .text:00028638 ; _IO_vfscanf+3F84j ... .text:00028638 LDR R3, [R2] .text:0002863C .text:0002863C loc_2863C ; CODE XREF: _IO_vfscanf+3FE8j .text:0002863C STMFD SP!, {R0,R1} .text:00028640 LDC p1, c8, [SP+0x520+var_520],#8 .text:00028644 LDR R0, [R11,#var_B8] .text:00028648 CMP R0, #0 .text:0002864C CDPNE p1, 1, c8,c0,c0, 4 .text:00028650 STC p1, c8, [R3] .text:00028654 B loc_286E4 .text:00028658 ; --------------------------------------------------------------------------- .text:00028658 .text:00028658 loc_28658 ; CODE XREF: _IO_vfscanf+3F90j .text:00028658 LDR R3, [R11,#var_B4] .text:0002865C SUB R1, R11, #-var_8C .text:00028660 LDR R0, [R11,#var_F0] .text:00028664 AND R2, R3, #0x80 .text:00028668 BL __strtof_internal .text:0002866C LDR R12, [R11,#var_B4] .text:00028670 STC p1, c0, [SP,#0x518+var_51C]! .text:00028674 LDR R1, [SP+0x51C+var_51C],#4 .text:00028678 ANDS R3, R12, #8 .text:0002867C MOV R8, R3 .text:00028680 BNE loc_286E4 .text:00028684 LDR R3, [R11,#var_8C] .text:00028688 LDR LR, [R11,#var_F0] .text:0002868C CMP R3, LR .text:00028690 BEQ loc_286E4 .text:00028694 LDR R0, [R11,#var_100] .text:00028698 CMP R0, #0 .text:0002869C LDREQ R2, [R11,#var_A0] .text:000286A0 LDREQ R3, [R2],#4 .text:000286A4 STREQ R2, [R11,#var_A0] .text:000286A8 BEQ loc_286CC .text:000286AC LDR R12, [R11,#var_100] .text:000286B0 LDR R2, [R11,#var_98] .text:000286B4 SUBS R3, R12, #1 .text:000286B8 BEQ loc_286C8 .text:000286BC .text:000286BC loc_286BC ; CODE XREF: _IO_vfscanf+4094j .text:000286BC ADD R2, R2, #4 .text:000286C0 SUBS R3, R3, #1 .text:000286C4 BNE loc_286BC .text:000286C8 .text:000286C8 loc_286C8 ; CODE XREF: _IO_vfscanf+4088j .text:000286C8 LDR R3, [R2] .text:000286CC .text:000286CC loc_286CC ; CODE XREF: _IO_vfscanf+4078j .text:000286CC LDR LR, [R11,#var_B8] .text:000286D0 STR R1, [SP,#0x518+var_51C]! .text:000286D4 LDC p1, c0, [SP+0x51C+var_51C],#4 .text:000286D8 CMP LR, #0 .text:000286DC CDPNE p1, 1, c8,c0,c0, 0 .text:000286E0 STC p1, c0, [R3] .text:000286E4 .text:000286E4 loc_286E4 ; CODE XREF: _IO_vfscanf+3F48j .text:000286E4 ; _IO_vfscanf+3F58j ... .text:000286E4 LDR R3, [R11,#var_8C] .text:000286E8 LDR R0, [R11,#var_F0] .text:000286EC CMP R3, R0 .text:000286F0 BNE loc_2870C .text:000286F4 .text:000286F4 loc_286F4 ; CODE XREF: _IO_vfscanf+7A8j .text:000286F4 ; _IO_vfscanf+2878j ... .text:000286F4 LDR R1, [R11,#var_9C] .text:000286F8 CMP R1, #0 .text:000286FC LDRNE R3, [R1] .text:00028700 ORRNE R3, R3, #2 .text:00028704 STRNE R3, [R1] .text:00028708 B loc_29294 .text:0002870C ; --------------------------------------------------------------------------- .text:0002870C .text:0002870C loc_2870C ; CODE XREF: _IO_vfscanf+40C0j .text:0002870C LDR R3, [R11,#var_A8] .text:00028710 CMP R8, #0 .text:00028714 MOV R12, R3 .text:00028718 ADDEQ R3, R12, #1 .text:0002871C STR R3, [R11,#var_A8] .text:00028720 B loc_29218 .text:00028724 ; --------------------------------------------------------------------------- .text:00028724 .text:00028724 loc_28724 ; CODE XREF: _IO_vfscanf+898j .text:00028724 ; DATA XREF: _IO_vfscanf+8A0o .text:00028724 LDR LR, [R11,#var_B4] ; jumptable 00024EC8 case 54 .text:00028728 ANDS R3, LR, #1 .text:0002872C MOV R5, R3 .text:00028730 BEQ loc_2888C .text:00028734 ANDS R3, LR, #8 .text:00028738 MOV R8, R3 .text:0002873C BNE loc_289E8 .text:00028740 TST LR, #0x100 .text:00028744 BEQ loc_287F8 .text:00028748 LDR R0, [R11,#var_100] .text:0002874C CMP R0, #0 .text:00028750 BNE loc_28768 .text:00028754 LDR R1, [R11,#var_A0] .text:00028758 LDR R2, [R1],#4 .text:0002875C STR R2, [R11,#var_E0] .text:00028760 STR R1, [R11,#var_A0] .text:00028764 B loc_2878C .text:00028768 ; --------------------------------------------------------------------------- .text:00028768 .text:00028768 loc_28768 ; CODE XREF: _IO_vfscanf+4120j .text:00028768 LDR R3, [R11,#var_100] .text:0002876C LDR R0, [R11,#var_98] .text:00028770 SUBS R2, R3, #1 .text:00028774 BEQ loc_28784 .text:00028778 .text:00028778 loc_28778 ; CODE XREF: _IO_vfscanf+4150j .text:00028778 ADD R0, R0, #4 .text:0002877C SUBS R2, R2, #1 .text:00028780 BNE loc_28778 .text:00028784 .text:00028784 loc_28784 ; CODE XREF: _IO_vfscanf+4144j .text:00028784 LDR R0, [R0] .text:00028788 STR R0, [R11,#var_E0] .text:0002878C .text:0002878C loc_2878C ; CODE XREF: _IO_vfscanf+4134j .text:0002878C LDR R12, [R11,#var_E0] .text:00028790 CMP R12, #0 .text:00028794 BNE loc_287D8 .text:00028798 LDR LR, [R11,#var_9C] .text:0002879C CMP LR, #0 .text:000287A0 LDRNE R3, [LR] .text:000287A4 ORRNE R3, R3, #2 .text:000287A8 STRNE R3, [LR] .text:000287AC LDR R3, [R7] .text:000287B0 TST R3, #0x8000 .text:000287B4 BNE loc_287C0 .text:000287B8 MOV R0, R7 .text:000287BC BL funlockfile .text:000287C0 .text:000287C0 loc_287C0 ; CODE XREF: _IO_vfscanf+4184j .text:000287C0 LDR R0, [R11,#var_FC] .text:000287C4 CMP R0, #0 .text:000287C8 BEQ loc_292C0 .text:000287CC LDR R1, [R11,#var_E0] .text:000287D0 SUB R0, R11, #-var_38 .text:000287D4 B loc_292BC .text:000287D8 ; --------------------------------------------------------------------------- .text:000287D8 .text:000287D8 loc_287D8 ; CODE XREF: _IO_vfscanf+4164j .text:000287D8 MOV R1, #0x64 .text:000287DC STR R1, [R11,#var_E4] .text:000287E0 MOV R0, R1,LSL#2 .text:000287E4 BL malloc .text:000287E8 STR R0, [R11,#var_DC] .text:000287EC LDR R2, [R11,#var_E0] .text:000287F0 STR R0, [R2] .text:000287F4 B loc_2883C .text:000287F8 ; --------------------------------------------------------------------------- .text:000287F8 .text:000287F8 loc_287F8 ; CODE XREF: _IO_vfscanf+4114j .text:000287F8 LDR R3, [R11,#var_100] .text:000287FC CMP R3, #0 .text:00028800 BNE loc_28818 .text:00028804 LDR R12, [R11,#var_A0] .text:00028808 LDR LR, [R12],#4 .text:0002880C STR LR, [R11,#var_DC] .text:00028810 STR R12, [R11,#var_A0] .text:00028814 B loc_2883C .text:00028818 ; --------------------------------------------------------------------------- .text:00028818 .text:00028818 loc_28818 ; CODE XREF: _IO_vfscanf+41D0j .text:00028818 LDR R1, [R11,#var_100] .text:0002881C LDR R0, [R11,#var_98] .text:00028820 SUBS R2, R1, #1 .text:00028824 BEQ loc_28834 .text:00028828 .text:00028828 loc_28828 ; CODE XREF: _IO_vfscanf+4200j .text:00028828 ADD R0, R0, #4 .text:0002882C SUBS R2, R2, #1 .text:00028830 BNE loc_28828 .text:00028834 .text:00028834 loc_28834 ; CODE XREF: _IO_vfscanf+41F4j .text:00028834 LDR R0, [R0] .text:00028838 STR R0, [R11,#var_DC] .text:0002883C .text:0002883C loc_2883C ; CODE XREF: _IO_vfscanf+41C4j .text:0002883C ; _IO_vfscanf+41E4j .text:0002883C LDR R2, [R11,#var_DC] .text:00028840 CMP R2, #0 .text:00028844 BNE loc_289E8 .text:00028848 LDR R3, [R11,#var_9C] .text:0002884C CMP R3, #0 .text:00028850 LDRNE R3, [R3] .text:00028854 LDRNE R12, [R11,#var_9C] .text:00028858 ORRNE R3, R3, #2 .text:0002885C STRNE R3, [R12] .text:00028860 LDR R3, [R7] .text:00028864 TST R3, #0x8000 .text:00028868 BNE loc_28874 .text:0002886C MOV R0, R7 .text:00028870 BL funlockfile .text:00028874 .text:00028874 loc_28874 ; CODE XREF: _IO_vfscanf+4238j .text:00028874 LDR LR, [R11,#var_FC] .text:00028878 CMP LR, #0 .text:0002887C BEQ loc_292C0 .text:00028880 LDR R1, [R11,#var_DC] .text:00028884 SUB R0, R11, #-var_38 .text:00028888 B loc_292BC .text:0002888C ; --------------------------------------------------------------------------- .text:0002888C .text:0002888C loc_2888C ; CODE XREF: _IO_vfscanf+4100j .text:0002888C LDR R0, [R11,#var_B4] .text:00028890 ANDS R3, R0, #8 .text:00028894 MOV R8, R3 .text:00028898 BNE loc_289E8 .text:0002889C TST R0, #0x100 .text:000288A0 BEQ loc_28954 .text:000288A4 LDR R1, [R11,#var_100] .text:000288A8 CMP R1, #0 .text:000288AC BNE loc_288C4 .text:000288B0 LDR R2, [R11,#var_A0] .text:000288B4 LDR R3, [R2],#4 .text:000288B8 STR R3, [R11,#var_E0] .text:000288BC STR R2, [R11,#var_A0] .text:000288C0 B loc_288E8 .text:000288C4 ; --------------------------------------------------------------------------- .text:000288C4 .text:000288C4 loc_288C4 ; CODE XREF: _IO_vfscanf+427Cj .text:000288C4 LDR R12, [R11,#var_100] .text:000288C8 LDR R0, [R11,#var_98] .text:000288CC SUBS R2, R12, #1 .text:000288D0 BEQ loc_288E0 .text:000288D4 .text:000288D4 loc_288D4 ; CODE XREF: _IO_vfscanf+42ACj .text:000288D4 ADD R0, R0, #4 .text:000288D8 SUBS R2, R2, #1 .text:000288DC BNE loc_288D4 .text:000288E0 .text:000288E0 loc_288E0 ; CODE XREF: _IO_vfscanf+42A0j .text:000288E0 LDR R0, [R0] .text:000288E4 STR R0, [R11,#var_E0] .text:000288E8 .text:000288E8 loc_288E8 ; CODE XREF: _IO_vfscanf+4290j .text:000288E8 LDR LR, [R11,#var_E0] .text:000288EC CMP LR, #0 .text:000288F0 BNE loc_28934 .text:000288F4 LDR R0, [R11,#var_9C] .text:000288F8 CMP R0, #0 .text:000288FC LDRNE R3, [R0] .text:00028900 ORRNE R3, R3, #2 .text:00028904 STRNE R3, [R0] .text:00028908 LDR R3, [R7] .text:0002890C TST R3, #0x8000 .text:00028910 BNE loc_2891C .text:00028914 MOV R0, R7 .text:00028918 BL funlockfile .text:0002891C .text:0002891C loc_2891C ; CODE XREF: _IO_vfscanf+42E0j .text:0002891C LDR R1, [R11,#var_FC] .text:00028920 CMP R1, #0 .text:00028924 BEQ loc_292C0 .text:00028928 LDR R1, [R11,#var_E0] .text:0002892C SUB R0, R11, #-var_38 .text:00028930 B loc_292BC .text:00028934 ; --------------------------------------------------------------------------- .text:00028934 .text:00028934 loc_28934 ; CODE XREF: _IO_vfscanf+42C0j .text:00028934 MOV R2, #0x64 .text:00028938 STR R2, [R11,#var_E4] .text:0002893C MOV R0, R2 .text:00028940 BL malloc .text:00028944 STR R0, [R11,#var_D8] .text:00028948 LDR R3, [R11,#var_E0] .text:0002894C STR R0, [R3] .text:00028950 B loc_28998 .text:00028954 ; --------------------------------------------------------------------------- .text:00028954 .text:00028954 loc_28954 ; CODE XREF: _IO_vfscanf+4270j .text:00028954 LDR R12, [R11,#var_100] .text:00028958 CMP R12, #0 .text:0002895C BNE loc_28974 .text:00028960 LDR LR, [R11,#var_A0] .text:00028964 LDR R0, [LR],#4 .text:00028968 STR R0, [R11,#var_D8] .text:0002896C STR LR, [R11,#var_A0] .text:00028970 B loc_28998 .text:00028974 ; --------------------------------------------------------------------------- .text:00028974 .text:00028974 loc_28974 ; CODE XREF: _IO_vfscanf+432Cj .text:00028974 LDR R1, [R11,#var_100] .text:00028978 LDR R0, [R11,#var_98] .text:0002897C SUBS R3, R1, #1 .text:00028980 BEQ loc_28990 .text:00028984 .text:00028984 loc_28984 ; CODE XREF: _IO_vfscanf+435Cj .text:00028984 ADD R0, R0, #4 .text:00028988 SUBS R3, R3, #1 .text:0002898C BNE loc_28984 .text:00028990 .text:00028990 loc_28990 ; CODE XREF: _IO_vfscanf+4350j .text:00028990 LDR R0, [R0] .text:00028994 STR R0, [R11,#var_D8] .text:00028998 .text:00028998 loc_28998 ; CODE XREF: _IO_vfscanf+4320j .text:00028998 ; _IO_vfscanf+4340j .text:00028998 LDR R2, [R11,#var_D8] .text:0002899C CMP R2, #0 .text:000289A0 BNE loc_289E8 .text:000289A4 LDR R3, [R11,#var_9C] .text:000289A8 CMP R3, #0 .text:000289AC LDRNE R3, [R3] .text:000289B0 LDRNE R12, [R11,#var_9C] .text:000289B4 ORRNE R3, R3, #2 .text:000289B8 STRNE R3, [R12] .text:000289BC LDR R3, [R7] .text:000289C0 TST R3, #0x8000 .text:000289C4 BNE loc_289D0 .text:000289C8 MOV R0, R7 .text:000289CC BL funlockfile .text:000289D0 .text:000289D0 loc_289D0 ; CODE XREF: _IO_vfscanf+4394j .text:000289D0 LDR LR, [R11,#var_FC] .text:000289D4 CMP LR, #0 .text:000289D8 BEQ loc_292C0 .text:000289DC LDR R1, [R11,#var_D8] .text:000289E0 SUB R0, R11, #-var_38 .text:000289E4 B loc_292BC .text:000289E8 ; --------------------------------------------------------------------------- .text:000289E8 .text:000289E8 loc_289E8 ; CODE XREF: _IO_vfscanf+410Cj .text:000289E8 ; _IO_vfscanf+4214j ... .text:000289E8 LDR R0, [R11,#var_A4] .text:000289EC LDRB R3, [R0] .text:000289F0 CMP R3, #0x5E .text:000289F4 BNE loc_28A0C .text:000289F8 ADD R0, R0, #1 .text:000289FC STR R0, [R11,#var_A4] .text:00028A00 MOV R1, #1 .text:00028A04 STR R1, [R11,#var_BC] .text:00028A08 B loc_28A14 .text:00028A0C ; --------------------------------------------------------------------------- .text:00028A0C .text:00028A0C loc_28A0C ; CODE XREF: _IO_vfscanf+43C4j .text:00028A0C MOV R2, #0 .text:00028A10 STR R2, [R11,#var_BC] .text:00028A14 .text:00028A14 loc_28A14 ; CODE XREF: _IO_vfscanf+43D8j .text:00028A14 LDR R3, [R11,#var_B0] .text:00028A18 LDR R12, [R11,#var_F4] .text:00028A1C CMN R3, #1 .text:00028A20 MOVLE R3, 0x7FFFFFFF .text:00028A24 CMP R12, #0xFF .text:00028A28 STR R3, [R11,#var_B0] .text:00028A2C MOVLS LR, #0x100 .text:00028A30 STRLS LR, [R11,#var_F4] .text:00028A34 SUBLS SP, SP, #0x100 .text:00028A38 STRLS SP, [R11,#var_F0] .text:00028A3C MOV R1, #0 .text:00028A40 LDR R0, [R11,#var_F0] .text:00028A44 MOV R2, #0x100 .text:00028A48 BL memset .text:00028A4C LDR R0, [R11,#var_A4] .text:00028A50 LDRB R4, [R0] .text:00028A54 CMP R4, #0x2D .text:00028A58 CMPNE R4, #0x5D .text:00028A5C BNE loc_28A74 .text:00028A60 ADD R0, R0, #1 .text:00028A64 STR R0, [R11,#var_A4] .text:00028A68 LDR R1, [R11,#var_F0] .text:00028A6C MOV R3, #1 .text:00028A70 STRB R3, [R1,R4] .text:00028A74 .text:00028A74 loc_28A74 ; CODE XREF: _IO_vfscanf+442Cj .text:00028A74 LDR R2, [R11,#var_A4] .text:00028A78 LDRB R4, [R2],#1 .text:00028A7C CMP R4, #0 .text:00028A80 STR R2, [R11,#var_A4] .text:00028A84 BEQ loc_28B28 .text:00028A88 CMP R4, #0x5D .text:00028A8C BEQ loc_28B28 .text:00028A90 MOV R12, #1 .text:00028A94 .text:00028A94 loc_28A94 ; CODE XREF: _IO_vfscanf+44F4j .text:00028A94 CMP R4, #0x2D .text:00028A98 BNE loc_28AFC .text:00028A9C LDR R3, [R11,#var_A4] .text:00028AA0 LDRB R2, [R3] .text:00028AA4 CMP R2, #0 .text:00028AA8 BEQ loc_28AFC .text:00028AAC CMP R2, #0x5D .text:00028AB0 BEQ loc_28AFC .text:00028AB4 LDRB R3, [R3,#-2] .text:00028AB8 CMP R3, R2 .text:00028ABC BHI loc_28AFC .text:00028AC0 LDR LR, [R11,#var_A4] .text:00028AC4 LDRB R4, [LR,#-2] .text:00028AC8 ADD R1, LR, #1 .text:00028ACC CMP R4, R2 .text:00028AD0 BCS loc_28B0C .text:00028AD4 MOV R0, #1 .text:00028AD8 .text:00028AD8 loc_28AD8 ; CODE XREF: _IO_vfscanf+44C4j .text:00028AD8 LDR R2, [R11,#var_F0] .text:00028ADC STRB R0, [R2,R4] .text:00028AE0 LDR LR, [R11,#var_A4] .text:00028AE4 ADD R3, R4, #1 .text:00028AE8 LDRB R2, [LR] .text:00028AEC AND R4, R3, #0xFF .text:00028AF0 CMP R4, R2 .text:00028AF4 BCC loc_28AD8 .text:00028AF8 B loc_28B0C .text:00028AFC ; --------------------------------------------------------------------------- .text:00028AFC .text:00028AFC loc_28AFC ; CODE XREF: _IO_vfscanf+4468j .text:00028AFC ; _IO_vfscanf+4478j ... .text:00028AFC LDR R0, [R11,#var_A4] .text:00028B00 LDR R2, [R11,#var_F0] .text:00028B04 ADD R1, R0, #1 .text:00028B08 STRB R12, [R2,R4] .text:00028B0C .text:00028B0C loc_28B0C ; CODE XREF: _IO_vfscanf+44A0j .text:00028B0C ; _IO_vfscanf+44C8j .text:00028B0C LDR R3, [R11,#var_A4] .text:00028B10 LDRB R4, [R3] .text:00028B14 STR R1, [R11,#var_A4] .text:00028B18 CMP R4, #0 .text:00028B1C BEQ loc_28B28 .text:00028B20 CMP R4, #0x5D .text:00028B24 BNE loc_28A94 .text:00028B28 .text:00028B28 loc_28B28 ; CODE XREF: _IO_vfscanf+4454j .text:00028B28 ; _IO_vfscanf+445Cj ... .text:00028B28 CMP R4, #0 .text:00028B2C BNE loc_28B64 .text:00028B30 LDR R12, [R11,#var_9C] .text:00028B34 CMP R12, #0 .text:00028B38 LDRNE R3, [R12] .text:00028B3C ORRNE R3, R3, #2 .text:00028B40 STRNE R3, [R12] .text:00028B44 LDR R3, [R7] .text:00028B48 TST R3, #0x8000 .text:00028B4C BNE loc_28B58 .text:00028B50 MOV R0, R7 .text:00028B54 BL funlockfile .text:00028B58 .text:00028B58 loc_28B58 ; CODE XREF: _IO_vfscanf+451Cj .text:00028B58 LDR LR, [R11,#var_FC] .text:00028B5C CMP LR, #0 .text:00028B60 B loc_292B0 .text:00028B64 ; --------------------------------------------------------------------------- .text:00028B64 .text:00028B64 loc_28B64 ; CODE XREF: _IO_vfscanf+44FCj .text:00028B64 CMP R5, #0 .text:00028B68 BEQ loc_28EE8 .text:00028B6C LDR R0, [R11,#var_AC] .text:00028B70 CMN R10, #1 .text:00028B74 STR R0, [R11,#var_110] .text:00028B78 BEQ loc_28BB8 .text:00028B7C LDMIB R7, {R2,R3} .text:00028B80 CMP R2, R3 .text:00028B84 BCC loc_28B98 .text:00028B88 MOV R0, R7 .text:00028B8C BL __uflow .text:00028B90 MOV R10, R0 .text:00028B94 B loc_28BA0 .text:00028B98 ; --------------------------------------------------------------------------- .text:00028B98 .text:00028B98 loc_28B98 ; CODE XREF: _IO_vfscanf+4554j .text:00028B98 LDRB R10, [R2],#1 .text:00028B9C STR R2, [R7,#4] .text:00028BA0 .text:00028BA0 loc_28BA0 ; CODE XREF: _IO_vfscanf+4564j .text:00028BA0 CMN R10, #1 .text:00028BA4 LDRNE R1, [R11,#var_AC] .text:00028BA8 ADDNE R1, R1, #1 .text:00028BAC STRNE R1, [R11,#var_AC] .text:00028BB0 CMN R10, #1 .text:00028BB4 BNE loc_28C0C .text:00028BB8 .text:00028BB8 loc_28BB8 ; CODE XREF: _IO_vfscanf+EB4j .text:00028BB8 ; _IO_vfscanf+3588j ... .text:00028BB8 LDR R3, [R7] .text:00028BBC TST R3, #0x8000 .text:00028BC0 BNE loc_28BCC .text:00028BC4 MOV R0, R7 .text:00028BC8 BL funlockfile .text:00028BCC .text:00028BCC loc_28BCC ; CODE XREF: _IO_vfscanf+4590j .text:00028BCC LDR R2, [R11,#var_9C] .text:00028BD0 CMP R2, #0 .text:00028BD4 LDRNE R3, [R2] .text:00028BD8 ORRNE R3, R3, #1 .text:00028BDC STRNE R3, [R2] .text:00028BE0 LDR R3, [R11,#var_FC] .text:00028BE4 CMP R3, #0 .text:00028BE8 BEQ loc_28BF8 .text:00028BEC SUB R0, R11, #-var_38 .text:00028BF0 MOV R1, #0 .text:00028BF4 BL 0 .text:00028BF8 .text:00028BF8 loc_28BF8 ; CODE XREF: _IO_vfscanf+45B8j .text:00028BF8 LDR R12, [R11,#var_A8] .text:00028BFC CMP R12, #0 .text:00028C00 MOV R0, R12 .text:00028C04 MOVEQ R0, 0xFFFFFFFF .text:00028C08 B loc_292C4 .text:00028C0C ; --------------------------------------------------------------------------- .text:00028C0C .text:00028C0C loc_28C0C ; CODE XREF: _IO_vfscanf+4584j .text:00028C0C SUB R0, R11, #-var_94 .text:00028C10 MOV R1, #0 .text:00028C14 MOV R2, #8 .text:00028C18 BL memset .text:00028C1C SUB R9, R11, #-var_94 .text:00028C20 B loc_28DD8 .text:00028C24 ; --------------------------------------------------------------------------- .text:00028C24 .text:00028C24 loc_28C24 ; CODE XREF: _IO_vfscanf+47B8j .text:00028C24 CMP R8, #0 .text:00028C28 BNE loc_28D80 .text:00028C2C SUB R1, R11, #-var_70 .text:00028C30 MOV R2, R8 .text:00028C34 LDR R0, [R11,#var_DC] .text:00028C38 MOV R3, R9 .text:00028C3C BL mbrtowc .text:00028C40 CMN R0, #2 .text:00028C44 BNE loc_28C70 .text:00028C48 BL __ctype_get_mb_cur_max .text:00028C4C MOV LR, #0 .text:00028C50 CMP LR, R0 .text:00028C54 BCC loc_28D94 .text:00028C58 LDR R0, =aCnt__ctype_get ; "cnt < (__ctype_get_mb_cur_max ())" .text:00028C5C LDR R1, =aVfscanf_c ; "vfscanf.c" .text:00028C60 MOV R2, #0x830 .text:00028C64 LDR R3, =a_io_vfscanf ; "_IO_vfscanf" .text:00028C68 ADD R2, R2, #3 .text:00028C6C BL __assert_fail .text:00028C70 ; --------------------------------------------------------------------------- .text:00028C70 .text:00028C70 loc_28C70 ; CODE XREF: _IO_vfscanf+4614j .text:00028C70 CMP R0, #0 .text:00028C74 BNE loc_25594 .text:00028C78 LDR R2, [R11,#var_DC] .text:00028C7C LDR R3, [R11,#var_B4] .text:00028C80 ADD R2, R2, #4 .text:00028C84 TST R3, #0x100 .text:00028C88 STR R2, [R11,#var_DC] .text:00028C8C BEQ loc_28D80 .text:00028C90 SUB R12, R11, #-var_E4 .text:00028C94 LDMIA R12, {R12,LR} .text:00028C98 MOV R5, R12,LSL#2 .text:00028C9C LDR R0, [LR] .text:00028CA0 MOV R6, R5 .text:00028CA4 ADD R3, R0, R5 .text:00028CA8 CMP R2, R3 .text:00028CAC BNE loc_28D80 .text:00028CB0 MOV R1, R12,LSL#3 .text:00028CB4 BL realloc .text:00028CB8 CMP R0, #0 .text:00028CBC STR R0, [R11,#var_DC] .text:00028CC0 BNE loc_28D60 .text:00028CC4 LDR R2, [R11,#var_E4] .text:00028CC8 LDR R1, [R11,#var_E0] .text:00028CCC ADD R4, R2, #1 .text:00028CD0 LDR R0, [R1] .text:00028CD4 MOV R1, R4,LSL#2 .text:00028CD8 BL realloc .text:00028CDC CMP R0, #0 .text:00028CE0 STR R0, [R11,#var_DC] .text:00028CE4 BNE loc_28D44 .text:00028CE8 LDR R12, [R11,#var_E0] .text:00028CEC LDR LR, [R11,#var_A8] .text:00028CF0 LDR R3, [R12] .text:00028CF4 ADD LR, LR, #1 .text:00028CF8 STR LR, [R11,#var_A8] .text:00028CFC ADD R3, R5, R3 .text:00028D00 STR R0, [R3,#-4] .text:00028D04 LDR R0, [R11,#var_9C] .text:00028D08 CMP R0, #0 .text:00028D0C LDRNE R3, [R0] .text:00028D10 ORRNE R3, R3, #2 .text:00028D14 STRNE R3, [R0] .text:00028D18 LDR R3, [R7] .text:00028D1C TST R3, #0x8000 .text:00028D20 BNE loc_28D2C .text:00028D24 MOV R0, R7 .text:00028D28 BL funlockfile .text:00028D2C .text:00028D2C loc_28D2C ; CODE XREF: _IO_vfscanf+46F0j .text:00028D2C LDR R1, [R11,#var_FC] .text:00028D30 CMP R1, #0 .text:00028D34 BEQ loc_292C0 .text:00028D38 LDR R1, [R11,#var_DC] .text:00028D3C SUB R0, R11, #-var_38 .text:00028D40 B loc_292BC .text:00028D44 ; --------------------------------------------------------------------------- .text:00028D44 .text:00028D44 loc_28D44 ; CODE XREF: _IO_vfscanf+46B4j .text:00028D44 SUB R2, R11, #-var_E0 .text:00028D48 LDMIA R2, {R2,R3} .text:00028D4C STR R3, [R2] .text:00028D50 ADD R3, R3, R6 .text:00028D54 STR R3, [R11,#var_DC] .text:00028D58 STR R4, [R11,#var_E4] .text:00028D5C B loc_28D80 .text:00028D60 ; --------------------------------------------------------------------------- .text:00028D60 .text:00028D60 loc_28D60 ; CODE XREF: _IO_vfscanf+4690j .text:00028D60 SUB R12, R11, #-var_E0 .text:00028D64 LDMIA R12, {R12,LR} .text:00028D68 STR LR, [R12] .text:00028D6C LDR R0, [R11,#var_E4] .text:00028D70 ADD LR, LR, R5 .text:00028D74 STR LR, [R11,#var_DC] .text:00028D78 MOV R0, R0,LSL#1 .text:00028D7C STR R0, [R11,#var_E4] .text:00028D80 .text:00028D80 loc_28D80 ; CODE XREF: _IO_vfscanf+45F8j .text:00028D80 ; _IO_vfscanf+465Cj ... .text:00028D80 LDR R1, [R11,#var_B0] .text:00028D84 SUB R1, R1, #1 .text:00028D88 CMP R1, #0 .text:00028D8C STR R1, [R11,#var_B0] .text:00028D90 BLE loc_28E04 .text:00028D94 .text:00028D94 loc_28D94 ; CODE XREF: _IO_vfscanf+4624j .text:00028D94 CMN R10, #1 .text:00028D98 BEQ loc_28E04 .text:00028D9C LDMIB R7, {R2,R3} .text:00028DA0 CMP R2, R3 .text:00028DA4 BCC loc_28DB8 .text:00028DA8 MOV R0, R7 .text:00028DAC BL __uflow .text:00028DB0 MOV R10, R0 .text:00028DB4 B loc_28DC0 .text:00028DB8 ; --------------------------------------------------------------------------- .text:00028DB8 .text:00028DB8 loc_28DB8 ; CODE XREF: _IO_vfscanf+4774j .text:00028DB8 LDRB R10, [R2],#1 .text:00028DBC STR R2, [R7,#4] .text:00028DC0 .text:00028DC0 loc_28DC0 ; CODE XREF: _IO_vfscanf+4784j .text:00028DC0 CMN R10, #1 .text:00028DC4 LDRNE R2, [R11,#var_AC] .text:00028DC8 ADDNE R2, R2, #1 .text:00028DCC STRNE R2, [R11,#var_AC] .text:00028DD0 CMN R10, #1 .text:00028DD4 BEQ loc_28E04 .text:00028DD8 .text:00028DD8 loc_28DD8 ; CODE XREF: _IO_vfscanf+45F0j .text:00028DD8 LDR R12, [R11,#var_F0] .text:00028DDC LDR LR, [R11,#var_BC] .text:00028DE0 LDRB R3, [R12,R10] .text:00028DE4 CMP R3, LR .text:00028DE8 BNE loc_28C24 .text:00028DEC LDR R0, [R11,#var_AC] .text:00028DF0 SUB R0, R0, #1 .text:00028DF4 STR R0, [R11,#var_AC] .text:00028DF8 AND R1, R10, #0xFF .text:00028DFC MOV R0, R7 .text:00028E00 BL _IO_sputbackc .text:00028E04 .text:00028E04 loc_28E04 ; CODE XREF: _IO_vfscanf+4760j .text:00028E04 ; _IO_vfscanf+4768j ... .text:00028E04 MOV R1, #0 .text:00028E08 CMP R1, R1 .text:00028E0C BEQ loc_28E44 .text:00028E10 LDR R2, [R11,#var_9C] .text:00028E14 CMP R2, R1 .text:00028E18 LDRNE R3, [R2] .text:00028E1C ORRNE R3, R3, #4 .text:00028E20 STRNE R3, [R2] .text:00028E24 LDR R3, [R7] .text:00028E28 TST R3, #0x8000 .text:00028E2C BNE loc_28E38 .text:00028E30 MOV R0, R7 .text:00028E34 BL funlockfile .text:00028E38 .text:00028E38 loc_28E38 ; CODE XREF: _IO_vfscanf+47FCj .text:00028E38 LDR R3, [R11,#var_FC] .text:00028E3C CMP R3, #0 .text:00028E40 B loc_255C4 .text:00028E44 ; --------------------------------------------------------------------------- .text:00028E44 .text:00028E44 loc_28E44 ; CODE XREF: _IO_vfscanf+47DCj .text:00028E44 LDR R12, [R11,#var_110] .text:00028E48 LDR LR, [R11,#var_AC] .text:00028E4C CMP R12, LR .text:00028E50 BNE loc_28E88 .text:00028E54 LDR R0, [R11,#var_9C] .text:00028E58 CMP R0, #0 .text:00028E5C LDRNE R3, [R0] .text:00028E60 ORRNE R3, R3, #2 .text:00028E64 STRNE R3, [R0] .text:00028E68 LDR R3, [R7] .text:00028E6C TST R3, #0x8000 .text:00028E70 BNE loc_28E7C .text:00028E74 MOV R0, R7 .text:00028E78 BL funlockfile .text:00028E7C .text:00028E7C loc_28E7C ; CODE XREF: _IO_vfscanf+4840j .text:00028E7C LDR R1, [R11,#var_FC] .text:00028E80 CMP R1, #0 .text:00028E84 B loc_292B0 .text:00028E88 ; --------------------------------------------------------------------------- .text:00028E88 .text:00028E88 loc_28E88 ; CODE XREF: _IO_vfscanf+4820j .text:00028E88 CMP R8, #0 .text:00028E8C BNE loc_29218 .text:00028E90 LDR R3, [R11,#var_DC] .text:00028E94 LDR R2, [R11,#var_B4] .text:00028E98 STR R8, [R3],#4 .text:00028E9C TST R2, #0x100 .text:00028EA0 STR R3, [R11,#var_DC] .text:00028EA4 BEQ loc_28ED8 .text:00028EA8 LDR R12, [R11,#var_E0] .text:00028EAC LDR R0, [R12] .text:00028EB0 LDR LR, [R11,#var_E4] .text:00028EB4 RSB R3, R0, R3 .text:00028EB8 MOV R1, R3,ASR#2 .text:00028EBC CMP R1, LR .text:00028EC0 BEQ loc_28ED8 .text:00028EC4 MOV R1, R1,LSL#2 .text:00028EC8 BL realloc .text:00028ECC CMP R0, #0 .text:00028ED0 LDRNE R1, [R11,#var_E0] .text:00028ED4 STRNE R0, [R1] .text:00028ED8 .text:00028ED8 loc_28ED8 ; CODE XREF: _IO_vfscanf+4874j .text:00028ED8 ; _IO_vfscanf+4890j .text:00028ED8 LDR R2, [R11,#var_A8] .text:00028EDC ADD R2, R2, #1 .text:00028EE0 STR R2, [R11,#var_A8] .text:00028EE4 B loc_29218 .text:00028EE8 ; --------------------------------------------------------------------------- .text:00028EE8 .text:00028EE8 loc_28EE8 ; CODE XREF: _IO_vfscanf+4538j .text:00028EE8 CMN R10, #1 .text:00028EEC LDR R5, [R11,#var_AC] .text:00028EF0 BEQ loc_28F30 .text:00028EF4 LDMIB R7, {R2,R3} .text:00028EF8 CMP R2, R3 .text:00028EFC BCC loc_28F10 .text:00028F00 MOV R0, R7 .text:00028F04 BL __uflow .text:00028F08 MOV R10, R0 .text:00028F0C B loc_28F18 .text:00028F10 ; --------------------------------------------------------------------------- .text:00028F10 .text:00028F10 loc_28F10 ; CODE XREF: _IO_vfscanf+48CCj .text:00028F10 LDRB R10, [R2],#1 .text:00028F14 STR R2, [R7,#4] .text:00028F18 .text:00028F18 loc_28F18 ; CODE XREF: _IO_vfscanf+48DCj .text:00028F18 CMN R10, #1 .text:00028F1C LDRNE R3, [R11,#var_AC] .text:00028F20 ADDNE R3, R3, #1 .text:00028F24 STRNE R3, [R11,#var_AC] .text:00028F28 CMN R10, #1 .text:00028F2C BNE loc_290F4 .text:00028F30 .text:00028F30 loc_28F30 ; CODE XREF: _IO_vfscanf+1C0j .text:00028F30 ; _IO_vfscanf+CD8j ... .text:00028F30 LDR R3, [R7] .text:00028F34 TST R3, #0x8000 .text:00028F38 BNE loc_28F44 .text:00028F3C MOV R0, R7 .text:00028F40 BL funlockfile .text:00028F44 .text:00028F44 loc_28F44 ; CODE XREF: _IO_vfscanf+4908j .text:00028F44 LDR R12, [R11,#var_9C] .text:00028F48 CMP R12, #0 .text:00028F4C BEQ loc_28F5C .text:00028F50 LDR R3, [R12] .text:00028F54 .text:00028F54 loc_28F54 ; CODE XREF: _IO_vfscanf+2D4j .text:00028F54 ; _IO_vfscanf+36F8j .text:00028F54 ORR R3, R3, #1 .text:00028F58 STR R3, [R12] .text:00028F5C .text:00028F5C loc_28F5C ; CODE XREF: _IO_vfscanf+2C8j .text:00028F5C ; _IO_vfscanf+36ECj ... .text:00028F5C LDR LR, [R11,#var_FC] .text:00028F60 CMP LR, #0 .text:00028F64 BEQ loc_28F74 .text:00028F68 SUB R0, R11, #-var_38 .text:00028F6C MOV R1, #0 .text:00028F70 BL 0 .text:00028F74 .text:00028F74 loc_28F74 ; CODE XREF: _IO_vfscanf+4934j .text:00028F74 LDR R0, [R11,#var_A8] .text:00028F78 CMP R0, #0 .text:00028F7C MOVEQ R0, 0xFFFFFFFF .text:00028F80 B loc_292C4 .text:00028F80 ; --------------------------------------------------------------------------- .text:00028F84 off_28F84 DCD aCnt__ctype_get ; DATA XREF: _IO_vfscanf+4628r .text:00028F84 ; "cnt < (__ctype_get_mb_cur_max ())" .text:00028F88 off_28F88 DCD aVfscanf_c ; DATA XREF: _IO_vfscanf+462Cr .text:00028F88 ; "vfscanf.c" .text:00028F8C off_28F8C DCD a_io_vfscanf ; DATA XREF: _IO_vfscanf+4634r .text:00028F8C ; "_IO_vfscanf" .text:00028F90 ; --------------------------------------------------------------------------- .text:00028F90 .text:00028F90 loc_28F90 ; CODE XREF: _IO_vfscanf+4AD4j .text:00028F90 CMP R8, #0 .text:00028F94 BNE loc_2909C .text:00028F98 LDR R2, [R11,#var_D8] .text:00028F9C LDR R1, [R11,#var_B4] .text:00028FA0 STRB R10, [R2],#1 .text:00028FA4 TST R1, #0x100 .text:00028FA8 STR R2, [R11,#var_D8] .text:00028FAC BEQ loc_2909C .text:00028FB0 LDR R3, [R11,#var_E0] .text:00028FB4 LDR R12, [R11,#var_E4] .text:00028FB8 LDR R0, [R3] .text:00028FBC ADD R3, R0, R12 .text:00028FC0 CMP R2, R3 .text:00028FC4 BNE loc_2909C .text:00028FC8 MOV R4, R12,LSL#1 .text:00028FCC MOV R1, R4 .text:00028FD0 BL realloc .text:00028FD4 CMP R0, #0 .text:00028FD8 STR R0, [R11,#var_D8] .text:00028FDC BNE loc_29080 .text:00028FE0 SUB R1, R11, #-var_E4 .text:00028FE4 LDMIA R1, {R1,LR} .text:00028FE8 ADD R4, R1, #1 .text:00028FEC LDR R0, [LR] .text:00028FF0 MOV R1, R4 .text:00028FF4 BL realloc .text:00028FF8 CMP R0, #0 .text:00028FFC STR R0, [R11,#var_D8] .text:00029000 BNE loc_29064 .text:00029004 LDR R2, [R11,#var_E0] .text:00029008 LDR R12, [R11,#var_A8] .text:0002900C LDR LR, [R11,#var_E4] .text:00029010 LDR R3, [R2] .text:00029014 ADD R12, R12, #1 .text:00029018 STR R12, [R11,#var_A8] .text:0002901C ADD R3, LR, R3 .text:00029020 STRB R0, [R3,#-1] .text:00029024 LDR R0, [R11,#var_9C] .text:00029028 CMP R0, #0 .text:0002902C LDRNE R3, [R0] .text:00029030 ORRNE R3, R3, #2 .text:00029034 STRNE R3, [R0] .text:00029038 LDR R3, [R7] .text:0002903C TST R3, #0x8000 .text:00029040 BNE loc_2904C .text:00029044 MOV R0, R7 .text:00029048 BL funlockfile .text:0002904C .text:0002904C loc_2904C ; CODE XREF: _IO_vfscanf+4A10j .text:0002904C LDR R1, [R11,#var_FC] .text:00029050 CMP R1, #0 .text:00029054 BEQ loc_292C0 .text:00029058 LDR R1, [R11,#var_D8] .text:0002905C SUB R0, R11, #-var_38 .text:00029060 B loc_292BC .text:00029064 ; --------------------------------------------------------------------------- .text:00029064 .text:00029064 loc_29064 ; CODE XREF: _IO_vfscanf+49D0j .text:00029064 LDR R3, [R11,#var_D8] .text:00029068 LDR R2, [R11,#var_E0] .text:0002906C STR R3, [R2] .text:00029070 LDR R12, [R11,#var_E4] .text:00029074 ADD R3, R3, R12 .text:00029078 STR R3, [R11,#var_D8] .text:0002907C B loc_29098 .text:00029080 ; --------------------------------------------------------------------------- .text:00029080 .text:00029080 loc_29080 ; CODE XREF: _IO_vfscanf+49ACj .text:00029080 LDR R0, [R11,#var_D8] .text:00029084 LDR LR, [R11,#var_E0] .text:00029088 STR R0, [LR] .text:0002908C LDR R1, [R11,#var_E4] .text:00029090 ADD R0, R0, R1 .text:00029094 STR R0, [R11,#var_D8] .text:00029098 .text:00029098 loc_29098 ; CODE XREF: _IO_vfscanf+4A4Cj .text:00029098 STR R4, [R11,#var_E4] .text:0002909C .text:0002909C loc_2909C ; CODE XREF: _IO_vfscanf+4964j .text:0002909C ; _IO_vfscanf+497Cj ... .text:0002909C LDR R2, [R11,#var_B0] .text:000290A0 SUB R2, R2, #1 .text:000290A4 CMP R2, #0 .text:000290A8 STR R2, [R11,#var_B0] .text:000290AC BLE loc_29120 .text:000290B0 CMN R10, #1 .text:000290B4 BEQ loc_29120 .text:000290B8 LDMIB R7, {R2,R3} .text:000290BC CMP R2, R3 .text:000290C0 BCC loc_290D4 .text:000290C4 MOV R0, R7 .text:000290C8 BL __uflow .text:000290CC MOV R10, R0 .text:000290D0 B loc_290DC .text:000290D4 ; --------------------------------------------------------------------------- .text:000290D4 .text:000290D4 loc_290D4 ; CODE XREF: _IO_vfscanf+4A90j .text:000290D4 LDRB R10, [R2],#1 .text:000290D8 STR R2, [R7,#4] .text:000290DC .text:000290DC loc_290DC ; CODE XREF: _IO_vfscanf+4AA0j .text:000290DC CMN R10, #1 .text:000290E0 LDRNE R3, [R11,#var_AC] .text:000290E4 ADDNE R3, R3, #1 .text:000290E8 STRNE R3, [R11,#var_AC] .text:000290EC CMN R10, #1 .text:000290F0 BEQ loc_29120 .text:000290F4 .text:000290F4 loc_290F4 ; CODE XREF: _IO_vfscanf+48FCj .text:000290F4 LDR R12, [R11,#var_F0] .text:000290F8 LDR LR, [R11,#var_BC] .text:000290FC LDRB R3, [R12,R10] .text:00029100 CMP R3, LR .text:00029104 BNE loc_28F90 .text:00029108 LDR R0, [R11,#var_AC] .text:0002910C SUB R0, R0, #1 .text:00029110 STR R0, [R11,#var_AC] .text:00029114 AND R1, R10, #0xFF .text:00029118 MOV R0, R7 .text:0002911C BL _IO_sputbackc .text:00029120 .text:00029120 loc_29120 ; CODE XREF: _IO_vfscanf+4A7Cj .text:00029120 ; _IO_vfscanf+4A84j ... .text:00029120 LDR R1, [R11,#var_AC] .text:00029124 CMP R5, R1 .text:00029128 BNE loc_29160 .text:0002912C LDR R2, [R11,#var_9C] .text:00029130 CMP R2, #0 .text:00029134 LDRNE R3, [R2] .text:00029138 ORRNE R3, R3, #2 .text:0002913C STRNE R3, [R2] .text:00029140 LDR R3, [R7] .text:00029144 TST R3, #0x8000 .text:00029148 BNE loc_29154 .text:0002914C MOV R0, R7 .text:00029150 BL funlockfile .text:00029154 .text:00029154 loc_29154 ; CODE XREF: _IO_vfscanf+4B18j .text:00029154 LDR R3, [R11,#var_FC] .text:00029158 CMP R3, #0 .text:0002915C B loc_292B0 .text:00029160 ; --------------------------------------------------------------------------- .text:00029160 .text:00029160 loc_29160 ; CODE XREF: _IO_vfscanf+1360j .text:00029160 ; _IO_vfscanf+1368j ... .text:00029160 CMP R8, #0 .text:00029164 BNE loc_29218 .text:00029168 LDR LR, [R11,#var_D8] .text:0002916C LDR R12, [R11,#var_B4] .text:00029170 STRB R8, [LR],#1 .text:00029174 TST R12, #0x100 .text:00029178 STR LR, [R11,#var_D8] .text:0002917C BEQ loc_291A8 .text:00029180 LDR R1, [R11,#var_E0] .text:00029184 LDR R0, [R1] .text:00029188 LDR R2, [R11,#var_E4] .text:0002918C RSB R1, R0, LR .text:00029190 CMP R1, R2 .text:00029194 BEQ loc_291A8 .text:00029198 BL realloc .text:0002919C CMP R0, #0 .text:000291A0 LDRNE R3, [R11,#var_E0] .text:000291A4 STRNE R0, [R3] .text:000291A8 .text:000291A8 loc_291A8 ; CODE XREF: _IO_vfscanf+4B4Cj .text:000291A8 ; _IO_vfscanf+4B64j .text:000291A8 LDR R12, [R11,#var_A8] .text:000291AC ADD R12, R12, #1 .text:000291B0 STR R12, [R11,#var_A8] .text:000291B4 B loc_29218 .text:000291B8 ; --------------------------------------------------------------------------- .text:000291B8 .text:000291B8 loc_291B8 ; CODE XREF: _IO_vfscanf+898j .text:000291B8 ; DATA XREF: _IO_vfscanf+8A0o .text:000291B8 MOV LR, #0x10 ; jumptable 00024EC8 case 75 .text:000291BC STR LR, [R11,#var_C0] .text:000291C0 MOV R1, #0 .text:000291C4 STR R1, [R11,#var_C4] .text:000291C8 LDR R0, [R11,#var_B4] .text:000291CC MOV R2, #1 .text:000291D0 STR R2, [R11,#var_EC] .text:000291D4 BIC R0, R0, #6 .text:000291D8 STR R0, [R11,#var_B4] .text:000291DC B loc_25F44 .text:000291E0 ; --------------------------------------------------------------------------- .text:000291E0 .text:000291E0 loc_291E0 ; CODE XREF: _IO_vfscanf+898j .text:000291E0 ; _IO_vfscanf+89Cj .text:000291E0 ; DATA XREF: ... .text:000291E0 LDR R3, [R11,#var_9C] ; jumptable 00024EC8 default case .text:000291E4 CMP R3, #0 .text:000291E8 LDRNE R3, [R3] .text:000291EC LDRNE R12, [R11,#var_9C] .text:000291F0 ORRNE R3, R3, #2 .text:000291F4 STRNE R3, [R12] .text:000291F8 LDR R3, [R7] .text:000291FC TST R3, #0x8000 .text:00029200 BNE loc_2920C .text:00029204 MOV R0, R7 .text:00029208 BL funlockfile .text:0002920C .text:0002920C loc_2920C ; CODE XREF: _IO_vfscanf+4BD0j .text:0002920C LDR LR, [R11,#var_FC] .text:00029210 CMP LR, #0 .text:00029214 B loc_292B0 .text:00029218 ; --------------------------------------------------------------------------- .text:00029218 .text:00029218 loc_29218 ; CODE XREF: _IO_vfscanf+228j .text:00029218 ; _IO_vfscanf+260j ... .text:00029218 LDR R0, [R11,#var_A4] .text:0002921C LDRB R3, [R0] .text:00029220 CMP R3, #0 .text:00029224 BNE loc_2477C .text:00029228 .text:00029228 loc_29228 ; CODE XREF: _IO_vfscanf+13Cj .text:00029228 LDR R1, [R11,#var_E8] .text:0002922C CMP R1, #0 .text:00029230 BEQ loc_29294 .text:00029234 .text:00029234 loc_29234 ; CODE XREF: _IO_vfscanf+4C4Cj .text:00029234 CMN R10, #1 .text:00029238 BEQ loc_29260 .text:0002923C LDMIB R7, {R2,R3} .text:00029240 CMP R2, R3 .text:00029244 BCC loc_29258 .text:00029248 MOV R0, R7 .text:0002924C BL __uflow .text:00029250 MOV R10, R0 .text:00029254 B loc_29260 .text:00029258 ; --------------------------------------------------------------------------- .text:00029258 .text:00029258 loc_29258 ; CODE XREF: _IO_vfscanf+4C14j .text:00029258 LDRB R10, [R2],#1 .text:0002925C STR R2, [R7,#4] .text:00029260 .text:00029260 loc_29260 ; CODE XREF: _IO_vfscanf+4C08j .text:00029260 ; _IO_vfscanf+4C24j .text:00029260 MOV R12, R10 .text:00029264 LDR R2, =__ctype_b .text:00029268 LDR R1, [R2] .text:0002926C MOV R3, R10,LSL#1 .text:00029270 ADD R3, R3, R1 .text:00029274 LDRB R2, [R3,#1] .text:00029278 TST R2, #0x20 .text:0002927C BNE loc_29234 .text:00029280 CMN R12, #1 .text:00029284 BEQ loc_29294 .text:00029288 MOV R0, R7 .text:0002928C AND R1, R12, #0xFF .text:00029290 BL _IO_sputbackc .text:00029294 .text:00029294 loc_29294 ; CODE XREF: _IO_vfscanf+40D8j .text:00029294 ; _IO_vfscanf+4C00j ... .text:00029294 LDR R3, [R7] .text:00029298 TST R3, #0x8000 .text:0002929C BNE loc_292A8 .text:000292A0 MOV R0, R7 .text:000292A4 BL funlockfile .text:000292A8 .text:000292A8 loc_292A8 ; CODE XREF: _IO_vfscanf+4C6Cj .text:000292A8 LDR R2, [R11,#var_FC] .text:000292AC CMP R2, #0 .text:000292B0 .text:000292B0 loc_292B0 ; CODE XREF: _IO_vfscanf+218j .text:000292B0 ; _IO_vfscanf+378j ... .text:000292B0 BEQ loc_292C0 .text:000292B4 SUB R0, R11, #-var_38 .text:000292B8 MOV R1, #0 .text:000292BC .text:000292BC loc_292BC ; CODE XREF: _IO_vfscanf+C94j .text:000292BC ; _IO_vfscanf+E70j ... .text:000292BC BL 0 .text:000292C0 .text:000292C0 loc_292C0 ; CODE XREF: _IO_vfscanf+C88j .text:000292C0 ; _IO_vfscanf+E64j ... .text:000292C0 LDR R0, [R11,#var_A8] .text:000292C4 .text:000292C4 loc_292C4 ; CODE XREF: _IO_vfscanf+84j .text:000292C4 ; _IO_vfscanf+B8j ... .text:000292C4 B locret_292CC .text:000292C4 ; --------------------------------------------------------------------------- .text:000292C8 off_292C8 DCD __ctype_b ; DATA XREF: _IO_vfscanf+4C34r .text:000292CC ; --------------------------------------------------------------------------- .text:000292CC .text:000292CC locret_292CC ; CODE XREF: _IO_vfscanf:loc_292C4j .text:000292CC LDMDB R11, {R4-R11,SP,PC} .text:000292CC ; End of function _IO_vfscanf .text:000292CC .text:000292D0 .text:000292D0 ; =============== S U B R O U T I N E ======================================= .text:000292D0 .text:000292D0 ; Attributes: bp-based frame .text:000292D0 .text:000292D0 WEAK vfscanf .text:000292D0 vfscanf .text:000292D0 MOV R12, SP ; Alternative name is '__vfscanf' .text:000292D4 STMFD SP!, {R11,R12,LR,PC} .text:000292D8 SUB R11, R12, #4 .text:000292DC MOV R3, #0 .text:000292E0 BL _IO_vfscanf .text:000292E4 LDMDB R11, {R11,SP,PC} .text:000292E4 ; End of function vfscanf .text:000292E4 .text:000292E8 .text:000292E8 ; =============== S U B R O U T I N E ======================================= .text:000292E8 .text:000292E8 ; Attributes: bp-based frame .text:000292E8 .text:000292E8 WEAK flockfile .text:000292E8 flockfile ; CODE XREF: fflush+64p .text:000292E8 ; fwide+80p ... .text:000292E8 MOV R12, SP .text:000292EC STMFD SP!, {R11,R12,LR,PC} .text:000292F0 SUB R11, R12, #4 .text:000292F4 LDMDB R11, {R11,SP,PC} .text:000292F4 ; End of function flockfile .text:000292F4 .text:000292F8 .text:000292F8 ; =============== S U B R O U T I N E ======================================= .text:000292F8 .text:000292F8 ; Attributes: bp-based frame .text:000292F8 .text:000292F8 WEAK funlockfile .text:000292F8 funlockfile ; CODE XREF: fflush+A0p .text:000292F8 ; fwide+CCp ... .text:000292F8 MOV R12, SP ; Alternative name is '__funlockfile' .text:000292FC STMFD SP!, {R11,R12,LR,PC} .text:00029300 SUB R11, R12, #4 .text:00029304 LDMDB R11, {R11,SP,PC} .text:00029304 ; End of function funlockfile .text:00029304 .text:00029308 .text:00029308 ; =============== S U B R O U T I N E ======================================= .text:00029308 .text:00029308 ; Attributes: bp-based frame .text:00029308 .text:00029308 WEAK ftrylockfile .text:00029308 ftrylockfile .text:00029308 MOV R12, SP ; Alternative name is '_IO_ftrylockfile' .text:0002930C STMFD SP!, {R11,R12,LR,PC} .text:00029310 SUB R11, R12, #4 .text:00029314 MOV R0, #1 .text:00029318 LDMDB R11, {R11,SP,PC} .text:00029318 ; End of function ftrylockfile .text:00029318 .text:0002931C .text:0002931C ; =============== S U B R O U T I N E ======================================= .text:0002931C .text:0002931C ; Attributes: bp-based frame .text:0002931C .text:0002931C _i18n_number_rewrite_0 ; CODE XREF: vfwprintf+F74p .text:0002931C ; vfwprintf+1210p ... .text:0002931C MOV R12, SP .text:00029320 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00029324 SUB R11, R12, #4 .text:00029328 MOV R12, R0 .text:0002932C MOV R4, R1 .text:00029330 RSB R2, R12, R4 .text:00029334 BIC R2, R2, #3 .text:00029338 MOV R1, R12 .text:0002933C RSB SP, R2, SP .text:00029340 MOV R0, SP .text:00029344 MOV R5, SP .text:00029348 BL mempcpy .text:0002934C MOV R12, R4 .text:00029350 SUB R0, R0, #4 .text:00029354 CMP R0, SP .text:00029358 BCC loc_293A0 .text:0002935C .text:0002935C loc_2935C ; CODE XREF: _i18n_number_rewrite_0+80j .text:0002935C LDR R1, [R0] .text:00029360 SUB R3, R1, #0x30 .text:00029364 CMP R3, #9 .text:00029368 BHI loc_29390 .text:0002936C ADD R1, R1, #3 .text:00029370 LDR R2, =_nl_current_LC_CTYPE .text:00029374 MOV R1, R1,LSL#16 .text:00029378 LDR R3, [R2] .text:0002937C MOV R1, R1,LSR#16 .text:00029380 ADD R3, R3, #0x20 .text:00029384 LDR R2, [R3,R1,LSL#2] .text:00029388 STR R2, [R12,#-4]! .text:0002938C B loc_29394 .text:00029390 ; --------------------------------------------------------------------------- .text:00029390 .text:00029390 loc_29390 ; CODE XREF: _i18n_number_rewrite_0+4Cj .text:00029390 STR R1, [R12,#-4]! .text:00029394 .text:00029394 loc_29394 ; CODE XREF: _i18n_number_rewrite_0+70j .text:00029394 SUB R0, R0, #4 .text:00029398 CMP R0, R5 .text:0002939C BCS loc_2935C .text:000293A0 .text:000293A0 loc_293A0 ; CODE XREF: _i18n_number_rewrite_0+3Cj .text:000293A0 MOV R0, R12 .text:000293A4 LDMDB R11, {R4,R5,R11,SP,PC} .text:000293A4 ; End of function _i18n_number_rewrite_0 .text:000293A4 .text:000293A4 ; --------------------------------------------------------------------------- .text:000293A8 off_293A8 DCD _nl_current_LC_CTYPE .text:000293A8 ; DATA XREF: _i18n_number_rewrite_0+54r .text:000293AC .text:000293AC ; =============== S U B R O U T I N E ======================================= .text:000293AC .text:000293AC ; Attributes: bp-based frame .text:000293AC .text:000293AC EXPORT vfwprintf .text:000293AC vfwprintf ; CODE XREF: fwprintf+18p .text:000293AC ; buffered_vfprintf_0+C0p .text:000293AC .text:000293AC var_1754 = -0x1754 .text:000293AC var_1750 = -0x1750 .text:000293AC var_1154 = -0x1154 .text:000293AC var_1150 = -0x1150 .text:000293AC var_1100 = -0x1100 .text:000293AC var_1080 = -0x1080 .text:000293AC var_1040 = -0x1040 .text:000293AC var_1000 = -0x1000 .text:000293AC var_FFC = -0xFFC .text:000293AC var_FF8 = -0xFF8 .text:000293AC var_FF4 = -0xFF4 .text:000293AC var_FF3 = -0xFF3 .text:000293AC var_FF0 = -0xFF0 .text:000293AC var_FEC = -0xFEC .text:000293AC var_FE8 = -0xFE8 .text:000293AC var_FE4 = -0xFE4 .text:000293AC var_FE0 = -0xFE0 .text:000293AC var_FDF = -0xFDF .text:000293AC var_FDC = -0xFDC .text:000293AC var_FD0 = -0xFD0 .text:000293AC var_FC0 = -0xFC0 .text:000293AC var_28 = -0x28 .text:000293AC .text:000293AC MOV R12, SP .text:000293B0 STMFD SP!, {R4-R12,LR,PC} .text:000293B4 SUB R11, R12, #4 .text:000293B8 SUB R3, R11, #-var_1000 .text:000293BC SUB SP, SP, #0x1100 .text:000293C0 SUB SP, SP, #0x2C .text:000293C4 STR R2, [R3,#-0x78] .text:000293C8 MOV R5, #0 .text:000293CC MOV R4, R3 .text:000293D0 STR R5, [R4,#-0x7C] .text:000293D4 MOV R9, R0 .text:000293D8 MOV R4, R1 .text:000293DC BL __errno_location .text:000293E0 LDR R0, [R0] .text:000293E4 SUB R12, R11, #-var_1000 .text:000293E8 STR R0, [R12,#-0x94] .text:000293EC MOV R1, #1 .text:000293F0 MOV R0, R9 .text:000293F4 BL _IO_fwide .text:000293F8 MOV R1, R0 .text:000293FC CMP R1, #1 .text:00029400 BNE loc_2B4A8 .text:00029404 LDR R3, [R9] .text:00029408 TST R3, #8 .text:0002940C BNE loc_2B49C .text:00029410 CMP R4, #0 .text:00029414 BNE loc_29424 .text:00029418 BL __errno_location .text:0002941C MOV R3, #0x16 .text:00029420 B loc_2B4A4 .text:00029424 ; --------------------------------------------------------------------------- .text:00029424 .text:00029424 loc_29424 ; CODE XREF: vfwprintf+68j .text:00029424 LDRB R3, [R9,#0x46] .text:00029428 CMP R3, #0 .text:0002942C BNE loc_29440 .text:00029430 MOV R0, R9 .text:00029434 BL _IO_fwide .text:00029438 CMP R0, #1 .text:0002943C BNE loc_2B4A8 .text:00029440 .text:00029440 loc_29440 ; CODE XREF: vfwprintf+80j .text:00029440 LDR R3, [R9] .text:00029444 ANDS R2, R3, #2 .text:00029448 BEQ loc_29464 .text:0002944C MOV R0, R9 .text:00029450 MOV R1, R4 .text:00029454 SUB LR, R11, #-var_1000 .text:00029458 LDR R2, [LR,#-0x78] .text:0002945C BL buffered_vfprintf_0 .text:00029460 B loc_2DEA0 .text:00029464 ; --------------------------------------------------------------------------- .text:00029464 .text:00029464 loc_29464 ; CODE XREF: vfwprintf+9Cj .text:00029464 MOV R1, 0xFFFFFFFF .text:00029468 SUB R0, R11, #-var_1000 .text:0002946C STR R1, [R0,#-0x80] .text:00029470 MOV R3, R0 .text:00029474 LDR R5, [R3,#-0x78] .text:00029478 STR R5, [R3,#-0x8C] .text:0002947C MOV R12, R0 .text:00029480 STR R2, [R12,#-0x90] .text:00029484 MOV R0, R4 .text:00029488 ADD R1, R1, #0x26 .text:0002948C BL wcschrnul .text:00029490 SUB LR, R11, #-var_1000 .text:00029494 STR R0, [LR,#-0x84] .text:00029498 MOV R5, 0xFFFFEFF8 .text:000294A0 SUB R1, R11, #-var_28 .text:000294A4 LDR R3, =0 .text:000294A8 MOV R2, LR .text:000294AC STR R0, [R1,R5] .text:000294B0 SUBS R12, R3, #0 .text:000294B4 MOVNE R12, #1 .text:000294B8 CMP R12, #0 .text:000294BC STR R12, [R2,#-0x98] .text:000294C0 BEQ loc_294DC .text:000294C4 SUB R0, R11, #-var_FD0 .text:000294C8 SUB R0, R0, #8 .text:000294CC LDR R1, =funlockfile .text:000294D0 MOV R2, R9 .text:000294D4 MOV LR, PC .text:000294D8 MOV PC, R3 .text:000294DC .text:000294DC loc_294DC ; CODE XREF: vfwprintf+114j .text:000294DC LDR R3, [R9] .text:000294E0 TST R3, #0x8000 .text:000294E4 BNE loc_294F0 .text:000294E8 MOV R0, R9 .text:000294EC BL flockfile .text:000294F0 .text:000294F0 loc_294F0 ; CODE XREF: vfwprintf+138j .text:000294F0 MOV R0, R9 .text:000294F4 MOV R1, R4 .text:000294F8 LDRB R3, [R9,#0x46] .text:000294FC SUB R2, R11, #-var_1000 .text:00029500 LDR R2, [R2,#-0x84] .text:00029504 MOV R3, R3,LSL#24 .text:00029508 ADD R3, R9, R3,ASR#24 .text:0002950C RSB R4, R4, R2 .text:00029510 MOV R4, R4,ASR#2 .text:00029514 LDR R12, [R3,#0x94] .text:00029518 MOV R2, R4 .text:0002951C MOV LR, PC .text:00029520 LDR PC, [R12,#0x1C] .text:00029524 CMP R0, R4 .text:00029528 BNE loc_2B4B0 .text:0002952C MOV R10, R0 .text:00029530 SUB R4, R11, #-var_28 .text:00029534 LDR R3, [R4,R5] .text:00029538 LDR R2, [R3] .text:0002953C CMP R2, #0 .text:00029540 BEQ loc_2DE68 .text:00029544 .text:00029544 loc_29544 ; CODE XREF: vfwprintf+20E8j .text:00029544 MOV R12, #0 .text:00029548 SUB R5, R11, #-var_1000 .text:0002954C STR R12, [R5,#-0xAC] .text:00029550 MOV LR, R5 .text:00029554 STR R12, [LR,#-0xB0] .text:00029558 MOV R0, R5 .text:0002955C LDR R1, [R0,#-0xAC] .text:00029560 STR R1, [R0,#-0xB4] .text:00029564 MOV R2, R0 .text:00029568 STR R1, [R2,#-0xB8] .text:0002956C MOV R3, R0 .text:00029570 LDR R4, [R3,#-0xB4] .text:00029574 STR R4, [R3,#-0xBC] .text:00029578 LDR R12, [R5,#-0xB4] .text:0002957C STR R12, [R5,#-0xC0] .text:00029580 LDR R0, [LR,#-0xB4] .text:00029584 STR R0, [LR,#-0xC4] .text:00029588 MOV R1, R2 .text:0002958C LDR R2, [R1,#-0xB4] .text:00029590 STR R2, [R1,#-0xC8] .text:00029594 LDR R4, [R3,#-0xB4] .text:00029598 STR R4, [R3,#-0xCC] .text:0002959C LDR R12, [R5,#-0xB4] .text:000295A0 STR R12, [R5,#-0xD0] .text:000295A4 MOV R0, 0xFFFFFFFF .text:000295A8 STR R0, [LR,#-0xD4] .text:000295AC STR R12, [R1,#-0xD8] .text:000295B0 MOV R2, R1 .text:000295B4 MOV R3, #0x20 .text:000295B8 STR R3, [R2,#-0xDC] .text:000295BC MOV R4, R1 .text:000295C0 SUB R5, R11, #-var_28 .text:000295C4 STR R5, [R4,#-0x88] .text:000295C8 MOV R3, 0xFFFFEFF8 .text:000295D0 MOV R12, R5 .text:000295D4 LDR R1, [R12,R3] .text:000295D8 MOV LR, R5 .text:000295DC ADD R2, R1, #4 .text:000295E0 STR R2, [LR,R3] .text:000295E4 LDR R1, [R1,#4] .text:000295E8 MOV R0, R4 .text:000295EC STR R1, [R0,#-0xE0] .text:000295F0 SUB R2, R1, #0x20 .text:000295F4 CMP R2, #0x5A .text:000295F8 BHI loc_29610 .text:000295FC LDR R3, =jump_table.177 .text:00029600 LDR R1, =step0_jumps.178 .text:00029604 LDR R2, [R3,R2,LSL#2] .text:00029608 LDR R3, [R1,R2,LSL#2] .text:0002960C B loc_29614 .text:00029610 ; --------------------------------------------------------------------------- .text:00029610 .text:00029610 loc_29610 ; CODE XREF: vfwprintf+24Cj .text:00029610 LDR R3, =loc_2B3FC .text:00029614 .text:00029614 loc_29614 ; CODE XREF: vfwprintf+260j .text:00029614 MOV PC, R3 .text:00029618 ; --------------------------------------------------------------------------- .text:00029618 MOV R3, #1 .text:0002961C SUB R2, R11, #-var_1000 .text:00029620 STR R3, [R2,#-0xB0] .text:00029624 MOV R3, 0xFFFFEFF8 .text:0002962C SUB R4, R11, #-var_28 .text:00029630 LDR R1, [R4,R3] .text:00029634 MOV R5, R4 .text:00029638 ADD R2, R1, #4 .text:0002963C STR R2, [R5,R3] .text:00029640 LDR R1, [R1,#4] .text:00029644 SUB R12, R11, #-var_1000 .text:00029648 STR R1, [R12,#-0xE0] .text:0002964C SUB R2, R1, #0x20 .text:00029650 CMP R2, #0x5A .text:00029654 BHI loc_2966C .text:00029658 LDR R3, =jump_table.177 .text:0002965C LDR R1, =step0_jumps.178 .text:00029660 LDR R2, [R3,R2,LSL#2] .text:00029664 LDR R3, [R1,R2,LSL#2] .text:00029668 B loc_29670 .text:0002966C ; --------------------------------------------------------------------------- .text:0002966C .text:0002966C loc_2966C ; CODE XREF: vfwprintf+2A8j .text:0002966C LDR R3, =loc_2B3FC .text:00029670 .text:00029670 loc_29670 ; CODE XREF: vfwprintf+2BCj .text:00029670 MOV PC, R3 .text:00029674 ; --------------------------------------------------------------------------- .text:00029674 MOV R1, #1 .text:00029678 SUB R0, R11, #-var_1000 .text:0002967C STR R1, [R0,#-0xB8] .text:00029680 MOV R3, 0xFFFFEFF8 .text:00029688 SUB R2, R11, #-var_28 .text:0002968C LDR R1, [R2,R3] .text:00029690 SUB R4, R11, #-var_28 .text:00029694 ADD R2, R1, #4 .text:00029698 STR R2, [R4,R3] .text:0002969C LDR R1, [R1,#4] .text:000296A0 MOV R5, R0 .text:000296A4 STR R1, [R5,#-0xE0] .text:000296A8 SUB R2, R1, #0x20 .text:000296AC CMP R2, #0x5A .text:000296B0 BHI loc_296C8 .text:000296B4 LDR R3, =jump_table.177 .text:000296B8 LDR R1, =step0_jumps.178 .text:000296BC LDR R2, [R3,R2,LSL#2] .text:000296C0 LDR R3, [R1,R2,LSL#2] .text:000296C4 B loc_296CC .text:000296C8 ; --------------------------------------------------------------------------- .text:000296C8 .text:000296C8 loc_296C8 ; CODE XREF: vfwprintf+304j .text:000296C8 LDR R3, =loc_2B3FC .text:000296CC .text:000296CC loc_296CC ; CODE XREF: vfwprintf+318j .text:000296CC MOV PC, R3 .text:000296D0 ; --------------------------------------------------------------------------- .text:000296D0 MOV R0, #1 .text:000296D4 SUB LR, R11, #-var_1000 .text:000296D8 STR R0, [LR,#-0xB4] .text:000296DC MOV R2, #0x20 .text:000296E0 MOV R1, LR .text:000296E4 STR R2, [R1,#-0xDC] .text:000296E8 MOV R3, 0xFFFFEFF8 .text:000296F0 SUB R4, R11, #-var_28 .text:000296F4 LDR R1, [R4,R3] .text:000296F8 MOV R5, R4 .text:000296FC ADD R2, R1, #4 .text:00029700 STR R2, [R5,R3] .text:00029704 LDR R1, [R1,#4] .text:00029708 MOV R12, LR .text:0002970C STR R1, [R12,#-0xE0] .text:00029710 SUB R2, R1, #0x20 .text:00029714 CMP R2, #0x5A .text:00029718 BHI loc_29730 .text:0002971C LDR R3, =jump_table.177 .text:00029720 LDR R1, =step0_jumps.178 .text:00029724 LDR R2, [R3,R2,LSL#2] .text:00029728 LDR R3, [R1,R2,LSL#2] .text:0002972C B loc_29734 .text:00029730 ; --------------------------------------------------------------------------- .text:00029730 .text:00029730 loc_29730 ; CODE XREF: vfwprintf+36Cj .text:00029730 LDR R3, =loc_2B3FC .text:00029734 .text:00029734 loc_29734 ; CODE XREF: vfwprintf+380j .text:00029734 MOV PC, R3 .text:00029738 ; --------------------------------------------------------------------------- .text:00029738 MOV R1, #1 .text:0002973C SUB R0, R11, #-var_1000 .text:00029740 STR R1, [R0,#-0xAC] .text:00029744 MOV R3, 0xFFFFEFF8 .text:0002974C SUB R2, R11, #-var_28 .text:00029750 LDR R1, [R2,R3] .text:00029754 SUB R4, R11, #-var_28 .text:00029758 ADD R2, R1, #4 .text:0002975C STR R2, [R4,R3] .text:00029760 LDR R1, [R1,#4] .text:00029764 MOV R5, R0 .text:00029768 STR R1, [R5,#-0xE0] .text:0002976C SUB R2, R1, #0x20 .text:00029770 CMP R2, #0x5A .text:00029774 BHI loc_2978C .text:00029778 LDR R3, =jump_table.177 .text:0002977C LDR R1, =step0_jumps.178 .text:00029780 LDR R2, [R3,R2,LSL#2] .text:00029784 LDR R3, [R1,R2,LSL#2] .text:00029788 B loc_29790 .text:0002978C ; --------------------------------------------------------------------------- .text:0002978C .text:0002978C loc_2978C ; CODE XREF: vfwprintf+3C8j .text:0002978C LDR R3, =loc_2B3FC .text:00029790 .text:00029790 loc_29790 ; CODE XREF: vfwprintf+3DCj .text:00029790 MOV PC, R3 .text:00029794 ; --------------------------------------------------------------------------- .text:00029794 SUB LR, R11, #-var_1000 .text:00029798 LDR R0, [LR,#-0xDC] .text:0002979C LDR LR, [LR,#-0xB4] .text:000297A0 CMP LR, #0 .text:000297A4 MOVEQ R0, #0x30 .text:000297A8 SUB LR, R11, #-var_1000 .text:000297AC STR R0, [LR,#-0xDC] .text:000297B0 MOV R3, 0xFFFFEFF8 .text:000297B8 SUB R0, R11, #-var_28 .text:000297BC LDR R1, [R0,R3] .text:000297C0 MOV R4, R0 .text:000297C4 ADD R2, R1, #4 .text:000297C8 STR R2, [R4,R3] .text:000297CC LDR R1, [R1,#4] .text:000297D0 MOV R5, LR .text:000297D4 STR R1, [R5,#-0xE0] .text:000297D8 SUB R2, R1, #0x20 .text:000297DC CMP R2, #0x5A .text:000297E0 BHI loc_297F8 .text:000297E4 LDR R3, =jump_table.177 .text:000297E8 LDR R1, =step0_jumps.178 .text:000297EC LDR R2, [R3,R2,LSL#2] .text:000297F0 LDR R3, [R1,R2,LSL#2] .text:000297F4 B loc_297FC .text:000297F8 ; --------------------------------------------------------------------------- .text:000297F8 .text:000297F8 loc_297F8 ; CODE XREF: vfwprintf+434j .text:000297F8 LDR R3, =loc_2B3FC .text:000297FC .text:000297FC loc_297FC ; CODE XREF: vfwprintf+448j .text:000297FC MOV PC, R3 .text:000297FC ; --------------------------------------------------------------------------- .text:00029800 off_29800 DCD 0 ; DATA XREF: vfwprintf+F8r .text:00029804 off_29804 DCD funlockfile ; DATA XREF: vfwprintf+120r .text:00029808 off_29808 DCD jump_table.177 ; DATA XREF: vfwprintf+250r .text:00029808 ; vfwprintf+2ACr ... .text:0002980C off_2980C DCD step0_jumps.178 ; DATA XREF: vfwprintf+254r .text:0002980C ; vfwprintf+2B0r ... .text:00029810 off_29810 DCD loc_2B3FC ; DATA XREF: vfwprintf:loc_29610r .text:00029810 ; vfwprintf:loc_2966Cr ... .text:00029814 ; --------------------------------------------------------------------------- .text:00029814 MOV R0, #1 .text:00029818 SUB LR, R11, #-var_1000 .text:0002981C STR R0, [LR,#-0xBC] .text:00029820 MOV R1, LR .text:00029824 LDR R1, [R1,#-0x80] .text:00029828 CMN R1, #1 .text:0002982C BNE loc_29874 .text:00029830 LDR R3, =_nl_current_LC_NUMERIC .text:00029834 LDR R2, [R3] .text:00029838 LDR R4, [R2,#0x28] .text:0002983C MOV R3, LR .text:00029840 STR R4, [R3,#-0x80] .text:00029844 LDRB R3, [R4] .text:00029848 MOV R12, LR .text:0002984C LDR R2, [R2,#0x30] .text:00029850 CMP R3, #0xFF .text:00029854 CMPNE R3, #0 .text:00029858 STR R2, [R12,#-0x7C] .text:0002985C BEQ loc_29868 .text:00029860 CMP R2, #0 .text:00029864 BNE loc_29874 .text:00029868 .text:00029868 loc_29868 ; CODE XREF: vfwprintf+4B0j .text:00029868 MOV R1, #0 .text:0002986C SUB R0, R11, #-var_1000 .text:00029870 STR R1, [R0,#-0x80] .text:00029874 .text:00029874 loc_29874 ; CODE XREF: vfwprintf+480j .text:00029874 ; vfwprintf+4B8j .text:00029874 MOV R3, 0xFFFFEFF8 .text:0002987C SUB R2, R11, #-var_28 .text:00029880 LDR R1, [R2,R3] .text:00029884 SUB R4, R11, #-var_28 .text:00029888 ADD R2, R1, #4 .text:0002988C STR R2, [R4,R3] .text:00029890 LDR R1, [R1,#4] .text:00029894 SUB R5, R11, #-var_1000 .text:00029898 STR R1, [R5,#-0xE0] .text:0002989C SUB R2, R1, #0x20 .text:000298A0 CMP R2, #0x5A .text:000298A4 BHI loc_298BC .text:000298A8 LDR R3, =jump_table.177 .text:000298AC LDR R1, =step0_jumps.178 .text:000298B0 LDR R2, [R3,R2,LSL#2] .text:000298B4 LDR R3, [R1,R2,LSL#2] .text:000298B8 B loc_298C0 .text:000298BC ; --------------------------------------------------------------------------- .text:000298BC .text:000298BC loc_298BC ; CODE XREF: vfwprintf+4F8j .text:000298BC LDR R3, =loc_2B3FC .text:000298C0 .text:000298C0 loc_298C0 ; CODE XREF: vfwprintf+50Cj .text:000298C0 MOV PC, R3 .text:000298C4 ; --------------------------------------------------------------------------- .text:000298C4 MOV R0, #1 .text:000298C8 SUB LR, R11, #-var_1000 .text:000298CC STR R0, [LR,#-0xD8] .text:000298D0 MOV R3, 0xFFFFEFF8 .text:000298D8 SUB R2, R11, #-var_28 .text:000298DC LDR R1, [R2,R3] .text:000298E0 SUB R4, R11, #-var_28 .text:000298E4 ADD R2, R1, #4 .text:000298E8 STR R2, [R4,R3] .text:000298EC LDR R1, [R1,#4] .text:000298F0 MOV R5, LR .text:000298F4 STR R1, [R5,#-0xE0] .text:000298F8 SUB R2, R1, #0x20 .text:000298FC CMP R2, #0x5A .text:00029900 BHI loc_29918 .text:00029904 LDR R3, =jump_table.177 .text:00029908 LDR R1, =step0_jumps.178 .text:0002990C LDR R2, [R3,R2,LSL#2] .text:00029910 LDR R3, [R1,R2,LSL#2] .text:00029914 B loc_2991C .text:00029918 ; --------------------------------------------------------------------------- .text:00029918 .text:00029918 loc_29918 ; CODE XREF: vfwprintf+554j .text:00029918 LDR R3, =loc_2B3FC .text:0002991C .text:0002991C loc_2991C ; CODE XREF: vfwprintf+568j .text:0002991C MOV PC, R3 .text:00029920 ; --------------------------------------------------------------------------- .text:00029920 MOV R2, 0xFFFFEFFF .text:00029924 SUB R3, R2, #7 .text:00029928 SUB LR, R11, #-var_28 .text:0002992C LDR R1, [LR,R3] .text:00029930 MOV R4, LR .text:00029934 ADD R0, R1, #4 .text:00029938 STR R0, [R4,R3] .text:0002993C SUB R2, R2, #3 .text:00029940 MOV R5, R4 .text:00029944 STR R0, [R5,R2] .text:00029948 LDR R3, [R1,#4] .text:0002994C SUB R1, R3, #0x30 .text:00029950 CMP R1, #9 .text:00029954 BHI loc_299C8 .text:00029958 SUB LR, R11, #-var_1000 .text:0002995C SUB LR, LR, #0x28 .text:00029960 SUB LR, LR, #4 .text:00029964 ADD R3, R0, #4 .text:00029968 STR R3, [LR] .text:0002996C LDR R2, [R0,#4] .text:00029970 MOV R4, LR .text:00029974 SUB R2, R2, #0x30 .text:00029978 CMP R2, #9 .text:0002997C BHI loc_299B0 .text:00029980 .text:00029980 loc_29980 ; CODE XREF: vfwprintf+600j .text:00029980 LDR R0, [LR] .text:00029984 MOV R3, R0 .text:00029988 LDR R12, [R3],#4 .text:0002998C STR R3, [LR] .text:00029990 ADD R2, R1, R1,LSL#2 .text:00029994 MOV R1, R2,LSL#1 .text:00029998 SUB R1, R1, #0x30 .text:0002999C LDR R3, [R0,#4] .text:000299A0 ADD R1, R1, R12 .text:000299A4 SUB R3, R3, #0x30 .text:000299A8 CMP R3, #9 .text:000299AC BLS loc_29980 .text:000299B0 .text:000299B0 loc_299B0 ; CODE XREF: vfwprintf+5D0j .text:000299B0 CMP R1, #0 .text:000299B4 BEQ loc_299C8 .text:000299B8 LDR R3, [R4] .text:000299BC LDR R2, [R3] .text:000299C0 CMP R2, #0x24 .text:000299C4 BEQ loc_2B4B8 .text:000299C8 .text:000299C8 loc_299C8 ; CODE XREF: vfwprintf+5A8j .text:000299C8 ; vfwprintf+608j .text:000299C8 SUB R12, R11, #-var_1000 .text:000299CC LDR LR, [R12,#-0x78] .text:000299D0 ADD LR, LR, #4 .text:000299D4 STR LR, [R12,#-0x78] .text:000299D8 SUB LR, LR, #4 .text:000299DC LDR LR, [LR] .text:000299E0 STR LR, [R12,#-0xD0] .text:000299E4 CMP LR, #0 .text:000299E8 BGE loc_29A10 .text:000299EC RSB R2, LR, #0 .text:000299F0 MOV R1, R12 .text:000299F4 STR R2, [R1,#-0xD0] .text:000299F8 MOV R4, #0x20 .text:000299FC MOV R3, R1 .text:00029A00 STR R4, [R3,#-0xDC] .text:00029A04 MOV R12, #1 .text:00029A08 MOV R5, R1 .text:00029A0C STR R12, [R5,#-0xB4] .text:00029A10 .text:00029A10 loc_29A10 ; CODE XREF: vfwprintf+63Cj .text:00029A10 SUB LR, R11, #-var_1000 .text:00029A14 LDR LR, [LR,#-0xD0] .text:00029A18 ADD R3, LR, #0x20 .text:00029A1C CMP R3, #0x3E8 .text:00029A20 BLT loc_29A38 .text:00029A24 SUB SP, SP, R3,LSL#2 .text:00029A28 ADD R3, SP, LR,LSL#2 .text:00029A2C ADD R3, R3, #0x84 .text:00029A30 SUB R1, R11, #-var_1000 .text:00029A34 STR R3, [R1,#-0x88] .text:00029A38 .text:00029A38 loc_29A38 ; CODE XREF: vfwprintf+674j .text:00029A38 MOV R3, 0xFFFFEFF8 .text:00029A40 SUB R4, R11, #-var_28 .text:00029A44 LDR R2, [R4,R3] .text:00029A48 LDR R2, [R2] .text:00029A4C SUB R5, R11, #-var_1000 .text:00029A50 STR R2, [R5,#-0xE0] .text:00029A54 MOV R12, R5 .text:00029A58 LDR R12, [R12,#-0xE0] .text:00029A5C SUB R2, R12, #0x20 .text:00029A60 CMP R2, #0x5A .text:00029A64 BHI loc_29A7C .text:00029A68 LDR R3, =jump_table.177 .text:00029A6C LDR R1, =step1_jumps.179 .text:00029A70 LDR R2, [R3,R2,LSL#2] .text:00029A74 LDR R3, [R1,R2,LSL#2] .text:00029A78 B loc_29A80 .text:00029A7C ; --------------------------------------------------------------------------- .text:00029A7C .text:00029A7C loc_29A7C ; CODE XREF: vfwprintf+6B8j .text:00029A7C LDR R3, =loc_2B3FC .text:00029A80 .text:00029A80 loc_29A80 ; CODE XREF: vfwprintf+6CCj .text:00029A80 MOV PC, R3 .text:00029A84 ; --------------------------------------------------------------------------- .text:00029A84 SUB LR, R11, #-var_1000 .text:00029A88 SUB LR, LR, #0x28 .text:00029A8C SUB LR, LR, #8 .text:00029A90 LDR R2, [LR] .text:00029A94 MOV R3, R2 .text:00029A98 LDR R1, [R3],#4 .text:00029A9C STR R3, [LR] .text:00029AA0 LDR R3, [R2,#4] .text:00029AA4 SUB R2, R1, #0x30 .text:00029AA8 B loc_29AD0 .text:00029AAC ; --------------------------------------------------------------------------- .text:00029AAC .text:00029AAC loc_29AAC ; CODE XREF: vfwprintf+72Cj .text:00029AAC LDR R0, [LR] .text:00029AB0 MOV R3, R0 .text:00029AB4 LDR R12, [R3],#4 .text:00029AB8 STR R3, [LR] .text:00029ABC ADD R2, R2, R2,LSL#2 .text:00029AC0 MOV R2, R2,LSL#1 .text:00029AC4 SUB R1, R2, #0x30 .text:00029AC8 LDR R3, [R0,#4] .text:00029ACC ADD R2, R1, R12 .text:00029AD0 .text:00029AD0 loc_29AD0 ; CODE XREF: vfwprintf+6FCj .text:00029AD0 SUB R3, R3, #0x30 .text:00029AD4 CMP R3, #9 .text:00029AD8 BLS loc_29AAC .text:00029ADC SUB LR, R11, #-var_1000 .text:00029AE0 STR R2, [LR,#-0xD0] .text:00029AE4 ADD R3, R2, #0x20 .text:00029AE8 CMP R3, #0x3E8 .text:00029AEC BLT loc_29B04 .text:00029AF0 SUB SP, SP, R3,LSL#2 .text:00029AF4 ADD R3, SP, R2,LSL#2 .text:00029AF8 ADD R3, R3, #0x84 .text:00029AFC MOV R2, LR .text:00029B00 STR R3, [R2,#-0x88] .text:00029B04 .text:00029B04 loc_29B04 ; CODE XREF: vfwprintf+740j .text:00029B04 SUB R4, R11, #-var_1000 .text:00029B08 LDR R3, [R4,#-0x30] .text:00029B0C LDR R0, [R3] .text:00029B10 CMP R0, #0x24 .text:00029B14 BEQ loc_2B4B8 .text:00029B18 MOV R5, R4 .text:00029B1C STR R0, [R5,#-0xE0] .text:00029B20 SUB R2, R0, #0x20 .text:00029B24 CMP R2, #0x5A .text:00029B28 BHI loc_29B40 .text:00029B2C LDR R3, =jump_table.177 .text:00029B30 LDR R1, =step1_jumps.179 .text:00029B34 LDR R2, [R3,R2,LSL#2] .text:00029B38 LDR R3, [R1,R2,LSL#2] .text:00029B3C B loc_29B44 .text:00029B40 ; --------------------------------------------------------------------------- .text:00029B40 .text:00029B40 loc_29B40 ; CODE XREF: vfwprintf+77Cj .text:00029B40 LDR R3, =loc_2B3FC .text:00029B44 .text:00029B44 loc_29B44 ; CODE XREF: vfwprintf+790j .text:00029B44 MOV PC, R3 .text:00029B44 ; --------------------------------------------------------------------------- .text:00029B48 off_29B48 DCD _nl_current_LC_NUMERIC ; DATA XREF: vfwprintf+484r .text:00029B4C off_29B4C DCD jump_table.177 ; DATA XREF: vfwprintf+4FCr .text:00029B4C ; vfwprintf+558r ... .text:00029B50 off_29B50 DCD step0_jumps.178 ; DATA XREF: vfwprintf+500r .text:00029B50 ; vfwprintf+55Cr .text:00029B54 off_29B54 DCD loc_2B3FC ; DATA XREF: vfwprintf:loc_298BCr .text:00029B54 ; vfwprintf:loc_29918r ... .text:00029B58 off_29B58 DCD step1_jumps.179 ; DATA XREF: vfwprintf+6C0r .text:00029B58 ; vfwprintf+784r .text:00029B5C ; --------------------------------------------------------------------------- .text:00029B5C SUB R3, R11, #-var_1000 .text:00029B60 SUB R3, R3, #0x28 .text:00029B64 SUB R3, R3, #8 .text:00029B68 LDR R2, [R3] .text:00029B6C ADD R0, R2, #4 .text:00029B70 STR R0, [R3] .text:00029B74 LDR R2, [R2,#4] .text:00029B78 MOV R1, R0 .text:00029B7C CMP R2, #0x2A .text:00029B80 BNE loc_29C4C .text:00029B84 ADD R0, R1, #4 .text:00029B88 SUB LR, R11, #-var_1000 .text:00029B8C MOV R3, 0xFFFFEFFF .text:00029B90 STR R0, [LR,#-0x30] .text:00029B94 SUB R3, R3, #0xB .text:00029B98 SUB R2, R11, #-var_28 .text:00029B9C STR R0, [R2,R3] .text:00029BA0 LDR R2, [R1,#4] .text:00029BA4 SUB R1, R2, #0x30 .text:00029BA8 CMP R1, #9 .text:00029BAC BHI loc_29C20 .text:00029BB0 SUB LR, R11, #-var_1000 .text:00029BB4 SUB LR, LR, #0x28 .text:00029BB8 SUB LR, LR, #0xC .text:00029BBC ADD R3, R0, #4 .text:00029BC0 STR R3, [LR] .text:00029BC4 LDR R2, [R0,#4] .text:00029BC8 MOV R4, LR .text:00029BCC SUB R2, R2, #0x30 .text:00029BD0 CMP R2, #9 .text:00029BD4 BHI loc_29C08 .text:00029BD8 .text:00029BD8 loc_29BD8 ; CODE XREF: vfwprintf+858j .text:00029BD8 LDR R0, [LR] .text:00029BDC MOV R3, R0 .text:00029BE0 LDR R12, [R3],#4 .text:00029BE4 STR R3, [LR] .text:00029BE8 ADD R2, R1, R1,LSL#2 .text:00029BEC MOV R1, R2,LSL#1 .text:00029BF0 SUB R1, R1, #0x30 .text:00029BF4 LDR R3, [R0,#4] .text:00029BF8 ADD R1, R1, R12 .text:00029BFC SUB R3, R3, #0x30 .text:00029C00 CMP R3, #9 .text:00029C04 BLS loc_29BD8 .text:00029C08 .text:00029C08 loc_29C08 ; CODE XREF: vfwprintf+828j .text:00029C08 CMP R1, #0 .text:00029C0C BEQ loc_29C20 .text:00029C10 LDR R3, [R4] .text:00029C14 LDR R2, [R3] .text:00029C18 CMP R2, #0x24 .text:00029C1C BEQ loc_2B4B8 .text:00029C20 .text:00029C20 loc_29C20 ; CODE XREF: vfwprintf+800j .text:00029C20 ; vfwprintf+860j .text:00029C20 SUB R3, R11, #-var_1000 .text:00029C24 LDR R4, [R3,#-0x78] .text:00029C28 ADD R4, R4, #4 .text:00029C2C STR R4, [R3,#-0x78] .text:00029C30 SUB R4, R4, #4 .text:00029C34 LDR R4, [R4] .text:00029C38 MOV R12, R3 .text:00029C3C CMN R4, #1 .text:00029C40 MOVLE R4, 0xFFFFFFFF .text:00029C44 STR R4, [R12,#-0xD4] .text:00029C48 B loc_29D2C .text:00029C4C ; --------------------------------------------------------------------------- .text:00029C4C .text:00029C4C loc_29C4C ; CODE XREF: vfwprintf+7D4j .text:00029C4C SUB R1, R2, #0x30 .text:00029C50 CMP R1, #9 .text:00029C54 BHI loc_29D20 .text:00029C58 ADD R3, R0, #4 .text:00029C5C SUB LR, R11, #-var_1000 .text:00029C60 STR R3, [LR,#-0x30] .text:00029C64 LDR R2, [R0,#4] .text:00029C68 SUB R2, R2, #0x30 .text:00029C6C CMP R2, #9 .text:00029C70 BHI loc_29CAC .text:00029C74 .text:00029C74 loc_29C74 ; CODE XREF: vfwprintf+8FCj .text:00029C74 SUB R2, R11, #-var_1000 .text:00029C78 LDR R0, [R2,#-0x30] .text:00029C7C MOV R3, R0 .text:00029C80 LDR R12, [R3],#4 .text:00029C84 MOV R4, R2 .text:00029C88 STR R3, [R4,#-0x30] .text:00029C8C ADD R2, R1, R1,LSL#2 .text:00029C90 MOV R1, R2,LSL#1 .text:00029C94 SUB R1, R1, #0x30 .text:00029C98 LDR R3, [R0,#4] .text:00029C9C ADD R1, R1, R12 .text:00029CA0 SUB R3, R3, #0x30 .text:00029CA4 CMP R3, #9 .text:00029CA8 BLS loc_29C74 .text:00029CAC .text:00029CAC loc_29CAC ; CODE XREF: vfwprintf+8C4j .text:00029CAC SUB R5, R11, #-var_1000 .text:00029CB0 STR R1, [R5,#-0xD4] .text:00029CB4 B loc_29D2C .text:00029CB8 ; --------------------------------------------------------------------------- .text:00029CB8 .text:00029CB8 loc_29CB8 ; CODE XREF: vfwprintf+1BA4j .text:00029CB8 SUB R12, R11, #-var_1000 .text:00029CBC LDR LR, [R12,#-0x78] .text:00029CC0 ADD LR, LR, #4 .text:00029CC4 STR LR, [R12,#-0x78] .text:00029CC8 SUB LR, LR, #4 .text:00029CCC LDR R2, [LR],#4 .text:00029CD0 MOV R3, R10 .text:00029CD4 MOV R4, R3,ASR#31 .text:00029CD8 STMIA R2, {R3,R4} .text:00029CDC B loc_2B410 .text:00029CE0 ; --------------------------------------------------------------------------- .text:00029CE0 .text:00029CE0 loc_29CE0 ; CODE XREF: vfwprintf+1BB4j .text:00029CE0 SUB R0, R11, #-var_1000 .text:00029CE4 LDR R1, [R0,#-0x78] .text:00029CE8 ADD R1, R1, #4 .text:00029CEC STR R1, [R0,#-0x78] .text:00029CF0 SUB R1, R1, #4 .text:00029CF4 LDR R3, [R1],#4 .text:00029CF8 STRB R10, [R3] .text:00029CFC B loc_2B410 .text:00029D00 ; --------------------------------------------------------------------------- .text:00029D00 .text:00029D00 loc_29D00 ; CODE XREF: vfwprintf+1BC4j .text:00029D00 SUB R2, R11, #-var_1000 .text:00029D04 LDR R4, [R2,#-0x78] .text:00029D08 ADD R4, R4, #4 .text:00029D0C STR R4, [R2,#-0x78] .text:00029D10 SUB R4, R4, #4 .text:00029D14 LDR R3, [R4],#4 .text:00029D18 STR R10, [R3] .text:00029D1C B loc_2B410 .text:00029D20 ; --------------------------------------------------------------------------- .text:00029D20 .text:00029D20 loc_29D20 ; CODE XREF: vfwprintf+8A8j .text:00029D20 MOV R12, #0 .text:00029D24 SUB R5, R11, #-var_1000 .text:00029D28 STR R12, [R5,#-0xD4] .text:00029D2C .text:00029D2C loc_29D2C ; CODE XREF: vfwprintf+89Cj .text:00029D2C ; vfwprintf+908j .text:00029D2C SUB LR, R11, #-var_1000 .text:00029D30 SUB R0, LR, #0xD4 .text:00029D34 LDMIA R0, {R0,LR} .text:00029D38 CMP R0, LR .text:00029D3C BLE loc_29D70 .text:00029D40 ADD R3, R0, #0x20 .text:00029D44 CMP R3, #0x3E8 .text:00029D48 BLE loc_29D70 .text:00029D4C SUB R1, R11, #-var_1000 .text:00029D50 LDR R1, [R1,#-0xE0] .text:00029D54 SUB R4, R11, #-var_1000 .text:00029D58 ADD R3, R1, #0x23 .text:00029D5C BIC R3, R3, #3 .text:00029D60 RSB SP, R3, SP .text:00029D64 ADD R2, SP, R1 .text:00029D68 ADD R2, R2, #0x24 .text:00029D6C STR R2, [R4,#-0x88] .text:00029D70 .text:00029D70 loc_29D70 ; CODE XREF: vfwprintf+990j .text:00029D70 ; vfwprintf+99Cj .text:00029D70 SUB R5, R11, #-var_1000 .text:00029D74 LDR R3, [R5,#-0x30] .text:00029D78 LDR R3, [R3] .text:00029D7C MOV R12, R5 .text:00029D80 STR R3, [R12,#-0xE0] .text:00029D84 SUB R2, R3, #0x20 .text:00029D88 CMP R2, #0x5A .text:00029D8C BHI loc_29DA4 .text:00029D90 LDR R3, =jump_table.177 .text:00029D94 LDR R1, =step2_jumps.180 .text:00029D98 LDR R2, [R3,R2,LSL#2] .text:00029D9C LDR R3, [R1,R2,LSL#2] .text:00029DA0 B loc_29DA8 .text:00029DA4 ; --------------------------------------------------------------------------- .text:00029DA4 .text:00029DA4 loc_29DA4 ; CODE XREF: vfwprintf+9E0j .text:00029DA4 LDR R3, =loc_2B3FC .text:00029DA8 .text:00029DA8 loc_29DA8 ; CODE XREF: vfwprintf+9F4j .text:00029DA8 MOV PC, R3 .text:00029DAC ; --------------------------------------------------------------------------- .text:00029DAC MOV R1, #1 .text:00029DB0 SUB R0, R11, #-var_1000 .text:00029DB4 STR R1, [R0,#-0xC4] .text:00029DB8 SUB R3, R11, #-var_1000 .text:00029DBC SUB R3, R3, #0x28 .text:00029DC0 SUB R3, R3, #8 .text:00029DC4 LDR R1, [R3] .text:00029DC8 ADD R2, R1, #4 .text:00029DCC STR R2, [R3] .text:00029DD0 LDR R1, [R1,#4] .text:00029DD4 MOV R2, R0 .text:00029DD8 STR R1, [R2,#-0xE0] .text:00029DDC SUB R2, R1, #0x20 .text:00029DE0 CMP R2, #0x5A .text:00029DE4 BHI loc_29DFC .text:00029DE8 LDR R3, =jump_table.177 .text:00029DEC LDR R1, =step3a_jumps.181 .text:00029DF0 LDR R2, [R3,R2,LSL#2] .text:00029DF4 LDR R3, [R1,R2,LSL#2] .text:00029DF8 B loc_29E00 .text:00029DFC ; --------------------------------------------------------------------------- .text:00029DFC .text:00029DFC loc_29DFC ; CODE XREF: vfwprintf+A38j .text:00029DFC LDR R3, =loc_2B3FC .text:00029E00 .text:00029E00 loc_29E00 ; CODE XREF: vfwprintf+A4Cj .text:00029E00 MOV PC, R3 .text:00029E04 ; --------------------------------------------------------------------------- .text:00029E04 MOV R5, #0 .text:00029E08 SUB R4, R11, #-var_1000 .text:00029E0C STR R5, [R4,#-0xC4] .text:00029E10 MOV LR, #1 .text:00029E14 MOV R12, R4 .text:00029E18 STR LR, [R12,#-0xCC] .text:00029E1C SUB R3, R11, #-var_1000 .text:00029E20 SUB R3, R3, #0x28 .text:00029E24 SUB R3, R3, #8 .text:00029E28 LDR R1, [R3] .text:00029E2C ADD R2, R1, #4 .text:00029E30 STR R2, [R3] .text:00029E34 LDR R1, [R1,#4] .text:00029E38 MOV R0, R4 .text:00029E3C STR R1, [R0,#-0xE0] .text:00029E40 SUB R2, R1, #0x20 .text:00029E44 CMP R2, #0x5A .text:00029E48 BHI loc_29E60 .text:00029E4C LDR R3, =jump_table.177 .text:00029E50 LDR R1, =step4_jumps.183 .text:00029E54 LDR R2, [R3,R2,LSL#2] .text:00029E58 LDR R3, [R1,R2,LSL#2] .text:00029E5C B loc_29E64 .text:00029E60 ; --------------------------------------------------------------------------- .text:00029E60 .text:00029E60 loc_29E60 ; CODE XREF: vfwprintf+A9Cj .text:00029E60 LDR R3, =loc_2B3FC .text:00029E64 .text:00029E64 loc_29E64 ; CODE XREF: vfwprintf+AB0j .text:00029E64 MOV PC, R3 .text:00029E68 ; --------------------------------------------------------------------------- .text:00029E68 MOV R3, #1 .text:00029E6C SUB R2, R11, #-var_1000 .text:00029E70 STR R3, [R2,#-0xC8] .text:00029E74 SUB R3, R11, #-var_1000 .text:00029E78 SUB R3, R3, #0x28 .text:00029E7C SUB R3, R3, #8 .text:00029E80 LDR R1, [R3] .text:00029E84 ADD R2, R1, #4 .text:00029E88 STR R2, [R3] .text:00029E8C LDR R1, [R1,#4] .text:00029E90 SUB R4, R11, #-var_1000 .text:00029E94 STR R1, [R4,#-0xE0] .text:00029E98 SUB R2, R1, #0x20 .text:00029E9C CMP R2, #0x5A .text:00029EA0 BHI loc_29EB8 .text:00029EA4 LDR R3, =jump_table.177 .text:00029EA8 LDR R1, =step3b_jumps.182 .text:00029EAC LDR R2, [R3,R2,LSL#2] .text:00029EB0 LDR R3, [R1,R2,LSL#2] .text:00029EB4 B loc_29EBC .text:00029EB8 ; --------------------------------------------------------------------------- .text:00029EB8 .text:00029EB8 loc_29EB8 ; CODE XREF: vfwprintf+AF4j .text:00029EB8 LDR R3, =loc_2B3FC .text:00029EBC .text:00029EBC loc_29EBC ; CODE XREF: vfwprintf+B08j .text:00029EBC MOV PC, R3 .text:00029EC0 ; --------------------------------------------------------------------------- .text:00029EC0 MOV LR, #1 .text:00029EC4 SUB R12, R11, #-var_1000 .text:00029EC8 STR LR, [R12,#-0xC8] .text:00029ECC MOV R0, R12 .text:00029ED0 STR LR, [R0,#-0xC0] .text:00029ED4 SUB R3, R11, #-var_1000 .text:00029ED8 SUB R3, R3, #0x28 .text:00029EDC SUB R3, R3, #8 .text:00029EE0 LDR R1, [R3] .text:00029EE4 ADD R2, R1, #4 .text:00029EE8 STR R2, [R3] .text:00029EEC LDR R1, [R1,#4] .text:00029EF0 MOV R2, R0 .text:00029EF4 STR R1, [R2,#-0xE0] .text:00029EF8 SUB R2, R1, #0x20 .text:00029EFC CMP R2, #0x5A .text:00029F00 BHI loc_29F18 .text:00029F04 LDR R3, =jump_table.177 .text:00029F08 LDR R1, =step4_jumps.183 .text:00029F0C LDR R2, [R3,R2,LSL#2] .text:00029F10 LDR R3, [R1,R2,LSL#2] .text:00029F14 B loc_29F1C .text:00029F18 ; --------------------------------------------------------------------------- .text:00029F18 .text:00029F18 loc_29F18 ; CODE XREF: vfwprintf+B54j .text:00029F18 LDR R3, =loc_2B3FC .text:00029F1C .text:00029F1C loc_29F1C ; CODE XREF: vfwprintf+B68j .text:00029F1C MOV PC, R3 .text:00029F20 ; --------------------------------------------------------------------------- .text:00029F20 MOV R5, #0 .text:00029F24 SUB R4, R11, #-var_1000 .text:00029F28 STR R5, [R4,#-0xC8] .text:00029F2C MOV R12, R4 .text:00029F30 STR R5, [R12,#-0xC0] .text:00029F34 SUB R3, R11, #-var_1000 .text:00029F38 SUB R3, R3, #0x28 .text:00029F3C SUB R3, R3, #8 .text:00029F40 LDR R1, [R3] .text:00029F44 ADD R2, R1, #4 .text:00029F48 STR R2, [R3] .text:00029F4C LDR R1, [R1,#4] .text:00029F50 MOV LR, R4 .text:00029F54 STR R1, [LR,#-0xE0] .text:00029F58 SUB R2, R1, #0x20 .text:00029F5C CMP R2, #0x5A .text:00029F60 BHI loc_29F78 .text:00029F64 LDR R3, =jump_table.177 .text:00029F68 LDR R1, =step4_jumps.183 .text:00029F6C LDR R2, [R3,R2,LSL#2] .text:00029F70 LDR R3, [R1,R2,LSL#2] .text:00029F74 B loc_29F7C .text:00029F78 ; --------------------------------------------------------------------------- .text:00029F78 .text:00029F78 loc_29F78 ; CODE XREF: vfwprintf+BB4j .text:00029F78 LDR R3, =loc_2B3FC .text:00029F7C .text:00029F7C loc_29F7C ; CODE XREF: vfwprintf+BC8j .text:00029F7C MOV PC, R3 .text:00029F80 ; --------------------------------------------------------------------------- .text:00029F80 MOV R2, #0 .text:00029F84 SUB R1, R11, #-var_1000 .text:00029F88 STR R2, [R1,#-0xC8] .text:00029F8C MOV R3, R1 .text:00029F90 STR R2, [R3,#-0xC0] .text:00029F94 SUB R3, R11, #-var_1000 .text:00029F98 SUB R3, R3, #0x28 .text:00029F9C SUB R3, R3, #8 .text:00029FA0 LDR R1, [R3] .text:00029FA4 ADD R2, R1, #4 .text:00029FA8 STR R2, [R3] .text:00029FAC LDR R1, [R1,#4] .text:00029FB0 SUB R4, R11, #-var_1000 .text:00029FB4 STR R1, [R4,#-0xE0] .text:00029FB8 SUB R2, R1, #0x20 .text:00029FBC CMP R2, #0x5A .text:00029FC0 BHI loc_29FD8 .text:00029FC4 LDR R3, =jump_table.177 .text:00029FC8 LDR R1, =step4_jumps.183 .text:00029FCC LDR R2, [R3,R2,LSL#2] .text:00029FD0 LDR R3, [R1,R2,LSL#2] .text:00029FD4 B loc_29FDC .text:00029FD8 ; --------------------------------------------------------------------------- .text:00029FD8 .text:00029FD8 loc_29FD8 ; CODE XREF: vfwprintf+C14j .text:00029FD8 LDR R3, =loc_2B3FC .text:00029FDC .text:00029FDC loc_29FDC ; CODE XREF: vfwprintf+C28j .text:00029FDC MOV PC, R3 .text:00029FE0 ; --------------------------------------------------------------------------- .text:00029FE0 MOV LR, #1 .text:00029FE4 SUB R12, R11, #-var_1000 .text:00029FE8 STR LR, [R12,#-0xC8] .text:00029FEC MOV R0, R12 .text:00029FF0 STR LR, [R0,#-0xC0] .text:00029FF4 SUB R3, R11, #-var_1000 .text:00029FF8 SUB R3, R3, #0x28 .text:00029FFC SUB R3, R3, #8 .text:0002A000 LDR R1, [R3] .text:0002A004 ADD R2, R1, #4 .text:0002A008 STR R2, [R3] .text:0002A00C LDR R1, [R1,#4] .text:0002A010 MOV R2, R0 .text:0002A014 STR R1, [R2,#-0xE0] .text:0002A018 SUB R2, R1, #0x20 .text:0002A01C CMP R2, #0x5A .text:0002A020 BHI loc_2A038 .text:0002A024 LDR R3, =jump_table.177 .text:0002A028 LDR R1, =step4_jumps.183 .text:0002A02C LDR R2, [R3,R2,LSL#2] .text:0002A030 LDR R3, [R1,R2,LSL#2] .text:0002A034 B loc_2A03C .text:0002A038 ; --------------------------------------------------------------------------- .text:0002A038 .text:0002A038 loc_2A038 ; CODE XREF: vfwprintf+C74j .text:0002A038 LDR R3, =loc_2B3FC .text:0002A03C .text:0002A03C loc_2A03C ; CODE XREF: vfwprintf+C88j .text:0002A03C MOV PC, R3 .text:0002A040 ; --------------------------------------------------------------------------- .text:0002A040 LDR R1, [R9,#0x58] .text:0002A044 ADD R2, R1, #0x10 .text:0002A048 LDMIA R2, {R2,R3} .text:0002A04C CMP R2, R3 .text:0002A050 BCC loc_2A06C .text:0002A054 MOV R0, R9 .text:0002A058 MOV R1, #0x25 .text:0002A05C BL __woverflow .text:0002A060 CMN R0, #1 .text:0002A064 BEQ loc_2B2B8 .text:0002A068 B loc_2A078 .text:0002A06C ; --------------------------------------------------------------------------- .text:0002A06C .text:0002A06C loc_2A06C ; CODE XREF: vfwprintf+CA4j .text:0002A06C MOV R3, #0x25 .text:0002A070 STR R3, [R2],#4 .text:0002A074 STR R2, [R1,#0x10] .text:0002A078 .text:0002A078 loc_2A078 ; CODE XREF: vfwprintf+CBCj .text:0002A078 ADD R10, R10, #1 .text:0002A07C B loc_2B410 .text:0002A080 ; --------------------------------------------------------------------------- .text:0002A080 MOV R5, #0xA .text:0002A084 SUB R4, R11, #-var_1000 .text:0002A088 STR R5, [R4,#-0xA8] .text:0002A08C MOV R12, R4 .text:0002A090 LDR R12, [R12,#-0xC0] .text:0002A094 CMP R12, #0 .text:0002A098 BEQ loc_2A120 .text:0002A09C MOV LR, R4 .text:0002A0A0 LDR R0, [LR,#-0x78] .text:0002A0A4 ADD R0, R0, #8 .text:0002A0A8 STR R0, [LR,#-0x78] .text:0002A0AC MOV R2, #0 .text:0002A0B0 SUB R0, R0, #8 .text:0002A0B4 LDMIA R0!, {R7,R8} .text:0002A0B8 MOV R1, R4 .text:0002A0BC STR R2, [R1,#-0x9C] .text:0002A0C0 CMP R8, R2 .text:0002A0C4 MOVLT R4, #1 .text:0002A0C8 SUBLT R3, R11, #-var_1000 .text:0002A0CC STRLT R4, [R3,#-0x9C] .text:0002A0D0 RSBS R3, R7, #0 .text:0002A0D4 RSC R4, R8, #0 .text:0002A0D8 SUB R5, R11, #-var_1000 .text:0002A0DC SUB R0, R11, #-var_1080 .text:0002A0E0 LDR R5, [R5,#-0x9C] .text:0002A0E4 SUB R0, R0, #0x20 .text:0002A0E8 EOR R1, R5, #1 .text:0002A0EC MOV R2, #0 .text:0002A0F0 RSBS R5, R1, #0 .text:0002A0F4 RSC R6, R2, #0 .text:0002A0F8 MOV R2, R6 .text:0002A0FC MOV R1, R5 .text:0002A100 AND R1, R1, R7 .text:0002A104 AND R2, R2, R8 .text:0002A108 BIC R3, R3, R5 .text:0002A10C BIC R4, R4, R6 .text:0002A110 ORR R1, R1, R3 .text:0002A114 ORR R2, R2, R4 .text:0002A118 STMDA R0, {R1,R2} .text:0002A11C B loc_2A1F0 .text:0002A120 ; --------------------------------------------------------------------------- .text:0002A120 .text:0002A120 loc_2A120 ; CODE XREF: vfwprintf+CECj .text:0002A120 SUB R1, R11, #-var_1000 .text:0002A124 LDR R2, [R1,#-0x78] .text:0002A128 ADD R2, R2, #4 .text:0002A12C STR R2, [R1,#-0x78] .text:0002A130 MOV R4, R1 .text:0002A134 SUB R2, R2, #4 .text:0002A138 LDR R3, [R2],#4 .text:0002A13C MOV R12, R1 .text:0002A140 MOV R5, R3,LSR#31 .text:0002A144 STR R5, [R4,#-0x9C] .text:0002A148 CMP R3, #0 .text:0002A14C RSBLT R3, R3, #0 .text:0002A150 STR R3, [R12,#-0xA4] .text:0002A154 B loc_2A3D8 .text:0002A154 ; --------------------------------------------------------------------------- .text:0002A158 off_2A158 DCD jump_table.177 ; DATA XREF: vfwprintf+9E4r .text:0002A158 ; vfwprintf+A3Cr ... .text:0002A15C off_2A15C DCD step2_jumps.180 ; DATA XREF: vfwprintf+9E8r .text:0002A160 off_2A160 DCD loc_2B3FC ; DATA XREF: vfwprintf:loc_29DA4r .text:0002A160 ; vfwprintf:loc_29DFCr ... .text:0002A164 off_2A164 DCD step3a_jumps.181 ; DATA XREF: vfwprintf+A40r .text:0002A168 off_2A168 DCD step4_jumps.183 ; DATA XREF: vfwprintf+AA4r .text:0002A168 ; vfwprintf+B5Cr ... .text:0002A16C off_2A16C DCD step3b_jumps.182 ; DATA XREF: vfwprintf+AFCr .text:0002A170 ; --------------------------------------------------------------------------- .text:0002A170 MOV R0, #0xA .text:0002A174 SUB LR, R11, #-var_1000 .text:0002A178 STR R0, [LR,#-0xA8] .text:0002A17C B loc_2A19C .text:0002A180 ; --------------------------------------------------------------------------- .text:0002A180 MOV R2, #8 .text:0002A184 SUB R1, R11, #-var_1000 .text:0002A188 STR R2, [R1,#-0xA8] .text:0002A18C B loc_2A19C .text:0002A190 ; --------------------------------------------------------------------------- .text:0002A190 MOV R4, #0x10 .text:0002A194 SUB R3, R11, #-var_1000 .text:0002A198 STR R4, [R3,#-0xA8] .text:0002A19C .text:0002A19C loc_2A19C ; CODE XREF: vfwprintf+DD0j .text:0002A19C ; vfwprintf+DE0j .text:0002A19C MOV R12, #0 .text:0002A1A0 SUB R5, R11, #-var_1000 .text:0002A1A4 STR R12, [R5,#-0x9C] .text:0002A1A8 MOV LR, R5 .text:0002A1AC STR R12, [LR,#-0xB8] .text:0002A1B0 MOV R0, R5 .text:0002A1B4 LDR R1, [R0,#-0x9C] .text:0002A1B8 STR R1, [R0,#-0xB0] .text:0002A1BC MOV R2, R0 .text:0002A1C0 LDR R2, [R2,#-0xC0] .text:0002A1C4 CMP R2, R12 .text:0002A1C8 BEQ loc_2A34C .text:0002A1CC MOV R3, R0 .text:0002A1D0 LDR R4, [R3,#-0x78] .text:0002A1D4 ADD R4, R4, #8 .text:0002A1D8 STR R4, [R3,#-0x78] .text:0002A1DC SUB R5, R11, #-var_1080 .text:0002A1E0 SUB R4, R4, #8 .text:0002A1E4 LDMIA R4, {R3,R4} .text:0002A1E8 SUB R5, R5, #0x20 .text:0002A1EC STMDA R5, {R3,R4} .text:0002A1F0 .text:0002A1F0 loc_2A1F0 ; CODE XREF: vfwprintf+D70j .text:0002A1F0 SUB R5, R11, #-var_1000 .text:0002A1F4 LDR R5, [R5,#-0xD4] .text:0002A1F8 CMP R5, #0 .text:0002A1FC MOVLT LR, #1 .text:0002A200 SUBLT R12, R11, #-var_1000 .text:0002A204 STRLT LR, [R12,#-0xD4] .text:0002A208 MOVGE R1, #0x20 .text:0002A20C SUBGE R0, R11, #-var_1000 .text:0002A210 STRGE R1, [R0,#-0xDC] .text:0002A214 SUB R2, R11, #-var_1000 .text:0002A218 LDR R2, [R2,#-0xD4] .text:0002A21C CMP R2, #0 .text:0002A220 BNE loc_2A27C .text:0002A224 SUB R3, R11, #-var_1000 .text:0002A228 LDR R4, [R3,#-0xA4] .text:0002A22C LDR R3, [R3,#-0xA0] .text:0002A230 ORRS R3, R4, R3 .text:0002A234 BNE loc_2A27C .text:0002A238 SUB R4, R11, #-var_1000 .text:0002A23C LDR R7, [R4,#-0x88] .text:0002A240 MOV R5, R4 .text:0002A244 LDR R5, [R5,#-0xA8] .text:0002A248 MOV R12, R4 .text:0002A24C LDR R12, [R12,#-0xAC] .text:0002A250 CMP R5, #8 .text:0002A254 MOVNE R3, #0 .text:0002A258 MOVEQ R3, #1 .text:0002A25C TST R3, R12 .text:0002A260 BEQ loc_2A328 .text:0002A264 MOV LR, R4 .text:0002A268 LDR LR, [LR,#-0x88] .text:0002A26C MOV R3, #0x30 .text:0002A270 SUB R7, LR, #4 .text:0002A274 STR R3, [LR,#-4] .text:0002A278 B loc_2A328 .text:0002A27C ; --------------------------------------------------------------------------- .text:0002A27C .text:0002A27C loc_2A27C ; CODE XREF: vfwprintf+E74j .text:0002A27C ; vfwprintf+E88j .text:0002A27C SUB R1, R11, #-var_1000 .text:0002A280 LDR R1, [R1,#-0xE0] .text:0002A284 CMP R1, #0x58 .text:0002A288 MOVNE R3, #0 .text:0002A28C MOVEQ R3, #1 .text:0002A290 STR R3, [SP,#0x1154+var_1154] .text:0002A294 SUB R2, R11, #-var_1080 .text:0002A298 SUB R2, R2, #0x20 .text:0002A29C LDMDA R2, {R0,R1} .text:0002A2A0 SUB R3, R11, #-var_1000 .text:0002A2A4 LDR R2, [R3,#-0x88] .text:0002A2A8 MOV R4, R3 .text:0002A2AC LDR R3, [R4,#-0xA8] .text:0002A2B0 BL _itowa .text:0002A2B4 SUB R5, R11, #-var_1000 .text:0002A2B8 LDR R12, [R5,#-0xBC] .text:0002A2BC LDR R5, [R5,#-0x80] .text:0002A2C0 MOV R7, R0 .text:0002A2C4 CMP R12, #0 .text:0002A2C8 CMPNE R5, #0 .text:0002A2CC BEQ loc_2A2F0 .text:0002A2D0 SUB R12, R11, #-var_1000 .text:0002A2D4 LDR R1, [R12,#-0x88] .text:0002A2D8 MOV LR, R12 .text:0002A2DC LDR R2, [LR,#-0x80] .text:0002A2E0 MOV R4, R12 .text:0002A2E4 LDR R3, [R4,#-0x7C] .text:0002A2E8 BL group_number_1 .text:0002A2EC MOV R7, R0 .text:0002A2F0 .text:0002A2F0 loc_2A2F0 ; CODE XREF: vfwprintf+F20j .text:0002A2F0 SUB R5, R11, #-var_1000 .text:0002A2F4 LDR R5, [R5,#-0xA8] .text:0002A2F8 SUB R12, R11, #-var_1000 .text:0002A2FC LDR R12, [R12,#-0xD8] .text:0002A300 CMP R5, #0xA .text:0002A304 MOVNE R3, #0 .text:0002A308 MOVEQ R3, #1 .text:0002A30C TST R12, R3 .text:0002A310 BEQ loc_2A328 .text:0002A314 MOV R0, R7 .text:0002A318 SUB LR, R11, #-var_1000 .text:0002A31C LDR R1, [LR,#-0x88] .text:0002A320 BL _i18n_number_rewrite_0 .text:0002A324 MOV R7, R0 .text:0002A328 .text:0002A328 loc_2A328 ; CODE XREF: vfwprintf+EB4j .text:0002A328 ; vfwprintf+ECCj ... .text:0002A328 SUB R0, R11, #-var_1000 .text:0002A32C LDR R1, [R0,#-0xA4] .text:0002A330 LDR R0, [R0,#-0xA0] .text:0002A334 ORRS R0, R1, R0 .text:0002A338 MOVEQ R2, #0 .text:0002A33C MOVNE R2, #1 .text:0002A340 SUB R1, R11, #-var_1000 .text:0002A344 STR R2, [R1,#-0xA4] .text:0002A348 B loc_2A5C4 .text:0002A34C ; --------------------------------------------------------------------------- .text:0002A34C .text:0002A34C loc_2A34C ; CODE XREF: vfwprintf+E1Cj .text:0002A34C SUB R3, R11, #-var_1000 .text:0002A350 LDR R3, [R3,#-0xCC] .text:0002A354 CMP R3, #0 .text:0002A358 BEQ loc_2A380 .text:0002A35C SUB R4, R11, #-var_1000 .text:0002A360 LDR R4, [R4,#-0x78] .text:0002A364 ADD R5, R4, #4 .text:0002A368 SUB R4, R11, #-var_1000 .text:0002A36C STR R5, [R4,#-0x78] .text:0002A370 LDRB R12, [R5,#-4] .text:0002A374 MOV R5, R4 .text:0002A378 STR R12, [R5,#-0xA4] .text:0002A37C B loc_2A3D8 .text:0002A380 ; --------------------------------------------------------------------------- .text:0002A380 .text:0002A380 loc_2A380 ; CODE XREF: vfwprintf+FACj .text:0002A380 SUB LR, R11, #-var_1000 .text:0002A384 LDR LR, [LR,#-0xC4] .text:0002A388 CMP LR, #0 .text:0002A38C BNE loc_2A3B0 .text:0002A390 SUB R0, R11, #-var_1000 .text:0002A394 LDR R1, [R0,#-0x78] .text:0002A398 ADD R1, R1, #4 .text:0002A39C STR R1, [R0,#-0x78] .text:0002A3A0 SUB R1, R1, #4 .text:0002A3A4 LDR R1, [R1] .text:0002A3A8 STR R1, [R0,#-0xA4] .text:0002A3AC B loc_2A3D8 .text:0002A3B0 ; --------------------------------------------------------------------------- .text:0002A3B0 .text:0002A3B0 loc_2A3B0 ; CODE XREF: vfwprintf+FE0j .text:0002A3B0 SUB R2, R11, #-var_1000 .text:0002A3B4 LDR R4, [R2,#-0x78] .text:0002A3B8 ADD R4, R4, #4 .text:0002A3BC STR R4, [R2,#-0x78] .text:0002A3C0 SUB R4, R4, #4 .text:0002A3C4 LDR R3, [R4],#4 .text:0002A3C8 MOV R5, R2 .text:0002A3CC MOV R3, R3,LSL#16 .text:0002A3D0 MOV R3, R3,LSR#16 .text:0002A3D4 STR R3, [R5,#-0xA4] .text:0002A3D8 .text:0002A3D8 loc_2A3D8 ; CODE XREF: vfwprintf+DA8j .text:0002A3D8 ; vfwprintf+FD0j ... .text:0002A3D8 SUB R12, R11, #-var_1000 .text:0002A3DC LDR R12, [R12,#-0xD4] .text:0002A3E0 CMP R12, #0 .text:0002A3E4 MOVLT R0, #1 .text:0002A3E8 SUBLT LR, R11, #-var_1000 .text:0002A3EC STRLT R0, [LR,#-0xD4] .text:0002A3F0 MOVGE R2, #0x20 .text:0002A3F4 SUBGE R1, R11, #-var_1000 .text:0002A3F8 STRGE R2, [R1,#-0xDC] .text:0002A3FC SUB R3, R11, #-var_1000 .text:0002A400 LDR R3, [R3,#-0xD4] .text:0002A404 CMP R3, #0 .text:0002A408 BNE loc_2A460 .text:0002A40C SUB R4, R11, #-var_1000 .text:0002A410 LDR R4, [R4,#-0xA4] .text:0002A414 CMP R4, #0 .text:0002A418 BNE loc_2A460 .text:0002A41C SUB R5, R11, #-var_1000 .text:0002A420 LDR R7, [R5,#-0x88] .text:0002A424 MOV R12, R5 .text:0002A428 LDR R12, [R12,#-0xA8] .text:0002A42C MOV LR, R5 .text:0002A430 LDR LR, [LR,#-0xAC] .text:0002A434 CMP R12, #8 .text:0002A438 MOVNE R3, #0 .text:0002A43C MOVEQ R3, #1 .text:0002A440 TST R3, LR .text:0002A444 BEQ loc_2A5C4 .text:0002A448 MOV R0, R5 .text:0002A44C LDR R0, [R0,#-0x88] .text:0002A450 MOV R3, #0x30 .text:0002A454 SUB R7, R0, #4 .text:0002A458 STR R3, [R0,#-4] .text:0002A45C B loc_2A5C4 .text:0002A460 ; --------------------------------------------------------------------------- .text:0002A460 .text:0002A460 loc_2A460 ; CODE XREF: vfwprintf+105Cj .text:0002A460 ; vfwprintf+106Cj .text:0002A460 LDR R7, =_itowa_lower_digits .text:0002A464 SUB R2, R11, #-var_1000 .text:0002A468 LDR R4, [R2,#-0xA4] .text:0002A46C LDR R3, =_itowa_upper_digits .text:0002A470 MOV R12, R2 .text:0002A474 LDR R5, [R12,#-0x88] .text:0002A478 MOV LR, R2 .text:0002A47C LDR LR, [LR,#-0xE0] .text:0002A480 MOV R0, R2 .text:0002A484 LDR R0, [R0,#-0xA8] .text:0002A488 CMP LR, #0x58 .text:0002A48C MOVEQ R7, R3 .text:0002A490 CMP R0, #0xA .text:0002A494 BEQ loc_2A4BC .text:0002A498 BHI loc_2A4A8 .text:0002A49C CMP R0, #8 .text:0002A4A0 BEQ loc_2A500 .text:0002A4A4 B loc_2A518 .text:0002A4A8 ; --------------------------------------------------------------------------- .text:0002A4A8 .text:0002A4A8 loc_2A4A8 ; CODE XREF: vfwprintf+10ECj .text:0002A4A8 SUB R2, R11, #-var_1000 .text:0002A4AC LDR R2, [R2,#-0xA8] .text:0002A4B0 CMP R2, #0x10 .text:0002A4B4 BEQ loc_2A4E8 .text:0002A4B8 B loc_2A518 .text:0002A4BC ; --------------------------------------------------------------------------- .text:0002A4BC .text:0002A4BC loc_2A4BC ; CODE XREF: vfwprintf+10E8j .text:0002A4BC ; vfwprintf+1134j .text:0002A4BC MOV R0, R4 .text:0002A4C0 MOV R1, #0xA .text:0002A4C4 BL __umodsi3 .text:0002A4C8 LDR R3, [R7,R0,LSL#2] .text:0002A4CC STR R3, [R5,#-4]! .text:0002A4D0 MOV R0, R4 .text:0002A4D4 MOV R1, #0xA .text:0002A4D8 BL __udivsi3 .text:0002A4DC SUBS R4, R0, #0 .text:0002A4E0 BNE loc_2A4BC .text:0002A4E4 B loc_2A54C .text:0002A4E8 ; --------------------------------------------------------------------------- .text:0002A4E8 .text:0002A4E8 loc_2A4E8 ; CODE XREF: vfwprintf+1108j .text:0002A4E8 ; vfwprintf+114Cj .text:0002A4E8 AND R3, R4, #0xF .text:0002A4EC LDR R2, [R7,R3,LSL#2] .text:0002A4F0 MOVS R4, R4,LSR#4 .text:0002A4F4 STR R2, [R5,#-4]! .text:0002A4F8 BNE loc_2A4E8 .text:0002A4FC B loc_2A54C .text:0002A500 ; --------------------------------------------------------------------------- .text:0002A500 .text:0002A500 loc_2A500 ; CODE XREF: vfwprintf+10F4j .text:0002A500 ; vfwprintf+1164j .text:0002A500 AND R3, R4, #7 .text:0002A504 LDR R2, [R7,R3,LSL#2] .text:0002A508 MOVS R4, R4,LSR#3 .text:0002A50C STR R2, [R5,#-4]! .text:0002A510 BNE loc_2A500 .text:0002A514 B loc_2A54C .text:0002A518 ; --------------------------------------------------------------------------- .text:0002A518 .text:0002A518 loc_2A518 ; CODE XREF: vfwprintf+10F8j .text:0002A518 ; vfwprintf+110Cj ... .text:0002A518 MOV R0, R4 .text:0002A51C SUB R3, R11, #-var_1000 .text:0002A520 LDR R1, [R3,#-0xA8] .text:0002A524 BL __umodsi3 .text:0002A528 LDR R3, [R7,R0,LSL#2] .text:0002A52C STR R3, [R5,#-4]! .text:0002A530 MOV R0, R4 .text:0002A534 SUB R4, R11, #-var_1000 .text:0002A538 LDR R1, [R4,#-0xA8] .text:0002A53C BL __udivsi3 .text:0002A540 MOV R4, R0 .text:0002A544 CMP R4, #0 .text:0002A548 BNE loc_2A518 .text:0002A54C .text:0002A54C loc_2A54C ; CODE XREF: vfwprintf+1138j .text:0002A54C ; vfwprintf+1150j ... .text:0002A54C MOV R7, R5 .text:0002A550 SUB R5, R11, #-var_1000 .text:0002A554 LDR R12, [R5,#-0xBC] .text:0002A558 LDR R5, [R5,#-0x80] .text:0002A55C CMP R12, #0 .text:0002A560 CMPNE R5, #0 .text:0002A564 BEQ loc_2A58C .text:0002A568 MOV R0, R7 .text:0002A56C SUB R12, R11, #-var_1000 .text:0002A570 LDR R1, [R12,#-0x88] .text:0002A574 MOV LR, R12 .text:0002A578 LDR R2, [LR,#-0x80] .text:0002A57C MOV R4, R12 .text:0002A580 LDR R3, [R4,#-0x7C] .text:0002A584 BL group_number_1 .text:0002A588 MOV R7, R0 .text:0002A58C .text:0002A58C loc_2A58C ; CODE XREF: vfwprintf+11B8j .text:0002A58C SUB R5, R11, #-var_1000 .text:0002A590 LDR R5, [R5,#-0xA8] .text:0002A594 SUB R12, R11, #-var_1000 .text:0002A598 LDR R12, [R12,#-0xD8] .text:0002A59C CMP R5, #0xA .text:0002A5A0 MOVNE R3, #0 .text:0002A5A4 MOVEQ R3, #1 .text:0002A5A8 TST R12, R3 .text:0002A5AC BEQ loc_2A5C4 .text:0002A5B0 MOV R0, R7 .text:0002A5B4 SUB LR, R11, #-var_1000 .text:0002A5B8 LDR R1, [LR,#-0x88] .text:0002A5BC BL _i18n_number_rewrite_0 .text:0002A5C0 MOV R7, R0 .text:0002A5C4 .text:0002A5C4 loc_2A5C4 ; CODE XREF: vfwprintf+F9Cj .text:0002A5C4 ; vfwprintf+1098j ... .text:0002A5C4 SUB R0, R11, #-var_1000 .text:0002A5C8 LDR R0, [R0,#-0x88] .text:0002A5CC SUB R1, R11, #-var_1000 .text:0002A5D0 LDR R1, [R1,#-0xD4] .text:0002A5D4 RSB R3, R7, R0 .text:0002A5D8 CMP R1, R3,ASR#2 .text:0002A5DC BGT loc_2A60C .text:0002A5E0 SUB R2, R11, #-var_1000 .text:0002A5E4 LDR R3, [R2,#-0xAC] .text:0002A5E8 LDR R2, [R2,#-0xA4] .text:0002A5EC CMP R3, #0 .text:0002A5F0 CMPNE R2, #0 .text:0002A5F4 BEQ loc_2A60C .text:0002A5F8 SUB R3, R11, #-var_1000 .text:0002A5FC LDR R3, [R3,#-0xA8] .text:0002A600 CMP R3, #8 .text:0002A604 MOVEQ R3, #0x30 .text:0002A608 STREQ R3, [R7,#-4]! .text:0002A60C .text:0002A60C loc_2A60C ; CODE XREF: vfwprintf+1230j .text:0002A60C ; vfwprintf+1248j .text:0002A60C SUB R4, R11, #-var_1000 .text:0002A610 SUB R5, R11, #-var_1000 .text:0002A614 LDR R4, [R4,#-0x88] .text:0002A618 SUB LR, R11, #-var_1000 .text:0002A61C LDR R5, [R5,#-0xD4] .text:0002A620 RSB R3, R7, R4 .text:0002A624 MOV R2, R3,ASR#2 .text:0002A628 RSB R12, R2, R5 .text:0002A62C CMP R12, #0 .text:0002A630 MOVLT R12, #0 .text:0002A634 STR R12, [LR,#-0xD4] .text:0002A638 MOV R0, LR .text:0002A63C LDR R0, [R0,#-0xB4] .text:0002A640 MOV R4, R3 .text:0002A644 CMP R0, #0 .text:0002A648 BNE loc_2A8F8 .text:0002A64C ADD R3, R2, R12 .text:0002A650 MOV R2, LR .text:0002A654 LDR R2, [R2,#-0xD0] .text:0002A658 RSB R3, R3, R2 .text:0002A65C MOV R2, LR .text:0002A660 STR R3, [R2,#-0xD0] .text:0002A664 MOV R3, R2 .text:0002A668 LDR R5, [R3,#-0xAC] .text:0002A66C LDR R3, [R3,#-0xA4] .text:0002A670 CMP R5, #0 .text:0002A674 CMPNE R3, #0 .text:0002A678 BEQ loc_2A6A0 .text:0002A67C MOV R5, R2 .text:0002A680 LDR R5, [R5,#-0xD0] .text:0002A684 MOV R12, R2 .text:0002A688 LDR R12, [R12,#-0xA8] .text:0002A68C SUB R3, R5, #2 .text:0002A690 CMP R12, #0x10 .text:0002A694 MOVEQ R5, R3 .text:0002A698 MOV R12, R2 .text:0002A69C STR R5, [R12,#-0xD0] .text:0002A6A0 .text:0002A6A0 loc_2A6A0 ; CODE XREF: vfwprintf+12CCj .text:0002A6A0 SUB LR, R11, #-var_1000 .text:0002A6A4 LDR R0, [LR,#-0x9C] .text:0002A6A8 LDR LR, [LR,#-0xB8] .text:0002A6AC ORRS LR, R0, LR .text:0002A6B0 BNE loc_2A6C4 .text:0002A6B4 SUB R0, R11, #-var_1000 .text:0002A6B8 LDR R0, [R0,#-0xB0] .text:0002A6BC CMP R0, #0 .text:0002A6C0 BEQ loc_2A6D8 .text:0002A6C4 .text:0002A6C4 loc_2A6C4 ; CODE XREF: vfwprintf+1304j .text:0002A6C4 SUB R1, R11, #-var_1000 .text:0002A6C8 LDR R1, [R1,#-0xD0] .text:0002A6CC SUB R2, R1, #1 .text:0002A6D0 SUB R1, R11, #-var_1000 .text:0002A6D4 STR R2, [R1,#-0xD0] .text:0002A6D8 .text:0002A6D8 loc_2A6D8 ; CODE XREF: vfwprintf+1314j .text:0002A6D8 SUB R2, R11, #-var_1000 .text:0002A6DC LDR R2, [R2,#-0xDC] .text:0002A6E0 CMP R2, #0x20 .text:0002A6E4 BNE loc_2A720 .text:0002A6E8 SUB R3, R11, #-var_1000 .text:0002A6EC LDR R3, [R3,#-0xD0] .text:0002A6F0 CMP R3, #0 .text:0002A6F4 BLE loc_2A714 .text:0002A6F8 MOV R0, R9 .text:0002A6FC SUB R5, R11, #-var_1000 .text:0002A700 LDR R1, [R5,#-0xDC] .text:0002A704 MOV R12, R5 .text:0002A708 LDR R2, [R12,#-0xD0] .text:0002A70C BL _IO_wpadn .text:0002A710 ADD R10, R10, R0 .text:0002A714 .text:0002A714 loc_2A714 ; CODE XREF: vfwprintf+1348j .text:0002A714 MOV R0, #0 .text:0002A718 SUB LR, R11, #-var_1000 .text:0002A71C STR R0, [LR,#-0xD0] .text:0002A720 .text:0002A720 loc_2A720 ; CODE XREF: vfwprintf+1338j .text:0002A720 SUB R1, R11, #-var_1000 .text:0002A724 LDR R1, [R1,#-0x9C] .text:0002A728 CMP R1, #0 .text:0002A72C BEQ loc_2A764 .text:0002A730 LDR R1, [R9,#0x58] .text:0002A734 ADD R2, R1, #0x10 .text:0002A738 LDMIA R2, {R2,R3} .text:0002A73C CMP R2, R3 .text:0002A740 BCC loc_2A75C .text:0002A744 MOV R0, R9 .text:0002A748 MOV R1, #0x2D .text:0002A74C .text:0002A74C loc_2A74C ; CODE XREF: vfwprintf+13E0j .text:0002A74C ; vfwprintf+1414j .text:0002A74C BL __woverflow .text:0002A750 CMN R0, #1 .text:0002A754 BEQ loc_2B2B8 .text:0002A758 B loc_2A7D0 .text:0002A75C ; --------------------------------------------------------------------------- .text:0002A75C .text:0002A75C loc_2A75C ; CODE XREF: vfwprintf+1394j .text:0002A75C MOV R3, #0x2D .text:0002A760 B loc_2A7C8 .text:0002A764 ; --------------------------------------------------------------------------- .text:0002A764 .text:0002A764 loc_2A764 ; CODE XREF: vfwprintf+1380j .text:0002A764 SUB R2, R11, #-var_1000 .text:0002A768 LDR R2, [R2,#-0xB8] .text:0002A76C CMP R2, #0 .text:0002A770 BEQ loc_2A798 .text:0002A774 LDR R1, [R9,#0x58] .text:0002A778 ADD R2, R1, #0x10 .text:0002A77C LDMIA R2, {R2,R3} .text:0002A780 CMP R2, R3 .text:0002A784 MOVCS R0, R9 .text:0002A788 MOVCS R1, #0x2B .text:0002A78C BCS loc_2A74C .text:0002A790 MOV R3, #0x2B .text:0002A794 B loc_2A7C8 .text:0002A798 ; --------------------------------------------------------------------------- .text:0002A798 .text:0002A798 loc_2A798 ; CODE XREF: vfwprintf+13C4j .text:0002A798 SUB R3, R11, #-var_1000 .text:0002A79C LDR R3, [R3,#-0xB0] .text:0002A7A0 CMP R3, #0 .text:0002A7A4 BEQ loc_2A7D4 .text:0002A7A8 LDR R1, [R9,#0x58] .text:0002A7AC ADD R2, R1, #0x10 .text:0002A7B0 LDMIA R2, {R2,R3} .text:0002A7B4 CMP R2, R3 .text:0002A7B8 MOVCS R0, R9 .text:0002A7BC MOVCS R1, #0x20 .text:0002A7C0 BCS loc_2A74C .text:0002A7C4 MOV R3, #0x20 .text:0002A7C8 .text:0002A7C8 loc_2A7C8 ; CODE XREF: vfwprintf+13B4j .text:0002A7C8 ; vfwprintf+13E8j .text:0002A7C8 STR R3, [R2],#4 .text:0002A7CC STR R2, [R1,#0x10] .text:0002A7D0 .text:0002A7D0 loc_2A7D0 ; CODE XREF: vfwprintf+13ACj .text:0002A7D0 ADD R10, R10, #1 .text:0002A7D4 .text:0002A7D4 loc_2A7D4 ; CODE XREF: vfwprintf+13F8j .text:0002A7D4 SUB R5, R11, #-var_1000 .text:0002A7D8 LDR R12, [R5,#-0xAC] .text:0002A7DC LDR R5, [R5,#-0xA4] .text:0002A7E0 CMP R12, #0 .text:0002A7E4 CMPNE R5, #0 .text:0002A7E8 BEQ loc_2A888 .text:0002A7EC SUB R12, R11, #-var_1000 .text:0002A7F0 LDR R12, [R12,#-0xA8] .text:0002A7F4 CMP R12, #0x10 .text:0002A7F8 BNE loc_2A888 .text:0002A7FC LDR R1, [R9,#0x58] .text:0002A800 ADD R2, R1, #0x10 .text:0002A804 LDMIA R2, {R2,R3} .text:0002A808 CMP R2, R3 .text:0002A80C BCC loc_2A830 .text:0002A810 MOV R0, R9 .text:0002A814 MOV R1, #0x30 .text:0002A818 BL __woverflow .text:0002A81C CMN R0, #1 .text:0002A820 BEQ loc_2B2B8 .text:0002A824 B loc_2A83C .text:0002A824 ; --------------------------------------------------------------------------- .text:0002A828 off_2A828 DCD _itowa_lower_digits ; DATA XREF: vfwprintf:loc_2A460r .text:0002A82C off_2A82C DCD _itowa_upper_digits ; DATA XREF: vfwprintf+10C0r .text:0002A830 ; --------------------------------------------------------------------------- .text:0002A830 .text:0002A830 loc_2A830 ; CODE XREF: vfwprintf+1460j .text:0002A830 MOV R3, #0x30 .text:0002A834 STR R3, [R2],#4 .text:0002A838 STR R2, [R1,#0x10] .text:0002A83C .text:0002A83C loc_2A83C ; CODE XREF: vfwprintf+1478j .text:0002A83C ADD R10, R10, #1 .text:0002A840 LDR R1, [R9,#0x58] .text:0002A844 ADD R2, R1, #0x10 .text:0002A848 LDMIA R2, {R2,R3} .text:0002A84C CMP R2, R3 .text:0002A850 BCC loc_2A86C .text:0002A854 MOV R0, R9 .text:0002A858 SUB LR, R11, #-var_1000 .text:0002A85C LDR R1, [LR,#-0xE0] .text:0002A860 BL __woverflow .text:0002A864 CMN R0, #1 .text:0002A868 B loc_2A880 .text:0002A86C ; --------------------------------------------------------------------------- .text:0002A86C .text:0002A86C loc_2A86C ; CODE XREF: vfwprintf+14A4j .text:0002A86C SUB R0, R11, #-var_1000 .text:0002A870 LDR R0, [R0,#-0xE0] .text:0002A874 STR R0, [R2],#4 .text:0002A878 CMN R0, #1 .text:0002A87C STR R2, [R1,#0x10] .text:0002A880 .text:0002A880 loc_2A880 ; CODE XREF: vfwprintf+14BCj .text:0002A880 BEQ loc_2B2B8 .text:0002A884 ADD R10, R10, #1 .text:0002A888 .text:0002A888 loc_2A888 ; CODE XREF: vfwprintf+143Cj .text:0002A888 ; vfwprintf+144Cj .text:0002A888 SUB R5, R11, #-var_1000 .text:0002A88C SUB R5, R5, #0xD4 .text:0002A890 LDMIA R5, {R5,R12} .text:0002A894 ADD R12, R12, R5 .text:0002A898 SUB R5, R11, #-var_1000 .text:0002A89C CMP R12, #0 .text:0002A8A0 STR R12, [R5,#-0xD0] .text:0002A8A4 BLE loc_2A8C0 .text:0002A8A8 MOV R0, R9 .text:0002A8AC MOV R1, #0x30 .text:0002A8B0 MOV LR, R5 .text:0002A8B4 LDR R2, [LR,#-0xD0] .text:0002A8B8 BL _IO_wpadn .text:0002A8BC ADD R10, R10, R0 .text:0002A8C0 .text:0002A8C0 loc_2A8C0 ; CODE XREF: vfwprintf+14F8j .text:0002A8C0 MOV R0, R9 .text:0002A8C4 MOV R1, R7 .text:0002A8C8 LDRB R3, [R9,#0x46] .text:0002A8CC MOV R4, R4,ASR#2 .text:0002A8D0 MOV R3, R3,LSL#24 .text:0002A8D4 ADD R3, R9, R3,ASR#24 .text:0002A8D8 LDR R12, [R3,#0x94] .text:0002A8DC MOV R2, R4 .text:0002A8E0 MOV LR, PC .text:0002A8E4 LDR PC, [R12,#0x1C] .text:0002A8E8 CMP R0, R4 .text:0002A8EC BNE loc_2B2B8 .text:0002A8F0 ADD R10, R10, R0 .text:0002A8F4 B loc_2B410 .text:0002A8F8 ; --------------------------------------------------------------------------- .text:0002A8F8 .text:0002A8F8 loc_2A8F8 ; CODE XREF: vfwprintf+129Cj .text:0002A8F8 SUB R0, R11, #-var_1000 .text:0002A8FC LDR R0, [R0,#-0x9C] .text:0002A900 CMP R0, #0 .text:0002A904 BEQ loc_2A95C .text:0002A908 LDR R1, [R9,#0x58] .text:0002A90C ADD R2, R1, #0x10 .text:0002A910 LDMIA R2, {R2,R3} .text:0002A914 CMP R2, R3 .text:0002A918 BCC loc_2A934 .text:0002A91C MOV R0, R9 .text:0002A920 MOV R1, #0x2D .text:0002A924 BL __woverflow .text:0002A928 CMN R0, #1 .text:0002A92C BEQ loc_2B2B8 .text:0002A930 B loc_2A940 .text:0002A934 ; --------------------------------------------------------------------------- .text:0002A934 .text:0002A934 loc_2A934 ; CODE XREF: vfwprintf+156Cj .text:0002A934 MOV R3, #0x2D .text:0002A938 STR R3, [R2],#4 .text:0002A93C STR R2, [R1,#0x10] .text:0002A940 .text:0002A940 loc_2A940 ; CODE XREF: vfwprintf+1584j .text:0002A940 ADD R10, R10, #1 .text:0002A944 SUB R1, R11, #-var_1000 .text:0002A948 LDR R1, [R1,#-0xD0] .text:0002A94C SUB R2, R1, #1 .text:0002A950 SUB R1, R11, #-var_1000 .text:0002A954 STR R2, [R1,#-0xD0] .text:0002A958 B loc_2AA20 .text:0002A95C ; --------------------------------------------------------------------------- .text:0002A95C .text:0002A95C loc_2A95C ; CODE XREF: vfwprintf+1558j .text:0002A95C SUB R2, R11, #-var_1000 .text:0002A960 LDR R2, [R2,#-0xB8] .text:0002A964 CMP R2, #0 .text:0002A968 BEQ loc_2A9C0 .text:0002A96C LDR R1, [R9,#0x58] .text:0002A970 ADD R2, R1, #0x10 .text:0002A974 LDMIA R2, {R2,R3} .text:0002A978 CMP R2, R3 .text:0002A97C BCC loc_2A998 .text:0002A980 MOV R0, R9 .text:0002A984 MOV R1, #0x2B .text:0002A988 BL __woverflow .text:0002A98C CMN R0, #1 .text:0002A990 BEQ loc_2B2B8 .text:0002A994 B loc_2A9A4 .text:0002A998 ; --------------------------------------------------------------------------- .text:0002A998 .text:0002A998 loc_2A998 ; CODE XREF: vfwprintf+15D0j .text:0002A998 MOV R3, #0x2B .text:0002A99C STR R3, [R2],#4 .text:0002A9A0 STR R2, [R1,#0x10] .text:0002A9A4 .text:0002A9A4 loc_2A9A4 ; CODE XREF: vfwprintf+15E8j .text:0002A9A4 ADD R10, R10, #1 .text:0002A9A8 SUB R3, R11, #-var_1000 .text:0002A9AC LDR R3, [R3,#-0xD0] .text:0002A9B0 SUB R5, R3, #1 .text:0002A9B4 SUB R3, R11, #-var_1000 .text:0002A9B8 STR R5, [R3,#-0xD0] .text:0002A9BC B loc_2AA20 .text:0002A9C0 ; --------------------------------------------------------------------------- .text:0002A9C0 .text:0002A9C0 loc_2A9C0 ; CODE XREF: vfwprintf+15BCj .text:0002A9C0 SUB R5, R11, #-var_1000 .text:0002A9C4 LDR R5, [R5,#-0xB0] .text:0002A9C8 CMP R5, #0 .text:0002A9CC BEQ loc_2AA20 .text:0002A9D0 LDR R1, [R9,#0x58] .text:0002A9D4 ADD R2, R1, #0x10 .text:0002A9D8 LDMIA R2, {R2,R3} .text:0002A9DC CMP R2, R3 .text:0002A9E0 BCC loc_2A9FC .text:0002A9E4 MOV R0, R9 .text:0002A9E8 MOV R1, #0x20 .text:0002A9EC BL __woverflow .text:0002A9F0 CMN R0, #1 .text:0002A9F4 BEQ loc_2B2B8 .text:0002A9F8 B loc_2AA08 .text:0002A9FC ; --------------------------------------------------------------------------- .text:0002A9FC .text:0002A9FC loc_2A9FC ; CODE XREF: vfwprintf+1634j .text:0002A9FC MOV R3, #0x20 .text:0002AA00 STR R3, [R2],#4 .text:0002AA04 STR R2, [R1,#0x10] .text:0002AA08 .text:0002AA08 loc_2AA08 ; CODE XREF: vfwprintf+164Cj .text:0002AA08 ADD R10, R10, #1 .text:0002AA0C SUB R12, R11, #-var_1000 .text:0002AA10 LDR R12, [R12,#-0xD0] .text:0002AA14 SUB LR, R12, #1 .text:0002AA18 SUB R12, R11, #-var_1000 .text:0002AA1C STR LR, [R12,#-0xD0] .text:0002AA20 .text:0002AA20 loc_2AA20 ; CODE XREF: vfwprintf+15ACj .text:0002AA20 ; vfwprintf+1610j ... .text:0002AA20 SUB LR, R11, #-var_1000 .text:0002AA24 LDR R0, [LR,#-0xAC] .text:0002AA28 LDR LR, [LR,#-0xA4] .text:0002AA2C CMP R0, #0 .text:0002AA30 CMPNE LR, #0 .text:0002AA34 BEQ loc_2AAE0 .text:0002AA38 SUB R0, R11, #-var_1000 .text:0002AA3C LDR R0, [R0,#-0xA8] .text:0002AA40 CMP R0, #0x10 .text:0002AA44 BNE loc_2AAE0 .text:0002AA48 LDR R1, [R9,#0x58] .text:0002AA4C ADD R2, R1, #0x10 .text:0002AA50 LDMIA R2, {R2,R3} .text:0002AA54 CMP R2, R3 .text:0002AA58 BCC loc_2AA74 .text:0002AA5C MOV R0, R9 .text:0002AA60 MOV R1, #0x30 .text:0002AA64 BL __woverflow .text:0002AA68 CMN R0, #1 .text:0002AA6C BEQ loc_2B2B8 .text:0002AA70 B loc_2AA80 .text:0002AA74 ; --------------------------------------------------------------------------- .text:0002AA74 .text:0002AA74 loc_2AA74 ; CODE XREF: vfwprintf+16ACj .text:0002AA74 MOV R3, #0x30 .text:0002AA78 STR R3, [R2],#4 .text:0002AA7C STR R2, [R1,#0x10] .text:0002AA80 .text:0002AA80 loc_2AA80 ; CODE XREF: vfwprintf+16C4j .text:0002AA80 ADD R10, R10, #1 .text:0002AA84 LDR R1, [R9,#0x58] .text:0002AA88 ADD R2, R1, #0x10 .text:0002AA8C LDMIA R2, {R2,R3} .text:0002AA90 CMP R2, R3 .text:0002AA94 BCC loc_2AAB0 .text:0002AA98 MOV R0, R9 .text:0002AA9C SUB R2, R11, #-var_1000 .text:0002AAA0 LDR R1, [R2,#-0xE0] .text:0002AAA4 BL __woverflow .text:0002AAA8 CMN R0, #1 .text:0002AAAC B loc_2AAC4 .text:0002AAB0 ; --------------------------------------------------------------------------- .text:0002AAB0 .text:0002AAB0 loc_2AAB0 ; CODE XREF: vfwprintf+16E8j .text:0002AAB0 SUB R3, R11, #-var_1000 .text:0002AAB4 LDR R3, [R3,#-0xE0] .text:0002AAB8 STR R3, [R2],#4 .text:0002AABC CMN R3, #1 .text:0002AAC0 STR R2, [R1,#0x10] .text:0002AAC4 .text:0002AAC4 loc_2AAC4 ; CODE XREF: vfwprintf+1700j .text:0002AAC4 BEQ loc_2B2B8 .text:0002AAC8 ADD R10, R10, #1 .text:0002AACC SUB R12, R11, #-var_1000 .text:0002AAD0 LDR R12, [R12,#-0xD0] .text:0002AAD4 SUB LR, R12, #2 .text:0002AAD8 SUB R12, R11, #-var_1000 .text:0002AADC STR LR, [R12,#-0xD0] .text:0002AAE0 .text:0002AAE0 loc_2AAE0 ; CODE XREF: vfwprintf+1688j .text:0002AAE0 ; vfwprintf+1698j .text:0002AAE0 MOV R4, R4,ASR#2 .text:0002AAE4 SUB LR, R11, #-var_1000 .text:0002AAE8 LDR LR, [LR,#-0xD4] .text:0002AAEC SUB R0, R11, #-var_1000 .text:0002AAF0 LDR R0, [R0,#-0xD0] .text:0002AAF4 ADD R3, R4, LR .text:0002AAF8 RSB R3, R3, R0 .text:0002AAFC SUB R0, R11, #-var_1000 .text:0002AB00 CMP LR, #0 .text:0002AB04 STR R3, [R0,#-0xD0] .text:0002AB08 BLE loc_2AB24 .text:0002AB0C MOV R0, R9 .text:0002AB10 MOV R1, #0x30 .text:0002AB14 SUB R3, R11, #-var_1000 .text:0002AB18 LDR R2, [R3,#-0xD4] .text:0002AB1C BL _IO_wpadn .text:0002AB20 ADD R10, R10, R0 .text:0002AB24 .text:0002AB24 loc_2AB24 ; CODE XREF: vfwprintf+175Cj .text:0002AB24 MOV R0, R9 .text:0002AB28 LDRB R3, [R9,#0x46] .text:0002AB2C MOV R1, R7 .text:0002AB30 MOV R3, R3,LSL#24 .text:0002AB34 ADD R3, R9, R3,ASR#24 .text:0002AB38 LDR R12, [R3,#0x94] .text:0002AB3C MOV R2, R4 .text:0002AB40 MOV LR, PC .text:0002AB44 LDR PC, [R12,#0x1C] .text:0002AB48 CMP R0, R4 .text:0002AB4C BNE loc_2B2B8 .text:0002AB50 ADD R10, R10, R0 .text:0002AB54 SUB R4, R11, #-var_1000 .text:0002AB58 LDR R4, [R4,#-0xD0] .text:0002AB5C CMP R4, #0 .text:0002AB60 BLE loc_2B410 .text:0002AB64 MOV R0, R9 .text:0002AB68 MOV R1, #0x20 .text:0002AB6C SUB R5, R11, #-var_1000 .text:0002AB70 LDR R2, [R5,#-0xD0] .text:0002AB74 B loc_2B17C .text:0002AB78 ; --------------------------------------------------------------------------- .text:0002AB78 SUB R0, R11, #-var_FE0 .text:0002AB7C SUB R0, R0, #8 .text:0002AB80 SUB R0, R0, #4 .text:0002AB84 MOV R1, #0 .text:0002AB88 MOV R2, #0x14 .text:0002AB8C BL memset .text:0002AB90 SUB R12, R11, #-var_1000 .text:0002AB94 LDR R12, [R12,#-0xD4] .text:0002AB98 STR R12, [R11,#var_FEC] .text:0002AB9C SUB LR, R11, #-var_1000 .text:0002ABA0 LDR LR, [LR,#-0xD0] .text:0002ABA4 STR LR, [R11,#var_FE8] .text:0002ABA8 SUB R0, R11, #-var_1000 .text:0002ABAC LDR R0, [R0,#-0xE0] .text:0002ABB0 STR R0, [R11,#var_FE4] .text:0002ABB4 SUB R1, R11, #-var_1000 .text:0002ABB8 LDR R1, [R1,#-0xDC] .text:0002ABBC STR R1, [R11,#var_FDC] .text:0002ABC0 LDRB R3, [R11,#var_FE0] .text:0002ABC4 SUB R2, R11, #-var_1000 .text:0002ABC8 LDR R2, [R2,#-0xC0] .text:0002ABCC SUB R4, R11, #-var_1000 .text:0002ABD0 LDR R4, [R4,#-0xC4] .text:0002ABD4 SUB R5, R11, #-var_1000 .text:0002ABD8 LDR R5, [R5,#-0xC8] .text:0002ABDC SUB R12, R11, #-var_1000 .text:0002ABE0 LDR R12, [R12,#-0xAC] .text:0002ABE4 SUB LR, R11, #-var_1000 .text:0002ABE8 LDR LR, [LR,#-0xB0] .text:0002ABEC SUB R0, R11, #-var_1000 .text:0002ABF0 LDR R0, [R0,#-0xB4] .text:0002ABF4 SUB R1, R11, #-var_1000 .text:0002ABF8 LDR R1, [R1,#-0xB8] .text:0002ABFC CMP R2, #0 .text:0002AC00 ORRNE R3, R3, #1 .text:0002AC04 ANDEQ R3, R3, #0xFE .text:0002AC08 CMP R4, #0 .text:0002AC0C ORRNE R3, R3, #2 .text:0002AC10 ANDEQ R3, R3, #0xFD .text:0002AC14 AND R2, R5, #1 .text:0002AC18 CMP R2, #0 .text:0002AC1C ORRNE R3, R3, #4 .text:0002AC20 ANDEQ R3, R3, #0xFB .text:0002AC24 CMP R12, #0 .text:0002AC28 ORRNE R3, R3, #8 .text:0002AC2C ANDEQ R3, R3, #0xF7 .text:0002AC30 CMP LR, #0 .text:0002AC34 ORRNE R3, R3, #0x10 .text:0002AC38 ANDEQ R3, R3, #0xEF .text:0002AC3C CMP R0, #0 .text:0002AC40 ORRNE R3, R3, #0x20 .text:0002AC44 ANDEQ R3, R3, #0xDF .text:0002AC48 CMP R1, #0 .text:0002AC4C SUB R2, R11, #-var_1000 .text:0002AC50 LDR R2, [R2,#-0xBC] .text:0002AC54 ORRNE R3, R3, #0x40 .text:0002AC58 ANDEQ R3, R3, #0xBF .text:0002AC5C CMP R2, #0 .text:0002AC60 ORRNE R3, R3, #0x80 .text:0002AC64 ANDEQ R3, R3, #0x7F .text:0002AC68 STRB R3, [R11,#var_FE0] .text:0002AC6C LDRB R2, [R11,#var_FDF] .text:0002AC70 SUB R3, R11, #-var_1000 .text:0002AC74 LDR R3, [R3,#-0xC0] .text:0002AC78 ORR R2, R2, #4 .text:0002AC7C STRB R2, [R11,#var_FDF] .text:0002AC80 CMP R3, #0 .text:0002AC84 BEQ loc_2ACAC .text:0002AC88 SUB R4, R11, #-var_1000 .text:0002AC8C LDR R5, [R4,#-0x78] .text:0002AC90 ADD R5, R5, #8 .text:0002AC94 STR R5, [R4,#-0x78] .text:0002AC98 SUB R3, R11, #-var_1000 .text:0002AC9C SUB R3, R3, #0x28 .text:0002ACA0 SUB R5, R5, #8 .text:0002ACA4 LDMIA R5!, {R1,R2} .text:0002ACA8 B loc_2ACCC .text:0002ACAC ; --------------------------------------------------------------------------- .text:0002ACAC .text:0002ACAC loc_2ACAC ; CODE XREF: vfwprintf+18D8j .text:0002ACAC SUB R12, R11, #-var_1000 .text:0002ACB0 LDR LR, [R12,#-0x78] .text:0002ACB4 ADD LR, LR, #8 .text:0002ACB8 STR LR, [R12,#-0x78] .text:0002ACBC SUB R3, R11, #-var_1000 .text:0002ACC0 SUB R3, R3, #0x28 .text:0002ACC4 SUB LR, LR, #8 .text:0002ACC8 LDMIA LR!, {R1,R2} .text:0002ACCC .text:0002ACCC loc_2ACCC ; CODE XREF: vfwprintf+18FCj .text:0002ACCC SUB R3, R3, #0x14 .text:0002ACD0 STMIA R3, {R1,R2} .text:0002ACD4 SUB R2, R11, #-var_1000 .text:0002ACD8 SUB R2, R2, #0x28 .text:0002ACDC SUB R2, R2, #0x14 .text:0002ACE0 MOV R3, 0xFFFFEFE8 .text:0002ACE8 MOV R0, R9 .text:0002ACEC SUB R1, R11, #-var_28 .text:0002ACF0 STR R2, [R1,R3] .text:0002ACF4 SUB R1, R11, #-var_FE0 .text:0002ACF8 SUB R1, R1, #8 .text:0002ACFC SUB R1, R1, #4 .text:0002AD00 SUB R2, R11, #-var_1000 .text:0002AD04 SUB R2, R2, #0x28 .text:0002AD08 SUB R2, R2, #0x18 .text:0002AD0C BL __printf_fp .text:0002AD10 .text:0002AD10 loc_2AD10 ; CODE XREF: vfwprintf+1B08j .text:0002AD10 CMP R0, #0 .text:0002AD14 BLT loc_2B2B8 .text:0002AD18 ADD R10, R10, R0 .text:0002AD1C B loc_2B410 .text:0002AD20 ; --------------------------------------------------------------------------- .text:0002AD20 SUB R0, R11, #-var_FF0 .text:0002AD24 SUB R0, R0, #8 .text:0002AD28 SUB R0, R0, #8 .text:0002AD2C MOV R1, #0 .text:0002AD30 MOV R2, #0x14 .text:0002AD34 BL memset .text:0002AD38 SUB R2, R11, #-var_1000 .text:0002AD3C LDR R3, [R2,#-0xD4] .text:0002AD40 STR R3, [R2] .text:0002AD44 MOV R4, R2 .text:0002AD48 LDR R4, [R4,#-0xD0] .text:0002AD4C STR R4, [R11,#var_FFC] .text:0002AD50 MOV R5, R2 .text:0002AD54 LDR R5, [R5,#-0xE0] .text:0002AD58 STR R5, [R11,#var_FF8] .text:0002AD5C MOV R12, R2 .text:0002AD60 LDR R12, [R12,#-0xDC] .text:0002AD64 STR R12, [R11,#var_FF0] .text:0002AD68 LDRB R3, [R11,#var_FF4] .text:0002AD6C MOV LR, R2 .text:0002AD70 LDR LR, [LR,#-0xC0] .text:0002AD74 MOV R0, R2 .text:0002AD78 LDR R0, [R0,#-0xC4] .text:0002AD7C MOV R1, R2 .text:0002AD80 LDR R1, [R1,#-0xC8] .text:0002AD84 SUB R4, R11, #-var_1000 .text:0002AD88 LDR R4, [R4,#-0xB0] .text:0002AD8C SUB R5, R11, #-var_1000 .text:0002AD90 LDR R5, [R5,#-0xB4] .text:0002AD94 SUB R12, R11, #-var_1000 .text:0002AD98 LDR R12, [R12,#-0xB8] .text:0002AD9C CMP LR, #0 .text:0002ADA0 ORRNE R3, R3, #1 .text:0002ADA4 ANDEQ R3, R3, #0xFE .text:0002ADA8 CMP R0, #0 .text:0002ADAC ORRNE R3, R3, #2 .text:0002ADB0 ANDEQ R3, R3, #0xFD .text:0002ADB4 AND R2, R1, #1 .text:0002ADB8 CMP R2, #0 .text:0002ADBC ORRNE R3, R3, #4 .text:0002ADC0 ANDEQ R3, R3, #0xFB .text:0002ADC4 SUB R2, R11, #-var_1000 .text:0002ADC8 LDR R2, [R2,#-0xAC] .text:0002ADCC SUB LR, R11, #-var_1000 .text:0002ADD0 LDR LR, [LR,#-0xBC] .text:0002ADD4 CMP R2, #0 .text:0002ADD8 ORRNE R3, R3, #8 .text:0002ADDC ANDEQ R3, R3, #0xF7 .text:0002ADE0 CMP R4, #0 .text:0002ADE4 ORRNE R3, R3, #0x10 .text:0002ADE8 ANDEQ R3, R3, #0xEF .text:0002ADEC CMP R5, #0 .text:0002ADF0 ORRNE R3, R3, #0x20 .text:0002ADF4 ANDEQ R3, R3, #0xDF .text:0002ADF8 CMP R12, #0 .text:0002ADFC ORRNE R3, R3, #0x40 .text:0002AE00 ANDEQ R3, R3, #0xBF .text:0002AE04 CMP LR, #0 .text:0002AE08 ORRNE R3, R3, #0x80 .text:0002AE0C ANDEQ R3, R3, #0x7F .text:0002AE10 STRB R3, [R11,#var_FF4] .text:0002AE14 LDRB R2, [R11,#var_FF3] .text:0002AE18 SUB R0, R11, #-var_1000 .text:0002AE1C LDR R0, [R0,#-0xC0] .text:0002AE20 ORR R2, R2, #4 .text:0002AE24 STRB R2, [R11,#var_FF3] .text:0002AE28 CMP R0, #0 .text:0002AE2C BEQ loc_2AE58 .text:0002AE30 SUB R1, R11, #-var_1000 .text:0002AE34 LDR R5, [R1,#-0x78] .text:0002AE38 ADD R5, R5, #8 .text:0002AE3C STR R5, [R1,#-0x78] .text:0002AE40 SUB R2, R11, #-var_1000 .text:0002AE44 SUB R2, R2, #0x28 .text:0002AE48 SUB R2, R2, #0x14 .text:0002AE4C SUB R5, R5, #8 .text:0002AE50 LDMIA R5!, {R3,R4} .text:0002AE54 B loc_2AE7C .text:0002AE58 ; --------------------------------------------------------------------------- .text:0002AE58 .text:0002AE58 loc_2AE58 ; CODE XREF: vfwprintf+1A80j .text:0002AE58 SUB R12, R11, #-var_1000 .text:0002AE5C LDR LR, [R12,#-0x78] .text:0002AE60 ADD LR, LR, #8 .text:0002AE64 STR LR, [R12,#-0x78] .text:0002AE68 SUB R2, R11, #-var_1000 .text:0002AE6C SUB R2, R2, #0x28 .text:0002AE70 SUB R2, R2, #0x14 .text:0002AE74 SUB LR, LR, #8 .text:0002AE78 LDMIA LR!, {R3,R4} .text:0002AE7C .text:0002AE7C loc_2AE7C ; CODE XREF: vfwprintf+1AA8j .text:0002AE7C MOV R1, R2 .text:0002AE80 STMIA R2, {R3,R4} .text:0002AE84 MOV R3, 0xFFFFEFE4 .text:0002AE8C MOV R0, R9 .text:0002AE90 SUB R2, R11, #-var_28 .text:0002AE94 STR R1, [R2,R3] .text:0002AE98 SUB R1, R11, #-var_FF0 .text:0002AE9C SUB R1, R1, #8 .text:0002AEA0 SUB R1, R1, #8 .text:0002AEA4 SUB R2, R11, #-var_1000 .text:0002AEA8 SUB R2, R2, #0x28 .text:0002AEAC SUB R2, R2, #0x1C .text:0002AEB0 BL __printf_fphex .text:0002AEB4 B loc_2AD10 .text:0002AEB8 ; --------------------------------------------------------------------------- .text:0002AEB8 SUB R3, R11, #-var_1000 .text:0002AEBC LDR R4, [R3,#-0x78] .text:0002AEC0 ADD R4, R4, #4 .text:0002AEC4 STR R4, [R3,#-0x78] .text:0002AEC8 SUB R4, R4, #4 .text:0002AECC LDR R2, [R4],#4 .text:0002AED0 CMP R2, #0 .text:0002AED4 BEQ loc_2AF18 .text:0002AED8 MOV R12, #0x10 .text:0002AEDC MOV R5, R3 .text:0002AEE0 STR R12, [R5,#-0xA8] .text:0002AEE4 MOV LR, R3 .text:0002AEE8 STR R2, [LR,#-0xA4] .text:0002AEEC MOV R1, #0 .text:0002AEF0 MOV R0, R3 .text:0002AEF4 STR R1, [R0,#-0x9C] .text:0002AEF8 MOV R3, #1 .text:0002AEFC MOV R2, R0 .text:0002AF00 STR R3, [R2,#-0xAC] .text:0002AF04 MOV R4, R0 .text:0002AF08 STR R1, [R4,#-0xBC] .text:0002AF0C ADD R12, R12, #0x68 .text:0002AF10 STR R12, [R5,#-0xE0] .text:0002AF14 B loc_2A3D8 .text:0002AF18 ; --------------------------------------------------------------------------- .text:0002AF18 .text:0002AF18 loc_2AF18 ; CODE XREF: vfwprintf+1B28j .text:0002AF18 SUB LR, R11, #-var_1000 .text:0002AF1C LDR R0, [LR,#-0xD4] .text:0002AF20 MOV LR, R0 .text:0002AF24 CMP LR, #4 .text:0002AF28 MOVLE R0, #5 .text:0002AF2C SUB LR, R11, #-var_1000 .text:0002AF30 STR R0, [LR,#-0xD4] .text:0002AF34 LDR R7, =dword_578A4 .text:0002AF38 MOV R0, LR .text:0002AF3C STR R2, [R0,#-0xC8] .text:0002AF40 B loc_2B1A0 .text:0002AF44 ; --------------------------------------------------------------------------- .text:0002AF44 SUB R1, R11, #-var_1000 .text:0002AF48 LDR R1, [R1,#-0xC0] .text:0002AF4C CMP R1, #0 .text:0002AF50 BNE loc_29CB8 .text:0002AF54 SUB R2, R11, #-var_1000 .text:0002AF58 LDR R2, [R2,#-0xCC] .text:0002AF5C CMP R2, #0 .text:0002AF60 BNE loc_29CE0 .text:0002AF64 SUB R3, R11, #-var_1000 .text:0002AF68 LDR R3, [R3,#-0xC4] .text:0002AF6C CMP R3, #0 .text:0002AF70 BEQ loc_29D00 .text:0002AF74 SUB R4, R11, #-var_1000 .text:0002AF78 LDR R5, [R4,#-0x78] .text:0002AF7C ADD R5, R5, #4 .text:0002AF80 STR R5, [R4,#-0x78] .text:0002AF84 SUB R5, R5, #4 .text:0002AF88 LDR R2, [R5],#4 .text:0002AF8C STRB R10, [R2] .text:0002AF90 MOV R3, R10,ASR#8 .text:0002AF94 STRB R3, [R2,#1] .text:0002AF98 B loc_2B410 .text:0002AF9C ; --------------------------------------------------------------------------- .text:0002AF9C SUB R12, R11, #-var_1000 .text:0002AFA0 SUB R1, R11, #-var_FC0 .text:0002AFA4 SUB R1, R1, #8 .text:0002AFA8 LDR R0, [R12,#-0x94] .text:0002AFAC MOV R2, #0xFA0 .text:0002AFB0 BL strerror_r .text:0002AFB4 MOV R7, R0 .text:0002AFB8 MOV R0, #0 .text:0002AFBC SUB LR, R11, #-var_1000 .text:0002AFC0 STR R0, [LR,#-0xC8] .text:0002AFC4 B loc_2B1A0 .text:0002AFC8 ; --------------------------------------------------------------------------- .text:0002AFC8 SUB R1, R11, #-var_1000 .text:0002AFCC LDR R1, [R1,#-0xC8] .text:0002AFD0 CMP R1, #0 .text:0002AFD4 BNE loc_2B0B0 .text:0002AFD8 SUB R2, R11, #-var_1000 .text:0002AFDC LDR R2, [R2,#-0xD0] .text:0002AFE0 SUB R3, R2, #1 .text:0002AFE4 SUB R2, R11, #-var_1000 .text:0002AFE8 STR R3, [R2,#-0xD0] .text:0002AFEC MOV R3, R2 .text:0002AFF0 LDR R3, [R3,#-0xB4] .text:0002AFF4 CMP R3, #0 .text:0002AFF8 BNE loc_2B024 .text:0002AFFC MOV R4, R2 .text:0002B000 LDR R4, [R4,#-0xD0] .text:0002B004 CMP R4, #0 .text:0002B008 BLE loc_2B024 .text:0002B00C MOV R0, R9 .text:0002B010 MOV R1, #0x20 .text:0002B014 MOV R5, R2 .text:0002B018 LDR R2, [R5,#-0xD0] .text:0002B01C BL _IO_wpadn .text:0002B020 ADD R10, R10, R0 .text:0002B024 .text:0002B024 loc_2B024 ; CODE XREF: vfwprintf+1C4Cj .text:0002B024 ; vfwprintf+1C5Cj .text:0002B024 SUB R12, R11, #-var_1000 .text:0002B028 LDR R12, [R12,#-0x78] .text:0002B02C ADD LR, R12, #4 .text:0002B030 SUB R12, R11, #-var_1000 .text:0002B034 STR LR, [R12,#-0x78] .text:0002B038 LDRB R0, [LR,#-4] .text:0002B03C BL btowc .text:0002B040 LDR R12, [R9,#0x58] .text:0002B044 ADD R2, R12, #0x10 .text:0002B048 LDMIA R2, {R2,R3} .text:0002B04C MOV R1, R0 .text:0002B050 CMP R2, R3 .text:0002B054 BCC loc_2B068 .text:0002B058 MOV R0, R9 .text:0002B05C BL __woverflow .text:0002B060 CMN R0, #1 .text:0002B064 B loc_2B074 .text:0002B068 ; --------------------------------------------------------------------------- .text:0002B068 .text:0002B068 loc_2B068 ; CODE XREF: vfwprintf+1CA8j .text:0002B068 STR R1, [R2],#4 .text:0002B06C CMN R1, #1 .text:0002B070 STR R2, [R12,#0x10] .text:0002B074 .text:0002B074 loc_2B074 ; CODE XREF: vfwprintf+1CB8j .text:0002B074 BEQ loc_2B2B8 .text:0002B078 ADD R10, R10, #1 .text:0002B07C SUB R0, R11, #-var_1000 .text:0002B080 LDR R0, [R0,#-0xB4] .text:0002B084 CMP R0, #0 .text:0002B088 BEQ loc_2B410 .text:0002B08C SUB R1, R11, #-var_1000 .text:0002B090 LDR R1, [R1,#-0xD0] .text:0002B094 CMP R1, #0 .text:0002B098 BLE loc_2B410 .text:0002B09C MOV R0, R9 .text:0002B0A0 MOV R1, #0x20 .text:0002B0A4 SUB R3, R11, #-var_1000 .text:0002B0A8 LDR R2, [R3,#-0xD0] .text:0002B0AC B loc_2B17C .text:0002B0B0 ; --------------------------------------------------------------------------- .text:0002B0B0 .text:0002B0B0 loc_2B0B0 ; CODE XREF: vfwprintf+1C28j .text:0002B0B0 SUB R4, R11, #-var_1000 .text:0002B0B4 LDR R4, [R4,#-0xD0] .text:0002B0B8 SUB R5, R4, #1 .text:0002B0BC SUB R4, R11, #-var_1000 .text:0002B0C0 STR R5, [R4,#-0xD0] .text:0002B0C4 MOV R5, R4 .text:0002B0C8 LDR R5, [R5,#-0xB4] .text:0002B0CC CMP R5, #0 .text:0002B0D0 BNE loc_2B0FC .text:0002B0D4 MOV R12, R4 .text:0002B0D8 LDR R12, [R12,#-0xD0] .text:0002B0DC CMP R12, #0 .text:0002B0E0 BLE loc_2B0FC .text:0002B0E4 MOV R0, R9 .text:0002B0E8 MOV R1, #0x20 .text:0002B0EC MOV LR, R4 .text:0002B0F0 LDR R2, [LR,#-0xD0] .text:0002B0F4 BL _IO_wpadn .text:0002B0F8 ADD R10, R10, R0 .text:0002B0FC .text:0002B0FC loc_2B0FC ; CODE XREF: vfwprintf+1D24j .text:0002B0FC ; vfwprintf+1D34j .text:0002B0FC LDR R0, [R9,#0x58] .text:0002B100 ADD R2, R0, #0x10 .text:0002B104 LDMIA R2, {R2,R3} .text:0002B108 CMP R2, R3 .text:0002B10C SUB R3, R11, #-var_1000 .text:0002B110 LDR R4, [R3,#-0x78] .text:0002B114 ADD R4, R4, #4 .text:0002B118 STR R4, [R3,#-0x78] .text:0002B11C SUB R4, R4, #4 .text:0002B120 LDR R1, [R4],#4 .text:0002B124 BCC loc_2B138 .text:0002B128 MOV R0, R9 .text:0002B12C BL __woverflow .text:0002B130 CMN R0, #1 .text:0002B134 B loc_2B144 .text:0002B138 ; --------------------------------------------------------------------------- .text:0002B138 .text:0002B138 loc_2B138 ; CODE XREF: vfwprintf+1D78j .text:0002B138 STR R1, [R2],#4 .text:0002B13C CMN R1, #1 .text:0002B140 STR R2, [R0,#0x10] .text:0002B144 .text:0002B144 loc_2B144 ; CODE XREF: vfwprintf+1D88j .text:0002B144 BEQ loc_2B2B8 .text:0002B148 ADD R10, R10, #1 .text:0002B14C SUB R5, R11, #-var_1000 .text:0002B150 LDR R5, [R5,#-0xB4] .text:0002B154 CMP R5, #0 .text:0002B158 BEQ loc_2B410 .text:0002B15C SUB R12, R11, #-var_1000 .text:0002B160 LDR R12, [R12,#-0xD0] .text:0002B164 CMP R12, #0 .text:0002B168 BLE loc_2B410 .text:0002B16C MOV R0, R9 .text:0002B170 MOV R1, #0x20 .text:0002B174 SUB LR, R11, #-var_1000 .text:0002B178 LDR R2, [LR,#-0xD0] .text:0002B17C .text:0002B17C loc_2B17C ; CODE XREF: vfwprintf+17C8j .text:0002B17C ; vfwprintf+1D00j .text:0002B17C BL _IO_wpadn .text:0002B180 ADD R10, R10, R0 .text:0002B184 B loc_2B410 .text:0002B188 ; --------------------------------------------------------------------------- .text:0002B188 SUB R0, R11, #-var_1000 .text:0002B18C LDR R1, [R0,#-0x78] .text:0002B190 ADD R1, R1, #4 .text:0002B194 STR R1, [R0,#-0x78] .text:0002B198 SUB R1, R1, #4 .text:0002B19C LDR R7, [R1],#4 .text:0002B1A0 .text:0002B1A0 loc_2B1A0 ; CODE XREF: vfwprintf+1B94j .text:0002B1A0 ; vfwprintf+1C18j .text:0002B1A0 MOV R8, #0 .text:0002B1A4 CMP R7, R8 .text:0002B1A8 BNE loc_2B1E8 .text:0002B1AC SUB R2, R11, #-var_1000 .text:0002B1B0 LDR R2, [R2,#-0xD4] .text:0002B1B4 CMP R2, #5 .text:0002B1B8 MOVLE R3, #0 .text:0002B1BC MOVGT R3, #1 .text:0002B1C0 CMN R2, #1 .text:0002B1C4 MOVNE R0, R3 .text:0002B1C8 MOVEQ R0, #1 .text:0002B1CC CMP R0, R8 .text:0002B1D0 MOVNE R5, #6 .text:0002B1D4 LDRNE R7, =null_0 .text:0002B1D8 BNE loc_2B2FC .text:0002B1DC MOV R5, R0 .text:0002B1E0 LDR R7, =dword_578BC .text:0002B1E4 B loc_2B2FC .text:0002B1E8 ; --------------------------------------------------------------------------- .text:0002B1E8 .text:0002B1E8 loc_2B1E8 ; CODE XREF: vfwprintf+1DFCj .text:0002B1E8 SUB R5, R11, #-var_1000 .text:0002B1EC LDR R5, [R5,#-0xE0] .text:0002B1F0 SUB R12, R11, #-var_1000 .text:0002B1F4 LDR R12, [R12,#-0xC8] .text:0002B1F8 SUBS R3, R5, #0x53 .text:0002B1FC MOVNE R3, #1 .text:0002B200 CMP R12, #0 .text:0002B204 MOVNE R3, #0 .text:0002B208 CMP R3, #0 .text:0002B20C BEQ loc_2B2C0 .text:0002B210 MOV R3, 0xFFFFEFD8 .text:0002B218 SUB LR, R11, #-var_1000 .text:0002B21C LDR LR, [LR,#-0xD4] .text:0002B220 SUB R0, R11, #-var_28 .text:0002B224 STR R7, [R0,R3] .text:0002B228 CMN LR, #1 .text:0002B22C BNE loc_2B240 .text:0002B230 MOV R0, R7 .text:0002B234 BL strlen .text:0002B238 MOV R5, R0 .text:0002B23C B loc_2B248 .text:0002B240 ; --------------------------------------------------------------------------- .text:0002B240 .text:0002B240 loc_2B240 ; CODE XREF: vfwprintf+1E80j .text:0002B240 SUB R1, R11, #-var_1000 .text:0002B244 LDR R5, [R1,#-0xD4] .text:0002B248 .text:0002B248 loc_2B248 ; CODE XREF: vfwprintf+1E90j .text:0002B248 CMP R5, #0x2000 .text:0002B24C MOV R4, R5,LSL#2 .text:0002B250 BCC loc_2B264 .text:0002B254 MOV R0, R4 .text:0002B258 BL malloc .text:0002B25C SUBS R7, R0, #0 .text:0002B260 BNE loc_2B270 .text:0002B264 .text:0002B264 loc_2B264 ; CODE XREF: vfwprintf+1EA4j .text:0002B264 RSB SP, R4, SP .text:0002B268 ADD R7, SP, #0x1154+var_1150 .text:0002B26C B loc_2B274 .text:0002B270 ; --------------------------------------------------------------------------- .text:0002B270 .text:0002B270 loc_2B270 ; CODE XREF: vfwprintf+1EB4j .text:0002B270 MOV R8, #1 .text:0002B274 .text:0002B274 loc_2B274 ; CODE XREF: vfwprintf+1EC0j .text:0002B274 SUB R4, R11, #-var_1000 .text:0002B278 SUB R4, R4, #0x28 .text:0002B27C SUB R4, R4, #0x24 .text:0002B280 MOV R0, R4 .text:0002B284 MOV R1, #0 .text:0002B288 MOV R2, #8 .text:0002B28C BL memset .text:0002B290 MOV R0, R7 .text:0002B294 SUB R1, R11, #-var_1000 .text:0002B298 SUB R1, R1, #0x28 .text:0002B29C SUB R1, R1, #0x28 .text:0002B2A0 MOV R2, R5 .text:0002B2A4 MOV R3, R4 .text:0002B2A8 BL mbsrtowcs .text:0002B2AC MOV R5, R0 .text:0002B2B0 CMN R5, #1 .text:0002B2B4 BNE loc_2B2FC .text:0002B2B8 .text:0002B2B8 loc_2B2B8 ; CODE XREF: vfwprintf+CB8j .text:0002B2B8 ; vfwprintf+13A8j ... .text:0002B2B8 MOV R10, 0xFFFFFFFF .text:0002B2BC B loc_2DE68 .text:0002B2C0 ; --------------------------------------------------------------------------- .text:0002B2C0 .text:0002B2C0 loc_2B2C0 ; CODE XREF: vfwprintf+1E60j .text:0002B2C0 SUB R2, R11, #-var_1000 .text:0002B2C4 LDR R2, [R2,#-0xD4] .text:0002B2C8 CMN R2, #1 .text:0002B2CC BEQ loc_2B2F0 .text:0002B2D0 MOV R0, R7 .text:0002B2D4 SUB R3, R11, #-var_1000 .text:0002B2D8 LDR R1, [R3,#-0xD4] .text:0002B2DC BL wcsnlen .text:0002B2E0 B loc_2B2F8 .text:0002B2E0 ; --------------------------------------------------------------------------- .text:0002B2E4 off_2B2E4 DCD dword_578A4 ; DATA XREF: vfwprintf+1B88r .text:0002B2E8 off_2B2E8 DCD null_0 ; DATA XREF: vfwprintf+1E28r .text:0002B2EC off_2B2EC DCD dword_578BC ; DATA XREF: vfwprintf+1E34r .text:0002B2F0 ; --------------------------------------------------------------------------- .text:0002B2F0 .text:0002B2F0 loc_2B2F0 ; CODE XREF: vfwprintf+1F20j .text:0002B2F0 MOV R0, R7 .text:0002B2F4 BL wcslen .text:0002B2F8 .text:0002B2F8 loc_2B2F8 ; CODE XREF: vfwprintf+1F34j .text:0002B2F8 MOV R5, R0 .text:0002B2FC .text:0002B2FC loc_2B2FC ; CODE XREF: vfwprintf+1E2Cj .text:0002B2FC ; vfwprintf+1E38j ... .text:0002B2FC SUB R4, R11, #-var_1000 .text:0002B300 LDR R4, [R4,#-0xD0] .text:0002B304 SUBS R12, R4, R5 .text:0002B308 SUB R4, R11, #-var_1000 .text:0002B30C STR R12, [R4,#-0xD0] .text:0002B310 BPL loc_2B348 .text:0002B314 MOV R0, R9 .text:0002B318 LDRB R3, [R9,#0x46] .text:0002B31C MOV R1, R7 .text:0002B320 MOV R3, R3,LSL#24 .text:0002B324 ADD R3, R9, R3,ASR#24 .text:0002B328 LDR R12, [R3,#0x94] .text:0002B32C MOV R2, R5 .text:0002B330 MOV LR, PC .text:0002B334 LDR PC, [R12,#0x1C] .text:0002B338 CMP R0, R5 .text:0002B33C BNE loc_2B2B8 .text:0002B340 ADD R10, R10, R5 .text:0002B344 B loc_2B410 .text:0002B348 ; --------------------------------------------------------------------------- .text:0002B348 .text:0002B348 loc_2B348 ; CODE XREF: vfwprintf+1F64j .text:0002B348 SUB R12, R11, #-var_1000 .text:0002B34C LDR R12, [R12,#-0xB4] .text:0002B350 CMP R12, #0 .text:0002B354 BNE loc_2B380 .text:0002B358 SUB LR, R11, #-var_1000 .text:0002B35C LDR LR, [LR,#-0xD0] .text:0002B360 CMP LR, #0 .text:0002B364 BLE loc_2B380 .text:0002B368 MOV R0, R9 .text:0002B36C MOV R1, #0x20 .text:0002B370 SUB R3, R11, #-var_1000 .text:0002B374 LDR R2, [R3,#-0xD0] .text:0002B378 BL _IO_wpadn .text:0002B37C ADD R10, R10, R0 .text:0002B380 .text:0002B380 loc_2B380 ; CODE XREF: vfwprintf+1FA8j .text:0002B380 ; vfwprintf+1FB8j .text:0002B380 MOV R0, R9 .text:0002B384 LDRB R3, [R9,#0x46] .text:0002B388 MOV R1, R7 .text:0002B38C MOV R3, R3,LSL#24 .text:0002B390 ADD R3, R9, R3,ASR#24 .text:0002B394 LDR R12, [R3,#0x94] .text:0002B398 MOV R2, R5 .text:0002B39C MOV LR, PC .text:0002B3A0 LDR PC, [R12,#0x1C] .text:0002B3A4 CMP R0, R5 .text:0002B3A8 BNE loc_2B2B8 .text:0002B3AC ADD R10, R10, R5 .text:0002B3B0 SUB R4, R11, #-var_1000 .text:0002B3B4 LDR R4, [R4,#-0xB4] .text:0002B3B8 CMP R4, #0 .text:0002B3BC BEQ loc_2B3E8 .text:0002B3C0 SUB R5, R11, #-var_1000 .text:0002B3C4 LDR R5, [R5,#-0xD0] .text:0002B3C8 CMP R5, #0 .text:0002B3CC BLE loc_2B3E8 .text:0002B3D0 MOV R0, R9 .text:0002B3D4 MOV R1, #0x20 .text:0002B3D8 SUB R12, R11, #-var_1000 .text:0002B3DC LDR R2, [R12,#-0xD0] .text:0002B3E0 BL _IO_wpadn .text:0002B3E4 ADD R10, R10, R0 .text:0002B3E8 .text:0002B3E8 loc_2B3E8 ; CODE XREF: vfwprintf+2010j .text:0002B3E8 ; vfwprintf+2020j .text:0002B3E8 CMP R8, #0 .text:0002B3EC BEQ loc_2B410 .text:0002B3F0 MOV R0, R7 .text:0002B3F4 BL free .text:0002B3F8 B loc_2B410 .text:0002B3FC ; --------------------------------------------------------------------------- .text:0002B3FC .text:0002B3FC loc_2B3FC ; DATA XREF: vfwprintf:loc_29610o .text:0002B3FC ; vfwprintf:loc_2966Co ... .text:0002B3FC SUB LR, R11, #-var_1000 .text:0002B400 LDR LR, [LR,#-0xE0] .text:0002B404 CMP LR, #0 .text:0002B408 BNE loc_2B4B8 .text:0002B40C B loc_2B2B8 .text:0002B410 ; --------------------------------------------------------------------------- .text:0002B410 .text:0002B410 loc_2B410 ; CODE XREF: vfwprintf+930j .text:0002B410 ; vfwprintf+950j ... .text:0002B410 SUB R5, R11, #-var_1000 .text:0002B414 SUB R5, R5, #0x28 .text:0002B418 SUB R5, R5, #8 .text:0002B41C LDR R4, [R5] .text:0002B420 ADD R4, R4, #4 .text:0002B424 STR R4, [R5] .text:0002B428 MOV R1, #0x25 .text:0002B42C MOV R0, R4 .text:0002B430 BL wcschrnul .text:0002B434 MOV R2, R0 .text:0002B438 STR R2, [R5] .text:0002B43C SUB R0, R11, #-var_1000 .text:0002B440 LDR R0, [R0,#-0x90] .text:0002B444 ADD R1, R0, #1 .text:0002B448 SUB R0, R11, #-var_1000 .text:0002B44C STR R1, [R0,#-0x90] .text:0002B450 LDRB R3, [R9,#0x46] .text:0002B454 MOV R0, R9 .text:0002B458 MOV R1, R4 .text:0002B45C MOV R3, R3,LSL#24 .text:0002B460 ADD R3, R9, R3,ASR#24 .text:0002B464 RSB R2, R4, R2 .text:0002B468 LDR R12, [R3,#0x94] .text:0002B46C MOV R2, R2,ASR#2 .text:0002B470 MOV LR, PC .text:0002B474 LDR PC, [R12,#0x1C] .text:0002B478 LDR R3, [R5] .text:0002B47C RSB R4, R4, R3 .text:0002B480 CMP R0, R4,ASR#2 .text:0002B484 BNE loc_2B2B8 .text:0002B488 ADD R10, R10, R0 .text:0002B48C LDR R3, [R3] .text:0002B490 CMP R3, #0 .text:0002B494 BNE loc_29544 .text:0002B498 B loc_2DE68 .text:0002B49C ; --------------------------------------------------------------------------- .text:0002B49C .text:0002B49C loc_2B49C ; CODE XREF: vfwprintf+60j .text:0002B49C BL __errno_location .text:0002B4A0 MOV R3, #9 .text:0002B4A4 .text:0002B4A4 loc_2B4A4 ; CODE XREF: vfwprintf+74j .text:0002B4A4 STR R3, [R0] .text:0002B4A8 .text:0002B4A8 loc_2B4A8 ; CODE XREF: vfwprintf+54j .text:0002B4A8 ; vfwprintf+90j .text:0002B4A8 MOV R0, 0xFFFFFFFF .text:0002B4AC B loc_2DEA0 .text:0002B4B0 ; --------------------------------------------------------------------------- .text:0002B4B0 .text:0002B4B0 loc_2B4B0 ; CODE XREF: vfwprintf+17Cj .text:0002B4B0 SUB R1, R11, #-var_1000 .text:0002B4B4 B loc_2B2B8 .text:0002B4B8 ; --------------------------------------------------------------------------- .text:0002B4B8 .text:0002B4B8 loc_2B4B8 ; CODE XREF: vfwprintf+618j .text:0002B4B8 ; vfwprintf+768j ... .text:0002B4B8 MOV R3, #0 .text:0002B4BC SUB R2, R11, #-var_1000 .text:0002B4C0 MOV R5, #0x20 .text:0002B4C4 STR R3, [R2,#-0xE4] .text:0002B4C8 MOV R4, R2 .text:0002B4CC SUB SP, SP, #0x600 .text:0002B4D0 STR R5, [R4,#-0xE8] .text:0002B4D4 ADD LR, SP, #0x1754+var_1750 .text:0002B4D8 MOV R12, R2 .text:0002B4DC STR LR, [R12,#-0xEC] .text:0002B4E0 MOV R0, R2 .text:0002B4E4 STR R3, [R0,#-0xF0] .text:0002B4E8 MOV R1, R0 .text:0002B4EC MOV R3, 0xFFFFEFFF .text:0002B4F0 LDR R1, [R1,#-0x80] .text:0002B4F4 SUB R3, R3, #0x2B .text:0002B4F8 LDR R4, [R2,#-0xE4] .text:0002B4FC SUB R2, R11, #-var_28 .text:0002B500 CMN R1, #1 .text:0002B504 STR R4, [R2,R3] .text:0002B508 BNE loc_2B538 .text:0002B50C LDR R3, =_nl_current_LC_NUMERIC .text:0002B510 LDR R2, [R3] .text:0002B514 LDR R12, [R2,#0x28] .text:0002B518 LDR R2, [R2,#0x30] .text:0002B51C LDRB R3, [R12] .text:0002B520 MOV R1, R0 .text:0002B524 STR R2, [R0,#-0x7C] .text:0002B528 CMP R3, #0xFF .text:0002B52C CMPNE R3, #0 .text:0002B530 MOVEQ R12, #0 .text:0002B534 STR R12, [R1,#-0x80] .text:0002B538 .text:0002B538 loc_2B538 ; CODE XREF: vfwprintf+215Cj .text:0002B538 SUB R3, R11, #-var_1000 .text:0002B53C SUB R3, R3, #0x28 .text:0002B540 SUB R2, R11, #-var_1000 .text:0002B544 LDR R2, [R2,#-0x84] .text:0002B548 SUB R3, R3, #8 .text:0002B54C STR R2, [R3] .text:0002B550 SUB R6, R11, #-var_1000 .text:0002B554 SUB R6, R6, #0x28 .text:0002B558 LDR R3, [R2] .text:0002B55C SUB R6, R6, #0x2C .text:0002B560 CMP R3, #0 .text:0002B564 BEQ loc_2BFBC .text:0002B568 SUB R8, R11, #-var_1000 .text:0002B56C SUB R8, R8, #0x28 .text:0002B570 SUB R8, R8, #0x30 .text:0002B574 .text:0002B574 loc_2B574 ; CODE XREF: vfwprintf+2C0Cj .text:0002B574 SUB R5, R11, #-var_1000 .text:0002B578 SUB R5, R5, #0xE8 .text:0002B57C LDMIA R5, {R5,R12} .text:0002B580 CMP R12, R5 .text:0002B584 MOV LR, R12,LSL#1 .text:0002B588 SUB R12, R11, #-var_1000 .text:0002B58C STR LR, [R12,#-0x150] .text:0002B590 BCC loc_2B620 .text:0002B594 MOV R1, R5,LSL#1 .text:0002B598 MOV R0, R12 .text:0002B59C ADD R3, R1, R1,LSL#1 .text:0002B5A0 STR R1, [R0,#-0xE8] .text:0002B5A4 SUB SP, SP, R3,LSL#4 .text:0002B5A8 MOV R3, R0 .text:0002B5AC MOV R4, R0 .text:0002B5B0 LDR R5, [R3,#-0xEC] .text:0002B5B4 ADD R12, SP, #0x1754+var_1750 .text:0002B5B8 STR R12, [R4,#-0xEC] .text:0002B5BC LDR R0, [R0,#-0xE4] .text:0002B5C0 ADD R3, LR, R0 .text:0002B5C4 MOV R4, R3,LSL#4 .text:0002B5C8 ADD R2, R5, R4 .text:0002B5CC CMP R12, R2 .text:0002B5D0 ADDEQ R3, R1, R1,LSR#1 .text:0002B5D4 SUBEQ R2, R11, #-var_1000 .text:0002B5D8 STREQ R3, [R2,#-0xE8] .text:0002B5DC BEQ loc_2B620 .text:0002B5E0 SUB R12, R11, #-var_1000 .text:0002B5E4 MOV R1, R5 .text:0002B5E8 LDR R0, [R12,#-0xEC] .text:0002B5EC MOV R2, R4 .text:0002B5F0 BL memcpy .text:0002B5F4 SUB LR, R11, #-var_1000 .text:0002B5F8 LDR LR, [LR,#-0xEC] .text:0002B5FC ADD R3, LR, R4 .text:0002B600 CMP R5, R3 .text:0002B604 BNE loc_2B620 .text:0002B608 SUB R0, R11, #-var_1000 .text:0002B60C LDR R1, [R0,#-0xE8] .text:0002B610 MOV R0, R1 .text:0002B614 ADD R1, R1, R0,LSR#1 .text:0002B618 SUB R0, R11, #-var_1000 .text:0002B61C STR R1, [R0,#-0xE8] .text:0002B620 .text:0002B620 loc_2B620 ; CODE XREF: vfwprintf+21E4j .text:0002B620 ; vfwprintf+2230j ... .text:0002B620 SUB R1, R11, #-var_1000 .text:0002B624 LDR R3, [R1,#-0x30] .text:0002B628 ADD R3, R3, #4 .text:0002B62C STR R3, [R8] .text:0002B630 MOV R3, R1 .text:0002B634 LDR R4, [R3,#-0x150] .text:0002B638 LDR R3, [R3,#-0xE4] .text:0002B63C MOV R5, R1 .text:0002B640 LDR R5, [R5,#-0xEC] .text:0002B644 ADD R2, R4, R3 .text:0002B648 ADD R4, R5, R2,LSL#4 .text:0002B64C MOV R3, 0xFFFFFFFF .text:0002B650 STR R3, [R4,#0x24] .text:0002B654 MOV R2, #0x20 .text:0002B658 STR R2, [R4,#0x10] .text:0002B65C LDRB R3, [R4,#0xC] .text:0002B660 LDRB R2, [R4,#0xD] .text:0002B664 AND R3, R3, #7 .text:0002B668 STRB R3, [R4,#0xC] .text:0002B66C AND R2, R2, #0xF7 .text:0002B670 ORR R2, R2, #4 .text:0002B674 STRB R2, [R4,#0xD] .text:0002B678 MOV R12, R1 .text:0002B67C LDR LR, [R12,#-0xF0] .text:0002B680 STR LR, [R12,#-0xF8] .text:0002B684 MOV R0, R12 .text:0002B688 MOV R1, #0 .text:0002B68C STR R1, [R0,#-0xFC] .text:0002B690 SUB R5, R11, #-var_1000 .text:0002B694 SUB R5, R5, #0x28 .text:0002B698 LDR LR, [R8] .text:0002B69C SUB R5, R5, #0x30 .text:0002B6A0 LDR R3, [LR] .text:0002B6A4 MOV R2, R0 .text:0002B6A8 LDR R2, [R2,#-0xE4] .text:0002B6AC SUB R1, R3, #0x30 .text:0002B6B0 CMP R1, #9 .text:0002B6B4 ADD R3, R2, #1 .text:0002B6B8 MOV R2, R0 .text:0002B6BC STR R3, [R2,#-0x14C] .text:0002B6C0 BHI loc_2B748 .text:0002B6C4 ADD R3, LR, #4 .text:0002B6C8 STR R3, [R8] .text:0002B6CC LDR R3, [LR,#4] .text:0002B6D0 MOV R7, R5 .text:0002B6D4 B loc_2B6FC .text:0002B6D8 ; --------------------------------------------------------------------------- .text:0002B6D8 .text:0002B6D8 loc_2B6D8 ; CODE XREF: vfwprintf+2358j .text:0002B6D8 LDR R0, [R7] .text:0002B6DC MOV R3, R0 .text:0002B6E0 LDR R12, [R3],#4 .text:0002B6E4 STR R3, [R7] .text:0002B6E8 ADD R2, R1, R1,LSL#2 .text:0002B6EC MOV R1, R2,LSL#1 .text:0002B6F0 SUB R1, R1, #0x30 .text:0002B6F4 LDR R3, [R0,#4] .text:0002B6F8 ADD R1, R1, R12 .text:0002B6FC .text:0002B6FC loc_2B6FC ; CODE XREF: vfwprintf+2328j .text:0002B6FC SUB R3, R3, #0x30 .text:0002B700 CMP R3, #9 .text:0002B704 BLS loc_2B6D8 .text:0002B708 CMP R1, #0 .text:0002B70C BEQ loc_2B744 .text:0002B710 LDR R2, [R5] .text:0002B714 LDR R3, [R2] .text:0002B718 CMP R3, #0x24 .text:0002B71C BNE loc_2B744 .text:0002B720 ADD R3, R2, #4 .text:0002B724 STR R3, [R5] .text:0002B728 SUB R2, R1, #1 .text:0002B72C STR R2, [R4,#0x24] .text:0002B730 LDR R3, [R6] .text:0002B734 CMP R1, R3 .text:0002B738 STRCS R1, [R6] .text:0002B73C STRCC R3, [R6] .text:0002B740 B loc_2B748 .text:0002B744 ; --------------------------------------------------------------------------- .text:0002B744 .text:0002B744 loc_2B744 ; CODE XREF: vfwprintf+2360j .text:0002B744 ; vfwprintf+2370j .text:0002B744 STR LR, [R5] .text:0002B748 .text:0002B748 loc_2B748 ; CODE XREF: vfwprintf+2314j .text:0002B748 ; vfwprintf+2394j .text:0002B748 MOV R0, R5 .text:0002B74C MOV R12, #0x30 .text:0002B750 .text:0002B750 loc_2B750 ; CODE XREF: vfwprintf+24E8j .text:0002B750 LDR R2, [R0] .text:0002B754 LDR R3, [R2] .text:0002B758 SUB R3, R3, #0x20 .text:0002B75C CMP R3, #0x29 ; switch 42 cases .text:0002B760 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0002B764 B loc_2B878 ; jumptable 0002B760 default case .text:0002B764 ; --------------------------------------------------------------------------- .text:0002B768 DCD loc_2B810 ; jump table for switch statement .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B840 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B858 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B820 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B830 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B850 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B898 .text:0002B768 DCD loc_2B868 .text:0002B810 ; --------------------------------------------------------------------------- .text:0002B810 .text:0002B810 loc_2B810 ; CODE XREF: vfwprintf+23B4j .text:0002B810 ; DATA XREF: vfwprintf+23BCo .text:0002B810 LDRB R3, [R4,#0xC] ; jumptable 0002B760 case 0 .text:0002B814 ORR R3, R3, #0x10 .text:0002B818 STRB R3, [R4,#0xC] .text:0002B81C B loc_2B880 .text:0002B820 ; --------------------------------------------------------------------------- .text:0002B820 .text:0002B820 loc_2B820 ; CODE XREF: vfwprintf+23B4j .text:0002B820 ; DATA XREF: vfwprintf+23BCo .text:0002B820 LDRB R3, [R4,#0xC] ; jumptable 0002B760 case 11 .text:0002B824 ORR R3, R3, #0x40 .text:0002B828 STRB R3, [R4,#0xC] .text:0002B82C B loc_2B880 .text:0002B830 ; --------------------------------------------------------------------------- .text:0002B830 .text:0002B830 loc_2B830 ; CODE XREF: vfwprintf+23B4j .text:0002B830 ; DATA XREF: vfwprintf+23BCo .text:0002B830 LDRB R3, [R4,#0xC] ; jumptable 0002B760 case 13 .text:0002B834 ORR R3, R3, #0x20 .text:0002B838 STRB R3, [R4,#0xC] .text:0002B83C B loc_2B880 .text:0002B840 ; --------------------------------------------------------------------------- .text:0002B840 .text:0002B840 loc_2B840 ; CODE XREF: vfwprintf+23B4j .text:0002B840 ; DATA XREF: vfwprintf+23BCo .text:0002B840 LDRB R3, [R4,#0xC] ; jumptable 0002B760 case 3 .text:0002B844 ORR R3, R3, #8 .text:0002B848 STRB R3, [R4,#0xC] .text:0002B84C B loc_2B880 .text:0002B850 ; --------------------------------------------------------------------------- .text:0002B850 .text:0002B850 loc_2B850 ; CODE XREF: vfwprintf+23B4j .text:0002B850 ; DATA XREF: vfwprintf+23BCo .text:0002B850 STR R12, [R4,#0x10] ; jumptable 0002B760 case 16 .text:0002B854 B loc_2B880 .text:0002B858 ; --------------------------------------------------------------------------- .text:0002B858 .text:0002B858 loc_2B858 ; CODE XREF: vfwprintf+23B4j .text:0002B858 ; DATA XREF: vfwprintf+23BCo .text:0002B858 LDRB R3, [R4,#0xC] ; jumptable 0002B760 case 7 .text:0002B85C ORR R3, R3, #0x80 .text:0002B860 STRB R3, [R4,#0xC] .text:0002B864 B loc_2B880 .text:0002B868 ; --------------------------------------------------------------------------- .text:0002B868 .text:0002B868 loc_2B868 ; CODE XREF: vfwprintf+23B4j .text:0002B868 ; DATA XREF: vfwprintf+23BCo .text:0002B868 LDRB R3, [R4,#0xD] ; jumptable 0002B760 case 41 .text:0002B86C ORR R3, R3, #8 .text:0002B870 STRB R3, [R4,#0xD] .text:0002B874 B loc_2B880 .text:0002B878 ; --------------------------------------------------------------------------- .text:0002B878 .text:0002B878 loc_2B878 ; CODE XREF: vfwprintf+23B8j .text:0002B878 B loc_2B898 ; jumptable 0002B760 default case .text:0002B878 ; --------------------------------------------------------------------------- .text:0002B87C off_2B87C DCD _nl_current_LC_NUMERIC ; DATA XREF: vfwprintf+2160r .text:0002B880 ; --------------------------------------------------------------------------- .text:0002B880 .text:0002B880 loc_2B880 ; CODE XREF: vfwprintf+2470j .text:0002B880 ; vfwprintf+2480j ... .text:0002B880 LDR R3, [R0] .text:0002B884 ADD R2, R3, #4 .text:0002B888 STR R2, [R8] .text:0002B88C LDR R1, [R3,#4] .text:0002B890 CMP R1, #0 .text:0002B894 BNE loc_2B750 .text:0002B898 .text:0002B898 loc_2B898 ; CODE XREF: vfwprintf+23B4j .text:0002B898 ; vfwprintf:loc_2B878j .text:0002B898 ; DATA XREF: ... .text:0002B898 LDRB R3, [R4,#0xC] ; jumptable 0002B760 cases 1,2,4-6,8-10,12,14,15,17-40 .text:0002B89C TST R3, #0x20 .text:0002B8A0 MOVNE R3, #0x20 .text:0002B8A4 STRNE R3, [R4,#0x10] .text:0002B8A8 MOV R3, 0xFFFFFFFF .text:0002B8AC STR R3, [R4,#0x20] .text:0002B8B0 MOV R2, #0 .text:0002B8B4 STR R2, [R4,#4] .text:0002B8B8 LDR R2, [R5] .text:0002B8BC LDR R3, [R2] .text:0002B8C0 CMP R3, #0x2A .text:0002B8C4 BNE loc_2B9A0 .text:0002B8C8 ADD LR, R2, #4 .text:0002B8CC STR LR, [R5] .text:0002B8D0 LDR R2, [R8] .text:0002B8D4 LDR R3, [R2] .text:0002B8D8 SUB R1, R3, #0x30 .text:0002B8DC CMP R1, #9 .text:0002B8E0 BHI loc_2B968 .text:0002B8E4 ADD R3, R2, #4 .text:0002B8E8 STR R3, [R8] .text:0002B8EC LDR R2, [R2,#4] .text:0002B8F0 SUB R2, R2, #0x30 .text:0002B8F4 CMP R2, #9 .text:0002B8F8 BHI loc_2B92C .text:0002B8FC .text:0002B8FC loc_2B8FC ; CODE XREF: vfwprintf+257Cj .text:0002B8FC LDR R0, [R5] .text:0002B900 MOV R3, R0 .text:0002B904 LDR R12, [R3],#4 .text:0002B908 STR R3, [R5] .text:0002B90C ADD R2, R1, R1,LSL#2 .text:0002B910 MOV R1, R2,LSL#1 .text:0002B914 SUB R1, R1, #0x30 .text:0002B918 LDR R3, [R0,#4] .text:0002B91C ADD R1, R1, R12 .text:0002B920 SUB R3, R3, #0x30 .text:0002B924 CMP R3, #9 .text:0002B928 BLS loc_2B8FC .text:0002B92C .text:0002B92C loc_2B92C ; CODE XREF: vfwprintf+254Cj .text:0002B92C CMP R1, #0 .text:0002B930 BEQ loc_2B968 .text:0002B934 LDR R3, [R5] .text:0002B938 LDR R2, [R3] .text:0002B93C CMP R2, #0x24 .text:0002B940 BNE loc_2B968 .text:0002B944 SUB R3, R1, #1 .text:0002B948 STR R3, [R4,#0x20] .text:0002B94C LDR R2, [R6] .text:0002B950 CMP R1, R2 .text:0002B954 STRCS R1, [R6] .text:0002B958 STRCC R2, [R6] .text:0002B95C LDR R3, [R5] .text:0002B960 ADD R3, R3, #4 .text:0002B964 STR R3, [R8] .text:0002B968 .text:0002B968 loc_2B968 ; CODE XREF: vfwprintf+2534j .text:0002B968 ; vfwprintf+2584j ... .text:0002B968 LDR R3, [R4,#0x20] .text:0002B96C CMP R3, #0 .text:0002B970 BGE loc_2B9F8 .text:0002B974 SUB R3, R11, #-var_1000 .text:0002B978 LDR R3, [R3,#-0xF0] .text:0002B97C STR R3, [R4,#0x20] .text:0002B980 SUB R12, R11, #-var_1000 .text:0002B984 ADD R0, R3, #1 .text:0002B988 STR R0, [R12,#-0xF8] .text:0002B98C MOV R2, #1 .text:0002B990 MOV R1, R12 .text:0002B994 STR R2, [R1,#-0xFC] .text:0002B998 STR LR, [R5] .text:0002B99C B loc_2B9F8 .text:0002B9A0 ; --------------------------------------------------------------------------- .text:0002B9A0 .text:0002B9A0 loc_2B9A0 ; CODE XREF: vfwprintf+2518j .text:0002B9A0 SUB R1, R3, #0x30 .text:0002B9A4 CMP R1, #9 .text:0002B9A8 BHI loc_2B9F8 .text:0002B9AC ADD R3, R2, #4 .text:0002B9B0 STR R3, [R8] .text:0002B9B4 LDR R2, [R2,#4] .text:0002B9B8 SUB R2, R2, #0x30 .text:0002B9BC CMP R2, #9 .text:0002B9C0 BHI loc_2B9F4 .text:0002B9C4 .text:0002B9C4 loc_2B9C4 ; CODE XREF: vfwprintf+2644j .text:0002B9C4 LDR R0, [R5] .text:0002B9C8 MOV R3, R0 .text:0002B9CC LDR R12, [R3],#4 .text:0002B9D0 STR R3, [R5] .text:0002B9D4 ADD R2, R1, R1,LSL#2 .text:0002B9D8 MOV R1, R2,LSL#1 .text:0002B9DC SUB R1, R1, #0x30 .text:0002B9E0 LDR R3, [R0,#4] .text:0002B9E4 ADD R1, R1, R12 .text:0002B9E8 SUB R3, R3, #0x30 .text:0002B9EC CMP R3, #9 .text:0002B9F0 BLS loc_2B9C4 .text:0002B9F4 .text:0002B9F4 loc_2B9F4 ; CODE XREF: vfwprintf+2614j .text:0002B9F4 STR R1, [R4,#4] .text:0002B9F8 .text:0002B9F8 loc_2B9F8 ; CODE XREF: vfwprintf+25C4j .text:0002B9F8 ; vfwprintf+25F0j ... .text:0002B9F8 MOV R3, 0xFFFFFFFF .text:0002B9FC STR R3, [R4,#0x1C] .text:0002BA00 STR R3, [R4] .text:0002BA04 LDR R2, [R5] .text:0002BA08 LDR R3, [R2] .text:0002BA0C CMP R3, #0x2E .text:0002BA10 BNE loc_2BB70 .text:0002BA14 ADD R3, R2, #4 .text:0002BA18 STR R3, [R5] .text:0002BA1C LDR R2, [R8] .text:0002BA20 LDR R3, [R2] .text:0002BA24 CMP R3, #0x2A .text:0002BA28 BNE loc_2BB0C .text:0002BA2C ADD LR, R2, #4 .text:0002BA30 STR LR, [R5] .text:0002BA34 LDR R2, [R8] .text:0002BA38 LDR R3, [R2] .text:0002BA3C SUB R1, R3, #0x30 .text:0002BA40 CMP R1, #9 .text:0002BA44 BHI loc_2BACC .text:0002BA48 ADD R3, R2, #4 .text:0002BA4C STR R3, [R8] .text:0002BA50 LDR R2, [R2,#4] .text:0002BA54 SUB R2, R2, #0x30 .text:0002BA58 CMP R2, #9 .text:0002BA5C BHI loc_2BA90 .text:0002BA60 .text:0002BA60 loc_2BA60 ; CODE XREF: vfwprintf+26E0j .text:0002BA60 LDR R0, [R5] .text:0002BA64 MOV R3, R0 .text:0002BA68 LDR R12, [R3],#4 .text:0002BA6C STR R3, [R5] .text:0002BA70 ADD R2, R1, R1,LSL#2 .text:0002BA74 MOV R1, R2,LSL#1 .text:0002BA78 SUB R1, R1, #0x30 .text:0002BA7C LDR R3, [R0,#4] .text:0002BA80 ADD R1, R1, R12 .text:0002BA84 SUB R3, R3, #0x30 .text:0002BA88 CMP R3, #9 .text:0002BA8C BLS loc_2BA60 .text:0002BA90 .text:0002BA90 loc_2BA90 ; CODE XREF: vfwprintf+26B0j .text:0002BA90 CMP R1, #0 .text:0002BA94 BEQ loc_2BACC .text:0002BA98 LDR R3, [R5] .text:0002BA9C LDR R2, [R3] .text:0002BAA0 CMP R2, #0x24 .text:0002BAA4 BNE loc_2BACC .text:0002BAA8 SUB R3, R1, #1 .text:0002BAAC STR R3, [R4,#0x1C] .text:0002BAB0 LDR R2, [R6] .text:0002BAB4 CMP R1, R2 .text:0002BAB8 STRCS R1, [R6] .text:0002BABC STRCC R2, [R6] .text:0002BAC0 LDR R3, [R5] .text:0002BAC4 ADD R3, R3, #4 .text:0002BAC8 STR R3, [R8] .text:0002BACC .text:0002BACC loc_2BACC ; CODE XREF: vfwprintf+2698j .text:0002BACC ; vfwprintf+26E8j ... .text:0002BACC LDR R3, [R4,#0x1C] .text:0002BAD0 CMP R3, #0 .text:0002BAD4 BGE loc_2BB70 .text:0002BAD8 SUB R3, R11, #-var_1000 .text:0002BADC LDR R3, [R3,#-0xF8] .text:0002BAE0 STR R3, [R4,#0x1C] .text:0002BAE4 SUB R12, R11, #-var_1000 .text:0002BAE8 ADD R0, R3, #1 .text:0002BAEC STR R0, [R12,#-0xF8] .text:0002BAF0 MOV R1, R12 .text:0002BAF4 LDR R1, [R1,#-0xFC] .text:0002BAF8 ADD R2, R1, #1 .text:0002BAFC MOV R1, R12 .text:0002BB00 STR R2, [R1,#-0xFC] .text:0002BB04 STR LR, [R5] .text:0002BB08 B loc_2BB70 .text:0002BB0C ; --------------------------------------------------------------------------- .text:0002BB0C .text:0002BB0C loc_2BB0C ; CODE XREF: vfwprintf+267Cj .text:0002BB0C SUB R1, R3, #0x30 .text:0002BB10 CMP R1, #9 .text:0002BB14 BHI loc_2BB68 .text:0002BB18 ADD R3, R2, #4 .text:0002BB1C STR R3, [R8] .text:0002BB20 LDR R2, [R2,#4] .text:0002BB24 SUB R2, R2, #0x30 .text:0002BB28 CMP R2, #9 .text:0002BB2C BHI loc_2BB60 .text:0002BB30 .text:0002BB30 loc_2BB30 ; CODE XREF: vfwprintf+27B0j .text:0002BB30 LDR R0, [R5] .text:0002BB34 MOV R3, R0 .text:0002BB38 LDR R12, [R3],#4 .text:0002BB3C STR R3, [R5] .text:0002BB40 ADD R2, R1, R1,LSL#2 .text:0002BB44 MOV R1, R2,LSL#1 .text:0002BB48 SUB R1, R1, #0x30 .text:0002BB4C LDR R3, [R0,#4] .text:0002BB50 ADD R1, R1, R12 .text:0002BB54 SUB R3, R3, #0x30 .text:0002BB58 CMP R3, #9 .text:0002BB5C BLS loc_2BB30 .text:0002BB60 .text:0002BB60 loc_2BB60 ; CODE XREF: vfwprintf+2780j .text:0002BB60 STR R1, [R4] .text:0002BB64 B loc_2BB70 .text:0002BB68 ; --------------------------------------------------------------------------- .text:0002BB68 .text:0002BB68 loc_2BB68 ; CODE XREF: vfwprintf+2768j .text:0002BB68 MOV R3, #0 .text:0002BB6C STR R3, [R4] .text:0002BB70 .text:0002BB70 loc_2BB70 ; CODE XREF: vfwprintf+2664j .text:0002BB70 ; vfwprintf+2728j ... .text:0002BB70 LDRB R3, [R4,#0xC] .text:0002BB74 LDRB R2, [R4,#0xD] .text:0002BB78 AND R3, R3, #0xF8 .text:0002BB7C STRB R3, [R4,#0xC] .text:0002BB80 AND R2, R2, #0xFD .text:0002BB84 STRB R2, [R4,#0xD] .text:0002BB88 LDR R1, [R5] .text:0002BB8C LDR R3, [R1],#4 .text:0002BB90 SUB R3, R3, #0x4C .text:0002BB94 STR R1, [R8] .text:0002BB98 CMP R3, #0x2E ; switch 47 cases .text:0002BB9C LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0002BBA0 B loc_2BCE8 ; jumptable 0002BB9C default case .text:0002BBA0 ; --------------------------------------------------------------------------- .text:0002BBA4 DCD loc_2BCB8 ; jump table for switch statement .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCC8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BC60 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCD8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BC94 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCB8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCC8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCE8 .text:0002BBA4 DCD loc_2BCC8 .text:0002BC60 ; --------------------------------------------------------------------------- .text:0002BC60 .text:0002BC60 loc_2BC60 ; CODE XREF: vfwprintf+27F0j .text:0002BC60 ; DATA XREF: vfwprintf+27F8o .text:0002BC60 LDR R2, [R5] ; jumptable 0002BB9C case 28 .text:0002BC64 LDR R3, [R2] .text:0002BC68 CMP R3, #0x68 .text:0002BC6C LDRNEB R3, [R4,#0xC] .text:0002BC70 ORRNE R3, R3, #2 .text:0002BC74 STRNEB R3, [R4,#0xC] .text:0002BC78 BNE loc_2BCF4 .text:0002BC7C ADD R2, R2, #4 .text:0002BC80 STR R2, [R5] .text:0002BC84 LDRB R3, [R4,#0xD] .text:0002BC88 ORR R3, R3, #2 .text:0002BC8C STRB R3, [R4,#0xD] .text:0002BC90 B loc_2BCF4 .text:0002BC94 ; --------------------------------------------------------------------------- .text:0002BC94 .text:0002BC94 loc_2BC94 ; CODE XREF: vfwprintf+27F0j .text:0002BC94 ; DATA XREF: vfwprintf+27F8o .text:0002BC94 LDRB R3, [R4,#0xC] ; jumptable 0002BB9C case 32 .text:0002BC98 ORR R3, R3, #4 .text:0002BC9C STRB R3, [R4,#0xC] .text:0002BCA0 LDR R2, [R5] .text:0002BCA4 LDR R3, [R2] .text:0002BCA8 CMP R3, #0x6C .text:0002BCAC BNE loc_2BCF4 .text:0002BCB0 ADD R3, R2, #4 .text:0002BCB4 STR R3, [R5] .text:0002BCB8 .text:0002BCB8 loc_2BCB8 ; CODE XREF: vfwprintf+27F0j .text:0002BCB8 ; DATA XREF: vfwprintf+27F8o .text:0002BCB8 LDRB R3, [R4,#0xC] ; jumptable 0002BB9C cases 0,37 .text:0002BCBC ORR R3, R3, #1 .text:0002BCC0 STRB R3, [R4,#0xC] .text:0002BCC4 B loc_2BCF4 .text:0002BCC8 ; --------------------------------------------------------------------------- .text:0002BCC8 .text:0002BCC8 loc_2BCC8 ; CODE XREF: vfwprintf+27F0j .text:0002BCC8 ; DATA XREF: vfwprintf+27F8o .text:0002BCC8 LDRB R3, [R4,#0xC] ; jumptable 0002BB9C cases 14,40,46 .text:0002BCCC AND R3, R3, #0xFA .text:0002BCD0 STRB R3, [R4,#0xC] .text:0002BCD4 B loc_2BCF4 .text:0002BCD8 ; --------------------------------------------------------------------------- .text:0002BCD8 .text:0002BCD8 loc_2BCD8 ; CODE XREF: vfwprintf+27F0j .text:0002BCD8 ; DATA XREF: vfwprintf+27F8o .text:0002BCD8 LDRB R3, [R4,#0xC] ; jumptable 0002BB9C case 30 .text:0002BCDC ORR R3, R3, #5 .text:0002BCE0 STRB R3, [R4,#0xC] .text:0002BCE4 B loc_2BCF4 .text:0002BCE8 ; --------------------------------------------------------------------------- .text:0002BCE8 .text:0002BCE8 loc_2BCE8 ; CODE XREF: vfwprintf+27F0j .text:0002BCE8 ; vfwprintf+27F4j .text:0002BCE8 ; DATA XREF: ... .text:0002BCE8 LDR R3, [R5] ; jumptable 0002BB9C default case .text:0002BCEC SUB R3, R3, #4 .text:0002BCF0 STR R3, [R8] .text:0002BCF4 .text:0002BCF4 loc_2BCF4 ; CODE XREF: vfwprintf+28CCj .text:0002BCF4 ; vfwprintf+28E4j ... .text:0002BCF4 LDR R3, [R5] .text:0002BCF8 LDR R2, [R3],#4 .text:0002BCFC STR R2, [R4,#8] .text:0002BD00 STR R3, [R8] .text:0002BD04 LDR R3, =__printf_function_table .text:0002BD08 LDR R2, [R3] .text:0002BD0C CMP R2, #0 .text:0002BD10 BEQ loc_2BD4C .text:0002BD14 LDR R2, [R4,#8] .text:0002BD18 CMP R2, #0xFF .text:0002BD1C BGT loc_2BD4C .text:0002BD20 LDR R3, =__printf_arginfo_table .text:0002BD24 LDR R3, [R3,R2,LSL#2] .text:0002BD28 CMP R3, #0 .text:0002BD2C BEQ loc_2BD4C .text:0002BD30 MOV R0, R4 .text:0002BD34 MOV R1, #1 .text:0002BD38 ADD R2, R4, #0x28 .text:0002BD3C MOV LR, PC .text:0002BD40 MOV PC, R3 .text:0002BD44 STR R0, [R4,#0x2C] .text:0002BD48 B loc_2BEE4 .text:0002BD4C ; --------------------------------------------------------------------------- .text:0002BD4C .text:0002BD4C loc_2BD4C ; CODE XREF: vfwprintf+2964j .text:0002BD4C ; vfwprintf+2970j ... .text:0002BD4C MOV R2, #1 .text:0002BD50 STR R2, [R4,#0x2C] .text:0002BD54 LDR R3, [R4,#8] .text:0002BD58 SUB R3, R3, #0x41 .text:0002BD5C CMP R3, #0x37 ; switch 56 cases .text:0002BD60 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0002BD64 B loc_2BEDC ; jumptable 0002BD60 default case .text:0002BD64 ; --------------------------------------------------------------------------- .text:0002BD68 DCD loc_2BE90, loc_2BEDC, loc_2BEB4, loc_2BEDC, loc_2BE90 ; jump table for switch statement .text:0002BD68 DCD loc_2BE90, loc_2BE90, loc_2BEDC, loc_2BEDC, loc_2BEDC .text:0002BD68 DCD loc_2BEDC, loc_2BEDC, loc_2BEDC, loc_2BEDC, loc_2BEDC .text:0002BD68 DCD loc_2BEDC, loc_2BEDC, loc_2BEDC, loc_2BEC4, loc_2BEDC .text:0002BD68 DCD loc_2BEDC, loc_2BEDC, loc_2BEDC, loc_2BE48, loc_2BEDC .text:0002BD68 DCD loc_2BEDC, loc_2BEDC, loc_2BEDC, loc_2BEDC, loc_2BEDC .text:0002BD68 DCD loc_2BEDC, loc_2BEDC, loc_2BE90, loc_2BEDC, loc_2BEAC .text:0002BD68 DCD loc_2BE48, loc_2BE90, loc_2BE90, loc_2BE90, loc_2BEDC .text:0002BD68 DCD loc_2BE48, loc_2BEDC, loc_2BEDC, loc_2BEDC, loc_2BEDC .text:0002BD68 DCD loc_2BED4, loc_2BE48, loc_2BECC, loc_2BEDC, loc_2BEDC .text:0002BD68 DCD loc_2BEBC, loc_2BEDC, loc_2BE48, loc_2BEDC, loc_2BEDC .text:0002BD68 DCD loc_2BE48 .text:0002BE48 ; --------------------------------------------------------------------------- .text:0002BE48 .text:0002BE48 loc_2BE48 ; CODE XREF: vfwprintf+29B4j .text:0002BE48 ; DATA XREF: vfwprintf+29BCo .text:0002BE48 LDRB R3, [R4,#0xC] ; jumptable 0002BD60 cases 23,35,40,46,52,55 .text:0002BE4C TST R3, #1 .text:0002BE50 BEQ loc_2BE60 .text:0002BE54 MOV R3, #0x100 .text:0002BE58 .text:0002BE58 loc_2BE58 ; CODE XREF: vfwprintf+2AC0j .text:0002BE58 ; vfwprintf+2ACCj ... .text:0002BE58 STR R3, [R4,#0x28] .text:0002BE5C B loc_2BEE4 .text:0002BE60 ; --------------------------------------------------------------------------- .text:0002BE60 .text:0002BE60 loc_2BE60 ; CODE XREF: vfwprintf+2AA4j .text:0002BE60 AND R3, R3, #0xFF .text:0002BE64 TST R3, #4 .text:0002BE68 MOVNE R3, #0x200 .text:0002BE6C BNE loc_2BE58 .text:0002BE70 TST R3, #2 .text:0002BE74 MOV R3, #0x400 .text:0002BE78 BNE loc_2BE58 .text:0002BE7C LDRB R3, [R4,#0xD] .text:0002BE80 MOV R3, R3,LSR#1 .text:0002BE84 ANDS R3, R3, #1 .text:0002BE88 BNE loc_2BEAC ; jumptable 0002BD60 case 34 .text:0002BE8C B loc_2BE58 .text:0002BE90 ; --------------------------------------------------------------------------- .text:0002BE90 .text:0002BE90 loc_2BE90 ; CODE XREF: vfwprintf+29B4j .text:0002BE90 ; DATA XREF: vfwprintf+29BCo .text:0002BE90 LDRB R3, [R4,#0xC] ; jumptable 0002BD60 cases 0,4-6,32,36-38 .text:0002BE94 TST R3, #1 .text:0002BE98 MOVNE R3, 0x107 .text:0002BEA0 BNE loc_2BE58 .text:0002BEA4 MOV R3, #7 .text:0002BEA8 B loc_2BE58 .text:0002BEAC ; --------------------------------------------------------------------------- .text:0002BEAC .text:0002BEAC loc_2BEAC ; CODE XREF: vfwprintf+29B4j .text:0002BEAC ; vfwprintf+2ADCj .text:0002BEAC ; DATA XREF: ... .text:0002BEAC MOV R3, #1 ; jumptable 0002BD60 case 34 .text:0002BEB0 B loc_2BE58 .text:0002BEB4 ; --------------------------------------------------------------------------- .text:0002BEB4 .text:0002BEB4 loc_2BEB4 ; CODE XREF: vfwprintf+29B4j .text:0002BEB4 ; DATA XREF: vfwprintf+29BCo .text:0002BEB4 MOV R3, #2 ; jumptable 0002BD60 case 2 .text:0002BEB8 B loc_2BE58 .text:0002BEBC ; --------------------------------------------------------------------------- .text:0002BEBC .text:0002BEBC loc_2BEBC ; CODE XREF: vfwprintf+29B4j .text:0002BEBC ; DATA XREF: vfwprintf+29BCo .text:0002BEBC MOV R3, #3 ; jumptable 0002BD60 case 50 .text:0002BEC0 B loc_2BE58 .text:0002BEC4 ; --------------------------------------------------------------------------- .text:0002BEC4 .text:0002BEC4 loc_2BEC4 ; CODE XREF: vfwprintf+29B4j .text:0002BEC4 ; DATA XREF: vfwprintf+29BCo .text:0002BEC4 MOV R3, #4 ; jumptable 0002BD60 case 18 .text:0002BEC8 B loc_2BE58 .text:0002BECC ; --------------------------------------------------------------------------- .text:0002BECC .text:0002BECC loc_2BECC ; CODE XREF: vfwprintf+29B4j .text:0002BECC ; DATA XREF: vfwprintf+29BCo .text:0002BECC MOV R3, #5 ; jumptable 0002BD60 case 47 .text:0002BED0 B loc_2BE58 .text:0002BED4 ; --------------------------------------------------------------------------- .text:0002BED4 .text:0002BED4 loc_2BED4 ; CODE XREF: vfwprintf+29B4j .text:0002BED4 ; DATA XREF: vfwprintf+29BCo .text:0002BED4 MOV R3, #0x800 ; jumptable 0002BD60 case 45 .text:0002BED8 B loc_2BE58 .text:0002BEDC ; --------------------------------------------------------------------------- .text:0002BEDC .text:0002BEDC loc_2BEDC ; CODE XREF: vfwprintf+29B4j .text:0002BEDC ; vfwprintf+29B8j .text:0002BEDC ; DATA XREF: ... .text:0002BEDC MOV R3, #0 ; jumptable 0002BD60 default case .text:0002BEE0 STR R3, [R4,#0x2C] .text:0002BEE4 .text:0002BEE4 loc_2BEE4 ; CODE XREF: vfwprintf+299Cj .text:0002BEE4 ; vfwprintf+2AB0j .text:0002BEE4 LDR R3, [R4,#0x24] .text:0002BEE8 CMN R3, #1 .text:0002BEEC BNE loc_2BF1C .text:0002BEF0 LDR R3, [R4,#0x2C] .text:0002BEF4 CMP R3, #0 .text:0002BEF8 BEQ loc_2BF1C .text:0002BEFC SUB R12, R11, #-var_1000 .text:0002BF00 LDR R12, [R12,#-0xFC] .text:0002BF04 ADD R3, R12, R3 .text:0002BF08 SUB R12, R11, #-var_1000 .text:0002BF0C STR R3, [R12,#-0xFC] .text:0002BF10 MOV LR, R12 .text:0002BF14 LDR LR, [LR,#-0xF8] .text:0002BF18 STR LR, [R4,#0x24] .text:0002BF1C .text:0002BF1C loc_2BF1C ; CODE XREF: vfwprintf+2B40j .text:0002BF1C ; vfwprintf+2B4Cj .text:0002BF1C LDR R3, [R4,#8] .text:0002BF20 CMP R3, #0 .text:0002BF24 BNE loc_2BF3C .text:0002BF28 LDR R3, [R5] .text:0002BF2C SUB R3, R3, #4 .text:0002BF30 STR R3, [R4,#0x18] .text:0002BF34 STR R3, [R4,#0x14] .text:0002BF38 B loc_2BF54 .text:0002BF3C ; --------------------------------------------------------------------------- .text:0002BF3C .text:0002BF3C loc_2BF3C ; CODE XREF: vfwprintf+2B78j .text:0002BF3C LDR R3, [R5] .text:0002BF40 STR R3, [R4,#0x14] .text:0002BF44 LDR R0, [R8] .text:0002BF48 MOV R1, #0x25 .text:0002BF4C BL wcschrnul .text:0002BF50 STR R0, [R4,#0x18] .text:0002BF54 .text:0002BF54 loc_2BF54 ; CODE XREF: vfwprintf+2B8Cj .text:0002BF54 SUB R0, R11, #-var_1000 .text:0002BF58 LDR R1, [R0,#-0x150] .text:0002BF5C LDR R0, [R0,#-0xE4] .text:0002BF60 ADD R3, R1, R0 .text:0002BF64 SUB R1, R11, #-var_1000 .text:0002BF68 LDR R1, [R1,#-0xEC] .text:0002BF6C ADD R3, R1, R3,LSL#4 .text:0002BF70 LDR R2, [R3,#0x18] .text:0002BF74 SUB R3, R11, #-var_1000 .text:0002BF78 STR R2, [R3,#-0x30] .text:0002BF7C SUB R4, R11, #-var_1000 .text:0002BF80 SUB R3, R11, #-var_1000 .text:0002BF84 LDR R5, [R4,#-0xF0] .text:0002BF88 SUB R3, R3, #0x28 .text:0002BF8C LDR R4, [R4,#-0xFC] .text:0002BF90 SUB R3, R3, #8 .text:0002BF94 LDR R2, [R3] .text:0002BF98 ADD R5, R5, R4 .text:0002BF9C SUB R4, R11, #-var_1000 .text:0002BFA0 STR R5, [R4,#-0xF0] .text:0002BFA4 LDR R3, [R2] .text:0002BFA8 MOV R5, R4 .text:0002BFAC LDR R12, [R5,#-0x14C] .text:0002BFB0 CMP R3, #0 .text:0002BFB4 STR R12, [R5,#-0xE4] .text:0002BFB8 BNE loc_2B574 .text:0002BFBC .text:0002BFBC loc_2BFBC ; CODE XREF: vfwprintf+21B8j .text:0002BFBC MOV R1, #0 .text:0002BFC0 LDR R3, [R6] .text:0002BFC4 SUB LR, R11, #-var_1000 .text:0002BFC8 LDR R6, [LR,#-0xF0] .text:0002BFCC MOV R5, R1 .text:0002BFD0 CMP R3, R6 .text:0002BFD4 MOVCS R6, R3 .text:0002BFD8 MOV R2, R6,LSL#2 .text:0002BFDC RSB SP, R2, SP .text:0002BFE0 ADD R7, SP, #0x1754+var_1750 .text:0002BFE4 MOV R0, R7 .text:0002BFE8 BL memset .text:0002BFEC SUB SP, SP, R6,LSL#3 .text:0002BFF0 SUB R0, R11, #-var_1000 .text:0002BFF4 ADD R2, SP, #0x1754+var_1750 .text:0002BFF8 LDR R0, [R0,#-0xE4] .text:0002BFFC SUB R1, R11, #-var_1000 .text:0002C000 STR R2, [R1,#-0xF4] .text:0002C004 CMP R5, R0 .text:0002C008 BCS loc_2C090 .text:0002C00C MOV R8, R5 .text:0002C010 MOV R3, R1 .text:0002C014 LDR R4, [R3,#-0xEC] .text:0002C018 .text:0002C018 loc_2C018 ; CODE XREF: vfwprintf+2CE0j .text:0002C018 LDR R3, [R4,#0x20] .text:0002C01C CMN R3, #1 .text:0002C020 STRNE R8, [R7,R3,LSL#2] .text:0002C024 LDR R3, [R4,#0x1C] .text:0002C028 CMN R3, #1 .text:0002C02C STRNE R8, [R7,R3,LSL#2] .text:0002C030 LDR R1, [R4,#0x2C] .text:0002C034 CMP R1, #0 .text:0002C038 BEQ loc_2C078 .text:0002C03C CMP R1, #1 .text:0002C040 BNE loc_2C05C .text:0002C044 ADD R2, R4, #0x24 .text:0002C048 LDMIA R2, {R2,R3} .text:0002C04C STR R3, [R7,R2,LSL#2] .text:0002C050 B loc_2C078 .text:0002C050 ; --------------------------------------------------------------------------- .text:0002C054 off_2C054 DCD __printf_function_table ; DATA XREF: vfwprintf+2958r .text:0002C058 off_2C058 DCD __printf_arginfo_table ; DATA XREF: vfwprintf+2974r .text:0002C05C ; --------------------------------------------------------------------------- .text:0002C05C .text:0002C05C loc_2C05C ; CODE XREF: vfwprintf+2C94j .text:0002C05C LDR R2, [R4,#0x24] .text:0002C060 LDR R3, [R4,#8] .text:0002C064 MOV R0, R4 .text:0002C068 LDR R12, =__printf_arginfo_table .text:0002C06C ADD R2, R7, R2,LSL#2 .text:0002C070 MOV LR, PC .text:0002C074 LDR PC, [R12,R3,LSL#2] .text:0002C078 .text:0002C078 loc_2C078 ; CODE XREF: vfwprintf+2C8Cj .text:0002C078 ; vfwprintf+2CA4j .text:0002C078 ADD R4, R4, #0x30 .text:0002C07C SUB LR, R11, #-var_1000 .text:0002C080 LDR LR, [LR,#-0xE4] .text:0002C084 ADD R5, R5, #1 .text:0002C088 CMP R5, LR .text:0002C08C BCC loc_2C018 .text:0002C090 .text:0002C090 loc_2C090 ; CODE XREF: vfwprintf+2C5Cj .text:0002C090 MOV R5, #0 .text:0002C094 CMP R5, R6 .text:0002C098 BCS loc_2C260 .text:0002C09C MOV R0, 0x107 .text:0002C0A4 SUB R1, R11, #-var_1000 .text:0002C0A8 LDR R2, [R1,#-0xF4] .text:0002C0AC MOV R1, R5 .text:0002C0B0 .text:0002C0B0 loc_2C0B0 ; CODE XREF: vfwprintf+2EB0j .text:0002C0B0 LDR R3, [R7,R5,LSL#2] .text:0002C0B4 CMP R3, #5 .text:0002C0B8 BEQ loc_2C214 .text:0002C0BC BGT loc_2C0F4 .text:0002C0C0 CMP R3, #2 .text:0002C0C4 BEQ loc_2C214 .text:0002C0C8 BGT loc_2C0E0 .text:0002C0CC CMP R3, #0 .text:0002C0D0 BEQ loc_2C214 .text:0002C0D4 CMP R3, #1 .text:0002C0D8 BEQ loc_2C138 .text:0002C0DC B loc_2C20C .text:0002C0E0 ; --------------------------------------------------------------------------- .text:0002C0E0 .text:0002C0E0 loc_2C0E0 ; CODE XREF: vfwprintf+2D1Cj .text:0002C0E0 CMP R3, #3 .text:0002C0E4 BEQ loc_2C214 .text:0002C0E8 CMP R3, #4 .text:0002C0EC BEQ loc_2C214 .text:0002C0F0 B loc_2C20C .text:0002C0F4 ; --------------------------------------------------------------------------- .text:0002C0F4 .text:0002C0F4 loc_2C0F4 ; CODE XREF: vfwprintf+2D10j .text:0002C0F4 CMP R3, #0x100 .text:0002C0F8 BEQ loc_2C190 .text:0002C0FC BGT loc_2C114 .text:0002C100 CMP R3, #6 .text:0002C104 BEQ loc_2C1B0 .text:0002C108 CMP R3, #7 .text:0002C10C BEQ loc_2C1D4 .text:0002C110 B loc_2C20C .text:0002C114 ; --------------------------------------------------------------------------- .text:0002C114 .text:0002C114 loc_2C114 ; CODE XREF: vfwprintf+2D50j .text:0002C114 CMP R3, #0x200 .text:0002C118 BEQ loc_2C214 .text:0002C11C BGT loc_2C12C .text:0002C120 CMP R3, R0 .text:0002C124 BEQ loc_2C1F0 .text:0002C128 B loc_2C20C .text:0002C12C ; --------------------------------------------------------------------------- .text:0002C12C .text:0002C12C loc_2C12C ; CODE XREF: vfwprintf+2D70j .text:0002C12C CMP R3, #0x400 .text:0002C130 BEQ loc_2C160 .text:0002C134 B loc_2C20C .text:0002C138 ; --------------------------------------------------------------------------- .text:0002C138 .text:0002C138 loc_2C138 ; CODE XREF: vfwprintf+2D2Cj .text:0002C138 SUB R3, R11, #-var_1000 .text:0002C13C LDR R3, [R3,#-0x8C] .text:0002C140 ADD R4, R3, #4 .text:0002C144 SUB R3, R11, #-var_1000 .text:0002C148 STR R4, [R3,#-0x8C] .text:0002C14C LDRB R3, [R4,#-4] .text:0002C150 SUB R12, R11, #-var_1000 .text:0002C154 LDR R12, [R12,#-0xF4] .text:0002C158 STRB R3, [R1,R12] .text:0002C15C B loc_2C24C .text:0002C160 ; --------------------------------------------------------------------------- .text:0002C160 .text:0002C160 loc_2C160 ; CODE XREF: vfwprintf+2D84j .text:0002C160 SUB LR, R11, #-var_1000 .text:0002C164 LDR R4, [LR,#-0x8C] .text:0002C168 ADD R4, R4, #4 .text:0002C16C STR R4, [LR,#-0x8C] .text:0002C170 SUB R4, R4, #4 .text:0002C174 LDR R3, [R4],#4 .text:0002C178 MOV R12, LR .text:0002C17C LDR R12, [R12,#-0xF4] .text:0002C180 STRB R3, [R1,R12] .text:0002C184 MOV R3, R3,ASR#8 .text:0002C188 STRB R3, [R2,#1] .text:0002C18C B loc_2C24C .text:0002C190 ; --------------------------------------------------------------------------- .text:0002C190 .text:0002C190 loc_2C190 ; CODE XREF: vfwprintf+2D4Cj .text:0002C190 SUB R4, R11, #-var_1000 .text:0002C194 LDR R3, [R4,#-0x8C] .text:0002C198 ADD R3, R3, #8 .text:0002C19C STR R3, [R4,#-0x8C] .text:0002C1A0 SUB R3, R3, #8 .text:0002C1A4 LDMIA R3, {R3,R4} .text:0002C1A8 STMIA R2, {R3,R4} .text:0002C1AC B loc_2C24C .text:0002C1B0 ; --------------------------------------------------------------------------- .text:0002C1B0 .text:0002C1B0 loc_2C1B0 ; CODE XREF: vfwprintf+2D58j .text:0002C1B0 SUB R4, R11, #-var_1000 .text:0002C1B4 LDR R12, [R4,#-0x8C] .text:0002C1B8 ADD R12, R12, #8 .text:0002C1BC STR R12, [R4,#-0x8C] .text:0002C1C0 SUB R12, R12, #8 .text:0002C1C4 LDC p1, c8, [R12],#8 .text:0002C1C8 CDP p1, 0, c8,c0,c0, 0 .text:0002C1CC STC p1, c0, [R2] .text:0002C1D0 B loc_2C24C .text:0002C1D4 ; --------------------------------------------------------------------------- .text:0002C1D4 .text:0002C1D4 loc_2C1D4 ; CODE XREF: vfwprintf+2D60j .text:0002C1D4 SUB LR, R11, #-var_1000 .text:0002C1D8 LDR R12, [LR,#-0x8C] .text:0002C1DC ADD R12, R12, #8 .text:0002C1E0 STR R12, [LR,#-0x8C] .text:0002C1E4 SUB R12, R12, #8 .text:0002C1E8 LDMIA R12!, {R3,R4} .text:0002C1EC B loc_2C248 .text:0002C1F0 ; --------------------------------------------------------------------------- .text:0002C1F0 .text:0002C1F0 loc_2C1F0 ; CODE XREF: vfwprintf+2D78j .text:0002C1F0 SUB LR, R11, #-var_1000 .text:0002C1F4 LDR R12, [LR,#-0x8C] .text:0002C1F8 ADD R12, R12, #8 .text:0002C1FC STR R12, [LR,#-0x8C] .text:0002C200 SUB R12, R12, #8 .text:0002C204 LDMIA R12!, {R3,R4} .text:0002C208 B loc_2C248 .text:0002C20C ; --------------------------------------------------------------------------- .text:0002C20C .text:0002C20C loc_2C20C ; CODE XREF: vfwprintf+2D30j .text:0002C20C ; vfwprintf+2D44j ... .text:0002C20C TST R3, #0x800 .text:0002C210 BEQ loc_2C240 .text:0002C214 .text:0002C214 loc_2C214 ; CODE XREF: vfwprintf+2D0Cj .text:0002C214 ; vfwprintf+2D18j ... .text:0002C214 SUB LR, R11, #-var_1000 .text:0002C218 LDR R4, [LR,#-0x8C] .text:0002C21C ADD R4, R4, #4 .text:0002C220 STR R4, [LR,#-0x8C] .text:0002C224 SUB R4, R4, #4 .text:0002C228 LDR R3, [R4],#4 .text:0002C22C MOV R12, LR .text:0002C230 LDR R12, [R12,#-0xF4] .text:0002C234 STR R3, [R1,R12] .text:0002C238 B loc_2C24C .text:0002C238 ; --------------------------------------------------------------------------- .text:0002C23C off_2C23C DCD __printf_arginfo_table ; DATA XREF: vfwprintf+2CBCr .text:0002C240 ; --------------------------------------------------------------------------- .text:0002C240 .text:0002C240 loc_2C240 ; CODE XREF: vfwprintf+2E64j .text:0002C240 ADR R3, dword_2C5E8 .text:0002C244 LDMIA R3, {R3,R4} .text:0002C248 .text:0002C248 loc_2C248 ; CODE XREF: vfwprintf+2E40j .text:0002C248 ; vfwprintf+2E5Cj .text:0002C248 STMIA R2, {R3,R4} .text:0002C24C .text:0002C24C loc_2C24C ; CODE XREF: vfwprintf+2DB0j .text:0002C24C ; vfwprintf+2DE0j ... .text:0002C24C ADD R2, R2, #8 .text:0002C250 ADD R1, R1, #8 .text:0002C254 ADD R5, R5, #1 .text:0002C258 CMP R5, R6 .text:0002C25C BCC loc_2C0B0 .text:0002C260 .text:0002C260 loc_2C260 ; CODE XREF: vfwprintf+2CECj .text:0002C260 SUB LR, R11, #-var_1000 .text:0002C264 LDR R0, [LR,#-0x90] .text:0002C268 LDR LR, [LR,#-0xE4] .text:0002C26C CMP R0, LR .text:0002C270 BCS loc_2DE68 .text:0002C274 .text:0002C274 loc_2C274 ; CODE XREF: vfwprintf+4AB8j .text:0002C274 SUB R0, R11, #-var_1000 .text:0002C278 LDR R0, [R0,#-0x90] .text:0002C27C SUB R4, R11, #-var_1000 .text:0002C280 LDR R4, [R4,#-0xEC] .text:0002C284 MOV R2, R0,LSL#1 .text:0002C288 ADD R3, R2, R0 .text:0002C28C MOV R3, R3,LSL#4 .text:0002C290 ADD LR, R3, R4 .text:0002C294 LDR R12, [LR,#4] .text:0002C298 SUB R5, R11, #-var_1000 .text:0002C29C STR R12, [R5,#-0x134] .text:0002C2A0 LDR R3, [R3,R4] .text:0002C2A4 MOV R0, R5 .text:0002C2A8 STR R3, [R0,#-0x138] .text:0002C2AC LDRB R3, [LR,#0x10] .text:0002C2B0 MOV R1, R0 .text:0002C2B4 STR R3, [R1,#-0x140] .text:0002C2B8 LDRB R4, [LR,#0xC] .text:0002C2BC STR R2, [R5,#-0x148] .text:0002C2C0 LDR R0, [LR,#8] .text:0002C2C4 MOV R12, R1 .text:0002C2C8 STR R0, [R12,#-0x144] .text:0002C2CC AND R0, R4, #0xFF .text:0002C2D0 MOV R3, R0,LSR#3 .text:0002C2D4 AND R3, R3, #1 .text:0002C2D8 MOV R2, R0,LSR#4 .text:0002C2DC STR R3, [R1,#-0x110] .text:0002C2E0 AND R2, R2, #1 .text:0002C2E4 MOV R3, R1 .text:0002C2E8 STR R2, [R3,#-0x114] .text:0002C2EC MOV R3, R0,LSR#5 .text:0002C2F0 AND R3, R3, #1 .text:0002C2F4 STR R3, [R5,#-0x118] .text:0002C2F8 MOV R2, R0,LSR#6 .text:0002C2FC AND R2, R2, #1 .text:0002C300 STR R2, [R12,#-0x11C] .text:0002C304 LDRB R12, [LR,#0xC] .text:0002C308 MOV R0, R0,LSR#7 .text:0002C30C STR R0, [R1,#-0x120] .text:0002C310 MOV R2, R5 .text:0002C314 LDR R0, [LR,#0x20] .text:0002C318 AND R1, R12, #0xFF .text:0002C31C MOV R3, R1,LSR#2 .text:0002C320 AND R3, R3, #1 .text:0002C324 STR R3, [R2,#-0x130] .text:0002C328 AND R12, R12, #1 .text:0002C32C MOV R3, R2 .text:0002C330 STR R12, [R3,#-0x124] .text:0002C334 CMN R0, #1 .text:0002C338 MOV R1, R1,LSR#1 .text:0002C33C AND R1, R1, #1 .text:0002C340 LDRB R2, [LR,#0xD] .text:0002C344 MOV R12, R5 .text:0002C348 STR R1, [R5,#-0x128] .text:0002C34C MOV R1, R5 .text:0002C350 MOV R3, R2,LSR#1 .text:0002C354 AND R3, R3, #1 .text:0002C358 STR R3, [R12,#-0x12C] .text:0002C35C MOV R2, R2,LSR#3 .text:0002C360 AND R2, R2, #1 .text:0002C364 STR R2, [R1,#-0x13C] .text:0002C368 BEQ loc_2C3AC .text:0002C36C MOV R2, R1 .text:0002C370 LDR R2, [R2,#-0xF4] .text:0002C374 LDR R3, [R2,R0,LSL#3] .text:0002C378 CMP R3, #0 .text:0002C37C STR R3, [LR,#4] .text:0002C380 BGE loc_2C3A0 .text:0002C384 RSB R3, R3, #0 .text:0002C388 STR R3, [LR,#4] .text:0002C38C MOV R5, #1 .text:0002C390 MOV R3, R1 .text:0002C394 STR R5, [R3,#-0x118] .text:0002C398 ORR R3, R4, #0x20 .text:0002C39C STRB R3, [LR,#0xC] .text:0002C3A0 .text:0002C3A0 loc_2C3A0 ; CODE XREF: vfwprintf+2FD4j .text:0002C3A0 LDR LR, [LR,#4] .text:0002C3A4 SUB R12, R11, #-var_1000 .text:0002C3A8 STR LR, [R12,#-0x134] .text:0002C3AC .text:0002C3AC loc_2C3AC ; CODE XREF: vfwprintf+2FBCj .text:0002C3AC SUB LR, R11, #-var_1000 .text:0002C3B0 LDR R0, [LR,#-0x148] .text:0002C3B4 LDR LR, [LR,#-0x90] .text:0002C3B8 ADD R3, R0, LR .text:0002C3BC SUB R0, R11, #-var_1000 .text:0002C3C0 LDR R0, [R0,#-0xEC] .text:0002C3C4 MOV R1, R3,LSL#4 .text:0002C3C8 ADD R2, R1, R0 .text:0002C3CC LDR R3, [R2,#0x1C] .text:0002C3D0 CMN R3, #1 .text:0002C3D4 BEQ loc_2C408 .text:0002C3D8 SUB R2, R11, #-var_1000 .text:0002C3DC LDR R2, [R2,#-0xF4] .text:0002C3E0 LDR R3, [R2,R3,LSL#3] .text:0002C3E4 CMP R3, #0 .text:0002C3E8 STR R3, [R1,R0] .text:0002C3EC MOVLT R3, 0xFFFFFFFF .text:0002C3F0 STRLT R3, [R1,R0] .text:0002C3F4 SUB R12, R11, #-var_1000 .text:0002C3F8 LDR R12, [R12,#-0xEC] .text:0002C3FC LDR R1, [R1,R12] .text:0002C400 SUB R12, R11, #-var_1000 .text:0002C404 STR R1, [R12,#-0x138] .text:0002C408 .text:0002C408 loc_2C408 ; CODE XREF: vfwprintf+3028j .text:0002C408 SUB LR, R11, #-var_1000 .text:0002C40C LDR R2, [LR,#-0x134] .text:0002C410 LDR LR, [LR,#-0x138] .text:0002C414 CMP R2, LR .text:0002C418 MOVLT R2, LR .text:0002C41C ADD R3, R2, #0x20 .text:0002C420 CMP R3, #0x3E8 .text:0002C424 BLE loc_2C43C .text:0002C428 SUB SP, SP, R3,LSL#2 .text:0002C42C ADD R3, SP, R2,LSL#2 .text:0002C430 ADD R3, R3, #0x84 .text:0002C434 SUB R0, R11, #-var_1000 .text:0002C438 STR R3, [R0,#-0x88] .text:0002C43C .text:0002C43C loc_2C43C ; CODE XREF: vfwprintf+3078j .text:0002C43C SUB R1, R11, #-var_1000 .text:0002C440 LDR R1, [R1,#-0x144] .text:0002C444 SUB R2, R1, #0x20 .text:0002C448 CMP R2, #0x5A .text:0002C44C BHI loc_2C464 .text:0002C450 LDR R3, =jump_table.177 .text:0002C454 LDR R1, =step4_jumps.184 .text:0002C458 LDR R2, [R3,R2,LSL#2] .text:0002C45C LDR R3, [R1,R2,LSL#2] .text:0002C460 B loc_2C468 .text:0002C464 ; --------------------------------------------------------------------------- .text:0002C464 .text:0002C464 loc_2C464 ; CODE XREF: vfwprintf+30A0j .text:0002C464 LDR R3, =loc_2DCC4 .text:0002C468 .text:0002C468 loc_2C468 ; CODE XREF: vfwprintf+30B4j .text:0002C468 MOV PC, R3 .text:0002C46C ; --------------------------------------------------------------------------- .text:0002C46C LDR R1, [R9,#0x58] .text:0002C470 ADD R2, R1, #0x10 .text:0002C474 LDMIA R2, {R2,R3} .text:0002C478 CMP R2, R3 .text:0002C47C BCC loc_2C498 .text:0002C480 MOV R0, R9 .text:0002C484 MOV R1, #0x25 .text:0002C488 BL __woverflow .text:0002C48C CMN R0, #1 .text:0002C490 BEQ loc_2B2B8 .text:0002C494 B loc_2C4A4 .text:0002C498 ; --------------------------------------------------------------------------- .text:0002C498 .text:0002C498 loc_2C498 ; CODE XREF: vfwprintf+30D0j .text:0002C498 MOV R3, #0x25 .text:0002C49C STR R3, [R2],#4 .text:0002C4A0 STR R2, [R1,#0x10] .text:0002C4A4 .text:0002C4A4 loc_2C4A4 ; CODE XREF: vfwprintf+30E8j .text:0002C4A4 ADD R10, R10, #1 .text:0002C4A8 SUB R2, R11, #-var_1000 .text:0002C4AC LDR R2, [R2,#-0x90] .text:0002C4B0 MOV R3, R2,LSL#1 .text:0002C4B4 SUB R2, R11, #-var_1000 .text:0002C4B8 STR R3, [R2,#-0x148] .text:0002C4BC B loc_2DDE8 .text:0002C4C0 ; --------------------------------------------------------------------------- .text:0002C4C0 MOV R4, #0xA .text:0002C4C4 SUB R3, R11, #-var_1000 .text:0002C4C8 STR R4, [R3,#-0x10C] .text:0002C4CC MOV R5, R3 .text:0002C4D0 LDR R5, [R5,#-0x124] .text:0002C4D4 CMP R5, #0 .text:0002C4D8 BEQ loc_2C5A0 .text:0002C4DC MOV R12, R3 .text:0002C4E0 SUB R0, R11, #-var_1000 .text:0002C4E4 LDR R12, [R12,#-0x90] .text:0002C4E8 SUB R1, R11, #-var_1000 .text:0002C4EC LDR R0, [R0,#-0xEC] .text:0002C4F0 MOV R2, R12,LSL#1 .text:0002C4F4 ADD R3, R2, R12 .text:0002C4F8 ADD R3, R0, R3,LSL#4 .text:0002C4FC CMP R3, #0 .text:0002C500 STR R2, [R1,#-0x148] .text:0002C504 BNE loc_2C524 .text:0002C508 MOV R2, R1 .text:0002C50C LDR R3, [R2,#-0x78] .text:0002C510 ADD R3, R3, #8 .text:0002C514 STR R3, [R2,#-0x78] .text:0002C518 SUB R3, R3, #8 .text:0002C51C LDMIA R3!, {R7,R8} .text:0002C520 B loc_2C538 .text:0002C524 ; --------------------------------------------------------------------------- .text:0002C524 .text:0002C524 loc_2C524 ; CODE XREF: vfwprintf+3158j .text:0002C524 LDR R3, [R3,#0x24] .text:0002C528 SUB R4, R11, #-var_1000 .text:0002C52C LDR R4, [R4,#-0xF4] .text:0002C530 ADD R3, R4, R3,LSL#3 .text:0002C534 LDMIA R3, {R7,R8} .text:0002C538 .text:0002C538 loc_2C538 ; CODE XREF: vfwprintf+3174j .text:0002C538 MOV R12, #0 .text:0002C53C SUB R5, R11, #-var_1000 .text:0002C540 CMP R8, R12 .text:0002C544 STR R12, [R5,#-0x100] .text:0002C548 MOVLT R0, #1 .text:0002C54C SUBLT LR, R11, #-var_1000 .text:0002C550 STRLT R0, [LR,#-0x100] .text:0002C554 RSBS R3, R7, #0 .text:0002C558 RSC R4, R8, #0 .text:0002C55C SUB R2, R11, #-var_1000 .text:0002C560 LDR R2, [R2,#-0x100] .text:0002C564 SUB R0, R11, #-var_1100 .text:0002C568 EOR R1, R2, #1 .text:0002C56C MOV R2, #0 .text:0002C570 RSBS R5, R1, #0 .text:0002C574 RSC R6, R2, #0 .text:0002C578 MOV R2, R6 .text:0002C57C MOV R1, R5 .text:0002C580 AND R1, R1, R7 .text:0002C584 AND R2, R2, R8 .text:0002C588 BIC R3, R3, R5 .text:0002C58C BIC R4, R4, R6 .text:0002C590 ORR R1, R1, R3 .text:0002C594 ORR R2, R2, R4 .text:0002C598 STMDB R0, {R1,R2} .text:0002C59C B loc_2C6F4 .text:0002C5A0 ; --------------------------------------------------------------------------- .text:0002C5A0 .text:0002C5A0 loc_2C5A0 ; CODE XREF: vfwprintf+312Cj .text:0002C5A0 SUB R1, R11, #-var_1000 .text:0002C5A4 SUB R5, R11, #-var_1000 .text:0002C5A8 LDR R1, [R1,#-0x90] .text:0002C5AC SUB R12, R11, #-var_1000 .text:0002C5B0 LDR R5, [R5,#-0xEC] .text:0002C5B4 MOV R2, R1,LSL#1 .text:0002C5B8 ADD R3, R2, R1 .text:0002C5BC ADD R3, R5, R3,LSL#4 .text:0002C5C0 CMP R3, #0 .text:0002C5C4 STR R2, [R12,#-0x148] .text:0002C5C8 BNE loc_2C5FC .text:0002C5CC MOV LR, R12 .text:0002C5D0 LDR R0, [LR,#-0x78] .text:0002C5D4 ADD R0, R0, #4 .text:0002C5D8 STR R0, [LR,#-0x78] .text:0002C5DC SUB R0, R0, #4 .text:0002C5E0 LDR R3, [R0],#4 .text:0002C5E4 B loc_2C60C .text:0002C5E4 ; --------------------------------------------------------------------------- .text:0002C5E8 dword_2C5E8 DCD 0, 0 ; DATA XREF: vfwprintf:loc_2C240o .text:0002C5F0 off_2C5F0 DCD jump_table.177 ; DATA XREF: vfwprintf+30A4r .text:0002C5F4 off_2C5F4 DCD step4_jumps.184 ; DATA XREF: vfwprintf+30A8r .text:0002C5F8 off_2C5F8 DCD loc_2DCC4 ; DATA XREF: vfwprintf:loc_2C464r .text:0002C5FC ; --------------------------------------------------------------------------- .text:0002C5FC .text:0002C5FC loc_2C5FC ; CODE XREF: vfwprintf+321Cj .text:0002C5FC LDR R3, [R3,#0x24] .text:0002C600 SUB R1, R11, #-var_1000 .text:0002C604 LDR R1, [R1,#-0xF4] .text:0002C608 LDR R3, [R1,R3,LSL#3] .text:0002C60C .text:0002C60C loc_2C60C ; CODE XREF: vfwprintf+3238j .text:0002C60C MOV R4, R3,LSR#31 .text:0002C610 SUB R2, R11, #-var_1000 .text:0002C614 CMP R3, #0 .text:0002C618 STR R4, [R2,#-0x100] .text:0002C61C RSBLT R3, R3, #0 .text:0002C620 MOV R5, R2 .text:0002C624 STR R3, [R5,#-0x108] .text:0002C628 B loc_2C984 .text:0002C62C ; --------------------------------------------------------------------------- .text:0002C62C MOV LR, #0xA .text:0002C630 SUB R12, R11, #-var_1000 .text:0002C634 STR LR, [R12,#-0x10C] .text:0002C638 B loc_2C658 .text:0002C63C ; --------------------------------------------------------------------------- .text:0002C63C MOV R1, #8 .text:0002C640 SUB R0, R11, #-var_1000 .text:0002C644 STR R1, [R0,#-0x10C] .text:0002C648 B loc_2C658 .text:0002C64C ; --------------------------------------------------------------------------- .text:0002C64C MOV R3, #0x10 .text:0002C650 SUB R2, R11, #-var_1000 .text:0002C654 STR R3, [R2,#-0x10C] .text:0002C658 .text:0002C658 loc_2C658 ; CODE XREF: vfwprintf+328Cj .text:0002C658 ; vfwprintf+329Cj .text:0002C658 MOV R5, #0 .text:0002C65C SUB R4, R11, #-var_1000 .text:0002C660 STR R5, [R4,#-0x100] .text:0002C664 MOV R12, R4 .text:0002C668 STR R5, [R12,#-0x11C] .text:0002C66C MOV LR, R4 .text:0002C670 LDR R0, [LR,#-0x100] .text:0002C674 STR R0, [LR,#-0x114] .text:0002C678 MOV R1, R4 .text:0002C67C LDR R1, [R1,#-0x124] .text:0002C680 CMP R1, R5 .text:0002C684 BEQ loc_2C840 .text:0002C688 MOV R3, R4 .text:0002C68C LDR R3, [R3,#-0x90] .text:0002C690 LDR R4, [R4,#-0x90] .text:0002C694 MOV R5, R12 .text:0002C698 LDR R5, [R5,#-0xEC] .text:0002C69C MOV R2, R3,LSL#1 .text:0002C6A0 ADD R3, R2, R4 .text:0002C6A4 ADD R3, R5, R3,LSL#4 .text:0002C6A8 CMP R3, #0 .text:0002C6AC STR R2, [R12,#-0x148] .text:0002C6B0 BNE loc_2C6D8 .text:0002C6B4 MOV R2, R12 .text:0002C6B8 LDR R3, [R2,#-0x78] .text:0002C6BC ADD R3, R3, #8 .text:0002C6C0 STR R3, [R2,#-0x78] .text:0002C6C4 SUB R3, R3, #8 .text:0002C6C8 LDMIA R3, {R2,R3} .text:0002C6CC SUB R4, R11, #-var_1100 .text:0002C6D0 STMDB R4, {R2,R3} .text:0002C6D4 B loc_2C6F4 .text:0002C6D8 ; --------------------------------------------------------------------------- .text:0002C6D8 .text:0002C6D8 loc_2C6D8 ; CODE XREF: vfwprintf+3304j .text:0002C6D8 LDR R3, [R3,#0x24] .text:0002C6DC SUB R4, R11, #-var_1000 .text:0002C6E0 LDR R4, [R4,#-0xF4] .text:0002C6E4 ADD R3, R4, R3,LSL#3 .text:0002C6E8 LDMIA R3, {R1,R2} .text:0002C6EC SUB R4, R11, #-var_1100 .text:0002C6F0 STMDB R4, {R1,R2} .text:0002C6F4 .text:0002C6F4 loc_2C6F4 ; CODE XREF: vfwprintf+31F0j .text:0002C6F4 ; vfwprintf+3328j .text:0002C6F4 SUB R5, R11, #-var_1000 .text:0002C6F8 LDR R5, [R5,#-0x138] .text:0002C6FC CMP R5, #0 .text:0002C700 MOVLT LR, #1 .text:0002C704 SUBLT R12, R11, #-var_1000 .text:0002C708 STRLT LR, [R12,#-0x138] .text:0002C70C MOVGE R1, #0x20 .text:0002C710 SUBGE R0, R11, #-var_1000 .text:0002C714 STRGE R1, [R0,#-0x140] .text:0002C718 SUB R2, R11, #-var_1000 .text:0002C71C LDR R2, [R2,#-0x138] .text:0002C720 CMP R2, #0 .text:0002C724 BNE loc_2C774 .text:0002C728 SUB R3, R11, #-var_1000 .text:0002C72C LDR R4, [R3,#-0x108] .text:0002C730 LDR R3, [R3,#-0x104] .text:0002C734 ORRS R3, R4, R3 .text:0002C738 BNE loc_2C774 .text:0002C73C SUB R4, R11, #-var_1000 .text:0002C740 LDR R7, [R4,#-0x88] .text:0002C744 MOV R5, R4 .text:0002C748 LDR R5, [R5,#-0x110] .text:0002C74C MOV R12, R4 .text:0002C750 LDR R12, [R12,#-0x10C] .text:0002C754 SUBS R3, R5, #0 .text:0002C758 MOVNE R3, #1 .text:0002C75C CMP R12, #8 .text:0002C760 MOVNE R3, #0 .text:0002C764 CMP R3, #0 .text:0002C768 MOVNE R3, #0x30 .text:0002C76C STRNE R3, [R7,#-4]! .text:0002C770 B loc_2C81C .text:0002C774 ; --------------------------------------------------------------------------- .text:0002C774 .text:0002C774 loc_2C774 ; CODE XREF: vfwprintf+3378j .text:0002C774 ; vfwprintf+338Cj .text:0002C774 SUB LR, R11, #-var_1000 .text:0002C778 LDR LR, [LR,#-0x144] .text:0002C77C CMP LR, #0x58 .text:0002C780 MOVNE R3, #0 .text:0002C784 MOVEQ R3, #1 .text:0002C788 STR R3, [SP,#0x1754+var_1754] .text:0002C78C SUB R2, R11, #-var_1100 .text:0002C790 LDMDB R2, {R0,R1} .text:0002C794 SUB R3, R11, #-var_1000 .text:0002C798 LDR R2, [R3,#-0x88] .text:0002C79C MOV R4, R3 .text:0002C7A0 LDR R3, [R4,#-0x10C] .text:0002C7A4 BL _itowa .text:0002C7A8 SUB R5, R11, #-var_1000 .text:0002C7AC LDR R12, [R5,#-0x120] .text:0002C7B0 LDR R5, [R5,#-0x80] .text:0002C7B4 MOV R7, R0 .text:0002C7B8 CMP R12, #0 .text:0002C7BC CMPNE R5, #0 .text:0002C7C0 BEQ loc_2C7E4 .text:0002C7C4 SUB R12, R11, #-var_1000 .text:0002C7C8 LDR R1, [R12,#-0x88] .text:0002C7CC MOV LR, R12 .text:0002C7D0 LDR R2, [LR,#-0x80] .text:0002C7D4 MOV R4, R12 .text:0002C7D8 LDR R3, [R4,#-0x7C] .text:0002C7DC BL group_number_1 .text:0002C7E0 MOV R7, R0 .text:0002C7E4 .text:0002C7E4 loc_2C7E4 ; CODE XREF: vfwprintf+3414j .text:0002C7E4 SUB R5, R11, #-var_1000 .text:0002C7E8 LDR R5, [R5,#-0x10C] .text:0002C7EC SUB R12, R11, #-var_1000 .text:0002C7F0 LDR R12, [R12,#-0x13C] .text:0002C7F4 CMP R5, #0xA .text:0002C7F8 MOVNE R3, #0 .text:0002C7FC MOVEQ R3, #1 .text:0002C800 TST R12, R3 .text:0002C804 BEQ loc_2C81C .text:0002C808 MOV R0, R7 .text:0002C80C SUB LR, R11, #-var_1000 .text:0002C810 LDR R1, [LR,#-0x88] .text:0002C814 BL _i18n_number_rewrite_0 .text:0002C818 MOV R7, R0 .text:0002C81C .text:0002C81C loc_2C81C ; CODE XREF: vfwprintf+33C4j .text:0002C81C ; vfwprintf+3458j .text:0002C81C SUB R0, R11, #-var_1000 .text:0002C820 LDR R1, [R0,#-0x108] .text:0002C824 LDR R0, [R0,#-0x104] .text:0002C828 ORRS R0, R1, R0 .text:0002C82C MOVEQ R2, #0 .text:0002C830 MOVNE R2, #1 .text:0002C834 SUB R1, R11, #-var_1000 .text:0002C838 STR R2, [R1,#-0x108] .text:0002C83C B loc_2CB64 .text:0002C840 ; --------------------------------------------------------------------------- .text:0002C840 .text:0002C840 loc_2C840 ; CODE XREF: vfwprintf+32D8j .text:0002C840 SUB R3, R11, #-var_1000 .text:0002C844 SUB R4, R11, #-var_1000 .text:0002C848 LDR R3, [R3,#-0x90] .text:0002C84C SUB R5, R11, #-var_1000 .text:0002C850 LDR R4, [R4,#-0x90] .text:0002C854 SUB R12, R11, #-var_1000 .text:0002C858 LDR R5, [R5,#-0xEC] .text:0002C85C MOV R2, R3,LSL#1 .text:0002C860 ADD R3, R2, R4 .text:0002C864 ADD R3, R5, R3,LSL#4 .text:0002C868 CMP R3, #0 .text:0002C86C STR R2, [R12,#-0x148] .text:0002C870 BNE loc_2C904 .text:0002C874 MOV LR, R12 .text:0002C878 LDR LR, [LR,#-0x12C] .text:0002C87C CMP LR, #0 .text:0002C880 BEQ loc_2C8A8 .text:0002C884 MOV R0, R12 .text:0002C888 LDR R0, [R0,#-0x78] .text:0002C88C ADD R1, R0, #4 .text:0002C890 MOV R0, R12 .text:0002C894 STR R1, [R0,#-0x78] .text:0002C898 LDRB R2, [R1,#-4] .text:0002C89C MOV R1, R0 .text:0002C8A0 STR R2, [R1,#-0x108] .text:0002C8A4 B loc_2C984 .text:0002C8A8 ; --------------------------------------------------------------------------- .text:0002C8A8 .text:0002C8A8 loc_2C8A8 ; CODE XREF: vfwprintf+34D4j .text:0002C8A8 SUB R3, R11, #-var_1000 .text:0002C8AC LDR R3, [R3,#-0x128] .text:0002C8B0 CMP R3, #0 .text:0002C8B4 BNE loc_2C8D8 .text:0002C8B8 SUB R4, R11, #-var_1000 .text:0002C8BC LDR R5, [R4,#-0x78] .text:0002C8C0 ADD R5, R5, #4 .text:0002C8C4 STR R5, [R4,#-0x78] .text:0002C8C8 SUB R5, R5, #4 .text:0002C8CC LDR R5, [R5] .text:0002C8D0 STR R5, [R4,#-0x108] .text:0002C8D4 B loc_2C984 .text:0002C8D8 ; --------------------------------------------------------------------------- .text:0002C8D8 .text:0002C8D8 loc_2C8D8 ; CODE XREF: vfwprintf+3508j .text:0002C8D8 SUB R12, R11, #-var_1000 .text:0002C8DC LDR LR, [R12,#-0x78] .text:0002C8E0 ADD LR, LR, #4 .text:0002C8E4 STR LR, [R12,#-0x78] .text:0002C8E8 SUB LR, LR, #4 .text:0002C8EC LDR R3, [LR],#4 .text:0002C8F0 MOV R0, R12 .text:0002C8F4 MOV R3, R3,LSL#16 .text:0002C8F8 MOV R3, R3,LSR#16 .text:0002C8FC STR R3, [R0,#-0x108] .text:0002C900 B loc_2C984 .text:0002C904 ; --------------------------------------------------------------------------- .text:0002C904 .text:0002C904 loc_2C904 ; CODE XREF: vfwprintf+34C4j .text:0002C904 SUB R1, R11, #-var_1000 .text:0002C908 LDR R1, [R1,#-0x12C] .text:0002C90C CMP R1, #0 .text:0002C910 BEQ loc_2C930 .text:0002C914 LDR R3, [R3,#0x24] .text:0002C918 SUB R2, R11, #-var_1000 .text:0002C91C LDR R2, [R2,#-0xF4] .text:0002C920 LDRB R3, [R2,R3,LSL#3] .text:0002C924 SUB R2, R11, #-var_1000 .text:0002C928 STR R3, [R2,#-0x108] .text:0002C92C B loc_2C984 .text:0002C930 ; --------------------------------------------------------------------------- .text:0002C930 .text:0002C930 loc_2C930 ; CODE XREF: vfwprintf+3564j .text:0002C930 SUB R4, R11, #-var_1000 .text:0002C934 LDR R4, [R4,#-0x128] .text:0002C938 CMP R4, #0 .text:0002C93C BNE loc_2C95C .text:0002C940 LDR R3, [R3,#0x24] .text:0002C944 SUB R5, R11, #-var_1000 .text:0002C948 LDR R5, [R5,#-0xF4] .text:0002C94C LDR R3, [R5,R3,LSL#3] .text:0002C950 SUB R5, R11, #-var_1000 .text:0002C954 STR R3, [R5,#-0x108] .text:0002C958 B loc_2C984 .text:0002C95C ; --------------------------------------------------------------------------- .text:0002C95C .text:0002C95C loc_2C95C ; CODE XREF: vfwprintf+3590j .text:0002C95C LDR R3, [R3,#0x24] .text:0002C960 SUB R12, R11, #-var_1000 .text:0002C964 LDR R12, [R12,#-0xF4] .text:0002C968 MOV R3, R3,LSL#3 .text:0002C96C LDRB R1, [R3,R12] .text:0002C970 ADD R3, R3, R12 .text:0002C974 LDRB R2, [R3,#1] .text:0002C978 SUB R0, R11, #-var_1000 .text:0002C97C ORR R2, R1, R2,LSL#8 .text:0002C980 STR R2, [R0,#-0x108] .text:0002C984 .text:0002C984 loc_2C984 ; CODE XREF: vfwprintf+327Cj .text:0002C984 ; vfwprintf+34F8j ... .text:0002C984 SUB R1, R11, #-var_1000 .text:0002C988 LDR R1, [R1,#-0x138] .text:0002C98C CMP R1, #0 .text:0002C990 MOVLT R3, #1 .text:0002C994 SUBLT R2, R11, #-var_1000 .text:0002C998 STRLT R3, [R2,#-0x138] .text:0002C99C MOVGE R5, #0x20 .text:0002C9A0 SUBGE R4, R11, #-var_1000 .text:0002C9A4 STRGE R5, [R4,#-0x140] .text:0002C9A8 SUB R12, R11, #-var_1000 .text:0002C9AC LDR R12, [R12,#-0x138] .text:0002C9B0 CMP R12, #0 .text:0002C9B4 BNE loc_2CA00 .text:0002C9B8 SUB LR, R11, #-var_1000 .text:0002C9BC LDR LR, [LR,#-0x108] .text:0002C9C0 CMP LR, #0 .text:0002C9C4 BNE loc_2CA00 .text:0002C9C8 SUB R0, R11, #-var_1000 .text:0002C9CC LDR R7, [R0,#-0x88] .text:0002C9D0 MOV R1, R0 .text:0002C9D4 LDR R1, [R1,#-0x110] .text:0002C9D8 MOV R2, R0 .text:0002C9DC LDR R2, [R2,#-0x10C] .text:0002C9E0 SUBS R3, R1, #0 .text:0002C9E4 MOVNE R3, #1 .text:0002C9E8 CMP R2, #8 .text:0002C9EC MOVNE R3, #0 .text:0002C9F0 CMP R3, #0 .text:0002C9F4 MOVNE R3, #0x30 .text:0002C9F8 STRNE R3, [R7,#-4]! .text:0002C9FC B loc_2CB64 .text:0002CA00 ; --------------------------------------------------------------------------- .text:0002CA00 .text:0002CA00 loc_2CA00 ; CODE XREF: vfwprintf+3608j .text:0002CA00 ; vfwprintf+3618j .text:0002CA00 LDR R7, =_itowa_lower_digits .text:0002CA04 SUB R3, R11, #-var_1000 .text:0002CA08 LDR R4, [R3,#-0x108] .text:0002CA0C LDR R3, =_itowa_upper_digits .text:0002CA10 SUB R12, R11, #-var_1000 .text:0002CA14 LDR R5, [R12,#-0x88] .text:0002CA18 MOV LR, R12 .text:0002CA1C LDR LR, [LR,#-0x144] .text:0002CA20 MOV R0, R12 .text:0002CA24 LDR R0, [R0,#-0x10C] .text:0002CA28 CMP LR, #0x58 .text:0002CA2C MOVEQ R7, R3 .text:0002CA30 CMP R0, #0xA .text:0002CA34 BEQ loc_2CA5C .text:0002CA38 BHI loc_2CA48 .text:0002CA3C CMP R0, #8 .text:0002CA40 BEQ loc_2CAA0 .text:0002CA44 B loc_2CAB8 .text:0002CA48 ; --------------------------------------------------------------------------- .text:0002CA48 .text:0002CA48 loc_2CA48 ; CODE XREF: vfwprintf+368Cj .text:0002CA48 SUB R2, R11, #-var_1000 .text:0002CA4C LDR R2, [R2,#-0x10C] .text:0002CA50 CMP R2, #0x10 .text:0002CA54 BEQ loc_2CA88 .text:0002CA58 B loc_2CAB8 .text:0002CA5C ; --------------------------------------------------------------------------- .text:0002CA5C .text:0002CA5C loc_2CA5C ; CODE XREF: vfwprintf+3688j .text:0002CA5C ; vfwprintf+36D4j .text:0002CA5C MOV R0, R4 .text:0002CA60 MOV R1, #0xA .text:0002CA64 BL __umodsi3 .text:0002CA68 LDR R3, [R7,R0,LSL#2] .text:0002CA6C STR R3, [R5,#-4]! .text:0002CA70 MOV R0, R4 .text:0002CA74 MOV R1, #0xA .text:0002CA78 BL __udivsi3 .text:0002CA7C SUBS R4, R0, #0 .text:0002CA80 BNE loc_2CA5C .text:0002CA84 B loc_2CAEC .text:0002CA88 ; --------------------------------------------------------------------------- .text:0002CA88 .text:0002CA88 loc_2CA88 ; CODE XREF: vfwprintf+36A8j .text:0002CA88 ; vfwprintf+36ECj .text:0002CA88 AND R3, R4, #0xF .text:0002CA8C LDR R2, [R7,R3,LSL#2] .text:0002CA90 MOVS R4, R4,LSR#4 .text:0002CA94 STR R2, [R5,#-4]! .text:0002CA98 BNE loc_2CA88 .text:0002CA9C B loc_2CAEC .text:0002CAA0 ; --------------------------------------------------------------------------- .text:0002CAA0 .text:0002CAA0 loc_2CAA0 ; CODE XREF: vfwprintf+3694j .text:0002CAA0 ; vfwprintf+3704j .text:0002CAA0 AND R3, R4, #7 .text:0002CAA4 LDR R2, [R7,R3,LSL#2] .text:0002CAA8 MOVS R4, R4,LSR#3 .text:0002CAAC STR R2, [R5,#-4]! .text:0002CAB0 BNE loc_2CAA0 .text:0002CAB4 B loc_2CAEC .text:0002CAB8 ; --------------------------------------------------------------------------- .text:0002CAB8 .text:0002CAB8 loc_2CAB8 ; CODE XREF: vfwprintf+3698j .text:0002CAB8 ; vfwprintf+36ACj ... .text:0002CAB8 MOV R0, R4 .text:0002CABC SUB R3, R11, #-var_1000 .text:0002CAC0 LDR R1, [R3,#-0x10C] .text:0002CAC4 BL __umodsi3 .text:0002CAC8 LDR R3, [R7,R0,LSL#2] .text:0002CACC STR R3, [R5,#-4]! .text:0002CAD0 MOV R0, R4 .text:0002CAD4 SUB R4, R11, #-var_1000 .text:0002CAD8 LDR R1, [R4,#-0x10C] .text:0002CADC BL __udivsi3 .text:0002CAE0 MOV R4, R0 .text:0002CAE4 CMP R4, #0 .text:0002CAE8 BNE loc_2CAB8 .text:0002CAEC .text:0002CAEC loc_2CAEC ; CODE XREF: vfwprintf+36D8j .text:0002CAEC ; vfwprintf+36F0j ... .text:0002CAEC MOV R7, R5 .text:0002CAF0 SUB R5, R11, #-var_1000 .text:0002CAF4 LDR R12, [R5,#-0x120] .text:0002CAF8 LDR R5, [R5,#-0x80] .text:0002CAFC CMP R12, #0 .text:0002CB00 CMPNE R5, #0 .text:0002CB04 BEQ loc_2CB2C .text:0002CB08 MOV R0, R7 .text:0002CB0C SUB R12, R11, #-var_1000 .text:0002CB10 LDR R1, [R12,#-0x88] .text:0002CB14 MOV LR, R12 .text:0002CB18 LDR R2, [LR,#-0x80] .text:0002CB1C MOV R4, R12 .text:0002CB20 LDR R3, [R4,#-0x7C] .text:0002CB24 BL group_number_1 .text:0002CB28 MOV R7, R0 .text:0002CB2C .text:0002CB2C loc_2CB2C ; CODE XREF: vfwprintf+3758j .text:0002CB2C SUB R5, R11, #-var_1000 .text:0002CB30 LDR R5, [R5,#-0x10C] .text:0002CB34 SUB R12, R11, #-var_1000 .text:0002CB38 LDR R12, [R12,#-0x13C] .text:0002CB3C CMP R5, #0xA .text:0002CB40 MOVNE R3, #0 .text:0002CB44 MOVEQ R3, #1 .text:0002CB48 TST R12, R3 .text:0002CB4C BEQ loc_2CB64 .text:0002CB50 MOV R0, R7 .text:0002CB54 SUB LR, R11, #-var_1000 .text:0002CB58 LDR R1, [LR,#-0x88] .text:0002CB5C BL _i18n_number_rewrite_0 .text:0002CB60 MOV R7, R0 .text:0002CB64 .text:0002CB64 loc_2CB64 ; CODE XREF: vfwprintf+3490j .text:0002CB64 ; vfwprintf+3650j ... .text:0002CB64 SUB R0, R11, #-var_1000 .text:0002CB68 LDR R0, [R0,#-0x88] .text:0002CB6C SUB R1, R11, #-var_1000 .text:0002CB70 LDR R1, [R1,#-0x138] .text:0002CB74 RSB R3, R7, R0 .text:0002CB78 CMP R1, R3,ASR#2 .text:0002CB7C BGT loc_2CBAC .text:0002CB80 SUB R2, R11, #-var_1000 .text:0002CB84 LDR R3, [R2,#-0x108] .text:0002CB88 LDR R2, [R2,#-0x110] .text:0002CB8C CMP R3, #0 .text:0002CB90 CMPNE R2, #0 .text:0002CB94 BEQ loc_2CBAC .text:0002CB98 SUB R3, R11, #-var_1000 .text:0002CB9C LDR R3, [R3,#-0x10C] .text:0002CBA0 CMP R3, #8 .text:0002CBA4 MOVEQ R3, #0x30 .text:0002CBA8 STREQ R3, [R7,#-4]! .text:0002CBAC .text:0002CBAC loc_2CBAC ; CODE XREF: vfwprintf+37D0j .text:0002CBAC ; vfwprintf+37E8j .text:0002CBAC SUB R4, R11, #-var_1000 .text:0002CBB0 SUB R5, R11, #-var_1000 .text:0002CBB4 LDR R4, [R4,#-0x88] .text:0002CBB8 SUB LR, R11, #-var_1000 .text:0002CBBC LDR R5, [R5,#-0x138] .text:0002CBC0 RSB R3, R7, R4 .text:0002CBC4 MOV R2, R3,ASR#2 .text:0002CBC8 RSB R12, R2, R5 .text:0002CBCC CMP R12, #0 .text:0002CBD0 MOVLT R12, #0 .text:0002CBD4 STR R12, [LR,#-0x138] .text:0002CBD8 MOV R0, LR .text:0002CBDC LDR R0, [R0,#-0x118] .text:0002CBE0 MOV R4, R3 .text:0002CBE4 CMP R0, #0 .text:0002CBE8 BNE loc_2CE98 .text:0002CBEC ADD R3, R2, R12 .text:0002CBF0 MOV R2, LR .text:0002CBF4 LDR R2, [R2,#-0x134] .text:0002CBF8 RSB R3, R3, R2 .text:0002CBFC MOV R2, LR .text:0002CC00 STR R3, [R2,#-0x134] .text:0002CC04 MOV R3, R2 .text:0002CC08 LDR R5, [R3,#-0x108] .text:0002CC0C LDR R3, [R3,#-0x110] .text:0002CC10 CMP R5, #0 .text:0002CC14 CMPNE R3, #0 .text:0002CC18 BEQ loc_2CC40 .text:0002CC1C MOV R5, R2 .text:0002CC20 LDR R5, [R5,#-0x134] .text:0002CC24 MOV R12, R2 .text:0002CC28 LDR R12, [R12,#-0x10C] .text:0002CC2C SUB R3, R5, #2 .text:0002CC30 CMP R12, #0x10 .text:0002CC34 MOVEQ R5, R3 .text:0002CC38 MOV R12, R2 .text:0002CC3C STR R5, [R12,#-0x134] .text:0002CC40 .text:0002CC40 loc_2CC40 ; CODE XREF: vfwprintf+386Cj .text:0002CC40 SUB LR, R11, #-var_1000 .text:0002CC44 LDR R0, [LR,#-0x100] .text:0002CC48 LDR LR, [LR,#-0x11C] .text:0002CC4C CMP LR, #0 .text:0002CC50 CMPEQ R0, #0 .text:0002CC54 BNE loc_2CC68 .text:0002CC58 SUB R0, R11, #-var_1000 .text:0002CC5C LDR R0, [R0,#-0x114] .text:0002CC60 CMP R0, #0 .text:0002CC64 BEQ loc_2CC7C .text:0002CC68 .text:0002CC68 loc_2CC68 ; CODE XREF: vfwprintf+38A8j .text:0002CC68 SUB R1, R11, #-var_1000 .text:0002CC6C LDR R1, [R1,#-0x134] .text:0002CC70 SUB R2, R1, #1 .text:0002CC74 SUB R1, R11, #-var_1000 .text:0002CC78 STR R2, [R1,#-0x134] .text:0002CC7C .text:0002CC7C loc_2CC7C ; CODE XREF: vfwprintf+38B8j .text:0002CC7C SUB R2, R11, #-var_1000 .text:0002CC80 LDR R2, [R2,#-0x140] .text:0002CC84 CMP R2, #0x20 .text:0002CC88 BNE loc_2CCC4 .text:0002CC8C SUB R3, R11, #-var_1000 .text:0002CC90 LDR R3, [R3,#-0x134] .text:0002CC94 CMP R3, #0 .text:0002CC98 BLE loc_2CCB8 .text:0002CC9C MOV R0, R9 .text:0002CCA0 SUB R5, R11, #-var_1000 .text:0002CCA4 LDR R1, [R5,#-0x140] .text:0002CCA8 MOV R12, R5 .text:0002CCAC LDR R2, [R12,#-0x134] .text:0002CCB0 BL _IO_wpadn .text:0002CCB4 ADD R10, R10, R0 .text:0002CCB8 .text:0002CCB8 loc_2CCB8 ; CODE XREF: vfwprintf+38ECj .text:0002CCB8 MOV R0, #0 .text:0002CCBC SUB LR, R11, #-var_1000 .text:0002CCC0 STR R0, [LR,#-0x134] .text:0002CCC4 .text:0002CCC4 loc_2CCC4 ; CODE XREF: vfwprintf+38DCj .text:0002CCC4 SUB R1, R11, #-var_1000 .text:0002CCC8 LDR R1, [R1,#-0x100] .text:0002CCCC CMP R1, #0 .text:0002CCD0 BEQ loc_2CD08 .text:0002CCD4 LDR R1, [R9,#0x58] .text:0002CCD8 ADD R2, R1, #0x10 .text:0002CCDC LDMIA R2, {R2,R3} .text:0002CCE0 CMP R2, R3 .text:0002CCE4 BCC loc_2CD00 .text:0002CCE8 MOV R0, R9 .text:0002CCEC MOV R1, #0x2D .text:0002CCF0 .text:0002CCF0 loc_2CCF0 ; CODE XREF: vfwprintf+3984j .text:0002CCF0 ; vfwprintf+39B8j .text:0002CCF0 BL __woverflow .text:0002CCF4 CMN R0, #1 .text:0002CCF8 BEQ loc_2B2B8 .text:0002CCFC B loc_2CD74 .text:0002CD00 ; --------------------------------------------------------------------------- .text:0002CD00 .text:0002CD00 loc_2CD00 ; CODE XREF: vfwprintf+3938j .text:0002CD00 MOV R3, #0x2D .text:0002CD04 B loc_2CD6C .text:0002CD08 ; --------------------------------------------------------------------------- .text:0002CD08 .text:0002CD08 loc_2CD08 ; CODE XREF: vfwprintf+3924j .text:0002CD08 SUB R2, R11, #-var_1000 .text:0002CD0C LDR R2, [R2,#-0x11C] .text:0002CD10 CMP R2, #0 .text:0002CD14 BEQ loc_2CD3C .text:0002CD18 LDR R1, [R9,#0x58] .text:0002CD1C ADD R2, R1, #0x10 .text:0002CD20 LDMIA R2, {R2,R3} .text:0002CD24 CMP R2, R3 .text:0002CD28 MOVCS R0, R9 .text:0002CD2C MOVCS R1, #0x2B .text:0002CD30 BCS loc_2CCF0 .text:0002CD34 MOV R3, #0x2B .text:0002CD38 B loc_2CD6C .text:0002CD3C ; --------------------------------------------------------------------------- .text:0002CD3C .text:0002CD3C loc_2CD3C ; CODE XREF: vfwprintf+3968j .text:0002CD3C SUB R3, R11, #-var_1000 .text:0002CD40 LDR R3, [R3,#-0x114] .text:0002CD44 CMP R3, #0 .text:0002CD48 BEQ loc_2CD78 .text:0002CD4C LDR R1, [R9,#0x58] .text:0002CD50 ADD R2, R1, #0x10 .text:0002CD54 LDMIA R2, {R2,R3} .text:0002CD58 CMP R2, R3 .text:0002CD5C MOVCS R0, R9 .text:0002CD60 MOVCS R1, #0x20 .text:0002CD64 BCS loc_2CCF0 .text:0002CD68 MOV R3, #0x20 .text:0002CD6C .text:0002CD6C loc_2CD6C ; CODE XREF: vfwprintf+3958j .text:0002CD6C ; vfwprintf+398Cj .text:0002CD6C STR R3, [R2],#4 .text:0002CD70 STR R2, [R1,#0x10] .text:0002CD74 .text:0002CD74 loc_2CD74 ; CODE XREF: vfwprintf+3950j .text:0002CD74 ADD R10, R10, #1 .text:0002CD78 .text:0002CD78 loc_2CD78 ; CODE XREF: vfwprintf+399Cj .text:0002CD78 SUB R5, R11, #-var_1000 .text:0002CD7C LDR R12, [R5,#-0x108] .text:0002CD80 LDR R5, [R5,#-0x110] .text:0002CD84 CMP R12, #0 .text:0002CD88 CMPNE R5, #0 .text:0002CD8C BEQ loc_2CE2C .text:0002CD90 SUB R12, R11, #-var_1000 .text:0002CD94 LDR R12, [R12,#-0x10C] .text:0002CD98 CMP R12, #0x10 .text:0002CD9C BNE loc_2CE2C .text:0002CDA0 LDR R1, [R9,#0x58] .text:0002CDA4 ADD R2, R1, #0x10 .text:0002CDA8 LDMIA R2, {R2,R3} .text:0002CDAC CMP R2, R3 .text:0002CDB0 BCC loc_2CDD4 .text:0002CDB4 MOV R0, R9 .text:0002CDB8 MOV R1, #0x30 .text:0002CDBC BL __woverflow .text:0002CDC0 CMN R0, #1 .text:0002CDC4 BEQ loc_2B2B8 .text:0002CDC8 B loc_2CDE0 .text:0002CDC8 ; --------------------------------------------------------------------------- .text:0002CDCC off_2CDCC DCD _itowa_lower_digits ; DATA XREF: vfwprintf:loc_2CA00r .text:0002CDD0 off_2CDD0 DCD _itowa_upper_digits ; DATA XREF: vfwprintf+3660r .text:0002CDD4 ; --------------------------------------------------------------------------- .text:0002CDD4 .text:0002CDD4 loc_2CDD4 ; CODE XREF: vfwprintf+3A04j .text:0002CDD4 MOV R3, #0x30 .text:0002CDD8 STR R3, [R2],#4 .text:0002CDDC STR R2, [R1,#0x10] .text:0002CDE0 .text:0002CDE0 loc_2CDE0 ; CODE XREF: vfwprintf+3A1Cj .text:0002CDE0 ADD R10, R10, #1 .text:0002CDE4 LDR R1, [R9,#0x58] .text:0002CDE8 ADD R2, R1, #0x10 .text:0002CDEC LDMIA R2, {R2,R3} .text:0002CDF0 CMP R2, R3 .text:0002CDF4 BCC loc_2CE10 .text:0002CDF8 MOV R0, R9 .text:0002CDFC SUB LR, R11, #-var_1000 .text:0002CE00 LDR R1, [LR,#-0x144] .text:0002CE04 BL __woverflow .text:0002CE08 CMN R0, #1 .text:0002CE0C B loc_2CE24 .text:0002CE10 ; --------------------------------------------------------------------------- .text:0002CE10 .text:0002CE10 loc_2CE10 ; CODE XREF: vfwprintf+3A48j .text:0002CE10 SUB R0, R11, #-var_1000 .text:0002CE14 LDR R0, [R0,#-0x144] .text:0002CE18 STR R0, [R2],#4 .text:0002CE1C CMN R0, #1 .text:0002CE20 STR R2, [R1,#0x10] .text:0002CE24 .text:0002CE24 loc_2CE24 ; CODE XREF: vfwprintf+3A60j .text:0002CE24 BEQ loc_2B2B8 .text:0002CE28 ADD R10, R10, #1 .text:0002CE2C .text:0002CE2C loc_2CE2C ; CODE XREF: vfwprintf+39E0j .text:0002CE2C ; vfwprintf+39F0j .text:0002CE2C SUB R5, R11, #-var_1000 .text:0002CE30 SUB R5, R5, #0x138 .text:0002CE34 LDMIA R5, {R5,R12} .text:0002CE38 ADD R12, R12, R5 .text:0002CE3C SUB R5, R11, #-var_1000 .text:0002CE40 CMP R12, #0 .text:0002CE44 STR R12, [R5,#-0x134] .text:0002CE48 BLE loc_2CE64 .text:0002CE4C MOV R0, R9 .text:0002CE50 MOV R1, #0x30 .text:0002CE54 MOV LR, R5 .text:0002CE58 LDR R2, [LR,#-0x134] .text:0002CE5C BL _IO_wpadn .text:0002CE60 ADD R10, R10, R0 .text:0002CE64 .text:0002CE64 loc_2CE64 ; CODE XREF: vfwprintf+3A9Cj .text:0002CE64 MOV R0, R9 .text:0002CE68 MOV R1, R7 .text:0002CE6C LDRB R3, [R9,#0x46] .text:0002CE70 MOV R4, R4,ASR#2 .text:0002CE74 MOV R3, R3,LSL#24 .text:0002CE78 ADD R3, R9, R3,ASR#24 .text:0002CE7C LDR R12, [R3,#0x94] .text:0002CE80 MOV R2, R4 .text:0002CE84 MOV LR, PC .text:0002CE88 LDR PC, [R12,#0x1C] .text:0002CE8C CMP R0, R4 .text:0002CE90 BNE loc_2B2B8 .text:0002CE94 B loc_2DDE4 .text:0002CE98 ; --------------------------------------------------------------------------- .text:0002CE98 .text:0002CE98 loc_2CE98 ; CODE XREF: vfwprintf+383Cj .text:0002CE98 SUB R0, R11, #-var_1000 .text:0002CE9C LDR R0, [R0,#-0x100] .text:0002CEA0 CMP R0, #0 .text:0002CEA4 BEQ loc_2CEFC .text:0002CEA8 LDR R1, [R9,#0x58] .text:0002CEAC ADD R2, R1, #0x10 .text:0002CEB0 LDMIA R2, {R2,R3} .text:0002CEB4 CMP R2, R3 .text:0002CEB8 BCC loc_2CED4 .text:0002CEBC MOV R0, R9 .text:0002CEC0 MOV R1, #0x2D .text:0002CEC4 BL __woverflow .text:0002CEC8 CMN R0, #1 .text:0002CECC BEQ loc_2B2B8 .text:0002CED0 B loc_2CEE0 .text:0002CED4 ; --------------------------------------------------------------------------- .text:0002CED4 .text:0002CED4 loc_2CED4 ; CODE XREF: vfwprintf+3B0Cj .text:0002CED4 MOV R3, #0x2D .text:0002CED8 STR R3, [R2],#4 .text:0002CEDC STR R2, [R1,#0x10] .text:0002CEE0 .text:0002CEE0 loc_2CEE0 ; CODE XREF: vfwprintf+3B24j .text:0002CEE0 ADD R10, R10, #1 .text:0002CEE4 SUB R1, R11, #-var_1000 .text:0002CEE8 LDR R1, [R1,#-0x134] .text:0002CEEC SUB R2, R1, #1 .text:0002CEF0 SUB R1, R11, #-var_1000 .text:0002CEF4 STR R2, [R1,#-0x134] .text:0002CEF8 B loc_2CFC0 .text:0002CEFC ; --------------------------------------------------------------------------- .text:0002CEFC .text:0002CEFC loc_2CEFC ; CODE XREF: vfwprintf+3AF8j .text:0002CEFC SUB R2, R11, #-var_1000 .text:0002CF00 LDR R2, [R2,#-0x11C] .text:0002CF04 CMP R2, #0 .text:0002CF08 BEQ loc_2CF60 .text:0002CF0C LDR R1, [R9,#0x58] .text:0002CF10 ADD R2, R1, #0x10 .text:0002CF14 LDMIA R2, {R2,R3} .text:0002CF18 CMP R2, R3 .text:0002CF1C BCC loc_2CF38 .text:0002CF20 MOV R0, R9 .text:0002CF24 MOV R1, #0x2B .text:0002CF28 BL __woverflow .text:0002CF2C CMN R0, #1 .text:0002CF30 BEQ loc_2B2B8 .text:0002CF34 B loc_2CF44 .text:0002CF38 ; --------------------------------------------------------------------------- .text:0002CF38 .text:0002CF38 loc_2CF38 ; CODE XREF: vfwprintf+3B70j .text:0002CF38 MOV R3, #0x2B .text:0002CF3C STR R3, [R2],#4 .text:0002CF40 STR R2, [R1,#0x10] .text:0002CF44 .text:0002CF44 loc_2CF44 ; CODE XREF: vfwprintf+3B88j .text:0002CF44 ADD R10, R10, #1 .text:0002CF48 SUB R3, R11, #-var_1000 .text:0002CF4C LDR R3, [R3,#-0x134] .text:0002CF50 SUB R5, R3, #1 .text:0002CF54 SUB R3, R11, #-var_1000 .text:0002CF58 STR R5, [R3,#-0x134] .text:0002CF5C B loc_2CFC0 .text:0002CF60 ; --------------------------------------------------------------------------- .text:0002CF60 .text:0002CF60 loc_2CF60 ; CODE XREF: vfwprintf+3B5Cj .text:0002CF60 SUB R5, R11, #-var_1000 .text:0002CF64 LDR R5, [R5,#-0x114] .text:0002CF68 CMP R5, #0 .text:0002CF6C BEQ loc_2CFC0 .text:0002CF70 LDR R1, [R9,#0x58] .text:0002CF74 ADD R2, R1, #0x10 .text:0002CF78 LDMIA R2, {R2,R3} .text:0002CF7C CMP R2, R3 .text:0002CF80 BCC loc_2CF9C .text:0002CF84 MOV R0, R9 .text:0002CF88 MOV R1, #0x20 .text:0002CF8C BL __woverflow .text:0002CF90 CMN R0, #1 .text:0002CF94 BEQ loc_2B2B8 .text:0002CF98 B loc_2CFA8 .text:0002CF9C ; --------------------------------------------------------------------------- .text:0002CF9C .text:0002CF9C loc_2CF9C ; CODE XREF: vfwprintf+3BD4j .text:0002CF9C MOV R3, #0x20 .text:0002CFA0 STR R3, [R2],#4 .text:0002CFA4 STR R2, [R1,#0x10] .text:0002CFA8 .text:0002CFA8 loc_2CFA8 ; CODE XREF: vfwprintf+3BECj .text:0002CFA8 ADD R10, R10, #1 .text:0002CFAC SUB R12, R11, #-var_1000 .text:0002CFB0 LDR R12, [R12,#-0x134] .text:0002CFB4 SUB LR, R12, #1 .text:0002CFB8 SUB R12, R11, #-var_1000 .text:0002CFBC STR LR, [R12,#-0x134] .text:0002CFC0 .text:0002CFC0 loc_2CFC0 ; CODE XREF: vfwprintf+3B4Cj .text:0002CFC0 ; vfwprintf+3BB0j ... .text:0002CFC0 SUB LR, R11, #-var_1000 .text:0002CFC4 LDR R0, [LR,#-0x108] .text:0002CFC8 LDR LR, [LR,#-0x110] .text:0002CFCC CMP R0, #0 .text:0002CFD0 CMPNE LR, #0 .text:0002CFD4 BEQ loc_2D080 .text:0002CFD8 SUB R0, R11, #-var_1000 .text:0002CFDC LDR R0, [R0,#-0x10C] .text:0002CFE0 CMP R0, #0x10 .text:0002CFE4 BNE loc_2D080 .text:0002CFE8 LDR R1, [R9,#0x58] .text:0002CFEC ADD R2, R1, #0x10 .text:0002CFF0 LDMIA R2, {R2,R3} .text:0002CFF4 CMP R2, R3 .text:0002CFF8 BCC loc_2D014 .text:0002CFFC MOV R0, R9 .text:0002D000 MOV R1, #0x30 .text:0002D004 BL __woverflow .text:0002D008 CMN R0, #1 .text:0002D00C BEQ loc_2B2B8 .text:0002D010 B loc_2D020 .text:0002D014 ; --------------------------------------------------------------------------- .text:0002D014 .text:0002D014 loc_2D014 ; CODE XREF: vfwprintf+3C4Cj .text:0002D014 MOV R3, #0x30 .text:0002D018 STR R3, [R2],#4 .text:0002D01C STR R2, [R1,#0x10] .text:0002D020 .text:0002D020 loc_2D020 ; CODE XREF: vfwprintf+3C64j .text:0002D020 ADD R10, R10, #1 .text:0002D024 LDR R1, [R9,#0x58] .text:0002D028 ADD R2, R1, #0x10 .text:0002D02C LDMIA R2, {R2,R3} .text:0002D030 CMP R2, R3 .text:0002D034 BCC loc_2D050 .text:0002D038 MOV R0, R9 .text:0002D03C SUB R2, R11, #-var_1000 .text:0002D040 LDR R1, [R2,#-0x144] .text:0002D044 BL __woverflow .text:0002D048 CMN R0, #1 .text:0002D04C B loc_2D064 .text:0002D050 ; --------------------------------------------------------------------------- .text:0002D050 .text:0002D050 loc_2D050 ; CODE XREF: vfwprintf+3C88j .text:0002D050 SUB R3, R11, #-var_1000 .text:0002D054 LDR R3, [R3,#-0x144] .text:0002D058 STR R3, [R2],#4 .text:0002D05C CMN R3, #1 .text:0002D060 STR R2, [R1,#0x10] .text:0002D064 .text:0002D064 loc_2D064 ; CODE XREF: vfwprintf+3CA0j .text:0002D064 BEQ loc_2B2B8 .text:0002D068 ADD R10, R10, #1 .text:0002D06C SUB R12, R11, #-var_1000 .text:0002D070 LDR R12, [R12,#-0x134] .text:0002D074 SUB LR, R12, #2 .text:0002D078 SUB R12, R11, #-var_1000 .text:0002D07C STR LR, [R12,#-0x134] .text:0002D080 .text:0002D080 loc_2D080 ; CODE XREF: vfwprintf+3C28j .text:0002D080 ; vfwprintf+3C38j .text:0002D080 MOV R4, R4,ASR#2 .text:0002D084 SUB LR, R11, #-var_1000 .text:0002D088 LDR LR, [LR,#-0x138] .text:0002D08C SUB R0, R11, #-var_1000 .text:0002D090 LDR R0, [R0,#-0x134] .text:0002D094 ADD R3, R4, LR .text:0002D098 RSB R3, R3, R0 .text:0002D09C SUB R0, R11, #-var_1000 .text:0002D0A0 CMP LR, #0 .text:0002D0A4 STR R3, [R0,#-0x134] .text:0002D0A8 BLE loc_2D0C4 .text:0002D0AC MOV R0, R9 .text:0002D0B0 MOV R1, #0x30 .text:0002D0B4 SUB R3, R11, #-var_1000 .text:0002D0B8 LDR R2, [R3,#-0x138] .text:0002D0BC BL _IO_wpadn .text:0002D0C0 ADD R10, R10, R0 .text:0002D0C4 .text:0002D0C4 loc_2D0C4 ; CODE XREF: vfwprintf+3CFCj .text:0002D0C4 MOV R0, R9 .text:0002D0C8 LDRB R3, [R9,#0x46] .text:0002D0CC MOV R1, R7 .text:0002D0D0 MOV R3, R3,LSL#24 .text:0002D0D4 ADD R3, R9, R3,ASR#24 .text:0002D0D8 LDR R12, [R3,#0x94] .text:0002D0DC MOV R2, R4 .text:0002D0E0 MOV LR, PC .text:0002D0E4 LDR PC, [R12,#0x1C] .text:0002D0E8 CMP R0, R4 .text:0002D0EC BNE loc_2B2B8 .text:0002D0F0 ADD R10, R10, R0 .text:0002D0F4 SUB R4, R11, #-var_1000 .text:0002D0F8 LDR R4, [R4,#-0x134] .text:0002D0FC CMP R4, #0 .text:0002D100 BLE loc_2DDE8 .text:0002D104 MOV R0, R9 .text:0002D108 MOV R1, #0x20 .text:0002D10C SUB R5, R11, #-var_1000 .text:0002D110 LDR R2, [R5,#-0x134] .text:0002D114 BL _IO_wpadn .text:0002D118 B loc_2DDE4 .text:0002D11C ; --------------------------------------------------------------------------- .text:0002D11C SUB R12, R11, #-var_1000 .text:0002D120 LDR R12, [R12,#-0x90] .text:0002D124 SUB R0, R11, #-var_1000 .text:0002D128 LDR R0, [R0,#-0xEC] .text:0002D12C MOV R2, R12,LSL#1 .text:0002D130 ADD R3, R2, R12 .text:0002D134 ADD R1, R0, R3,LSL#4 .text:0002D138 CMP R1, #0 .text:0002D13C SUB R3, R11, #-var_1000 .text:0002D140 STR R2, [R3,#-0x148] .text:0002D144 BNE loc_2D2F4 .text:0002D148 SUB R0, R11, #-var_1000 .text:0002D14C SUB R0, R0, #8 .text:0002D150 SUB R0, R0, #0xC .text:0002D154 MOV R2, #0x14 .text:0002D158 BL memset .text:0002D15C SUB R4, R11, #-var_1000 .text:0002D160 LDR R5, [R4,#-0x138] .text:0002D164 STR R5, [R4,#-0x14] .text:0002D168 MOV R12, R4 .text:0002D16C LDR LR, [R12,#-0x134] .text:0002D170 STR LR, [R12,#-0x10] .text:0002D174 MOV R0, R4 .text:0002D178 LDR R1, [R0,#-0x144] .text:0002D17C STR R1, [R0,#-0xC] .text:0002D180 LDR R5, [R4,#-0x140] .text:0002D184 MOV R2, R0 .text:0002D188 LDRB R3, [R2,#-8] .text:0002D18C STR R5, [R4,#-4] .text:0002D190 LDR R12, [R12,#-0x124] .text:0002D194 MOV LR, R0 .text:0002D198 LDR LR, [LR,#-0x128] .text:0002D19C LDR R0, [R0,#-0x130] .text:0002D1A0 SUB R5, R11, #-var_1000 .text:0002D1A4 LDR R5, [R5,#-0x118] .text:0002D1A8 CMP R12, #0 .text:0002D1AC ORRNE R3, R3, #1 .text:0002D1B0 ANDEQ R3, R3, #0xFE .text:0002D1B4 CMP LR, #0 .text:0002D1B8 ORRNE R3, R3, #2 .text:0002D1BC ANDEQ R3, R3, #0xFD .text:0002D1C0 AND R2, R0, #1 .text:0002D1C4 CMP R2, #0 .text:0002D1C8 ORRNE R3, R3, #4 .text:0002D1CC ANDEQ R3, R3, #0xFB .text:0002D1D0 MOV R2, R4 .text:0002D1D4 LDR R2, [R2,#-0x110] .text:0002D1D8 SUB R12, R11, #-var_1000 .text:0002D1DC LDR R4, [R4,#-0x114] .text:0002D1E0 SUB LR, R11, #-var_1000 .text:0002D1E4 LDR R12, [R12,#-0x11C] .text:0002D1E8 SUB R0, R11, #-var_1000 .text:0002D1EC LDR LR, [LR,#-0x120] .text:0002D1F0 AND R1, R2, #1 .text:0002D1F4 CMP R1, #0 .text:0002D1F8 ORRNE R3, R3, #8 .text:0002D1FC ANDEQ R3, R3, #0xF7 .text:0002D200 AND R2, R4, #1 .text:0002D204 CMP R2, #0 .text:0002D208 ORRNE R3, R3, #0x10 .text:0002D20C ANDEQ R3, R3, #0xEF .text:0002D210 AND R1, R5, #1 .text:0002D214 CMP R1, #0 .text:0002D218 ORRNE R3, R3, #0x20 .text:0002D21C ANDEQ R3, R3, #0xDF .text:0002D220 AND R2, R12, #1 .text:0002D224 CMP R2, #0 .text:0002D228 ORRNE R3, R3, #0x40 .text:0002D22C ANDEQ R3, R3, #0xBF .text:0002D230 AND R1, LR, #1 .text:0002D234 CMP R1, #0 .text:0002D238 ORRNE R3, R3, #0x80 .text:0002D23C ANDEQ R3, R3, #0x7F .text:0002D240 STRB R3, [R0,#-8] .text:0002D244 MOV R1, R0 .text:0002D248 MOV R3, R0 .text:0002D24C LDR R3, [R3,#-0x124] .text:0002D250 MOV R4, R0 .text:0002D254 LDRB R2, [R1,#-7] .text:0002D258 CMP R3, #0 .text:0002D25C ORR R2, R2, #4 .text:0002D260 STRB R2, [R4,#-7] .text:0002D264 BEQ loc_2D28C .text:0002D268 MOV R5, R0 .text:0002D26C LDR R12, [R5,#-0x78] .text:0002D270 ADD R12, R12, #8 .text:0002D274 STR R12, [R5,#-0x78] .text:0002D278 SUB R3, R11, #-var_1000 .text:0002D27C SUB R3, R3, #0x28 .text:0002D280 SUB R12, R12, #8 .text:0002D284 LDMIA R12!, {R1,R2} .text:0002D288 B loc_2D2AC .text:0002D28C ; --------------------------------------------------------------------------- .text:0002D28C .text:0002D28C loc_2D28C ; CODE XREF: vfwprintf+3EB8j .text:0002D28C SUB LR, R11, #-var_1000 .text:0002D290 LDR R0, [LR,#-0x78] .text:0002D294 ADD R0, R0, #8 .text:0002D298 STR R0, [LR,#-0x78] .text:0002D29C SUB R3, R11, #-var_1000 .text:0002D2A0 SUB R3, R3, #0x28 .text:0002D2A4 SUB R0, R0, #8 .text:0002D2A8 LDMIA R0!, {R1,R2} .text:0002D2AC .text:0002D2AC loc_2D2AC ; CODE XREF: vfwprintf+3EDCj .text:0002D2AC SUB R3, R3, #0x38 .text:0002D2B0 STMIA R3, {R1,R2} .text:0002D2B4 SUB R2, R11, #-var_1000 .text:0002D2B8 SUB R2, R2, #0x28 .text:0002D2BC SUB R2, R2, #0x38 .text:0002D2C0 MOV R3, 0xFFFFEFC4 .text:0002D2C8 MOV R0, R9 .text:0002D2CC SUB R1, R11, #-var_28 .text:0002D2D0 STR R2, [R1,R3] .text:0002D2D4 SUB R1, R11, #-var_1000 .text:0002D2D8 SUB R1, R1, #8 .text:0002D2DC SUB R1, R1, #0xC .text:0002D2E0 SUB R2, R11, #-var_1000 .text:0002D2E4 SUB R2, R2, #0x28 .text:0002D2E8 SUB R2, R2, #0x3C .text:0002D2EC BL __printf_fp .text:0002D2F0 B loc_2D31C .text:0002D2F4 ; --------------------------------------------------------------------------- .text:0002D2F4 .text:0002D2F4 loc_2D2F4 ; CODE XREF: vfwprintf+3D98j .text:0002D2F4 SUB R2, R11, #-var_1000 .text:0002D2F8 SUB R2, R2, #0x28 .text:0002D2FC LDR R3, [R1,#0x24] .text:0002D300 SUB R4, R11, #-var_1000 .text:0002D304 LDR R4, [R4,#-0xF4] .text:0002D308 SUB R2, R2, #0x3C .text:0002D30C ADD R3, R4, R3,LSL#3 .text:0002D310 STR R3, [R2] .text:0002D314 MOV R0, R9 .text:0002D318 BL __printf_fp .text:0002D31C .text:0002D31C loc_2D31C ; CODE XREF: vfwprintf+3F44j .text:0002D31C CMP R0, #0 .text:0002D320 B loc_2DDE0 .text:0002D324 ; --------------------------------------------------------------------------- .text:0002D324 SUB R5, R11, #-var_1000 .text:0002D328 SUB LR, R11, #-var_1000 .text:0002D32C LDR R5, [R5,#-0x90] .text:0002D330 SUB R0, R11, #-var_1000 .text:0002D334 LDR LR, [LR,#-0xEC] .text:0002D338 MOV R2, R5,LSL#1 .text:0002D33C ADD R3, R2, R5 .text:0002D340 ADD R1, LR, R3,LSL#4 .text:0002D344 CMP R1, #0 .text:0002D348 STR R2, [R0,#-0x148] .text:0002D34C BNE loc_2D4F0 .text:0002D350 MOV R4, #0x80000000 .text:0002D354 MOV R4, R4,ASR#19 .text:0002D358 ADD R2, R11, R4 .text:0002D35C SUB R0, R2, #0x28 .text:0002D360 MOV R2, #0x14 .text:0002D364 BL memset .text:0002D368 SUB R3, R11, #-var_1000 .text:0002D36C LDR R5, [R3,#-0x138] .text:0002D370 SUB R3, R11, #-var_28 .text:0002D374 STR R5, [R3,R4] .text:0002D378 SUB R12, R11, #-var_1000 .text:0002D37C LDR LR, [R12,#-0x134] .text:0002D380 STR LR, [R12,#-0x24] .text:0002D384 MOV R0, R12 .text:0002D388 LDR R1, [R0,#-0x144] .text:0002D38C STR R1, [R0,#-0x20] .text:0002D390 MOV R4, R0 .text:0002D394 LDR R5, [R4,#-0x140] .text:0002D398 MOV R2, R0 .text:0002D39C LDRB R3, [R2,#-0x1C] .text:0002D3A0 STR R5, [R4,#-0x18] .text:0002D3A4 LDR R12, [R12,#-0x124] .text:0002D3A8 MOV LR, R0 .text:0002D3AC LDR LR, [LR,#-0x128] .text:0002D3B0 LDR R0, [R0,#-0x130] .text:0002D3B4 SUB R5, R11, #-var_1000 .text:0002D3B8 LDR R5, [R5,#-0x118] .text:0002D3BC CMP R12, #0 .text:0002D3C0 ORRNE R3, R3, #1 .text:0002D3C4 ANDEQ R3, R3, #0xFE .text:0002D3C8 CMP LR, #0 .text:0002D3CC ORRNE R3, R3, #2 .text:0002D3D0 ANDEQ R3, R3, #0xFD .text:0002D3D4 AND R2, R0, #1 .text:0002D3D8 CMP R2, #0 .text:0002D3DC ORRNE R3, R3, #4 .text:0002D3E0 ANDEQ R3, R3, #0xFB .text:0002D3E4 MOV R2, R4 .text:0002D3E8 LDR R2, [R2,#-0x110] .text:0002D3EC SUB R12, R11, #-var_1000 .text:0002D3F0 LDR R4, [R4,#-0x114] .text:0002D3F4 SUB LR, R11, #-var_1000 .text:0002D3F8 LDR R12, [R12,#-0x11C] .text:0002D3FC SUB R0, R11, #-var_1000 .text:0002D400 LDR LR, [LR,#-0x120] .text:0002D404 AND R1, R2, #1 .text:0002D408 CMP R1, #0 .text:0002D40C ORRNE R3, R3, #8 .text:0002D410 ANDEQ R3, R3, #0xF7 .text:0002D414 AND R2, R4, #1 .text:0002D418 CMP R2, #0 .text:0002D41C ORRNE R3, R3, #0x10 .text:0002D420 ANDEQ R3, R3, #0xEF .text:0002D424 AND R1, R5, #1 .text:0002D428 CMP R1, #0 .text:0002D42C ORRNE R3, R3, #0x20 .text:0002D430 ANDEQ R3, R3, #0xDF .text:0002D434 AND R2, R12, #1 .text:0002D438 CMP R2, #0 .text:0002D43C ORRNE R3, R3, #0x40 .text:0002D440 ANDEQ R3, R3, #0xBF .text:0002D444 AND R1, LR, #1 .text:0002D448 CMP R1, #0 .text:0002D44C ORRNE R3, R3, #0x80 .text:0002D450 ANDEQ R3, R3, #0x7F .text:0002D454 STRB R3, [R0,#-0x1C] .text:0002D458 MOV R1, R0 .text:0002D45C MOV R3, R0 .text:0002D460 LDR R3, [R3,#-0x124] .text:0002D464 MOV R4, R0 .text:0002D468 LDRB R2, [R1,#-0x1B] .text:0002D46C CMP R3, #0 .text:0002D470 ORR R2, R2, #4 .text:0002D474 STRB R2, [R4,#-0x1B] .text:0002D478 BEQ loc_2D4A4 .text:0002D47C MOV R5, R0 .text:0002D480 LDR R12, [R5,#-0x78] .text:0002D484 ADD R12, R12, #8 .text:0002D488 STR R12, [R5,#-0x78] .text:0002D48C SUB R2, R11, #-var_1000 .text:0002D490 SUB R2, R2, #0x28 .text:0002D494 SUB R2, R2, #0x38 .text:0002D498 SUB R12, R12, #8 .text:0002D49C LDMIA R12!, {R3,R4} .text:0002D4A0 B loc_2D4C8 .text:0002D4A4 ; --------------------------------------------------------------------------- .text:0002D4A4 .text:0002D4A4 loc_2D4A4 ; CODE XREF: vfwprintf+40CCj .text:0002D4A4 SUB LR, R11, #-var_1000 .text:0002D4A8 LDR R0, [LR,#-0x78] .text:0002D4AC ADD R0, R0, #8 .text:0002D4B0 STR R0, [LR,#-0x78] .text:0002D4B4 SUB R2, R11, #-var_1000 .text:0002D4B8 SUB R2, R2, #0x28 .text:0002D4BC SUB R2, R2, #0x38 .text:0002D4C0 SUB R0, R0, #8 .text:0002D4C4 LDMIA R0!, {R3,R4} .text:0002D4C8 .text:0002D4C8 loc_2D4C8 ; CODE XREF: vfwprintf+40F4j .text:0002D4C8 MOV R1, R2 .text:0002D4CC STMIA R2, {R3,R4} .text:0002D4D0 SUB R2, R11, #-var_1040 .text:0002D4D4 SUB R2, R2, #0x28 .text:0002D4D8 STR R1, [R2] .text:0002D4DC MOV R0, R9 .text:0002D4E0 SUB R1, R11, #-var_1000 .text:0002D4E4 SUB R1, R1, #0x28 .text:0002D4E8 BL __printf_fphex .text:0002D4EC B loc_2D514 .text:0002D4F0 ; --------------------------------------------------------------------------- .text:0002D4F0 .text:0002D4F0 loc_2D4F0 ; CODE XREF: vfwprintf+3FA0j .text:0002D4F0 LDR R3, [R1,#0x24] .text:0002D4F4 SUB R2, R11, #-var_1000 .text:0002D4F8 LDR R2, [R2,#-0xF4] .text:0002D4FC ADD R3, R2, R3,LSL#3 .text:0002D500 SUB R2, R11, #-var_1040 .text:0002D504 SUB R2, R2, #0x28 .text:0002D508 STR R3, [R2] .text:0002D50C MOV R0, R9 .text:0002D510 BL __printf_fphex .text:0002D514 .text:0002D514 loc_2D514 ; CODE XREF: vfwprintf+4140j .text:0002D514 CMP R0, #0 .text:0002D518 B loc_2DDE0 .text:0002D51C ; --------------------------------------------------------------------------- .text:0002D51C SUB R3, R11, #-var_1000 .text:0002D520 SUB R4, R11, #-var_1000 .text:0002D524 LDR R3, [R3,#-0x90] .text:0002D528 SUB R5, R11, #-var_1000 .text:0002D52C LDR R4, [R4,#-0x90] .text:0002D530 SUB R12, R11, #-var_1000 .text:0002D534 LDR R5, [R5,#-0xEC] .text:0002D538 MOV R2, R3,LSL#1 .text:0002D53C ADD R3, R2, R4 .text:0002D540 ADD R3, R5, R3,LSL#4 .text:0002D544 CMP R3, #0 .text:0002D548 STR R2, [R12,#-0x148] .text:0002D54C BNE loc_2D56C .text:0002D550 MOV LR, R12 .text:0002D554 LDR R0, [LR,#-0x78] .text:0002D558 ADD R0, R0, #4 .text:0002D55C STR R0, [LR,#-0x78] .text:0002D560 SUB R0, R0, #4 .text:0002D564 LDR R2, [R0],#4 .text:0002D568 B loc_2D57C .text:0002D56C ; --------------------------------------------------------------------------- .text:0002D56C .text:0002D56C loc_2D56C ; CODE XREF: vfwprintf+41A0j .text:0002D56C LDR R3, [R3,#0x24] .text:0002D570 SUB R1, R11, #-var_1000 .text:0002D574 LDR R1, [R1,#-0xF4] .text:0002D578 LDR R2, [R1,R3,LSL#3] .text:0002D57C .text:0002D57C loc_2D57C ; CODE XREF: vfwprintf+41BCj .text:0002D57C CMP R2, #0 .text:0002D580 BEQ loc_2D5C4 .text:0002D584 MOV R4, #0x10 .text:0002D588 SUB R3, R11, #-var_1000 .text:0002D58C STR R4, [R3,#-0x10C] .text:0002D590 MOV R5, R3 .text:0002D594 STR R2, [R5,#-0x108] .text:0002D598 MOV LR, #0 .text:0002D59C MOV R12, R3 .text:0002D5A0 STR LR, [R12,#-0x100] .text:0002D5A4 MOV R1, #1 .text:0002D5A8 MOV R0, R3 .text:0002D5AC STR R1, [R0,#-0x110] .text:0002D5B0 MOV R2, R0 .text:0002D5B4 STR LR, [R2,#-0x120] .text:0002D5B8 ADD R4, R4, #0x68 .text:0002D5BC STR R4, [R3,#-0x144] .text:0002D5C0 B loc_2C984 .text:0002D5C4 ; --------------------------------------------------------------------------- .text:0002D5C4 .text:0002D5C4 loc_2D5C4 ; CODE XREF: vfwprintf+41D4j .text:0002D5C4 SUB R5, R11, #-var_1000 .text:0002D5C8 LDR R12, [R5,#-0x138] .text:0002D5CC MOV R5, R12 .text:0002D5D0 CMP R5, #4 .text:0002D5D4 MOVLE R12, #5 .text:0002D5D8 SUB R5, R11, #-var_1000 .text:0002D5DC STR R12, [R5,#-0x138] .text:0002D5E0 LDR R7, =dword_578A4 .text:0002D5E4 MOV R12, R5 .text:0002D5E8 STR R2, [R12,#-0x130] .text:0002D5EC B loc_2DA50 .text:0002D5F0 ; --------------------------------------------------------------------------- .text:0002D5F0 SUB LR, R11, #-var_1000 .text:0002D5F4 SUB R1, R11, #-var_1000 .text:0002D5F8 LDR LR, [LR,#-0x90] .text:0002D5FC SUB R4, R11, #-var_1000 .text:0002D600 LDR R1, [R1,#-0xEC] .text:0002D604 MOV R2, LR,LSL#1 .text:0002D608 ADD R3, R2, LR .text:0002D60C ADD R3, R1, R3,LSL#4 .text:0002D610 CMP R3, #0 .text:0002D614 STR R2, [R4,#-0x148] .text:0002D618 BNE loc_2D6D0 .text:0002D61C MOV R5, R4 .text:0002D620 LDR R5, [R5,#-0x124] .text:0002D624 CMP R5, #0 .text:0002D628 BEQ loc_2D654 .text:0002D62C MOV R12, R4 .text:0002D630 LDR LR, [R12,#-0x78] .text:0002D634 ADD LR, LR, #4 .text:0002D638 STR LR, [R12,#-0x78] .text:0002D63C SUB LR, LR, #4 .text:0002D640 LDR R2, [LR],#4 .text:0002D644 MOV R3, R10 .text:0002D648 MOV R4, R3,ASR#31 .text:0002D64C STMIA R2, {R3,R4} .text:0002D650 B loc_2DDE8 .text:0002D654 ; --------------------------------------------------------------------------- .text:0002D654 .text:0002D654 loc_2D654 ; CODE XREF: vfwprintf+427Cj .text:0002D654 SUB R0, R11, #-var_1000 .text:0002D658 LDR R0, [R0,#-0x12C] .text:0002D65C CMP R0, #0 .text:0002D660 BEQ loc_2D684 .text:0002D664 SUB R1, R11, #-var_1000 .text:0002D668 LDR R2, [R1,#-0x78] .text:0002D66C ADD R2, R2, #4 .text:0002D670 STR R2, [R1,#-0x78] .text:0002D674 SUB R2, R2, #4 .text:0002D678 LDR R3, [R2],#4 .text:0002D67C STRB R10, [R3] .text:0002D680 B loc_2DDE8 .text:0002D684 ; --------------------------------------------------------------------------- .text:0002D684 .text:0002D684 loc_2D684 ; CODE XREF: vfwprintf+42B4j .text:0002D684 SUB R3, R11, #-var_1000 .text:0002D688 LDR R3, [R3,#-0x128] .text:0002D68C CMP R3, #0 .text:0002D690 BNE loc_2D6B4 .text:0002D694 SUB R4, R11, #-var_1000 .text:0002D698 LDR R5, [R4,#-0x78] .text:0002D69C ADD R5, R5, #4 .text:0002D6A0 STR R5, [R4,#-0x78] .text:0002D6A4 SUB R5, R5, #4 .text:0002D6A8 LDR R3, [R5],#4 .text:0002D6AC STR R10, [R3] .text:0002D6B0 B loc_2DDE8 .text:0002D6B4 ; --------------------------------------------------------------------------- .text:0002D6B4 .text:0002D6B4 loc_2D6B4 ; CODE XREF: vfwprintf+42E4j .text:0002D6B4 SUB R12, R11, #-var_1000 .text:0002D6B8 LDR LR, [R12,#-0x78] .text:0002D6BC ADD LR, LR, #4 .text:0002D6C0 STR LR, [R12,#-0x78] .text:0002D6C4 SUB LR, LR, #4 .text:0002D6C8 LDR R2, [LR],#4 .text:0002D6CC B loc_2D760 .text:0002D6D0 ; --------------------------------------------------------------------------- .text:0002D6D0 .text:0002D6D0 loc_2D6D0 ; CODE XREF: vfwprintf+426Cj .text:0002D6D0 SUB R0, R11, #-var_1000 .text:0002D6D4 LDR R0, [R0,#-0x124] .text:0002D6D8 CMP R0, #0 .text:0002D6DC BEQ loc_2D700 .text:0002D6E0 LDR R3, [R3,#0x24] .text:0002D6E4 SUB R1, R11, #-var_1000 .text:0002D6E8 LDR R1, [R1,#-0xF4] .text:0002D6EC LDR R0, [R1,R3,LSL#3] .text:0002D6F0 MOV R1, R10 .text:0002D6F4 MOV R2, R1,ASR#31 .text:0002D6F8 STMIA R0, {R1,R2} .text:0002D6FC B loc_2DDE8 .text:0002D700 ; --------------------------------------------------------------------------- .text:0002D700 .text:0002D700 loc_2D700 ; CODE XREF: vfwprintf+4330j .text:0002D700 SUB R2, R11, #-var_1000 .text:0002D704 LDR R2, [R2,#-0x12C] .text:0002D708 CMP R2, #0 .text:0002D70C BEQ loc_2D728 .text:0002D710 LDR R3, [R3,#0x24] .text:0002D714 SUB R4, R11, #-var_1000 .text:0002D718 LDR R4, [R4,#-0xF4] .text:0002D71C LDR R2, [R4,R3,LSL#3] .text:0002D720 STRB R10, [R2] .text:0002D724 B loc_2DDE8 .text:0002D728 ; --------------------------------------------------------------------------- .text:0002D728 .text:0002D728 loc_2D728 ; CODE XREF: vfwprintf+4360j .text:0002D728 SUB R5, R11, #-var_1000 .text:0002D72C LDR R5, [R5,#-0x128] .text:0002D730 CMP R5, #0 .text:0002D734 BNE loc_2D750 .text:0002D738 LDR R3, [R3,#0x24] .text:0002D73C SUB R12, R11, #-var_1000 .text:0002D740 LDR R12, [R12,#-0xF4] .text:0002D744 LDR R2, [R12,R3,LSL#3] .text:0002D748 STR R10, [R2] .text:0002D74C B loc_2DDE8 .text:0002D750 ; --------------------------------------------------------------------------- .text:0002D750 .text:0002D750 loc_2D750 ; CODE XREF: vfwprintf+4388j .text:0002D750 LDR R3, [R3,#0x24] .text:0002D754 SUB LR, R11, #-var_1000 .text:0002D758 LDR LR, [LR,#-0xF4] .text:0002D75C LDR R2, [LR,R3,LSL#3] .text:0002D760 .text:0002D760 loc_2D760 ; CODE XREF: vfwprintf+4320j .text:0002D760 STRB R10, [R2] .text:0002D764 MOV R3, R10,ASR#8 .text:0002D768 STRB R3, [R2,#1] .text:0002D76C B loc_2DDE8 .text:0002D770 ; --------------------------------------------------------------------------- .text:0002D770 SUB R1, R11, #-var_1000 .text:0002D774 LDR R0, [R1,#-0x94] .text:0002D778 SUB R1, R11, #-var_FC0 .text:0002D77C SUB R1, R1, #8 .text:0002D780 MOV R2, #0xFA0 .text:0002D784 BL strerror_r .text:0002D788 MOV R7, R0 .text:0002D78C MOV R3, #0 .text:0002D790 SUB R2, R11, #-var_1000 .text:0002D794 STR R3, [R2,#-0x130] .text:0002D798 B loc_2DA50 .text:0002D79C ; --------------------------------------------------------------------------- .text:0002D79C SUB R4, R11, #-var_1000 .text:0002D7A0 LDR R4, [R4,#-0x130] .text:0002D7A4 CMP R4, #0 .text:0002D7A8 BNE loc_2D8C8 .text:0002D7AC SUB R5, R11, #-var_1000 .text:0002D7B0 LDR R5, [R5,#-0x134] .text:0002D7B4 SUB R12, R5, #1 .text:0002D7B8 SUB R5, R11, #-var_1000 .text:0002D7BC STR R12, [R5,#-0x134] .text:0002D7C0 MOV R12, R5 .text:0002D7C4 LDR R12, [R12,#-0x118] .text:0002D7C8 CMP R12, #0 .text:0002D7CC BNE loc_2D7F8 .text:0002D7D0 MOV LR, R5 .text:0002D7D4 LDR LR, [LR,#-0x134] .text:0002D7D8 CMP LR, #0 .text:0002D7DC BLE loc_2D7F8 .text:0002D7E0 MOV R0, R9 .text:0002D7E4 MOV R1, #0x20 .text:0002D7E8 MOV R3, R5 .text:0002D7EC LDR R2, [R3,#-0x134] .text:0002D7F0 BL _IO_wpadn .text:0002D7F4 ADD R10, R10, R0 .text:0002D7F8 .text:0002D7F8 loc_2D7F8 ; CODE XREF: vfwprintf+4420j .text:0002D7F8 ; vfwprintf+4430j .text:0002D7F8 SUB R4, R11, #-var_1000 .text:0002D7FC SUB R12, R11, #-var_1000 .text:0002D800 LDR R4, [R4,#-0x90] .text:0002D804 SUB LR, R11, #-var_1000 .text:0002D808 LDR R12, [R12,#-0xEC] .text:0002D80C MOV R2, R4,LSL#1 .text:0002D810 ADD R3, R2, R4 .text:0002D814 ADD R3, R12, R3,LSL#4 .text:0002D818 CMP R3, #0 .text:0002D81C STR R2, [LR,#-0x148] .text:0002D820 BNE loc_2D850 .text:0002D824 MOV R0, LR .text:0002D828 LDR R0, [R0,#-0x78] .text:0002D82C ADD R1, R0, #4 .text:0002D830 MOV R0, LR .text:0002D834 STR R1, [R0,#-0x78] .text:0002D838 LDRB R0, [R1,#-4] .text:0002D83C B loc_2D860 .text:0002D840 ; --------------------------------------------------------------------------- .text:0002D840 .text:0002D840 loc_2D840 ; CODE XREF: vfwprintf+44CCj .text:0002D840 MOV R0, R9 .text:0002D844 BL __woverflow .text:0002D848 CMN R0, #1 .text:0002D84C B loc_2D888 .text:0002D850 ; --------------------------------------------------------------------------- .text:0002D850 .text:0002D850 loc_2D850 ; CODE XREF: vfwprintf+4474j .text:0002D850 LDR R3, [R3,#0x24] .text:0002D854 SUB R2, R11, #-var_1000 .text:0002D858 LDR R2, [R2,#-0xF4] .text:0002D85C LDRB R0, [R2,R3,LSL#3] .text:0002D860 .text:0002D860 loc_2D860 ; CODE XREF: vfwprintf+4490j .text:0002D860 BL btowc .text:0002D864 LDR R12, [R9,#0x58] .text:0002D868 ADD R2, R12, #0x10 .text:0002D86C LDMIA R2, {R2,R3} .text:0002D870 MOV R1, R0 .text:0002D874 CMP R2, R3 .text:0002D878 BCS loc_2D840 .text:0002D87C STR R1, [R2],#4 .text:0002D880 CMN R1, #1 .text:0002D884 STR R2, [R12,#0x10] .text:0002D888 .text:0002D888 loc_2D888 ; CODE XREF: vfwprintf+44A0j .text:0002D888 BEQ loc_2B2B8 .text:0002D88C ADD R10, R10, #1 .text:0002D890 SUB R3, R11, #-var_1000 .text:0002D894 LDR R3, [R3,#-0x118] .text:0002D898 CMP R3, #0 .text:0002D89C BEQ loc_2DDE8 .text:0002D8A0 SUB R4, R11, #-var_1000 .text:0002D8A4 LDR R4, [R4,#-0x134] .text:0002D8A8 CMP R4, #0 .text:0002D8AC BLE loc_2DDE8 .text:0002D8B0 MOV R0, R9 .text:0002D8B4 MOV R1, #0x20 .text:0002D8B8 SUB R5, R11, #-var_1000 .text:0002D8BC LDR R2, [R5,#-0x134] .text:0002D8C0 BL _IO_wpadn .text:0002D8C4 B loc_2DDE4 .text:0002D8C8 ; --------------------------------------------------------------------------- .text:0002D8C8 .text:0002D8C8 loc_2D8C8 ; CODE XREF: vfwprintf+43FCj .text:0002D8C8 SUB R12, R11, #-var_1000 .text:0002D8CC LDR R12, [R12,#-0x134] .text:0002D8D0 SUB LR, R12, #1 .text:0002D8D4 SUB R12, R11, #-var_1000 .text:0002D8D8 STR LR, [R12,#-0x134] .text:0002D8DC MOV LR, R12 .text:0002D8E0 LDR LR, [LR,#-0x118] .text:0002D8E4 CMP LR, #0 .text:0002D8E8 BNE loc_2D914 .text:0002D8EC MOV R0, R12 .text:0002D8F0 LDR R0, [R0,#-0x134] .text:0002D8F4 CMP R0, #0 .text:0002D8F8 BLE loc_2D914 .text:0002D8FC MOV R0, R9 .text:0002D900 MOV R1, #0x20 .text:0002D904 MOV R3, R12 .text:0002D908 LDR R2, [R3,#-0x134] .text:0002D90C BL _IO_wpadn .text:0002D910 ADD R10, R10, R0 .text:0002D914 .text:0002D914 loc_2D914 ; CODE XREF: vfwprintf+453Cj .text:0002D914 ; vfwprintf+454Cj .text:0002D914 SUB R4, R11, #-var_1000 .text:0002D918 SUB R12, R11, #-var_1000 .text:0002D91C LDR R4, [R4,#-0x90] .text:0002D920 SUB LR, R11, #-var_1000 .text:0002D924 LDR R12, [R12,#-0xEC] .text:0002D928 MOV R2, R4,LSL#1 .text:0002D92C ADD R3, R2, R4 .text:0002D930 ADD R1, R12, R3,LSL#4 .text:0002D934 CMP R1, #0 .text:0002D938 STR R2, [LR,#-0x148] .text:0002D93C BNE loc_2D990 .text:0002D940 LDR R0, [R9,#0x58] .text:0002D944 ADD R2, R0, #0x10 .text:0002D948 LDMIA R2, {R2,R3} .text:0002D94C CMP R2, R3 .text:0002D950 MOV R3, LR .text:0002D954 LDR R4, [R3,#-0x78] .text:0002D958 ADD R4, R4, #4 .text:0002D95C STR R4, [R3,#-0x78] .text:0002D960 SUB R4, R4, #4 .text:0002D964 LDR R1, [R4],#4 .text:0002D968 BCC loc_2D97C .text:0002D96C .text:0002D96C loc_2D96C ; CODE XREF: vfwprintf+4604j .text:0002D96C MOV R0, R9 .text:0002D970 BL __woverflow .text:0002D974 CMN R0, #1 .text:0002D978 B loc_2D9C0 .text:0002D97C ; --------------------------------------------------------------------------- .text:0002D97C .text:0002D97C loc_2D97C ; CODE XREF: vfwprintf+45BCj .text:0002D97C STR R1, [R2],#4 .text:0002D980 CMN R1, #1 .text:0002D984 STR R2, [R0,#0x10] .text:0002D988 B loc_2D9C0 .text:0002D988 ; --------------------------------------------------------------------------- .text:0002D98C off_2D98C DCD dword_578A4 ; DATA XREF: vfwprintf+4234r .text:0002D990 ; --------------------------------------------------------------------------- .text:0002D990 .text:0002D990 loc_2D990 ; CODE XREF: vfwprintf+4590j .text:0002D990 LDR R12, [R9,#0x58] .text:0002D994 LDR R2, [R1,#0x24] .text:0002D998 SUB R5, R11, #-var_1000 .text:0002D99C LDR R5, [R5,#-0xF4] .text:0002D9A0 ADD R0, R12, #0x10 .text:0002D9A4 LDMIA R0, {R0,R3} .text:0002D9A8 LDR R1, [R5,R2,LSL#3] .text:0002D9AC CMP R0, R3 .text:0002D9B0 BCS loc_2D96C .text:0002D9B4 STR R1, [R0],#4 .text:0002D9B8 CMN R1, #1 .text:0002D9BC STR R0, [R12,#0x10] .text:0002D9C0 .text:0002D9C0 loc_2D9C0 ; CODE XREF: vfwprintf+45CCj .text:0002D9C0 ; vfwprintf+45DCj .text:0002D9C0 BEQ loc_2B2B8 .text:0002D9C4 ADD R10, R10, #1 .text:0002D9C8 SUB R12, R11, #-var_1000 .text:0002D9CC LDR R12, [R12,#-0x118] .text:0002D9D0 CMP R12, #0 .text:0002D9D4 BEQ loc_2DDE8 .text:0002D9D8 SUB LR, R11, #-var_1000 .text:0002D9DC LDR LR, [LR,#-0x134] .text:0002D9E0 CMP LR, #0 .text:0002D9E4 BLE loc_2DDE8 .text:0002D9E8 MOV R0, R9 .text:0002D9EC MOV R1, #0x20 .text:0002D9F0 SUB R3, R11, #-var_1000 .text:0002D9F4 LDR R2, [R3,#-0x134] .text:0002D9F8 BL _IO_wpadn .text:0002D9FC B loc_2DDE4 .text:0002DA00 ; --------------------------------------------------------------------------- .text:0002DA00 SUB R4, R11, #-var_1000 .text:0002DA04 LDR R5, [R4,#-0x90] .text:0002DA08 MOV R4, R5 .text:0002DA0C ADD R3, R5, R4,LSL#1 .text:0002DA10 SUB R5, R11, #-var_1000 .text:0002DA14 LDR R5, [R5,#-0xEC] .text:0002DA18 ADD R3, R5, R3,LSL#4 .text:0002DA1C CMP R3, #0 .text:0002DA20 BNE loc_2DA40 .text:0002DA24 SUB R12, R11, #-var_1000 .text:0002DA28 LDR LR, [R12,#-0x78] .text:0002DA2C ADD LR, LR, #4 .text:0002DA30 STR LR, [R12,#-0x78] .text:0002DA34 SUB LR, LR, #4 .text:0002DA38 LDR R7, [LR],#4 .text:0002DA3C B loc_2DA50 .text:0002DA40 ; --------------------------------------------------------------------------- .text:0002DA40 .text:0002DA40 loc_2DA40 ; CODE XREF: vfwprintf+4674j .text:0002DA40 LDR R3, [R3,#0x24] .text:0002DA44 SUB R0, R11, #-var_1000 .text:0002DA48 LDR R0, [R0,#-0xF4] .text:0002DA4C LDR R7, [R0,R3,LSL#3] .text:0002DA50 .text:0002DA50 loc_2DA50 ; CODE XREF: vfwprintf+4240j .text:0002DA50 ; vfwprintf+43ECj ... .text:0002DA50 MOV R8, #0 .text:0002DA54 CMP R7, R8 .text:0002DA58 BNE loc_2DA98 .text:0002DA5C SUB R1, R11, #-var_1000 .text:0002DA60 LDR R1, [R1,#-0x138] .text:0002DA64 CMP R1, #5 .text:0002DA68 MOVLE R3, #0 .text:0002DA6C MOVGT R3, #1 .text:0002DA70 CMN R1, #1 .text:0002DA74 MOVNE R0, R3 .text:0002DA78 MOVEQ R0, #1 .text:0002DA7C CMP R0, R8 .text:0002DA80 MOVNE R5, #6 .text:0002DA84 LDRNE R7, =null_0 .text:0002DA88 BNE loc_2DB9C .text:0002DA8C MOV R5, R0 .text:0002DA90 LDR R7, =dword_578BC .text:0002DA94 B loc_2DB9C .text:0002DA98 ; --------------------------------------------------------------------------- .text:0002DA98 .text:0002DA98 loc_2DA98 ; CODE XREF: vfwprintf+46ACj .text:0002DA98 SUB R4, R11, #-var_1000 .text:0002DA9C LDR R4, [R4,#-0x144] .text:0002DAA0 SUB R5, R11, #-var_1000 .text:0002DAA4 LDR R5, [R5,#-0x130] .text:0002DAA8 SUBS R3, R4, #0x53 .text:0002DAAC MOVNE R3, #1 .text:0002DAB0 CMP R5, #0 .text:0002DAB4 MOVNE R3, #0 .text:0002DAB8 CMP R3, #0 .text:0002DABC BEQ loc_2DB6C .text:0002DAC0 MOV R3, 0xFFFFEFB4 .text:0002DAC8 SUB R12, R11, #-var_1000 .text:0002DACC LDR R12, [R12,#-0x138] .text:0002DAD0 SUB LR, R11, #-var_28 .text:0002DAD4 STR R7, [LR,R3] .text:0002DAD8 CMN R12, #1 .text:0002DADC BNE loc_2DAF0 .text:0002DAE0 MOV R0, R7 .text:0002DAE4 BL strlen .text:0002DAE8 MOV R5, R0 .text:0002DAEC B loc_2DAF8 .text:0002DAF0 ; --------------------------------------------------------------------------- .text:0002DAF0 .text:0002DAF0 loc_2DAF0 ; CODE XREF: vfwprintf+4730j .text:0002DAF0 SUB R0, R11, #-var_1000 .text:0002DAF4 LDR R5, [R0,#-0x138] .text:0002DAF8 .text:0002DAF8 loc_2DAF8 ; CODE XREF: vfwprintf+4740j .text:0002DAF8 CMP R5, #0x2000 .text:0002DAFC MOV R4, R5,LSL#2 .text:0002DB00 BCC loc_2DB14 .text:0002DB04 MOV R0, R4 .text:0002DB08 BL malloc .text:0002DB0C SUBS R7, R0, #0 .text:0002DB10 BNE loc_2DB20 .text:0002DB14 .text:0002DB14 loc_2DB14 ; CODE XREF: vfwprintf+4754j .text:0002DB14 RSB SP, R4, SP .text:0002DB18 ADD R7, SP, #0x1754+var_1750 .text:0002DB1C B loc_2DB24 .text:0002DB20 ; --------------------------------------------------------------------------- .text:0002DB20 .text:0002DB20 loc_2DB20 ; CODE XREF: vfwprintf+4764j .text:0002DB20 MOV R8, #1 .text:0002DB24 .text:0002DB24 loc_2DB24 ; CODE XREF: vfwprintf+4770j .text:0002DB24 SUB R4, R11, #-var_1040 .text:0002DB28 SUB R4, R4, #0x28 .text:0002DB2C SUB R4, R4, #8 .text:0002DB30 MOV R0, R4 .text:0002DB34 MOV R1, #0 .text:0002DB38 MOV R2, #8 .text:0002DB3C BL memset .text:0002DB40 MOV R0, R7 .text:0002DB44 SUB R1, R11, #-var_1040 .text:0002DB48 SUB R1, R1, #0x28 .text:0002DB4C SUB R1, R1, #0xC .text:0002DB50 MOV R2, R5 .text:0002DB54 MOV R3, R4 .text:0002DB58 BL mbsrtowcs .text:0002DB5C MOV R5, R0 .text:0002DB60 CMN R5, #1 .text:0002DB64 BNE loc_2DB9C .text:0002DB68 B loc_2B2B8 .text:0002DB6C ; --------------------------------------------------------------------------- .text:0002DB6C .text:0002DB6C loc_2DB6C ; CODE XREF: vfwprintf+4710j .text:0002DB6C SUB R1, R11, #-var_1000 .text:0002DB70 LDR R1, [R1,#-0x138] .text:0002DB74 CMN R1, #1 .text:0002DB78 BEQ loc_2DB90 .text:0002DB7C MOV R0, R7 .text:0002DB80 SUB R2, R11, #-var_1000 .text:0002DB84 LDR R1, [R2,#-0x138] .text:0002DB88 BL wcsnlen .text:0002DB8C B loc_2DB98 .text:0002DB90 ; --------------------------------------------------------------------------- .text:0002DB90 .text:0002DB90 loc_2DB90 ; CODE XREF: vfwprintf+47CCj .text:0002DB90 MOV R0, R7 .text:0002DB94 BL wcslen .text:0002DB98 .text:0002DB98 loc_2DB98 ; CODE XREF: vfwprintf+47E0j .text:0002DB98 MOV R5, R0 .text:0002DB9C .text:0002DB9C loc_2DB9C ; CODE XREF: vfwprintf+46DCj .text:0002DB9C ; vfwprintf+46E8j ... .text:0002DB9C SUB R3, R11, #-var_1000 .text:0002DBA0 LDR R3, [R3,#-0x134] .text:0002DBA4 SUBS R4, R3, R5 .text:0002DBA8 SUB R3, R11, #-var_1000 .text:0002DBAC STR R4, [R3,#-0x134] .text:0002DBB0 BPL loc_2DBFC .text:0002DBB4 MOV R0, R9 .text:0002DBB8 LDRB R3, [R9,#0x46] .text:0002DBBC MOV R1, R7 .text:0002DBC0 MOV R3, R3,LSL#24 .text:0002DBC4 ADD R3, R9, R3,ASR#24 .text:0002DBC8 LDR R12, [R3,#0x94] .text:0002DBCC MOV R2, R5 .text:0002DBD0 MOV LR, PC .text:0002DBD4 LDR PC, [R12,#0x1C] .text:0002DBD8 CMP R0, R5 .text:0002DBDC BNE loc_2B2B8 .text:0002DBE0 ADD R10, R10, R5 .text:0002DBE4 SUB R4, R11, #-var_1000 .text:0002DBE8 LDR R4, [R4,#-0x90] .text:0002DBEC MOV R5, R4,LSL#1 .text:0002DBF0 SUB R4, R11, #-var_1000 .text:0002DBF4 STR R5, [R4,#-0x148] .text:0002DBF8 B loc_2DDE8 .text:0002DBFC ; --------------------------------------------------------------------------- .text:0002DBFC .text:0002DBFC loc_2DBFC ; CODE XREF: vfwprintf+4804j .text:0002DBFC SUB R12, R11, #-var_1000 .text:0002DC00 LDR R12, [R12,#-0x118] .text:0002DC04 CMP R12, #0 .text:0002DC08 BNE loc_2DC34 .text:0002DC0C SUB LR, R11, #-var_1000 .text:0002DC10 LDR LR, [LR,#-0x134] .text:0002DC14 CMP LR, #0 .text:0002DC18 BLE loc_2DC34 .text:0002DC1C MOV R0, R9 .text:0002DC20 MOV R1, #0x20 .text:0002DC24 SUB R3, R11, #-var_1000 .text:0002DC28 LDR R2, [R3,#-0x134] .text:0002DC2C BL _IO_wpadn .text:0002DC30 ADD R10, R10, R0 .text:0002DC34 .text:0002DC34 loc_2DC34 ; CODE XREF: vfwprintf+485Cj .text:0002DC34 ; vfwprintf+486Cj .text:0002DC34 MOV R0, R9 .text:0002DC38 LDRB R3, [R9,#0x46] .text:0002DC3C MOV R1, R7 .text:0002DC40 MOV R3, R3,LSL#24 .text:0002DC44 ADD R3, R9, R3,ASR#24 .text:0002DC48 LDR R12, [R3,#0x94] .text:0002DC4C MOV R2, R5 .text:0002DC50 MOV LR, PC .text:0002DC54 LDR PC, [R12,#0x1C] .text:0002DC58 CMP R0, R5 .text:0002DC5C BNE loc_2B2B8 .text:0002DC60 ADD R10, R10, R5 .text:0002DC64 SUB R4, R11, #-var_1000 .text:0002DC68 LDR R4, [R4,#-0x118] .text:0002DC6C CMP R4, #0 .text:0002DC70 BEQ loc_2DC9C .text:0002DC74 SUB R5, R11, #-var_1000 .text:0002DC78 LDR R5, [R5,#-0x134] .text:0002DC7C CMP R5, #0 .text:0002DC80 BLE loc_2DC9C .text:0002DC84 MOV R0, R9 .text:0002DC88 MOV R1, #0x20 .text:0002DC8C SUB R12, R11, #-var_1000 .text:0002DC90 LDR R2, [R12,#-0x134] .text:0002DC94 BL _IO_wpadn .text:0002DC98 ADD R10, R10, R0 .text:0002DC9C .text:0002DC9C loc_2DC9C ; CODE XREF: vfwprintf+48C4j .text:0002DC9C ; vfwprintf+48D4j .text:0002DC9C SUB LR, R11, #-var_1000 .text:0002DCA0 LDR LR, [LR,#-0x90] .text:0002DCA4 CMP R8, #0 .text:0002DCA8 MOV R0, LR,LSL#1 .text:0002DCAC SUB LR, R11, #-var_1000 .text:0002DCB0 STR R0, [LR,#-0x148] .text:0002DCB4 BEQ loc_2DDE8 .text:0002DCB8 MOV R0, R7 .text:0002DCBC BL free .text:0002DCC0 B loc_2DDE8 .text:0002DCC4 ; --------------------------------------------------------------------------- .text:0002DCC4 .text:0002DCC4 loc_2DCC4 ; DATA XREF: vfwprintf:loc_2C464o .text:0002DCC4 ; vfwprintf:off_2C5F8o .text:0002DCC4 LDR R3, =__printf_function_table .text:0002DCC8 LDR R0, [R3] .text:0002DCCC CMP R0, #0 .text:0002DCD0 BEQ loc_2DD10 .text:0002DCD4 SUB R1, R11, #-var_1000 .text:0002DCD8 LDR R1, [R1,#-0x90] .text:0002DCDC SUB R5, R11, #-var_1000 .text:0002DCE0 LDR R5, [R5,#-0xEC] .text:0002DCE4 MOV R3, R1,LSL#1 .text:0002DCE8 ADD R2, R3, R1 .text:0002DCEC ADD R2, R5, R2,LSL#4 .text:0002DCF0 LDR R1, [R2,#8] .text:0002DCF4 SUB R12, R11, #-var_1000 .text:0002DCF8 STR R3, [R12,#-0x148] .text:0002DCFC LDR R12, [R0,R1,LSL#2] .text:0002DD00 B loc_2DD28 .text:0002DD00 ; --------------------------------------------------------------------------- .text:0002DD04 off_2DD04 DCD null_0 ; DATA XREF: vfwprintf+46D8r .text:0002DD08 off_2DD08 DCD dword_578BC ; DATA XREF: vfwprintf+46E4r .text:0002DD0C off_2DD0C DCD __printf_function_table ; DATA XREF: vfwprintf:loc_2DCC4r .text:0002DD10 ; --------------------------------------------------------------------------- .text:0002DD10 .text:0002DD10 loc_2DD10 ; CODE XREF: vfwprintf+4924j .text:0002DD10 SUB LR, R11, #-var_1000 .text:0002DD14 LDR LR, [LR,#-0x90] .text:0002DD18 MOV R12, R0 .text:0002DD1C MOV R0, LR,LSL#1 .text:0002DD20 SUB LR, R11, #-var_1000 .text:0002DD24 STR R0, [LR,#-0x148] .text:0002DD28 .text:0002DD28 loc_2DD28 ; CODE XREF: vfwprintf+4954j .text:0002DD28 SUB R1, R11, #-var_1000 .text:0002DD2C LDR R2, [R1,#-0x148] .text:0002DD30 MOV R0, #0 .text:0002DD34 LDR R1, [R1,#-0x90] .text:0002DD38 CMP R12, R0 .text:0002DD3C ADD R3, R2, R1 .text:0002DD40 SUB R2, R11, #-var_1000 .text:0002DD44 LDR R2, [R2,#-0xEC] .text:0002DD48 LDR R1, =printf_unknown_0 .text:0002DD4C ADD R3, R2, R3,LSL#4 .text:0002DD50 MOVEQ R12, R1 .text:0002DD54 LDR R2, [R3,#0x2C] .text:0002DD58 SUB R3, R11, #-var_1000 .text:0002DD5C LDR R4, [R3,#-0x148] .text:0002DD60 SUB SP, SP, R2,LSL#2 .text:0002DD64 CMP R0, R2 .text:0002DD68 ADD LR, SP, #0x1754+var_1750 .text:0002DD6C BCS loc_2DDB0 .text:0002DD70 .text:0002DD70 loc_2DD70 ; CODE XREF: vfwprintf+4A00j .text:0002DD70 SUB R5, R11, #-var_1000 .text:0002DD74 LDR R5, [R5,#-0x90] .text:0002DD78 SUB R1, R11, #-var_1000 .text:0002DD7C LDR R1, [R1,#-0xEC] .text:0002DD80 ADD R3, R4, R5 .text:0002DD84 ADD R3, R1, R3,LSL#4 .text:0002DD88 LDR R2, [R3,#0x24] .text:0002DD8C SUB R5, R11, #-var_1000 .text:0002DD90 LDR R5, [R5,#-0xF4] .text:0002DD94 ADD R2, R2, R0 .text:0002DD98 ADD R2, R5, R2,LSL#3 .text:0002DD9C STR R2, [LR,R0,LSL#2] .text:0002DDA0 LDR R1, [R3,#0x2C] .text:0002DDA4 ADD R0, R0, #1 .text:0002DDA8 CMP R0, R1 .text:0002DDAC BCC loc_2DD70 .text:0002DDB0 .text:0002DDB0 loc_2DDB0 ; CODE XREF: vfwprintf+49C0j .text:0002DDB0 SUB R2, R11, #-var_1000 .text:0002DDB4 LDR R3, [R2,#-0x148] .text:0002DDB8 LDR R2, [R2,#-0x90] .text:0002DDBC MOV R0, R9 .text:0002DDC0 ADD R1, R3, R2 .text:0002DDC4 SUB R3, R11, #-var_1000 .text:0002DDC8 LDR R3, [R3,#-0xEC] .text:0002DDCC MOV R2, LR .text:0002DDD0 ADD R1, R3, R1,LSL#4 .text:0002DDD4 MOV LR, PC .text:0002DDD8 MOV PC, R12 .text:0002DDDC CMP R0, #0 .text:0002DDE0 .text:0002DDE0 loc_2DDE0 ; CODE XREF: vfwprintf+3F74j .text:0002DDE0 ; vfwprintf+416Cj .text:0002DDE0 BLT loc_2B2B8 .text:0002DDE4 .text:0002DDE4 loc_2DDE4 ; CODE XREF: vfwprintf+3AE8j .text:0002DDE4 ; vfwprintf+3D6Cj ... .text:0002DDE4 ADD R10, R10, R0 .text:0002DDE8 .text:0002DDE8 loc_2DDE8 ; CODE XREF: vfwprintf+3110j .text:0002DDE8 ; vfwprintf+3D54j ... .text:0002DDE8 SUB R5, R11, #-var_1000 .text:0002DDEC LDR R12, [R5,#-0x148] .text:0002DDF0 LDR R5, [R5,#-0x90] .text:0002DDF4 ADD R4, R12, R5 .text:0002DDF8 SUB R12, R11, #-var_1000 .text:0002DDFC LDR R12, [R12,#-0xEC] .text:0002DE00 MOV R0, R9 .text:0002DE04 LDRB R3, [R9,#0x46] .text:0002DE08 ADD R4, R12, R4,LSL#4 .text:0002DE0C LDR R1, [R4,#0x14] .text:0002DE10 MOV R3, R3,LSL#24 .text:0002DE14 ADD LR, R4, #0x18 .text:0002DE18 LDMDA LR, {R2,LR} .text:0002DE1C SUB R2, LR, R2 .text:0002DE20 ADD R3, R9, R3,ASR#24 .text:0002DE24 LDR R12, [R3,#0x94] .text:0002DE28 MOV R2, R2,ASR#2 .text:0002DE2C MOV LR, PC .text:0002DE30 LDR PC, [R12,#0x1C] .text:0002DE34 ADD R1, R4, #0x18 .text:0002DE38 LDMDA R1, {R1,R3} .text:0002DE3C SUB R3, R3, R1 .text:0002DE40 CMP R0, R3,ASR#2 .text:0002DE44 BNE loc_2B2B8 .text:0002DE48 ADD R10, R10, R0 .text:0002DE4C ADD R3, R5, #1 .text:0002DE50 SUB R2, R11, #-var_1000 .text:0002DE54 STR R3, [R2,#-0x90] .text:0002DE58 MOV R4, R2 .text:0002DE5C LDR R4, [R4,#-0xE4] .text:0002DE60 CMP R3, R4 .text:0002DE64 BCC loc_2C274 .text:0002DE68 .text:0002DE68 loc_2DE68 ; CODE XREF: vfwprintf+194j .text:0002DE68 ; vfwprintf+1F10j ... .text:0002DE68 LDR R3, [R9] .text:0002DE6C TST R3, #0x8000 .text:0002DE70 BNE loc_2DE7C .text:0002DE74 MOV R0, R9 .text:0002DE78 BL funlockfile .text:0002DE7C .text:0002DE7C loc_2DE7C ; CODE XREF: vfwprintf+4AC4j .text:0002DE7C SUB R5, R11, #-var_1000 .text:0002DE80 LDR R5, [R5,#-0x98] .text:0002DE84 CMP R5, #0 .text:0002DE88 BEQ loc_2DE9C .text:0002DE8C SUB R0, R11, #-var_FD0 .text:0002DE90 SUB R0, R0, #8 .text:0002DE94 MOV R1, #0 .text:0002DE98 BL 0 .text:0002DE9C .text:0002DE9C loc_2DE9C ; CODE XREF: vfwprintf+4ADCj .text:0002DE9C MOV R0, R10 .text:0002DEA0 .text:0002DEA0 loc_2DEA0 ; CODE XREF: vfwprintf+B4j .text:0002DEA0 ; vfwprintf+2100j .text:0002DEA0 B locret_2DEA8 .text:0002DEA0 ; --------------------------------------------------------------------------- .text:0002DEA4 off_2DEA4 DCD printf_unknown_0 ; DATA XREF: vfwprintf+499Cr .text:0002DEA8 ; --------------------------------------------------------------------------- .text:0002DEA8 .text:0002DEA8 locret_2DEA8 ; CODE XREF: vfwprintf:loc_2DEA0j .text:0002DEA8 LDMDB R11, {R4-R11,SP,PC} .text:0002DEA8 ; End of function vfwprintf .text:0002DEA8 .text:0002DEAC .text:0002DEAC ; =============== S U B R O U T I N E ======================================= .text:0002DEAC .text:0002DEAC ; Attributes: bp-based frame .text:0002DEAC .text:0002DEAC printf_unknown_0 ; DATA XREF: vfwprintf+499Co .text:0002DEAC ; vfwprintf:off_2DEA4o .text:0002DEAC MOV R12, SP .text:0002DEB0 STMFD SP!, {R4-R12,LR,PC} .text:0002DEB4 MOV R8, R1 .text:0002DEB8 LDR R3, [R8,#8] .text:0002DEBC SUB R11, R12, #4 .text:0002DEC0 LDR R2, [R8,#4] .text:0002DEC4 MOV R5, R0 .text:0002DEC8 CMP R3, R2 .text:0002DECC MOVLT R3, R2 .text:0002DED0 ADD R3, R3, #0x20 .text:0002DED4 MOV R3, R3,LSL#5 .text:0002DED8 SUB SP, SP, R3,LSR#3 .text:0002DEDC ADD R9, SP, R3,LSR#3 .text:0002DEE0 LDR R1, [R5,#0x58] .text:0002DEE4 ADD R2, R1, #0x10 .text:0002DEE8 LDMIA R2, {R2,R3} .text:0002DEEC CMP R2, R3 .text:0002DEF0 BCC loc_2DF08 .text:0002DEF4 MOV R1, #0x25 .text:0002DEF8 BL __woverflow .text:0002DEFC CMN R0, #1 .text:0002DF00 BEQ loc_2E1C8 .text:0002DF04 B loc_2DF14 .text:0002DF08 ; --------------------------------------------------------------------------- .text:0002DF08 .text:0002DF08 loc_2DF08 ; CODE XREF: printf_unknown_0+44j .text:0002DF08 MOV R3, #0x25 .text:0002DF0C STR R3, [R2],#4 .text:0002DF10 STR R2, [R1,#0x10] .text:0002DF14 .text:0002DF14 loc_2DF14 ; CODE XREF: printf_unknown_0+58j .text:0002DF14 MOV R6, #1 .text:0002DF18 LDRB R3, [R8,#0xC] .text:0002DF1C TST R3, #8 .text:0002DF20 BEQ loc_2DF64 .text:0002DF24 LDR R1, [R5,#0x58] .text:0002DF28 ADD R2, R1, #0x10 .text:0002DF2C LDMIA R2, {R2,R3} .text:0002DF30 CMP R2, R3 .text:0002DF34 BCC loc_2DF50 .text:0002DF38 MOV R0, R5 .text:0002DF3C MOV R1, #0x23 .text:0002DF40 BL __woverflow .text:0002DF44 CMN R0, #1 .text:0002DF48 BEQ loc_2E29C .text:0002DF4C B loc_2DF5C .text:0002DF50 ; --------------------------------------------------------------------------- .text:0002DF50 .text:0002DF50 loc_2DF50 ; CODE XREF: printf_unknown_0+88j .text:0002DF50 MOV R3, #0x23 .text:0002DF54 STR R3, [R2],#4 .text:0002DF58 STR R2, [R1,#0x10] .text:0002DF5C .text:0002DF5C loc_2DF5C ; CODE XREF: printf_unknown_0+A0j .text:0002DF5C MOV R6, #2 .text:0002DF60 LDRB R3, [R8,#0xC] .text:0002DF64 .text:0002DF64 loc_2DF64 ; CODE XREF: printf_unknown_0+74j .text:0002DF64 MOVS R2, R3,LSR#7 .text:0002DF68 BEQ loc_2DFAC .text:0002DF6C LDR R1, [R5,#0x58] .text:0002DF70 ADD R2, R1, #0x10 .text:0002DF74 LDMIA R2, {R2,R3} .text:0002DF78 CMP R2, R3 .text:0002DF7C BCC loc_2DF98 .text:0002DF80 MOV R0, R5 .text:0002DF84 MOV R1, #0x27 .text:0002DF88 BL __woverflow .text:0002DF8C CMN R0, #1 .text:0002DF90 BEQ loc_2E29C .text:0002DF94 B loc_2DFA4 .text:0002DF98 ; --------------------------------------------------------------------------- .text:0002DF98 .text:0002DF98 loc_2DF98 ; CODE XREF: printf_unknown_0+D0j .text:0002DF98 MOV R3, #0x27 .text:0002DF9C STR R3, [R2],#4 .text:0002DFA0 STR R2, [R1,#0x10] .text:0002DFA4 .text:0002DFA4 loc_2DFA4 ; CODE XREF: printf_unknown_0+E8j .text:0002DFA4 ADD R6, R6, #1 .text:0002DFA8 LDRB R3, [R8,#0xC] .text:0002DFAC .text:0002DFAC loc_2DFAC ; CODE XREF: printf_unknown_0+BCj .text:0002DFAC AND R2, R3, #0xFF .text:0002DFB0 TST R2, #0x40 .text:0002DFB4 BEQ loc_2DFEC .text:0002DFB8 LDR R1, [R5,#0x58] .text:0002DFBC ADD R2, R1, #0x10 .text:0002DFC0 LDMIA R2, {R2,R3} .text:0002DFC4 CMP R2, R3 .text:0002DFC8 BCC loc_2DFE4 .text:0002DFCC MOV R0, R5 .text:0002DFD0 MOV R1, #0x2B .text:0002DFD4 .text:0002DFD4 loc_2DFD4 ; CODE XREF: printf_unknown_0+160j .text:0002DFD4 BL __woverflow .text:0002DFD8 CMN R0, #1 .text:0002DFDC BEQ loc_2E29C .text:0002DFE0 B loc_2E01C .text:0002DFE4 ; --------------------------------------------------------------------------- .text:0002DFE4 .text:0002DFE4 loc_2DFE4 ; CODE XREF: printf_unknown_0+11Cj .text:0002DFE4 MOV R3, #0x2B .text:0002DFE8 B loc_2E014 .text:0002DFEC ; --------------------------------------------------------------------------- .text:0002DFEC .text:0002DFEC loc_2DFEC ; CODE XREF: printf_unknown_0+108j .text:0002DFEC TST R2, #0x10 .text:0002DFF0 BEQ loc_2E024 .text:0002DFF4 LDR R1, [R5,#0x58] .text:0002DFF8 ADD R2, R1, #0x10 .text:0002DFFC LDMIA R2, {R2,R3} .text:0002E000 CMP R2, R3 .text:0002E004 MOVCS R0, R5 .text:0002E008 MOVCS R1, #0x20 .text:0002E00C BCS loc_2DFD4 .text:0002E010 MOV R3, #0x20 .text:0002E014 .text:0002E014 loc_2E014 ; CODE XREF: printf_unknown_0+13Cj .text:0002E014 STR R3, [R2],#4 .text:0002E018 STR R2, [R1,#0x10] .text:0002E01C .text:0002E01C loc_2E01C ; CODE XREF: printf_unknown_0+134j .text:0002E01C ADD R6, R6, #1 .text:0002E020 LDRB R3, [R8,#0xC] .text:0002E024 .text:0002E024 loc_2E024 ; CODE XREF: printf_unknown_0+144j .text:0002E024 TST R3, #0x20 .text:0002E028 BEQ loc_2E068 .text:0002E02C LDR R1, [R5,#0x58] .text:0002E030 ADD R2, R1, #0x10 .text:0002E034 LDMIA R2, {R2,R3} .text:0002E038 CMP R2, R3 .text:0002E03C BCC loc_2E058 .text:0002E040 MOV R0, R5 .text:0002E044 MOV R1, #0x2D .text:0002E048 BL __woverflow .text:0002E04C CMN R0, #1 .text:0002E050 BEQ loc_2E29C .text:0002E054 B loc_2E064 .text:0002E058 ; --------------------------------------------------------------------------- .text:0002E058 .text:0002E058 loc_2E058 ; CODE XREF: printf_unknown_0+190j .text:0002E058 MOV R3, #0x2D .text:0002E05C STR R3, [R2],#4 .text:0002E060 STR R2, [R1,#0x10] .text:0002E064 .text:0002E064 loc_2E064 ; CODE XREF: printf_unknown_0+1A8j .text:0002E064 ADD R6, R6, #1 .text:0002E068 .text:0002E068 loc_2E068 ; CODE XREF: printf_unknown_0+17Cj .text:0002E068 LDR R1, [R8,#0x10] .text:0002E06C CMP R1, #0x30 .text:0002E070 BNE loc_2E0A8 .text:0002E074 LDR R0, [R5,#0x58] .text:0002E078 ADD R2, R0, #0x10 .text:0002E07C LDMIA R2, {R2,R3} .text:0002E080 CMP R2, R3 .text:0002E084 BCC loc_2E09C .text:0002E088 MOV R0, R5 .text:0002E08C BL __woverflow .text:0002E090 CMN R0, #1 .text:0002E094 BEQ loc_2E29C .text:0002E098 B loc_2E0A4 .text:0002E09C ; --------------------------------------------------------------------------- .text:0002E09C .text:0002E09C loc_2E09C ; CODE XREF: printf_unknown_0+1D8j .text:0002E09C STR R1, [R2],#4 .text:0002E0A0 STR R2, [R0,#0x10] .text:0002E0A4 .text:0002E0A4 loc_2E0A4 ; CODE XREF: printf_unknown_0+1ECj .text:0002E0A4 ADD R6, R6, #1 .text:0002E0A8 .text:0002E0A8 loc_2E0A8 ; CODE XREF: printf_unknown_0+1C4j .text:0002E0A8 LDRB R3, [R8,#0xD] .text:0002E0AC TST R3, #8 .text:0002E0B0 BEQ loc_2E0F0 .text:0002E0B4 LDR R1, [R5,#0x58] .text:0002E0B8 ADD R2, R1, #0x10 .text:0002E0BC LDMIA R2, {R2,R3} .text:0002E0C0 CMP R2, R3 .text:0002E0C4 BCC loc_2E0E0 .text:0002E0C8 MOV R0, R5 .text:0002E0CC MOV R1, #0x49 .text:0002E0D0 BL __woverflow .text:0002E0D4 CMN R0, #1 .text:0002E0D8 BEQ loc_2E29C .text:0002E0DC B loc_2E0EC .text:0002E0E0 ; --------------------------------------------------------------------------- .text:0002E0E0 .text:0002E0E0 loc_2E0E0 ; CODE XREF: printf_unknown_0+218j .text:0002E0E0 MOV R3, #0x49 .text:0002E0E4 STR R3, [R2],#4 .text:0002E0E8 STR R2, [R1,#0x10] .text:0002E0EC .text:0002E0EC loc_2E0EC ; CODE XREF: printf_unknown_0+230j .text:0002E0EC ADD R6, R6, #1 .text:0002E0F0 .text:0002E0F0 loc_2E0F0 ; CODE XREF: printf_unknown_0+204j .text:0002E0F0 LDR R0, [R8,#4] .text:0002E0F4 CMP R0, #0 .text:0002E0F8 BEQ loc_2E180 .text:0002E0FC MOV R4, R0 .text:0002E100 MOV R7, R9 .text:0002E104 LDR R10, =_itowa_lower_digits .text:0002E108 .text:0002E108 loc_2E108 ; CODE XREF: printf_unknown_0+280j .text:0002E108 MOV R0, R4 .text:0002E10C MOV R1, #0xA .text:0002E110 BL __umodsi3 .text:0002E114 LDR R3, [R10,R0,LSL#2] .text:0002E118 STR R3, [R7,#-4]! .text:0002E11C MOV R0, R4 .text:0002E120 MOV R1, #0xA .text:0002E124 BL __udivsi3 .text:0002E128 SUBS R4, R0, #0 .text:0002E12C BNE loc_2E108 .text:0002E130 MOV R4, R7 .text:0002E134 CMP R4, R9 .text:0002E138 BCS loc_2E180 .text:0002E13C .text:0002E13C loc_2E13C ; CODE XREF: printf_unknown_0+2D0j .text:0002E13C LDR R0, [R5,#0x58] .text:0002E140 ADD R2, R0, #0x10 .text:0002E144 LDMIA R2, {R2,R3} .text:0002E148 LDR R1, [R4],#4 .text:0002E14C CMP R2, R3 .text:0002E150 BCC loc_2E164 .text:0002E154 MOV R0, R5 .text:0002E158 BL __woverflow .text:0002E15C CMN R0, #1 .text:0002E160 B loc_2E170 .text:0002E164 ; --------------------------------------------------------------------------- .text:0002E164 .text:0002E164 loc_2E164 ; CODE XREF: printf_unknown_0+2A4j .text:0002E164 STR R1, [R2],#4 .text:0002E168 CMN R1, #1 .text:0002E16C STR R2, [R0,#0x10] .text:0002E170 .text:0002E170 loc_2E170 ; CODE XREF: printf_unknown_0+2B4j .text:0002E170 BEQ loc_2E29C .text:0002E174 ADD R6, R6, #1 .text:0002E178 CMP R4, R9 .text:0002E17C BCC loc_2E13C .text:0002E180 .text:0002E180 loc_2E180 ; CODE XREF: printf_unknown_0+24Cj .text:0002E180 ; printf_unknown_0+28Cj .text:0002E180 LDR R3, [R8] .text:0002E184 CMN R3, #1 .text:0002E188 BEQ loc_2E258 .text:0002E18C LDR R1, [R5,#0x58] .text:0002E190 ADD R2, R1, #0x10 .text:0002E194 LDMIA R2, {R2,R3} .text:0002E198 CMP R2, R3 .text:0002E19C BCC loc_2E1B8 .text:0002E1A0 MOV R0, R5 .text:0002E1A4 MOV R1, #0x2E .text:0002E1A8 BL __woverflow .text:0002E1AC CMN R0, #1 .text:0002E1B0 BEQ loc_2E1C8 .text:0002E1B4 B loc_2E1D0 .text:0002E1B8 ; --------------------------------------------------------------------------- .text:0002E1B8 .text:0002E1B8 loc_2E1B8 ; CODE XREF: printf_unknown_0+2F0j .text:0002E1B8 MOV R3, #0x2E .text:0002E1BC STR R3, [R2],#4 .text:0002E1C0 STR R2, [R1,#0x10] .text:0002E1C4 B loc_2E1D0 .text:0002E1C8 ; --------------------------------------------------------------------------- .text:0002E1C8 .text:0002E1C8 loc_2E1C8 ; CODE XREF: printf_unknown_0+54j .text:0002E1C8 ; printf_unknown_0+304j .text:0002E1C8 MOV R6, R0 .text:0002E1CC B loc_2E2A8 .text:0002E1D0 ; --------------------------------------------------------------------------- .text:0002E1D0 .text:0002E1D0 loc_2E1D0 ; CODE XREF: printf_unknown_0+308j .text:0002E1D0 ; printf_unknown_0+318j .text:0002E1D0 ADD R6, R6, #1 .text:0002E1D4 LDR R4, [R8] .text:0002E1D8 LDR R10, =_itowa_lower_digits .text:0002E1DC MOV R7, R9 .text:0002E1E0 .text:0002E1E0 loc_2E1E0 ; CODE XREF: printf_unknown_0+358j .text:0002E1E0 MOV R0, R4 .text:0002E1E4 MOV R1, #0xA .text:0002E1E8 BL __umodsi3 .text:0002E1EC LDR R3, [R10,R0,LSL#2] .text:0002E1F0 STR R3, [R7,#-4]! .text:0002E1F4 MOV R0, R4 .text:0002E1F8 MOV R1, #0xA .text:0002E1FC BL __udivsi3 .text:0002E200 SUBS R4, R0, #0 .text:0002E204 BNE loc_2E1E0 .text:0002E208 MOV R4, R7 .text:0002E20C CMP R4, R9 .text:0002E210 BCS loc_2E258 .text:0002E214 .text:0002E214 loc_2E214 ; CODE XREF: printf_unknown_0+3A8j .text:0002E214 LDR R0, [R5,#0x58] .text:0002E218 ADD R2, R0, #0x10 .text:0002E21C LDMIA R2, {R2,R3} .text:0002E220 LDR R1, [R4],#4 .text:0002E224 CMP R2, R3 .text:0002E228 BCC loc_2E23C .text:0002E22C MOV R0, R5 .text:0002E230 BL __woverflow .text:0002E234 CMN R0, #1 .text:0002E238 B loc_2E248 .text:0002E23C ; --------------------------------------------------------------------------- .text:0002E23C .text:0002E23C loc_2E23C ; CODE XREF: printf_unknown_0+37Cj .text:0002E23C STR R1, [R2],#4 .text:0002E240 CMN R1, #1 .text:0002E244 STR R2, [R0,#0x10] .text:0002E248 .text:0002E248 loc_2E248 ; CODE XREF: printf_unknown_0+38Cj .text:0002E248 BEQ loc_2E29C .text:0002E24C ADD R6, R6, #1 .text:0002E250 CMP R4, R9 .text:0002E254 BCC loc_2E214 .text:0002E258 .text:0002E258 loc_2E258 ; CODE XREF: printf_unknown_0+2DCj .text:0002E258 ; printf_unknown_0+364j .text:0002E258 LDR R1, [R8,#8] .text:0002E25C CMP R1, #0 .text:0002E260 BEQ loc_2E2A8 .text:0002E264 LDR R0, [R5,#0x58] .text:0002E268 ADD R2, R0, #0x10 .text:0002E26C LDMIA R2, {R2,R3} .text:0002E270 CMP R2, R3 .text:0002E274 BCC loc_2E28C .text:0002E278 MOV R0, R5 .text:0002E27C BL __woverflow .text:0002E280 CMN R0, #1 .text:0002E284 BEQ loc_2E29C .text:0002E288 B loc_2E2A4 .text:0002E28C ; --------------------------------------------------------------------------- .text:0002E28C .text:0002E28C loc_2E28C ; CODE XREF: printf_unknown_0+3C8j .text:0002E28C STR R1, [R2],#4 .text:0002E290 CMN R1, #1 .text:0002E294 STR R2, [R0,#0x10] .text:0002E298 BNE loc_2E2A4 .text:0002E29C .text:0002E29C loc_2E29C ; CODE XREF: printf_unknown_0+9Cj .text:0002E29C ; printf_unknown_0+E4j ... .text:0002E29C MOV R6, 0xFFFFFFFF .text:0002E2A0 B loc_2E2A8 .text:0002E2A4 ; --------------------------------------------------------------------------- .text:0002E2A4 .text:0002E2A4 loc_2E2A4 ; CODE XREF: printf_unknown_0+3DCj .text:0002E2A4 ; printf_unknown_0+3ECj .text:0002E2A4 ADD R6, R6, #1 .text:0002E2A8 .text:0002E2A8 loc_2E2A8 ; CODE XREF: printf_unknown_0+320j .text:0002E2A8 ; printf_unknown_0+3B4j ... .text:0002E2A8 MOV R0, R6 .text:0002E2AC LDMDB R11, {R4-R11,SP,PC} .text:0002E2AC ; End of function printf_unknown_0 .text:0002E2AC .text:0002E2AC ; --------------------------------------------------------------------------- .text:0002E2B0 off_2E2B0 DCD _itowa_lower_digits ; DATA XREF: printf_unknown_0+258r .text:0002E2B0 ; printf_unknown_0+32Cr .text:0002E2B4 .text:0002E2B4 ; =============== S U B R O U T I N E ======================================= .text:0002E2B4 .text:0002E2B4 ; Attributes: bp-based frame .text:0002E2B4 .text:0002E2B4 group_number_1 ; CODE XREF: vfwprintf+F3Cp .text:0002E2B4 ; vfwprintf+11D8p ... .text:0002E2B4 MOV R12, SP .text:0002E2B8 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0002E2BC SUB R11, R12, #4 .text:0002E2C0 MOV R5, R2 .text:0002E2C4 MOV R12, R0 .text:0002E2C8 MOV R7, R1 .text:0002E2CC LDRB R2, [R5] .text:0002E2D0 MOV R8, R3 .text:0002E2D4 CMP R2, #0 .text:0002E2D8 CMPNE R2, #0xFF .text:0002E2DC LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0002E2E0 RSB R2, R12, R7 .text:0002E2E4 BIC R2, R2, #3 .text:0002E2E8 RSB SP, R2, SP .text:0002E2EC MOV R0, SP .text:0002E2F0 MOV R6, SP .text:0002E2F4 MOV R1, R12 .text:0002E2F8 LDRB R4, [R5] .text:0002E2FC BL mempcpy .text:0002E300 MOV R12, R7 .text:0002E304 CMP R0, SP .text:0002E308 BLS loc_2E364 .text:0002E30C .text:0002E30C loc_2E30C ; CODE XREF: group_number_1+ACj .text:0002E30C LDR R3, [R0,#-4]! .text:0002E310 SUBS R4, R4, #1 .text:0002E314 STR R3, [R12,#-4]! .text:0002E318 BNE loc_2E35C .text:0002E31C CMP R0, R6 .text:0002E320 BLS loc_2E35C .text:0002E324 STR R8, [R12,#-4]! .text:0002E328 LDRB R4, [R5] .text:0002E32C LDRB R3, [R5,#1]! .text:0002E330 AND R3, R3, #0xFF .text:0002E334 CMP R3, #0 .text:0002E338 SUBEQ R5, R5, #1 .text:0002E33C BEQ loc_2E35C .text:0002E340 CMP R3, #0xFF .text:0002E344 BNE loc_2E35C .text:0002E348 .text:0002E348 loc_2E348 ; CODE XREF: group_number_1+A0j .text:0002E348 LDR R3, [R0,#-4]! .text:0002E34C CMP R0, R6 .text:0002E350 STR R3, [R12,#-4]! .text:0002E354 BHI loc_2E348 .text:0002E358 B loc_2E364 .text:0002E35C ; --------------------------------------------------------------------------- .text:0002E35C .text:0002E35C loc_2E35C ; CODE XREF: group_number_1+64j .text:0002E35C ; group_number_1+6Cj ... .text:0002E35C CMP R0, R6 .text:0002E360 BHI loc_2E30C .text:0002E364 .text:0002E364 loc_2E364 ; CODE XREF: group_number_1+54j .text:0002E364 ; group_number_1+A4j .text:0002E364 MOV R0, R12 .text:0002E368 LDMDB R11, {R4-R8,R11,SP,PC} .text:0002E368 ; End of function group_number_1 .text:0002E368 .text:0002E36C .text:0002E36C ; =============== S U B R O U T I N E ======================================= .text:0002E36C .text:0002E36C ; Attributes: bp-based frame .text:0002E36C .text:0002E36C _IO_helper_overflow_0 .text:0002E36C MOV R12, SP .text:0002E370 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002E374 SUB R11, R12, #4 .text:0002E378 MOV R4, R0 .text:0002E37C LDR R12, [R4,#0x154] .text:0002E380 LDR R3, [R4,#0x58] .text:0002E384 ADD R0, R3, #0x10 .text:0002E388 LDMDA R0, {R0,R2} .text:0002E38C SUB R2, R2, R0 .text:0002E390 MOV R5, R1 .text:0002E394 LDR R1, [R3,#0xC] .text:0002E398 MOVS R2, R2,ASR#2 .text:0002E39C BEQ loc_2E3CC .text:0002E3A0 LDRB R3, [R12,#0x46] .text:0002E3A4 MOV R0, R12 .text:0002E3A8 MOV R3, R3,LSL#24 .text:0002E3AC ADD R3, R12, R3,ASR#24 .text:0002E3B0 LDR R12, [R3,#0x94] .text:0002E3B4 MOV LR, PC .text:0002E3B8 LDR PC, [R12,#0x1C] .text:0002E3BC LDR R2, [R4,#0x58] .text:0002E3C0 LDR R3, [R2,#0x10] .text:0002E3C4 SUB R3, R3, R0,LSL#2 .text:0002E3C8 STR R3, [R2,#0x10] .text:0002E3CC .text:0002E3CC loc_2E3CC ; CODE XREF: _IO_helper_overflow_0+30j .text:0002E3CC LDR R12, [R4,#0x58] .text:0002E3D0 ADD R2, R12, #0x10 .text:0002E3D4 LDMIA R2, {R2,R3} .text:0002E3D8 CMP R2, R3 .text:0002E3DC BCC loc_2E3F0 .text:0002E3E0 MOV R0, R4 .text:0002E3E4 MOV R1, R5 .text:0002E3E8 BL __woverflow .text:0002E3EC LDMDB R11, {R4,R5,R11,SP,PC} .text:0002E3F0 ; --------------------------------------------------------------------------- .text:0002E3F0 .text:0002E3F0 loc_2E3F0 ; CODE XREF: _IO_helper_overflow_0+70j .text:0002E3F0 STR R5, [R2],#4 .text:0002E3F4 MOV R0, R5 .text:0002E3F8 STR R2, [R12,#0x10] .text:0002E3FC LDMDB R11, {R4,R5,R11,SP,PC} .text:0002E3FC ; End of function _IO_helper_overflow_0 .text:0002E3FC .text:0002E400 .text:0002E400 ; =============== S U B R O U T I N E ======================================= .text:0002E400 .text:0002E400 ; Attributes: bp-based frame .text:0002E400 .text:0002E400 buffered_vfprintf_0 ; CODE XREF: vfwprintf+B0p .text:0002E400 .text:0002E400 var_8100 = -0x8100 .text:0002E400 var_8000 = -0x8000 .text:0002E400 var_24 = -0x24 .text:0002E400 .text:0002E400 MOV R12, SP .text:0002E404 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0002E408 SUB R11, R12, #4 .text:0002E40C MOV R6, 0xFFFF7E90 .text:0002E414 MOV R5, R0 .text:0002E418 MOV R10, R1 .text:0002E41C MOV R1, #1 .text:0002E420 MOV R7, R2 .text:0002E424 ADD R2, R11, R6 .text:0002E428 SUB R4, R2, #0x24 .text:0002E42C SUB SP, SP, #0x8100 .text:0002E430 SUB SP, SP, #0x80 .text:0002E434 BL _IO_fwide .text:0002E438 CMP R0, #1 .text:0002E43C MOVNE R0, 0xFFFFFFFF .text:0002E440 BNE loc_2E588 .text:0002E444 STR R5, [R4,#0x154] .text:0002E448 ADD R3, R4, #0x98 .text:0002E44C STR R3, [R4,#0x58] .text:0002E450 SUB R1, R11, #-var_8000 .text:0002E454 SUB R1, R1, #0x24 .text:0002E458 STR R1, [R3,#0x10] .text:0002E45C STR R1, [R3,#0xC] .text:0002E460 LDR R2, [R4,#0x58] .text:0002E464 SUB R3, R11, #-var_24 .text:0002E468 STR R3, [R2,#0x14] .text:0002E46C SUB R1, R11, #-var_24 .text:0002E470 MOV R3, #0xF0000004 .text:0002E474 STR R0, [R4,#0x5C] .text:0002E478 ADD R3, R3, #0xBA00000 .text:0002E47C ADD R3, R3, #0xD0000 .text:0002E480 STR R3, [R1,R6] .text:0002E484 MOV R8, #0 .text:0002E488 STRB R8, [R4,#0x46] .text:0002E48C LDR R3, =0 .text:0002E490 ADD R0, R4, #0x158 .text:0002E494 STR R0, [R4,#0x48] .text:0002E498 CMP R3, R8 .text:0002E49C BEQ loc_2E4AC .text:0002E4A0 MOV R1, R8 .text:0002E4A4 MOV LR, PC .text:0002E4A8 MOV PC, R3 .text:0002E4AC .text:0002E4AC loc_2E4AC ; CODE XREF: buffered_vfprintf_0+9Cj .text:0002E4AC LDR R3, =_IO_helper_jumps_0 .text:0002E4B0 STR R3, [R4,#0x94] .text:0002E4B4 MOV R0, R4 .text:0002E4B8 MOV R1, R10 .text:0002E4BC MOV R2, R7 .text:0002E4C0 BL vfwprintf .text:0002E4C4 LDR R3, =0 .text:0002E4C8 MOV R6, R0 .text:0002E4CC SUBS R7, R3, #0 .text:0002E4D0 MOVNE R7, #1 .text:0002E4D4 CMP R7, #0 .text:0002E4D8 BEQ loc_2E4F8 .text:0002E4DC SUB R0, R11, #-var_8100 .text:0002E4E0 SUB R0, R0, #0x24 .text:0002E4E4 SUB R0, R0, #0x80 .text:0002E4E8 LDR R1, =funlockfile .text:0002E4EC MOV R2, R5 .text:0002E4F0 MOV LR, PC .text:0002E4F4 MOV PC, R3 .text:0002E4F8 .text:0002E4F8 loc_2E4F8 ; CODE XREF: buffered_vfprintf_0+D8j .text:0002E4F8 LDR R3, [R5] .text:0002E4FC TST R3, #0x8000 .text:0002E500 BNE loc_2E50C .text:0002E504 MOV R0, R5 .text:0002E508 BL flockfile .text:0002E50C .text:0002E50C loc_2E50C ; CODE XREF: buffered_vfprintf_0+100j .text:0002E50C LDR R3, [R4,#0x58] .text:0002E510 ADD R1, R3, #0x10 .text:0002E514 LDMDA R1, {R1,R2} .text:0002E518 SUB R2, R2, R1 .text:0002E51C LDR R1, [R3,#0xC] .text:0002E520 MOV R4, R2,ASR#2 .text:0002E524 CMP R4, #0 .text:0002E528 BLE loc_2E554 .text:0002E52C LDRB R3, [R5,#0x46] .text:0002E530 MOV R0, R5 .text:0002E534 MOV R3, R3,LSL#24 .text:0002E538 ADD R3, R5, R3,ASR#24 .text:0002E53C LDR R12, [R3,#0x94] .text:0002E540 MOV R2, R4 .text:0002E544 MOV LR, PC .text:0002E548 LDR PC, [R12,#0x1C] .text:0002E54C CMP R0, R4 .text:0002E550 MOVNE R6, 0xFFFFFFFF .text:0002E554 .text:0002E554 loc_2E554 ; CODE XREF: buffered_vfprintf_0+128j .text:0002E554 LDR R3, [R5] .text:0002E558 TST R3, #0x8000 .text:0002E55C BNE loc_2E568 .text:0002E560 MOV R0, R5 .text:0002E564 BL funlockfile .text:0002E568 .text:0002E568 loc_2E568 ; CODE XREF: buffered_vfprintf_0+15Cj .text:0002E568 CMP R7, #0 .text:0002E56C BEQ loc_2E584 .text:0002E570 SUB R0, R11, #-var_8100 .text:0002E574 SUB R0, R0, #0x24 .text:0002E578 SUB R0, R0, #0x80 .text:0002E57C MOV R1, R8 .text:0002E580 BL 0 .text:0002E584 .text:0002E584 loc_2E584 ; CODE XREF: buffered_vfprintf_0+16Cj .text:0002E584 MOV R0, R6 .text:0002E588 .text:0002E588 loc_2E588 ; CODE XREF: buffered_vfprintf_0+40j .text:0002E588 B locret_2E59C .text:0002E588 ; --------------------------------------------------------------------------- .text:0002E58C off_2E58C DCD 0 ; DATA XREF: buffered_vfprintf_0+8Cr .text:0002E590 off_2E590 DCD _IO_helper_jumps_0 ; DATA XREF: buffered_vfprintf_0:loc_2E4ACr .text:0002E594 off_2E594 DCD 0 ; DATA XREF: buffered_vfprintf_0+C4r .text:0002E598 off_2E598 DCD funlockfile ; DATA XREF: buffered_vfprintf_0+E8r .text:0002E59C ; --------------------------------------------------------------------------- .text:0002E59C .text:0002E59C locret_2E59C ; CODE XREF: buffered_vfprintf_0:loc_2E588j .text:0002E59C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0002E59C ; End of function buffered_vfprintf_0 .text:0002E59C .text:0002E5A0 .text:0002E5A0 ; =============== S U B R O U T I N E ======================================= .text:0002E5A0 .text:0002E5A0 ; Attributes: bp-based frame .text:0002E5A0 .text:0002E5A0 WEAK fclose .text:0002E5A0 fclose ; CODE XREF: read_alias_file+45Cp .text:0002E5A0 ; _IO_new_file_fopen+1F4p ... .text:0002E5A0 .text:0002E5A0 var_2C = -0x2C .text:0002E5A0 .text:0002E5A0 MOV R12, SP ; Alternative name is '__new_fclose' .text:0002E5A4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002E5A8 SUB R11, R12, #4 .text:0002E5AC MOV R4, R0 .text:0002E5B0 SUB SP, SP, #0x10 .text:0002E5B4 LDR R3, [R4] .text:0002E5B8 MOV R6, #0 .text:0002E5BC TST R3, #0x8000 .text:0002E5C0 BNE loc_2E5D0 .text:0002E5C4 LDR R3, =0 .text:0002E5C8 SUBS R6, R3, R6 .text:0002E5CC MOVNE R6, #1 .text:0002E5D0 .text:0002E5D0 loc_2E5D0 ; CODE XREF: fclose+20j .text:0002E5D0 CMP R6, #0 .text:0002E5D4 BEQ loc_2E5E8 .text:0002E5D8 SUB R0, R11, #-var_2C .text:0002E5DC LDR R1, =funlockfile .text:0002E5E0 MOV R2, R4 .text:0002E5E4 BL 0 .text:0002E5E8 .text:0002E5E8 loc_2E5E8 ; CODE XREF: fclose+34j .text:0002E5E8 LDR R3, [R4] .text:0002E5EC TST R3, #0x8000 .text:0002E5F0 BNE loc_2E5FC .text:0002E5F4 MOV R0, R4 .text:0002E5F8 BL flockfile .text:0002E5FC .text:0002E5FC loc_2E5FC ; CODE XREF: fclose+50j .text:0002E5FC LDR R3, [R4] .text:0002E600 TST R3, #0x2000 .text:0002E604 BEQ loc_2E620 .text:0002E608 MOV R0, R4 .text:0002E60C BL _IO_new_file_close_it .text:0002E610 MOV R7, R0 .text:0002E614 B loc_2E62C .text:0002E614 ; --------------------------------------------------------------------------- .text:0002E618 dword_2E618 DCD 0 ; DATA XREF: fclose+24r .text:0002E61C off_2E61C DCD funlockfile ; DATA XREF: fclose+3Cr .text:0002E620 ; --------------------------------------------------------------------------- .text:0002E620 .text:0002E620 loc_2E620 ; CODE XREF: fclose+64j .text:0002E620 TST R3, #0x20 .text:0002E624 MOVEQ R7, #0 .text:0002E628 MOVNE R7, 0xFFFFFFFF .text:0002E62C .text:0002E62C loc_2E62C ; CODE XREF: fclose+74j .text:0002E62C LDRB R3, [R4,#0x46] .text:0002E630 MOV R0, R4 .text:0002E634 MOV R3, R3,LSL#24 .text:0002E638 ADD R3, R4, R3,ASR#24 .text:0002E63C LDR R2, [R3,#0x94] .text:0002E640 MOV R1, #0 .text:0002E644 MOV LR, PC .text:0002E648 LDR PC, [R2,#8] .text:0002E64C LDR R3, [R4] .text:0002E650 TST R3, #0x8000 .text:0002E654 BNE loc_2E660 .text:0002E658 MOV R0, R4 .text:0002E65C BL funlockfile .text:0002E660 .text:0002E660 loc_2E660 ; CODE XREF: fclose+B4j .text:0002E660 LDR R3, [R4,#0x5C] .text:0002E664 CMP R3, #0 .text:0002E668 BLE loc_2E6C0 .text:0002E66C LDR R5, [R4,#0x54] .text:0002E670 LDR R2, [R5,#0x24] .text:0002E674 LDR R3, [R2] .text:0002E678 CMP R3, #0 .text:0002E67C BEQ loc_2E698 .text:0002E680 LDR R3, [R2,#8] .text:0002E684 SUB R3, R3, #1 .text:0002E688 STR R3, [R2,#8] .text:0002E68C LDR R0, [R5,#0x24] .text:0002E690 MOV R1, #1 .text:0002E694 BL __gconv_close_transform .text:0002E698 .text:0002E698 loc_2E698 ; CODE XREF: fclose+DCj .text:0002E698 LDR R2, [R5,#0x50] .text:0002E69C LDR R3, [R2] .text:0002E6A0 CMP R3, #0 .text:0002E6A4 BEQ loc_2E6C0 .text:0002E6A8 LDR R3, [R2,#8] .text:0002E6AC SUB R3, R3, #1 .text:0002E6B0 STR R3, [R2,#8] .text:0002E6B4 LDR R0, [R5,#0x50] .text:0002E6B8 MOV R1, #1 .text:0002E6BC BL __gconv_close_transform .text:0002E6C0 .text:0002E6C0 loc_2E6C0 ; CODE XREF: fclose+C8j .text:0002E6C0 ; fclose+104j .text:0002E6C0 CMP R6, #0 .text:0002E6C4 BEQ loc_2E6D4 .text:0002E6C8 SUB R0, R11, #-var_2C .text:0002E6CC MOV R1, #0 .text:0002E6D0 BL 0 .text:0002E6D4 .text:0002E6D4 loc_2E6D4 ; CODE XREF: fclose+124j .text:0002E6D4 LDR R3, [R4,#0x24] .text:0002E6D8 CMP R3, #0 .text:0002E6DC BEQ loc_2E6E8 .text:0002E6E0 MOV R0, R4 .text:0002E6E4 BL _IO_free_backup_area .text:0002E6E8 .text:0002E6E8 loc_2E6E8 ; CODE XREF: fclose+13Cj .text:0002E6E8 LDR R3, =stdin .text:0002E6EC LDR R2, [R3] .text:0002E6F0 CMP R4, R2 .text:0002E6F4 BEQ loc_2E728 .text:0002E6F8 LDR R3, =stdout .text:0002E6FC LDR R2, [R3] .text:0002E700 CMP R4, R2 .text:0002E704 BEQ loc_2E728 .text:0002E708 LDR R3, =stderr .text:0002E70C LDR R2, [R3] .text:0002E710 CMP R4, R2 .text:0002E714 BEQ loc_2E728 .text:0002E718 MOV R3, #0 .text:0002E71C STR R3, [R4] .text:0002E720 MOV R0, R4 .text:0002E724 BL free .text:0002E728 .text:0002E728 loc_2E728 ; CODE XREF: fclose+154j .text:0002E728 ; fclose+164j ... .text:0002E728 MOV R0, R7 .text:0002E72C B locret_2E73C .text:0002E72C ; --------------------------------------------------------------------------- .text:0002E730 off_2E730 DCD stdin ; DATA XREF: fclose:loc_2E6E8r .text:0002E734 off_2E734 DCD stdout ; DATA XREF: fclose+158r .text:0002E738 off_2E738 DCD stderr ; DATA XREF: fclose+168r .text:0002E73C ; --------------------------------------------------------------------------- .text:0002E73C .text:0002E73C locret_2E73C ; CODE XREF: fclose+18Cj .text:0002E73C LDMDB R11, {R4-R7,R11,SP,PC} .text:0002E73C ; End of function fclose .text:0002E73C .text:0002E740 .text:0002E740 ; =============== S U B R O U T I N E ======================================= .text:0002E740 .text:0002E740 ; Attributes: bp-based frame .text:0002E740 .text:0002E740 WEAK fopen .text:0002E740 fopen ; CODE XREF: read_alias_file+44p .text:0002E740 ; get_nprocs_conf+64p ... .text:0002E740 .text:0002E740 var_1C = -0x1C .text:0002E740 .text:0002E740 MOV R12, SP ; Alternative name is '_IO_fopen' .text:0002E744 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0002E748 SUB R11, R12, #4 .text:0002E74C MOV R6, R0 .text:0002E750 MOV R0, #0x16C .text:0002E754 MOV R5, R1 .text:0002E758 SUB SP, SP, #4 .text:0002E75C BL malloc .text:0002E760 SUBS R4, R0, #0 .text:0002E764 BEQ loc_2E7C8 .text:0002E768 ADD R3, R4, #0x98 .text:0002E76C STR R3, [R4,#0x48] .text:0002E770 LDR R2, =_IO_wfile_jumps .text:0002E774 STR R2, [SP,#0x1C+var_1C] .text:0002E778 MOV R0, R4 .text:0002E77C MOV R1, #0 .text:0002E780 ADD R3, R4, #0xB0 .text:0002E784 MOV R2, R1 .text:0002E788 BL _IO_no_init .text:0002E78C LDR R3, =_IO_file_jumps .text:0002E790 STR R3, [R4,#0x94] .text:0002E794 MOV R0, R4 .text:0002E798 BL _IO_new_file_init .text:0002E79C MOV R0, R4 .text:0002E7A0 MOV R1, R6 .text:0002E7A4 MOV R2, R5 .text:0002E7A8 MOV R3, #1 .text:0002E7AC BL _IO_new_file_fopen .text:0002E7B0 SUBS R5, R0, #0 .text:0002E7B4 MOV R0, R4 .text:0002E7B8 BNE loc_2E7CC .text:0002E7BC BL _IO_un_link .text:0002E7C0 MOV R0, R4 .text:0002E7C4 BL free .text:0002E7C8 .text:0002E7C8 loc_2E7C8 ; CODE XREF: fopen+24j .text:0002E7C8 MOV R0, #0 .text:0002E7CC .text:0002E7CC loc_2E7CC ; CODE XREF: fopen+78j .text:0002E7CC B locret_2E7D8 .text:0002E7CC ; --------------------------------------------------------------------------- .text:0002E7D0 off_2E7D0 DCD _IO_wfile_jumps ; DATA XREF: fopen+30r .text:0002E7D4 off_2E7D4 DCD _IO_file_jumps ; DATA XREF: fopen+4Cr .text:0002E7D8 ; --------------------------------------------------------------------------- .text:0002E7D8 .text:0002E7D8 locret_2E7D8 ; CODE XREF: fopen:loc_2E7CCj .text:0002E7D8 LDMDB R11, {R4-R6,R11,SP,PC} .text:0002E7D8 ; End of function fopen .text:0002E7D8 .text:0002E7DC .text:0002E7DC ; =============== S U B R O U T I N E ======================================= .text:0002E7DC .text:0002E7DC ; Attributes: bp-based frame .text:0002E7DC .text:0002E7DC EXPORT _IO_padn .text:0002E7DC _IO_padn ; CODE XREF: vfprintf+FD0p .text:0002E7DC ; vfprintf+1104p ... .text:0002E7DC .text:0002E7DC var_2C = -0x2C .text:0002E7DC .text:0002E7DC MOV R12, SP .text:0002E7E0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002E7E4 SUB R11, R12, #4 .text:0002E7E8 MOV R6, #0 .text:0002E7EC CMP R1, #0x20 .text:0002E7F0 MOV R5, R0 .text:0002E7F4 SUB SP, SP, #0x10 .text:0002E7F8 LDREQ R7, =blanks .text:0002E7FC BEQ loc_2E834 .text:0002E800 CMP R1, #0x30 .text:0002E804 BNE loc_2E818 .text:0002E808 LDR R7, =zeroes .text:0002E80C B loc_2E834 .text:0002E80C ; --------------------------------------------------------------------------- .text:0002E810 off_2E810 DCD blanks ; DATA XREF: _IO_padn+1Cr .text:0002E814 off_2E814 DCD zeroes ; DATA XREF: _IO_padn+2Cr .text:0002E818 ; --------------------------------------------------------------------------- .text:0002E818 .text:0002E818 loc_2E818 ; CODE XREF: _IO_padn+28j .text:0002E818 MOV R4, #0xF .text:0002E81C SUB R3, R11, #-var_2C .text:0002E820 MOV R0, R3 .text:0002E824 .text:0002E824 loc_2E824 ; CODE XREF: _IO_padn+50j .text:0002E824 STRB R1, [R0,R4] .text:0002E828 SUBS R4, R4, #1 .text:0002E82C BPL loc_2E824 .text:0002E830 MOV R7, R3 .text:0002E834 .text:0002E834 loc_2E834 ; CODE XREF: _IO_padn+20j .text:0002E834 ; _IO_padn+30j .text:0002E834 MOV R4, R2 .text:0002E838 CMP R4, #0xF .text:0002E83C BLE loc_2E87C .text:0002E840 .text:0002E840 loc_2E840 ; CODE XREF: _IO_padn+9Cj .text:0002E840 MOV R0, R5 .text:0002E844 LDRB R3, [R5,#0x46] .text:0002E848 MOV R1, R7 .text:0002E84C MOV R3, R3,LSL#24 .text:0002E850 ADD R3, R5, R3,ASR#24 .text:0002E854 LDR R12, [R3,#0x94] .text:0002E858 MOV R2, #0x10 .text:0002E85C MOV LR, PC .text:0002E860 LDR PC, [R12,#0x1C] .text:0002E864 ADD R6, R6, R0 .text:0002E868 CMP R0, #0x10 .text:0002E86C BNE loc_2E8AC .text:0002E870 SUB R4, R4, #0x10 .text:0002E874 CMP R4, #0xF .text:0002E878 BGT loc_2E840 .text:0002E87C .text:0002E87C loc_2E87C ; CODE XREF: _IO_padn+60j .text:0002E87C CMP R4, #0 .text:0002E880 BLE loc_2E8AC .text:0002E884 MOV R0, R5 .text:0002E888 LDRB R3, [R5,#0x46] .text:0002E88C MOV R1, R7 .text:0002E890 MOV R3, R3,LSL#24 .text:0002E894 ADD R3, R5, R3,ASR#24 .text:0002E898 LDR R12, [R3,#0x94] .text:0002E89C MOV R2, R4 .text:0002E8A0 MOV LR, PC .text:0002E8A4 LDR PC, [R12,#0x1C] .text:0002E8A8 ADD R6, R6, R0 .text:0002E8AC .text:0002E8AC loc_2E8AC ; CODE XREF: _IO_padn+90j .text:0002E8AC ; _IO_padn+A4j .text:0002E8AC MOV R0, R6 .text:0002E8B0 LDMDB R11, {R4-R7,R11,SP,PC} .text:0002E8B0 ; End of function _IO_padn .text:0002E8B0 .text:0002E8B4 .text:0002E8B4 ; =============== S U B R O U T I N E ======================================= .text:0002E8B4 .text:0002E8B4 ; Attributes: bp-based frame .text:0002E8B4 .text:0002E8B4 EXPORT _IO_wpadn .text:0002E8B4 _IO_wpadn ; CODE XREF: __printf_fp+304p .text:0002E8B4 ; __printf_fp+654p ... .text:0002E8B4 .text:0002E8B4 var_5C = -0x5C .text:0002E8B4 .text:0002E8B4 MOV R12, SP .text:0002E8B8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002E8BC SUB R11, R12, #4 .text:0002E8C0 MOV R6, #0 .text:0002E8C4 CMP R1, #0x20 .text:0002E8C8 MOV R5, R0 .text:0002E8CC SUB SP, SP, #0x40 .text:0002E8D0 LDREQ R7, =blanks_0 .text:0002E8D4 BEQ loc_2E90C .text:0002E8D8 CMP R1, #0x30 .text:0002E8DC BNE loc_2E8F0 .text:0002E8E0 LDR R7, =zeroes_0 .text:0002E8E4 B loc_2E90C .text:0002E8E4 ; --------------------------------------------------------------------------- .text:0002E8E8 off_2E8E8 DCD blanks_0 ; DATA XREF: _IO_wpadn+1Cr .text:0002E8EC off_2E8EC DCD zeroes_0 ; DATA XREF: _IO_wpadn+2Cr .text:0002E8F0 ; --------------------------------------------------------------------------- .text:0002E8F0 .text:0002E8F0 loc_2E8F0 ; CODE XREF: _IO_wpadn+28j .text:0002E8F0 MOV R4, #0xF .text:0002E8F4 SUB R3, R11, #-var_5C .text:0002E8F8 MOV R0, R3 .text:0002E8FC .text:0002E8FC loc_2E8FC ; CODE XREF: _IO_wpadn+50j .text:0002E8FC STR R1, [R0,R4,LSL#2] .text:0002E900 SUBS R4, R4, #1 .text:0002E904 BPL loc_2E8FC .text:0002E908 MOV R7, R3 .text:0002E90C .text:0002E90C loc_2E90C ; CODE XREF: _IO_wpadn+20j .text:0002E90C ; _IO_wpadn+30j .text:0002E90C MOV R4, R2 .text:0002E910 CMP R4, #0xF .text:0002E914 BLE loc_2E954 .text:0002E918 .text:0002E918 loc_2E918 ; CODE XREF: _IO_wpadn+9Cj .text:0002E918 MOV R0, R5 .text:0002E91C LDRB R3, [R5,#0x46] .text:0002E920 MOV R1, R7 .text:0002E924 MOV R3, R3,LSL#24 .text:0002E928 ADD R3, R5, R3,ASR#24 .text:0002E92C LDR R12, [R3,#0x94] .text:0002E930 MOV R2, #0x10 .text:0002E934 MOV LR, PC .text:0002E938 LDR PC, [R12,#0x1C] .text:0002E93C ADD R6, R6, R0 .text:0002E940 CMP R0, #0x10 .text:0002E944 BNE loc_2E984 .text:0002E948 SUB R4, R4, #0x10 .text:0002E94C CMP R4, #0xF .text:0002E950 BGT loc_2E918 .text:0002E954 .text:0002E954 loc_2E954 ; CODE XREF: _IO_wpadn+60j .text:0002E954 CMP R4, #0 .text:0002E958 BLE loc_2E984 .text:0002E95C MOV R0, R5 .text:0002E960 LDRB R3, [R5,#0x46] .text:0002E964 MOV R1, R7 .text:0002E968 MOV R3, R3,LSL#24 .text:0002E96C ADD R3, R5, R3,ASR#24 .text:0002E970 LDR R12, [R3,#0x94] .text:0002E974 MOV R2, R4 .text:0002E978 MOV LR, PC .text:0002E97C LDR PC, [R12,#0x1C] .text:0002E980 ADD R6, R6, R0 .text:0002E984 .text:0002E984 loc_2E984 ; CODE XREF: _IO_wpadn+90j .text:0002E984 ; _IO_wpadn+A4j .text:0002E984 MOV R0, R6 .text:0002E988 LDMDB R11, {R4-R7,R11,SP,PC} .text:0002E988 ; End of function _IO_wpadn .text:0002E988 .text:0002E98C .text:0002E98C ; =============== S U B R O U T I N E ======================================= .text:0002E98C .text:0002E98C ; Attributes: bp-based frame .text:0002E98C .text:0002E98C EXPORT _IO_least_wmarker .text:0002E98C _IO_least_wmarker ; CODE XREF: save_for_wbackup+14p .text:0002E98C MOV R12, SP .text:0002E990 STMFD SP!, {R11,R12,LR,PC} .text:0002E994 SUB R11, R12, #4 .text:0002E998 LDR R12, [R0,#0x30] .text:0002E99C LDR R3, [R0,#0x58] .text:0002E9A0 LDR R2, [R3,#8] .text:0002E9A4 CMP R12, #0 .text:0002E9A8 RSB R1, R2, R1 .text:0002E9AC MOV R0, R1,ASR#2 .text:0002E9B0 LDMEQDB R11, {R11,SP,PC} .text:0002E9B4 .text:0002E9B4 loc_2E9B4 ; CODE XREF: _IO_least_wmarker+3Cj .text:0002E9B4 LDR R3, [R12,#8] .text:0002E9B8 LDR R12, [R12] .text:0002E9BC CMP R3, R0 .text:0002E9C0 MOVLT R0, R3 .text:0002E9C4 CMP R12, #0 .text:0002E9C8 BNE loc_2E9B4 .text:0002E9CC LDMDB R11, {R11,SP,PC} .text:0002E9CC ; End of function _IO_least_wmarker .text:0002E9CC .text:0002E9D0 .text:0002E9D0 ; =============== S U B R O U T I N E ======================================= .text:0002E9D0 .text:0002E9D0 ; Attributes: bp-based frame .text:0002E9D0 .text:0002E9D0 EXPORT _IO_switch_to_main_wget_area .text:0002E9D0 _IO_switch_to_main_wget_area ; CODE XREF: __wuflow+90p .text:0002E9D0 ; __wunderflow+8Cp ... .text:0002E9D0 MOV R12, SP .text:0002E9D4 STMFD SP!, {R11,R12,LR,PC} .text:0002E9D8 LDR R3, [R0] .text:0002E9DC BIC R3, R3, #0x100 .text:0002E9E0 STR R3, [R0] .text:0002E9E4 LDR R2, [R0,#0x58] .text:0002E9E8 LDR R3, [R2,#0x28] .text:0002E9EC SUB R11, R12, #4 .text:0002E9F0 LDR R12, [R2,#4] .text:0002E9F4 STR R3, [R2,#4] .text:0002E9F8 LDR R1, [R0,#0x58] .text:0002E9FC STR R12, [R1,#0x28] .text:0002EA00 LDR R3, [R0,#0x58] .text:0002EA04 LDR R2, [R3,#0x20] .text:0002EA08 LDR R12, [R3,#8] .text:0002EA0C STR R2, [R3,#8] .text:0002EA10 LDR R1, [R0,#0x58] .text:0002EA14 STR R12, [R1,#0x20] .text:0002EA18 LDR R2, [R0,#0x58] .text:0002EA1C LDR R3, [R2,#8] .text:0002EA20 STR R3, [R2] .text:0002EA24 LDMDB R11, {R11,SP,PC} .text:0002EA24 ; End of function _IO_switch_to_main_wget_area .text:0002EA24 .text:0002EA28 .text:0002EA28 ; =============== S U B R O U T I N E ======================================= .text:0002EA28 .text:0002EA28 ; Attributes: bp-based frame .text:0002EA28 .text:0002EA28 EXPORT _IO_switch_to_wbackup_area .text:0002EA28 _IO_switch_to_wbackup_area ; CODE XREF: _IO_wdefault_pbackfail+E8p .text:0002EA28 ; _IO_seekwmark+60p .text:0002EA28 MOV R12, SP .text:0002EA2C STMFD SP!, {R11,R12,LR,PC} .text:0002EA30 LDR R3, [R0] .text:0002EA34 ORR R3, R3, #0x100 .text:0002EA38 STR R3, [R0] .text:0002EA3C LDR R2, [R0,#0x58] .text:0002EA40 LDR R3, [R2,#0x28] .text:0002EA44 SUB R11, R12, #4 .text:0002EA48 LDR R12, [R2,#4] .text:0002EA4C STR R3, [R2,#4] .text:0002EA50 LDR R1, [R0,#0x58] .text:0002EA54 STR R12, [R1,#0x28] .text:0002EA58 LDR R3, [R0,#0x58] .text:0002EA5C LDR R2, [R3,#0x20] .text:0002EA60 LDR R12, [R3,#8] .text:0002EA64 STR R2, [R3,#8] .text:0002EA68 LDR R1, [R0,#0x58] .text:0002EA6C STR R12, [R1,#0x20] .text:0002EA70 LDR R2, [R0,#0x58] .text:0002EA74 LDR R3, [R2,#4] .text:0002EA78 STR R3, [R2] .text:0002EA7C LDMDB R11, {R11,SP,PC} .text:0002EA7C ; End of function _IO_switch_to_wbackup_area .text:0002EA7C .text:0002EA80 .text:0002EA80 ; =============== S U B R O U T I N E ======================================= .text:0002EA80 .text:0002EA80 ; Attributes: bp-based frame .text:0002EA80 .text:0002EA80 EXPORT _IO_wsetb .text:0002EA80 _IO_wsetb ; CODE XREF: _IO_wdoallocbuf+54p .text:0002EA80 ; _IO_wdefault_setbuf+7Cp ... .text:0002EA80 MOV R12, SP .text:0002EA84 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002EA88 SUB R11, R12, #4 .text:0002EA8C MOV R4, R0 .text:0002EA90 MOV R5, R1 .text:0002EA94 LDR R0, [R4,#0x58] .text:0002EA98 MOV R7, R2 .text:0002EA9C LDR R12, [R0,#0x18] .text:0002EAA0 MOV R6, R3 .text:0002EAA4 CMP R12, #0 .text:0002EAA8 BEQ loc_2EADC .text:0002EAAC LDR R3, [R4] .text:0002EAB0 TST R3, #1 .text:0002EAB4 BNE loc_2EADC .text:0002EAB8 MOV R1, 0xFFF .text:0002EAC0 LDR R3, [R0,#0x1C] .text:0002EAC4 MOV R0, R12 .text:0002EAC8 RSB R3, R12, R3 .text:0002EACC ADD R1, R1, R3,ASR#2 .text:0002EAD0 BIC R1, R1, #0xFF0 .text:0002EAD4 BIC R1, R1, #0xF .text:0002EAD8 BL munmap .text:0002EADC .text:0002EADC loc_2EADC ; CODE XREF: _IO_wsetb+28j .text:0002EADC ; _IO_wsetb+34j .text:0002EADC LDR R3, [R4,#0x58] .text:0002EAE0 STR R5, [R3,#0x18] .text:0002EAE4 LDR R2, [R4,#0x58] .text:0002EAE8 CMP R6, #0 .text:0002EAEC STR R7, [R2,#0x1C] .text:0002EAF0 LDRNE R3, [R4] .text:0002EAF4 BICNE R3, R3, #1 .text:0002EAF8 STRNE R3, [R4] .text:0002EAFC LDREQ R3, [R4] .text:0002EB00 ORREQ R3, R3, #1 .text:0002EB04 STREQ R3, [R4] .text:0002EB08 LDMDB R11, {R4-R7,R11,SP,PC} .text:0002EB08 ; End of function _IO_wsetb .text:0002EB08 .text:0002EB0C .text:0002EB0C ; =============== S U B R O U T I N E ======================================= .text:0002EB0C .text:0002EB0C ; Attributes: bp-based frame .text:0002EB0C .text:0002EB0C EXPORT _IO_wdefault_pbackfail .text:0002EB0C _IO_wdefault_pbackfail .text:0002EB0C MOV R12, SP .text:0002EB10 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0002EB14 MOV R5, R0 .text:0002EB18 LDR R3, [R5,#0x58] .text:0002EB1C LDR R0, [R3] .text:0002EB20 SUB R11, R12, #4 .text:0002EB24 LDR R2, [R3,#8] .text:0002EB28 MOV R10, R1 .text:0002EB2C CMP R0, R2 .text:0002EB30 BLS loc_2EB58 .text:0002EB34 LDR R3, [R5] .text:0002EB38 TST R3, #0x100 .text:0002EB3C BNE loc_2EB58 .text:0002EB40 LDR R2, [R5,#4] .text:0002EB44 LDRB R3, [R2,#-1] .text:0002EB48 CMP R3, R10 .text:0002EB4C SUBEQ R3, R2, #1 .text:0002EB50 STREQ R3, [R5,#4] .text:0002EB54 BEQ loc_2EC98 .text:0002EB58 .text:0002EB58 loc_2EB58 ; CODE XREF: _IO_wdefault_pbackfail+24j .text:0002EB58 ; _IO_wdefault_pbackfail+30j .text:0002EB58 LDR R3, [R5] .text:0002EB5C TST R3, #0x100 .text:0002EB60 BNE loc_2EBFC .text:0002EB64 LDR R3, [R5,#0x58] .text:0002EB68 LDR R1, [R3] .text:0002EB6C LDR R2, [R3,#8] .text:0002EB70 CMP R1, R2 .text:0002EB74 MOV R2, R3 .text:0002EB78 BLS loc_2EBA0 .text:0002EB7C LDR R3, [R2,#0x20] .text:0002EB80 CMP R3, #0 .text:0002EB84 BEQ loc_2EBA0 .text:0002EB88 MOV R0, R5 .text:0002EB8C BL save_for_wbackup .text:0002EB90 CMP R0, #0 .text:0002EB94 BEQ loc_2EBE4 .text:0002EB98 .text:0002EB98 loc_2EB98 ; CODE XREF: _IO_wdefault_pbackfail+B0j .text:0002EB98 ; _IO_wdefault_pbackfail+124j .text:0002EB98 MOV R0, 0xFFFFFFFF .text:0002EB9C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0002EBA0 ; --------------------------------------------------------------------------- .text:0002EBA0 .text:0002EBA0 loc_2EBA0 ; CODE XREF: _IO_wdefault_pbackfail+6Cj .text:0002EBA0 ; _IO_wdefault_pbackfail+78j .text:0002EBA0 LDR R3, [R2,#0x20] .text:0002EBA4 CMP R3, #0 .text:0002EBA8 BNE loc_2EBE4 .text:0002EBAC MOV R4, #0x200 .text:0002EBB0 MOV R0, R4 .text:0002EBB4 BL malloc .text:0002EBB8 CMP R0, #0 .text:0002EBBC BEQ loc_2EB98 .text:0002EBC0 LDR R3, [R5,#0x58] .text:0002EBC4 STR R0, [R3,#0x20] .text:0002EBC8 LDR R1, [R5,#0x58] .text:0002EBCC LDR R3, [R1,#0x20] .text:0002EBD0 ADD R3, R3, R4 .text:0002EBD4 STR R3, [R1,#0x28] .text:0002EBD8 LDR R2, [R5,#0x58] .text:0002EBDC LDR R3, [R2,#0x28] .text:0002EBE0 STR R3, [R2,#0x24] .text:0002EBE4 .text:0002EBE4 loc_2EBE4 ; CODE XREF: _IO_wdefault_pbackfail+88j .text:0002EBE4 ; _IO_wdefault_pbackfail+9Cj .text:0002EBE4 LDR R2, [R5,#0x58] .text:0002EBE8 LDR R3, [R2] .text:0002EBEC STR R3, [R2,#8] .text:0002EBF0 MOV R0, R5 .text:0002EBF4 BL _IO_switch_to_wbackup_area .text:0002EBF8 B loc_2EC84 .text:0002EBFC ; --------------------------------------------------------------------------- .text:0002EBFC .text:0002EBFC loc_2EBFC ; CODE XREF: _IO_wdefault_pbackfail+54j .text:0002EBFC LDR R2, [R5,#0x58] .text:0002EC00 LDR R3, [R2] .text:0002EC04 LDR R1, [R2,#8] .text:0002EC08 CMP R3, R1 .text:0002EC0C BHI loc_2EC84 .text:0002EC10 LDR R3, [R2,#4] .text:0002EC14 RSB R3, R1, R3 .text:0002EC18 MOV R6, R3,ASR#2 .text:0002EC1C MOV R8, R6,LSL#3 .text:0002EC20 MOV R0, R8 .text:0002EC24 BL malloc .text:0002EC28 MOV R4, R6,LSL#1 .text:0002EC2C SUBS R7, R0, #0 .text:0002EC30 BEQ loc_2EB98 .text:0002EC34 RSB R4, R6, R4 .text:0002EC38 ADD R4, R7, R4,LSL#2 .text:0002EC3C LDR R3, [R5,#0x58] .text:0002EC40 MOV R0, R4 .text:0002EC44 LDR R1, [R3,#8] .text:0002EC48 MOV R2, R6 .text:0002EC4C BL wmemcpy .text:0002EC50 LDR R3, [R5,#0x58] .text:0002EC54 LDR R0, [R3,#8] .text:0002EC58 BL free .text:0002EC5C LDR R3, [R5,#0x58] .text:0002EC60 STR R7, [R3,#8] .text:0002EC64 LDR R2, [R5,#0x58] .text:0002EC68 STR R4, [R2] .text:0002EC6C LDR R1, [R5,#0x58] .text:0002EC70 ADD R3, R7, R8 .text:0002EC74 STR R3, [R1,#4] .text:0002EC78 LDR R2, [R5,#0x58] .text:0002EC7C LDR R3, [R2] .text:0002EC80 STR R3, [R2,#0x24] .text:0002EC84 .text:0002EC84 loc_2EC84 ; CODE XREF: _IO_wdefault_pbackfail+ECj .text:0002EC84 ; _IO_wdefault_pbackfail+100j .text:0002EC84 LDR R3, [R5,#0x58] .text:0002EC88 LDR R1, [R3] .text:0002EC8C SUB R2, R1, #4 .text:0002EC90 STR R2, [R3] .text:0002EC94 STR R10, [R1,#-4] .text:0002EC98 .text:0002EC98 loc_2EC98 ; CODE XREF: _IO_wdefault_pbackfail+48j .text:0002EC98 MOV R0, R10 .text:0002EC9C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0002EC9C ; End of function _IO_wdefault_pbackfail .text:0002EC9C .text:0002ECA0 .text:0002ECA0 ; =============== S U B R O U T I N E ======================================= .text:0002ECA0 .text:0002ECA0 ; Attributes: bp-based frame .text:0002ECA0 .text:0002ECA0 EXPORT _IO_wdefault_finish .text:0002ECA0 _IO_wdefault_finish .text:0002ECA0 MOV R12, SP .text:0002ECA4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002ECA8 MOV R4, R0 .text:0002ECAC LDR R1, [R4,#0x58] .text:0002ECB0 LDR R2, [R1,#0x18] .text:0002ECB4 SUB R11, R12, #4 .text:0002ECB8 CMP R2, #0 .text:0002ECBC BEQ loc_2ECFC .text:0002ECC0 LDR R3, [R4] .text:0002ECC4 ANDS R5, R3, #1 .text:0002ECC8 BNE loc_2ECFC .text:0002ECCC LDR R1, [R1,#0x1C] .text:0002ECD0 MOV R0, R2 .text:0002ECD4 RSB R1, R2, R1 .text:0002ECD8 BIC R1, R1, #3 .text:0002ECDC ADD R1, R1, #0xFF0 .text:0002ECE0 ADD R1, R1, #0xF .text:0002ECE4 BIC R1, R1, #0xFF0 .text:0002ECE8 BIC R1, R1, #0xF .text:0002ECEC BL munmap .text:0002ECF0 LDR R3, [R4,#0x58] .text:0002ECF4 STR R5, [R3,#0x1C] .text:0002ECF8 STR R5, [R3,#0x18] .text:0002ECFC .text:0002ECFC loc_2ECFC ; CODE XREF: _IO_wdefault_finish+1Cj .text:0002ECFC ; _IO_wdefault_finish+28j .text:0002ECFC LDR R3, [R4,#0x30] .text:0002ED00 LDR R5, =0 .text:0002ED04 CMP R3, #0 .text:0002ED08 BEQ loc_2ED20 .text:0002ED0C MOV R2, #0 .text:0002ED10 .text:0002ED10 loc_2ED10 ; CODE XREF: _IO_wdefault_finish+7Cj .text:0002ED10 STR R2, [R3,#4] .text:0002ED14 LDR R3, [R3] .text:0002ED18 CMP R3, #0 .text:0002ED1C BNE loc_2ED10 .text:0002ED20 .text:0002ED20 loc_2ED20 ; CODE XREF: _IO_wdefault_finish+68j .text:0002ED20 LDR R3, [R4,#0x24] .text:0002ED24 CMP R3, #0 .text:0002ED28 BEQ loc_2ED40 .text:0002ED2C LDR R3, [R4,#0x58] .text:0002ED30 LDR R0, [R3,#0x20] .text:0002ED34 BL free .text:0002ED38 MOV R3, #0 .text:0002ED3C STR R3, [R4,#0x24] .text:0002ED40 .text:0002ED40 loc_2ED40 ; CODE XREF: _IO_wdefault_finish+88j .text:0002ED40 CMP R5, #0 .text:0002ED44 BEQ loc_2ED54 .text:0002ED48 LDR R0, [R4,#0x48] .text:0002ED4C MOV LR, PC .text:0002ED50 MOV PC, R5 .text:0002ED54 .text:0002ED54 loc_2ED54 ; CODE XREF: _IO_wdefault_finish+A4j .text:0002ED54 MOV R0, R4 .text:0002ED58 BL _IO_un_link .text:0002ED5C LDMDB R11, {R4,R5,R11,SP,PC} .text:0002ED5C ; End of function _IO_wdefault_finish .text:0002ED5C .text:0002ED5C ; --------------------------------------------------------------------------- .text:0002ED60 dword_2ED60 DCD 0 ; DATA XREF: _IO_wdefault_finish+60r .text:0002ED64 .text:0002ED64 ; =============== S U B R O U T I N E ======================================= .text:0002ED64 .text:0002ED64 ; Attributes: bp-based frame .text:0002ED64 .text:0002ED64 EXPORT _IO_wdefault_uflow .text:0002ED64 _IO_wdefault_uflow .text:0002ED64 MOV R12, SP .text:0002ED68 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002ED6C MOV R4, R0 .text:0002ED70 LDRB R3, [R4,#0x46] .text:0002ED74 SUB R11, R12, #4 .text:0002ED78 MOV R3, R3,LSL#24 .text:0002ED7C ADD R3, R4, R3,ASR#24 .text:0002ED80 LDR R2, [R3,#0x94] .text:0002ED84 MOV LR, PC .text:0002ED88 LDR PC, [R2,#0x10] .text:0002ED8C CMN R0, #1 .text:0002ED90 LDMEQDB R11, {R4,R11,SP,PC} .text:0002ED94 LDR R2, [R4,#0x58] .text:0002ED98 LDR R3, [R2] .text:0002ED9C LDR R0, [R3],#4 .text:0002EDA0 STR R3, [R2] .text:0002EDA4 LDMDB R11, {R4,R11,SP,PC} .text:0002EDA4 ; End of function _IO_wdefault_uflow .text:0002EDA4 .text:0002EDA8 .text:0002EDA8 ; =============== S U B R O U T I N E ======================================= .text:0002EDA8 .text:0002EDA8 ; Attributes: bp-based frame .text:0002EDA8 .text:0002EDA8 EXPORT __woverflow .text:0002EDA8 __woverflow ; CODE XREF: __printf_fp+364p .text:0002EDA8 ; __printf_fp+3ECp ... .text:0002EDA8 MOV R12, SP .text:0002EDAC STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002EDB0 SUB R11, R12, #4 .text:0002EDB4 MOV R4, R0 .text:0002EDB8 LDR R3, [R4,#0x5C] .text:0002EDBC MOV R5, R1 .text:0002EDC0 CMP R3, #0 .text:0002EDC4 BNE loc_2EDD0 .text:0002EDC8 MOV R1, #1 .text:0002EDCC BL _IO_fwide .text:0002EDD0 .text:0002EDD0 loc_2EDD0 ; CODE XREF: __woverflow+1Cj .text:0002EDD0 LDRB R3, [R4,#0x46] .text:0002EDD4 MOV R0, R4 .text:0002EDD8 MOV R3, R3,LSL#24 .text:0002EDDC ADD R3, R4, R3,ASR#24 .text:0002EDE0 LDR R2, [R3,#0x94] .text:0002EDE4 MOV R1, R5 .text:0002EDE8 MOV LR, PC .text:0002EDEC LDR PC, [R2,#0xC] .text:0002EDF0 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002EDF0 ; End of function __woverflow .text:0002EDF0 .text:0002EDF4 .text:0002EDF4 ; =============== S U B R O U T I N E ======================================= .text:0002EDF4 .text:0002EDF4 ; Attributes: bp-based frame .text:0002EDF4 .text:0002EDF4 EXPORT __wuflow .text:0002EDF4 __wuflow .text:0002EDF4 MOV R12, SP .text:0002EDF8 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002EDFC MOV R4, R0 .text:0002EE00 LDR R3, [R4,#0x5C] .text:0002EE04 SUB R11, R12, #4 .text:0002EE08 CMP R3, #0 .text:0002EE0C BLT loc_2EEBC .text:0002EE10 BNE loc_2EE24 .text:0002EE14 MOV R1, #1 .text:0002EE18 BL _IO_fwide .text:0002EE1C CMP R0, #1 .text:0002EE20 BNE loc_2EEBC .text:0002EE24 .text:0002EE24 loc_2EE24 ; CODE XREF: __wuflow+1Cj .text:0002EE24 LDR R3, [R4,#0x5C] .text:0002EE28 CMP R3, #0 .text:0002EE2C BNE loc_2EE3C .text:0002EE30 MOV R0, R4 .text:0002EE34 MOV R1, #1 .text:0002EE38 BL _IO_fwide .text:0002EE3C .text:0002EE3C loc_2EE3C ; CODE XREF: __wuflow+38j .text:0002EE3C LDR R3, [R4] .text:0002EE40 TST R3, #0x800 .text:0002EE44 BEQ loc_2EE58 .text:0002EE48 MOV R0, R4 .text:0002EE4C BL _IO_switch_to_wget_mode .text:0002EE50 CMN R0, #1 .text:0002EE54 LDMEQDB R11, {R4,R11,SP,PC} .text:0002EE58 .text:0002EE58 loc_2EE58 ; CODE XREF: __wuflow+50j .text:0002EE58 LDR R1, [R4,#0x58] .text:0002EE5C LDMIA R1, {R2,R3} .text:0002EE60 CMP R2, R3 .text:0002EE64 BCS loc_2EE74 .text:0002EE68 .text:0002EE68 loc_2EE68 ; CODE XREF: __wuflow+A0j .text:0002EE68 LDR R0, [R2],#4 .text:0002EE6C STR R2, [R1] .text:0002EE70 LDMDB R11, {R4,R11,SP,PC} .text:0002EE74 ; --------------------------------------------------------------------------- .text:0002EE74 .text:0002EE74 loc_2EE74 ; CODE XREF: __wuflow+70j .text:0002EE74 LDR R3, [R4] .text:0002EE78 TST R3, #0x100 .text:0002EE7C BEQ loc_2EE98 .text:0002EE80 MOV R0, R4 .text:0002EE84 BL _IO_switch_to_main_wget_area .text:0002EE88 LDR R1, [R4,#0x58] .text:0002EE8C LDMIA R1, {R2,R3} .text:0002EE90 CMP R2, R3 .text:0002EE94 BCC loc_2EE68 .text:0002EE98 .text:0002EE98 loc_2EE98 ; CODE XREF: __wuflow+88j .text:0002EE98 LDR R3, [R4,#0x30] .text:0002EE9C CMP R3, #0 .text:0002EEA0 BEQ loc_2EEC4 .text:0002EEA4 LDR R3, [R4,#0x58] .text:0002EEA8 LDR R1, [R3,#4] .text:0002EEAC MOV R0, R4 .text:0002EEB0 BL save_for_wbackup .text:0002EEB4 CMP R0, #0 .text:0002EEB8 BEQ loc_2EEDC .text:0002EEBC .text:0002EEBC loc_2EEBC ; CODE XREF: __wuflow+18j .text:0002EEBC ; __wuflow+2Cj .text:0002EEBC MOV R0, 0xFFFFFFFF .text:0002EEC0 LDMDB R11, {R4,R11,SP,PC} .text:0002EEC4 ; --------------------------------------------------------------------------- .text:0002EEC4 .text:0002EEC4 loc_2EEC4 ; CODE XREF: __wuflow+ACj .text:0002EEC4 LDR R3, [R4,#0x58] .text:0002EEC8 LDR R2, [R3,#0x20] .text:0002EECC CMP R2, #0 .text:0002EED0 BEQ loc_2EEDC .text:0002EED4 MOV R0, R4 .text:0002EED8 BL _IO_free_wbackup_area .text:0002EEDC .text:0002EEDC loc_2EEDC ; CODE XREF: __wuflow+C4j .text:0002EEDC ; __wuflow+DCj .text:0002EEDC LDRB R3, [R4,#0x46] .text:0002EEE0 MOV R3, R3,LSL#24 .text:0002EEE4 ADD R3, R4, R3,ASR#24 .text:0002EEE8 LDR R2, [R3,#0x94] .text:0002EEEC MOV R0, R4 .text:0002EEF0 MOV LR, PC .text:0002EEF4 LDR PC, [R2,#0x14] .text:0002EEF8 LDMDB R11, {R4,R11,SP,PC} .text:0002EEF8 ; End of function __wuflow .text:0002EEF8 .text:0002EEFC .text:0002EEFC ; =============== S U B R O U T I N E ======================================= .text:0002EEFC .text:0002EEFC ; Attributes: bp-based frame .text:0002EEFC .text:0002EEFC EXPORT __wunderflow .text:0002EEFC __wunderflow ; CODE XREF: _IO_wdefault_xsgetn+A8p .text:0002EEFC MOV R12, SP .text:0002EF00 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002EF04 MOV R4, R0 .text:0002EF08 LDR R3, [R4,#0x5C] .text:0002EF0C SUB R11, R12, #4 .text:0002EF10 CMP R3, #0 .text:0002EF14 BLT loc_2EFC0 .text:0002EF18 BNE loc_2EF2C .text:0002EF1C MOV R1, #1 .text:0002EF20 BL _IO_fwide .text:0002EF24 CMP R0, #1 .text:0002EF28 BNE loc_2EFC0 .text:0002EF2C .text:0002EF2C loc_2EF2C ; CODE XREF: __wunderflow+1Cj .text:0002EF2C LDR R3, [R4,#0x5C] .text:0002EF30 CMP R3, #0 .text:0002EF34 BNE loc_2EF44 .text:0002EF38 MOV R0, R4 .text:0002EF3C MOV R1, #1 .text:0002EF40 BL _IO_fwide .text:0002EF44 .text:0002EF44 loc_2EF44 ; CODE XREF: __wunderflow+38j .text:0002EF44 LDR R3, [R4] .text:0002EF48 TST R3, #0x800 .text:0002EF4C BEQ loc_2EF60 .text:0002EF50 MOV R0, R4 .text:0002EF54 BL _IO_switch_to_wget_mode .text:0002EF58 CMN R0, #1 .text:0002EF5C LDMEQDB R11, {R4,R11,SP,PC} .text:0002EF60 .text:0002EF60 loc_2EF60 ; CODE XREF: __wunderflow+50j .text:0002EF60 LDR R2, [R4,#0x58] .text:0002EF64 LDMIA R2, {R0,R3} .text:0002EF68 CMP R0, R3 .text:0002EF6C BCS loc_2EF78 .text:0002EF70 .text:0002EF70 loc_2EF70 ; CODE XREF: __wunderflow+9Cj .text:0002EF70 LDR R0, [R0] .text:0002EF74 LDMDB R11, {R4,R11,SP,PC} .text:0002EF78 ; --------------------------------------------------------------------------- .text:0002EF78 .text:0002EF78 loc_2EF78 ; CODE XREF: __wunderflow+70j .text:0002EF78 LDR R3, [R4] .text:0002EF7C TST R3, #0x100 .text:0002EF80 BEQ loc_2EF9C .text:0002EF84 MOV R0, R4 .text:0002EF88 BL _IO_switch_to_main_wget_area .text:0002EF8C LDR R2, [R4,#0x58] .text:0002EF90 LDMIA R2, {R0,R3} .text:0002EF94 CMP R0, R3 .text:0002EF98 BCC loc_2EF70 .text:0002EF9C .text:0002EF9C loc_2EF9C ; CODE XREF: __wunderflow+84j .text:0002EF9C LDR R3, [R4,#0x30] .text:0002EFA0 CMP R3, #0 .text:0002EFA4 BEQ loc_2EFC8 .text:0002EFA8 LDR R3, [R4,#0x58] .text:0002EFAC LDR R1, [R3,#4] .text:0002EFB0 MOV R0, R4 .text:0002EFB4 BL save_for_wbackup .text:0002EFB8 CMP R0, #0 .text:0002EFBC BEQ loc_2EFDC .text:0002EFC0 .text:0002EFC0 loc_2EFC0 ; CODE XREF: __wunderflow+18j .text:0002EFC0 ; __wunderflow+2Cj .text:0002EFC0 MOV R0, 0xFFFFFFFF .text:0002EFC4 LDMDB R11, {R4,R11,SP,PC} .text:0002EFC8 ; --------------------------------------------------------------------------- .text:0002EFC8 .text:0002EFC8 loc_2EFC8 ; CODE XREF: __wunderflow+A8j .text:0002EFC8 LDR R3, [R4,#0x24] .text:0002EFCC CMP R3, #0 .text:0002EFD0 BEQ loc_2EFDC .text:0002EFD4 MOV R0, R4 .text:0002EFD8 BL _IO_free_wbackup_area .text:0002EFDC .text:0002EFDC loc_2EFDC ; CODE XREF: __wunderflow+C0j .text:0002EFDC ; __wunderflow+D4j .text:0002EFDC LDRB R3, [R4,#0x46] .text:0002EFE0 MOV R3, R3,LSL#24 .text:0002EFE4 ADD R3, R4, R3,ASR#24 .text:0002EFE8 LDR R2, [R3,#0x94] .text:0002EFEC MOV R0, R4 .text:0002EFF0 MOV LR, PC .text:0002EFF4 LDR PC, [R2,#0x10] .text:0002EFF8 LDMDB R11, {R4,R11,SP,PC} .text:0002EFF8 ; End of function __wunderflow .text:0002EFF8 .text:0002EFFC .text:0002EFFC ; =============== S U B R O U T I N E ======================================= .text:0002EFFC .text:0002EFFC ; Attributes: bp-based frame .text:0002EFFC .text:0002EFFC EXPORT _IO_wdefault_xsputn .text:0002EFFC _IO_wdefault_xsputn ; CODE XREF: _IO_wfile_xsputn+114p .text:0002EFFC MOV R12, SP .text:0002F000 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0002F004 SUB R11, R12, #4 .text:0002F008 MOV R6, R1 .text:0002F00C MOV R8, R2 .text:0002F010 SUBS R5, R8, #0 .text:0002F014 MOV R7, R0 .text:0002F018 MOVEQ R0, R8 .text:0002F01C LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0002F020 .text:0002F020 loc_2F020 ; CODE XREF: _IO_wdefault_xsputn+B8j .text:0002F020 LDR R2, [R7,#0x58] .text:0002F024 ADD R1, R2, #0x14 .text:0002F028 LDMDA R1, {R1,R3} .text:0002F02C SUB R3, R3, R1 .text:0002F030 LDR R0, [R2,#0x10] .text:0002F034 MOV R4, R3,ASR#2 .text:0002F038 CMP R4, #0 .text:0002F03C BLE loc_2F098 .text:0002F040 CMP R4, R5 .text:0002F044 MOVCS R4, R5 .text:0002F048 CMP R4, #0x14 .text:0002F04C BLE loc_2F068 .text:0002F050 MOV R1, R6 .text:0002F054 MOV R2, R4 .text:0002F058 BL wmempcpy .text:0002F05C LDR R3, [R7,#0x58] .text:0002F060 ADD R6, R6, R4,LSL#2 .text:0002F064 B loc_2F090 .text:0002F068 ; --------------------------------------------------------------------------- .text:0002F068 .text:0002F068 loc_2F068 ; CODE XREF: _IO_wdefault_xsputn+50j .text:0002F068 CMP R4, #0 .text:0002F06C MOVLE R4, #0 .text:0002F070 BLE loc_2F094 .text:0002F074 SUBS R2, R4, #1 .text:0002F078 BMI loc_2F08C .text:0002F07C .text:0002F07C loc_2F07C ; CODE XREF: _IO_wdefault_xsputn+8Cj .text:0002F07C LDR R3, [R6],#4 .text:0002F080 SUBS R2, R2, #1 .text:0002F084 STR R3, [R0],#4 .text:0002F088 BPL loc_2F07C .text:0002F08C .text:0002F08C loc_2F08C ; CODE XREF: _IO_wdefault_xsputn+7Cj .text:0002F08C LDR R3, [R7,#0x58] .text:0002F090 .text:0002F090 loc_2F090 ; CODE XREF: _IO_wdefault_xsputn+68j .text:0002F090 STR R0, [R3,#0x10] .text:0002F094 .text:0002F094 loc_2F094 ; CODE XREF: _IO_wdefault_xsputn+74j .text:0002F094 RSB R5, R4, R5 .text:0002F098 .text:0002F098 loc_2F098 ; CODE XREF: _IO_wdefault_xsputn+40j .text:0002F098 CMP R5, #0 .text:0002F09C BEQ loc_2F0B8 .text:0002F0A0 LDR R1, [R6],#4 .text:0002F0A4 MOV R0, R7 .text:0002F0A8 BL __woverflow .text:0002F0AC CMN R0, #1 .text:0002F0B0 SUBNE R5, R5, #1 .text:0002F0B4 BNE loc_2F020 .text:0002F0B8 .text:0002F0B8 loc_2F0B8 ; CODE XREF: _IO_wdefault_xsputn+A0j .text:0002F0B8 RSB R0, R5, R8 .text:0002F0BC LDMDB R11, {R4-R8,R11,SP,PC} .text:0002F0BC ; End of function _IO_wdefault_xsputn .text:0002F0BC .text:0002F0C0 .text:0002F0C0 ; =============== S U B R O U T I N E ======================================= .text:0002F0C0 .text:0002F0C0 ; Attributes: bp-based frame .text:0002F0C0 .text:0002F0C0 EXPORT _IO_wdefault_xsgetn .text:0002F0C0 _IO_wdefault_xsgetn .text:0002F0C0 MOV R12, SP .text:0002F0C4 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0002F0C8 SUB R11, R12, #4 .text:0002F0CC MOV R7, R0 .text:0002F0D0 MOV R8, R2 .text:0002F0D4 MOV R5, R8 .text:0002F0D8 MOV R6, R1 .text:0002F0DC .text:0002F0DC loc_2F0DC ; CODE XREF: _IO_wdefault_xsgetn+B0j .text:0002F0DC LDR R2, [R7,#0x58] .text:0002F0E0 LDMIA R2, {R1,R3} .text:0002F0E4 SUB R3, R3, R1 .text:0002F0E8 LDR R1, [R2] .text:0002F0EC MOV R4, R3,ASR#2 .text:0002F0F0 CMP R4, #0 .text:0002F0F4 BLE loc_2F15C .text:0002F0F8 CMP R4, R5 .text:0002F0FC MOVCS R4, R5 .text:0002F100 CMP R4, #0x14 .text:0002F104 BLE loc_2F12C .text:0002F108 MOV R0, R6 .text:0002F10C MOV R2, R4 .text:0002F110 BL wmempcpy .text:0002F114 LDR R2, [R7,#0x58] .text:0002F118 LDR R3, [R2] .text:0002F11C MOV R6, R0 .text:0002F120 ADD R3, R3, R4,LSL#2 .text:0002F124 STR R3, [R2] .text:0002F128 B loc_2F158 .text:0002F12C ; --------------------------------------------------------------------------- .text:0002F12C .text:0002F12C loc_2F12C ; CODE XREF: _IO_wdefault_xsgetn+44j .text:0002F12C CMP R4, #0 .text:0002F130 MOVLE R4, #0 .text:0002F134 BLE loc_2F158 .text:0002F138 SUBS R0, R4, #1 .text:0002F13C BMI loc_2F150 .text:0002F140 .text:0002F140 loc_2F140 ; CODE XREF: _IO_wdefault_xsgetn+8Cj .text:0002F140 LDR R3, [R1],#4 .text:0002F144 SUBS R0, R0, #1 .text:0002F148 STR R3, [R6],#4 .text:0002F14C BPL loc_2F140 .text:0002F150 .text:0002F150 loc_2F150 ; CODE XREF: _IO_wdefault_xsgetn+7Cj .text:0002F150 LDR R3, [R7,#0x58] .text:0002F154 STR R1, [R3] .text:0002F158 .text:0002F158 loc_2F158 ; CODE XREF: _IO_wdefault_xsgetn+68j .text:0002F158 ; _IO_wdefault_xsgetn+74j .text:0002F158 RSB R5, R4, R5 .text:0002F15C .text:0002F15C loc_2F15C ; CODE XREF: _IO_wdefault_xsgetn+34j .text:0002F15C CMP R5, #0 .text:0002F160 BEQ loc_2F174 .text:0002F164 MOV R0, R7 .text:0002F168 BL __wunderflow .text:0002F16C CMN R0, #1 .text:0002F170 BNE loc_2F0DC .text:0002F174 .text:0002F174 loc_2F174 ; CODE XREF: _IO_wdefault_xsgetn+A0j .text:0002F174 RSB R0, R5, R8 .text:0002F178 LDMDB R11, {R4-R8,R11,SP,PC} .text:0002F178 ; End of function _IO_wdefault_xsgetn .text:0002F178 .text:0002F17C .text:0002F17C ; =============== S U B R O U T I N E ======================================= .text:0002F17C .text:0002F17C ; Attributes: bp-based frame .text:0002F17C .text:0002F17C EXPORT _IO_wdoallocbuf .text:0002F17C _IO_wdoallocbuf ; CODE XREF: _IO_wfile_underflow+1B4p .text:0002F17C ; _IO_wfile_overflow+58p .text:0002F17C MOV R12, SP .text:0002F180 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002F184 MOV R4, R0 .text:0002F188 LDR R2, [R4,#0x58] .text:0002F18C LDR R5, [R2,#0x18] .text:0002F190 SUB R11, R12, #4 .text:0002F194 CMP R5, #0 .text:0002F198 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0002F19C LDR R3, [R4] .text:0002F1A0 TST R3, #2 .text:0002F1A4 BNE loc_2F1BC .text:0002F1A8 LDR R3, [R2,#0xB8] .text:0002F1AC MOV LR, PC .text:0002F1B0 LDR PC, [R3,#0x34] .text:0002F1B4 CMN R0, #1 .text:0002F1B8 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0002F1BC .text:0002F1BC loc_2F1BC ; CODE XREF: _IO_wdoallocbuf+28j .text:0002F1BC MOV R0, R4 .text:0002F1C0 LDR R2, [R4,#0x58] .text:0002F1C4 MOV R3, R5 .text:0002F1C8 ADD R1, R2, #0xB4 .text:0002F1CC ADD R2, R2, #0xB8 .text:0002F1D0 BL _IO_wsetb .text:0002F1D4 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002F1D4 ; End of function _IO_wdoallocbuf .text:0002F1D4 .text:0002F1D8 .text:0002F1D8 ; =============== S U B R O U T I N E ======================================= .text:0002F1D8 .text:0002F1D8 ; Attributes: bp-based frame .text:0002F1D8 .text:0002F1D8 EXPORT _IO_wdefault_setbuf .text:0002F1D8 _IO_wdefault_setbuf ; CODE XREF: _IO_wfile_setbuf+10p .text:0002F1D8 MOV R12, SP .text:0002F1DC STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0002F1E0 SUB R11, R12, #4 .text:0002F1E4 MOV R4, R0 .text:0002F1E8 LDRB R3, [R4,#0x46] .text:0002F1EC MOV R6, R1 .text:0002F1F0 MOV R3, R3,LSL#24 .text:0002F1F4 ADD R3, R4, R3,ASR#24 .text:0002F1F8 LDR R1, [R3,#0x94] .text:0002F1FC MOV R5, R2 .text:0002F200 MOV LR, PC .text:0002F204 LDR PC, [R1,#0x30] .text:0002F208 CMN R0, #1 .text:0002F20C MOVEQ R0, #0 .text:0002F210 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0002F214 CMP R5, #0 .text:0002F218 MOVNE R3, #0 .text:0002F21C MOVEQ R3, #1 .text:0002F220 CMP R6, #0 .text:0002F224 MOVNE R12, R3 .text:0002F228 MOVEQ R12, #1 .text:0002F22C CMP R12, #0 .text:0002F230 BEQ loc_2F25C .text:0002F234 LDR R3, [R4] .text:0002F238 ORR R3, R3, #2 .text:0002F23C STR R3, [R4] .text:0002F240 MOV R0, R4 .text:0002F244 LDR R2, [R4,#0x58] .text:0002F248 MOV R3, #0 .text:0002F24C ADD R1, R2, #0xB4 .text:0002F250 ADD R2, R2, #0xB8 .text:0002F254 BL _IO_wsetb .text:0002F258 B loc_2F27C .text:0002F25C ; --------------------------------------------------------------------------- .text:0002F25C .text:0002F25C loc_2F25C ; CODE XREF: _IO_wdefault_setbuf+58j .text:0002F25C LDR R3, [R4] .text:0002F260 BIC R3, R3, #2 .text:0002F264 STR R3, [R4] .text:0002F268 MOV R0, R4 .text:0002F26C MOV R1, R6 .text:0002F270 ADD R2, R1, R5,LSL#2 .text:0002F274 MOV R3, R12 .text:0002F278 BL _IO_wsetb .text:0002F27C .text:0002F27C loc_2F27C ; CODE XREF: _IO_wdefault_setbuf+80j .text:0002F27C LDR R3, [R4,#0x58] .text:0002F280 MOV R1, #0 .text:0002F284 STR R1, [R3,#0x14] .text:0002F288 STR R1, [R3,#0x10] .text:0002F28C STR R1, [R3,#0xC] .text:0002F290 LDR R2, [R4,#0x58] .text:0002F294 STR R1, [R2,#4] .text:0002F298 STR R1, [R2] .text:0002F29C MOV R0, R4 .text:0002F2A0 STR R1, [R2,#8] .text:0002F2A4 LDMDB R11, {R4-R6,R11,SP,PC} .text:0002F2A4 ; End of function _IO_wdefault_setbuf .text:0002F2A4 .text:0002F2A8 .text:0002F2A8 ; =============== S U B R O U T I N E ======================================= .text:0002F2A8 .text:0002F2A8 ; Attributes: bp-based frame .text:0002F2A8 .text:0002F2A8 EXPORT _IO_wdefault_doallocate .text:0002F2A8 _IO_wdefault_doallocate .text:0002F2A8 .text:0002F2A8 var_1C = -0x1C .text:0002F2A8 var_18 = -0x18 .text:0002F2A8 .text:0002F2A8 MOV R12, SP .text:0002F2AC STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002F2B0 SUB R11, R12, #4 .text:0002F2B4 MOV R5, R0 .text:0002F2B8 SUB SP, SP, #8 .text:0002F2BC MOV R4, 0xFFFFFFFF .text:0002F2C0 STR R4, [SP,#0x1C+var_1C] .text:0002F2C4 MOV R0, #0 .text:0002F2C8 STR R0, [SP,#0x1C+var_18] .text:0002F2CC MOV R1, #0x2000 .text:0002F2D0 MOV R2, #3 .text:0002F2D4 MOV R3, #0x22 .text:0002F2D8 BL mmap .text:0002F2DC MOV R1, R0 .text:0002F2E0 CMP R1, R4 .text:0002F2E4 BEQ loc_2F300 .text:0002F2E8 MOV R0, R5 .text:0002F2EC ADD R2, R1, #0x8000 .text:0002F2F0 MOV R3, #1 .text:0002F2F4 BL _IO_wsetb .text:0002F2F8 MOV R0, #1 .text:0002F2FC B locret_2F304 .text:0002F300 ; --------------------------------------------------------------------------- .text:0002F300 .text:0002F300 loc_2F300 ; CODE XREF: _IO_wdefault_doallocate+3Cj .text:0002F300 MOV R0, R4 .text:0002F304 .text:0002F304 locret_2F304 ; CODE XREF: _IO_wdefault_doallocate+54j .text:0002F304 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002F304 ; End of function _IO_wdefault_doallocate .text:0002F304 .text:0002F308 .text:0002F308 ; =============== S U B R O U T I N E ======================================= .text:0002F308 .text:0002F308 ; Attributes: bp-based frame .text:0002F308 .text:0002F308 EXPORT _IO_switch_to_wget_mode .text:0002F308 _IO_switch_to_wget_mode ; CODE XREF: __wuflow+58p .text:0002F308 ; __wunderflow+58p ... .text:0002F308 MOV R12, SP .text:0002F30C STMFD SP!, {R4,R11,R12,LR,PC} .text:0002F310 MOV R4, R0 .text:0002F314 LDR R1, [R4,#0x58] .text:0002F318 LDR R2, [R1,#0x10] .text:0002F31C LDR R3, [R1,#0xC] .text:0002F320 SUB R11, R12, #4 .text:0002F324 CMP R2, R3 .text:0002F328 BLS loc_2F344 .text:0002F32C LDR R3, [R1,#0xB8] .text:0002F330 MOV R1, 0xFFFFFFFF .text:0002F334 MOV LR, PC .text:0002F338 LDR PC, [R3,#0xC] .text:0002F33C CMN R0, #1 .text:0002F340 LDMEQDB R11, {R4,R11,SP,PC} .text:0002F344 .text:0002F344 loc_2F344 ; CODE XREF: _IO_switch_to_wget_mode+20j .text:0002F344 LDR R3, [R4] .text:0002F348 TST R3, #0x100 .text:0002F34C LDRNE R2, [R4,#0x58] .text:0002F350 LDRNE R3, [R2,#0x24] .text:0002F354 STRNE R3, [R2,#8] .text:0002F358 BNE loc_2F37C .text:0002F35C LDR R3, [R4,#0x58] .text:0002F360 LDR R2, [R3,#0x18] .text:0002F364 STR R2, [R3,#8] .text:0002F368 LDR R2, [R4,#0x58] .text:0002F36C LDR R1, [R2,#0x10] .text:0002F370 LDR R3, [R2,#4] .text:0002F374 CMP R1, R3 .text:0002F378 STRHI R1, [R2,#4] .text:0002F37C .text:0002F37C loc_2F37C ; CODE XREF: _IO_switch_to_wget_mode+50j .text:0002F37C LDR R2, [R4,#0x58] .text:0002F380 LDR R3, [R2,#0x10] .text:0002F384 STR R3, [R2] .text:0002F388 LDR R1, [R4,#0x58] .text:0002F38C LDR R3, [R1] .text:0002F390 STR R3, [R1,#0x14] .text:0002F394 STR R3, [R1,#0x10] .text:0002F398 STR R3, [R1,#0xC] .text:0002F39C LDR R2, [R4] .text:0002F3A0 MOV R0, #0 .text:0002F3A4 BIC R2, R2, #0x800 .text:0002F3A8 STR R2, [R4] .text:0002F3AC LDMDB R11, {R4,R11,SP,PC} .text:0002F3AC ; End of function _IO_switch_to_wget_mode .text:0002F3AC .text:0002F3B0 .text:0002F3B0 ; =============== S U B R O U T I N E ======================================= .text:0002F3B0 .text:0002F3B0 ; Attributes: bp-based frame .text:0002F3B0 .text:0002F3B0 EXPORT _IO_free_wbackup_area .text:0002F3B0 _IO_free_wbackup_area ; CODE XREF: __wuflow+E4p .text:0002F3B0 ; __wunderflow+DCp ... .text:0002F3B0 MOV R12, SP .text:0002F3B4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002F3B8 MOV R4, R0 .text:0002F3BC LDR R3, [R4] .text:0002F3C0 SUB R11, R12, #4 .text:0002F3C4 TST R3, #0x100 .text:0002F3C8 BEQ loc_2F3D0 .text:0002F3CC BL _IO_switch_to_main_wget_area .text:0002F3D0 .text:0002F3D0 loc_2F3D0 ; CODE XREF: _IO_free_wbackup_area+18j .text:0002F3D0 LDR R3, [R4,#0x58] .text:0002F3D4 LDR R0, [R3,#0x20] .text:0002F3D8 BL free .text:0002F3DC LDR R2, [R4,#0x58] .text:0002F3E0 MOV R1, #0 .text:0002F3E4 STR R1, [R2,#0x20] .text:0002F3E8 LDR R3, [R4,#0x58] .text:0002F3EC STR R1, [R3,#0x28] .text:0002F3F0 LDR R2, [R4,#0x58] .text:0002F3F4 STR R1, [R2,#0x24] .text:0002F3F8 LDMDB R11, {R4,R11,SP,PC} .text:0002F3F8 ; End of function _IO_free_wbackup_area .text:0002F3F8 .text:0002F3FC .text:0002F3FC ; =============== S U B R O U T I N E ======================================= .text:0002F3FC .text:0002F3FC ; Attributes: bp-based frame .text:0002F3FC .text:0002F3FC save_for_wbackup ; CODE XREF: _IO_wdefault_pbackfail+80p .text:0002F3FC ; __wuflow+BCp ... .text:0002F3FC MOV R12, SP .text:0002F400 STMFD SP!, {R4-R12,LR,PC} .text:0002F404 SUB R11, R12, #4 .text:0002F408 MOV R7, R0 .text:0002F40C MOV R10, R1 .text:0002F410 BL _IO_least_wmarker .text:0002F414 LDR R3, [R7,#0x58] .text:0002F418 LDR R12, [R3,#8] .text:0002F41C LDR R1, [R3,#0x28] .text:0002F420 MOV R6, R0 .text:0002F424 LDR R0, [R3,#0x20] .text:0002F428 RSB R2, R12, R10 .text:0002F42C RSB R5, R6, R2,ASR#2 .text:0002F430 RSB R3, R0, R1 .text:0002F434 MOV R3, R3,ASR#2 .text:0002F438 CMP R5, R3 .text:0002F43C BLS loc_2F4F0 .text:0002F440 MOV R4, #0x64 .text:0002F444 ADD R0, R5, R4 .text:0002F448 MOV R0, R0,LSL#2 .text:0002F44C BL malloc .text:0002F450 SUBS R8, R0, #0 .text:0002F454 MOVEQ R0, 0xFFFFFFFF .text:0002F458 LDMEQDB R11, {R4-R11,SP,PC} .text:0002F45C CMP R6, #0 .text:0002F460 BGE loc_2F4A0 .text:0002F464 MOV R4, R4,LSL#2 .text:0002F468 LDR R3, [R7,#0x58] .text:0002F46C ADD R0, R8, R4 .text:0002F470 LDR R1, [R3,#0x28] .text:0002F474 RSB R2, R6, #0 .text:0002F478 ADD R1, R1, R6,LSL#2 .text:0002F47C BL wmempcpy .text:0002F480 LDR R3, [R7,#0x58] .text:0002F484 LDR R2, [R3,#8] .text:0002F488 MOV R9, R4 .text:0002F48C MOV R1, R2 .text:0002F490 RSB R2, R2, R10 .text:0002F494 MOV R2, R2,ASR#2 .text:0002F498 BL wmempcpy .text:0002F49C B loc_2F4C0 .text:0002F4A0 ; --------------------------------------------------------------------------- .text:0002F4A0 .text:0002F4A0 loc_2F4A0 ; CODE XREF: save_for_wbackup+64j .text:0002F4A0 MOV R3, R4,LSL#2 .text:0002F4A4 ADD R0, R8, R3 .text:0002F4A8 MOV R2, R5 .text:0002F4AC LDR R12, [R7,#0x58] .text:0002F4B0 LDR R1, [R12,#8] .text:0002F4B4 MOV R9, R3 .text:0002F4B8 ADD R1, R1, R6,LSL#2 .text:0002F4BC BL wmemcpy .text:0002F4C0 .text:0002F4C0 loc_2F4C0 ; CODE XREF: save_for_wbackup+A0j .text:0002F4C0 LDR R3, [R7,#0x58] .text:0002F4C4 LDR R0, [R3,#0x20] .text:0002F4C8 CMP R0, #0 .text:0002F4CC BEQ loc_2F4D4 .text:0002F4D0 BL free .text:0002F4D4 .text:0002F4D4 loc_2F4D4 ; CODE XREF: save_for_wbackup+D0j .text:0002F4D4 LDR R3, [R7,#0x58] .text:0002F4D8 STR R8, [R3,#0x20] .text:0002F4DC ADD R2, R8, R9 .text:0002F4E0 LDR R3, [R7,#0x58] .text:0002F4E4 ADD R2, R2, R5,LSL#2 .text:0002F4E8 STR R2, [R3,#0x28] .text:0002F4EC B loc_2F55C .text:0002F4F0 ; --------------------------------------------------------------------------- .text:0002F4F0 .text:0002F4F0 loc_2F4F0 ; CODE XREF: save_for_wbackup+40j .text:0002F4F0 RSB R4, R5, R3 .text:0002F4F4 CMP R6, #0 .text:0002F4F8 BGE loc_2F540 .text:0002F4FC MOV R4, R4,LSL#2 .text:0002F500 ADD R0, R0, R4 .text:0002F504 MOV R5, R6,LSL#2 .text:0002F508 ADD R1, R1, R5 .text:0002F50C RSB R2, R6, #0 .text:0002F510 BL wmemmove .text:0002F514 LDR R3, [R7,#0x58] .text:0002F518 LDR R0, [R3,#0x20] .text:0002F51C MOV R9, R4 .text:0002F520 LDR R2, [R3,#8] .text:0002F524 ADD R0, R0, R4 .text:0002F528 RSB R0, R5, R0 .text:0002F52C MOV R1, R2 .text:0002F530 RSB R2, R2, R10 .text:0002F534 MOV R2, R2,ASR#2 .text:0002F538 BL wmemcpy .text:0002F53C B loc_2F55C .text:0002F540 ; --------------------------------------------------------------------------- .text:0002F540 .text:0002F540 loc_2F540 ; CODE XREF: save_for_wbackup+FCj .text:0002F540 CMP R5, #0 .text:0002F544 MOV R9, R4,LSL#2 .text:0002F548 BEQ loc_2F55C .text:0002F54C ADD R0, R0, R9 .text:0002F550 ADD R1, R12, R6,LSL#2 .text:0002F554 MOV R2, R5 .text:0002F558 BL wmemcpy .text:0002F55C .text:0002F55C loc_2F55C ; CODE XREF: save_for_wbackup+F0j .text:0002F55C ; save_for_wbackup+140j ... .text:0002F55C LDR R2, [R7,#0x58] .text:0002F560 LDR R3, [R2,#0x20] .text:0002F564 ADD R3, R3, R9 .text:0002F568 STR R3, [R2,#0x24] .text:0002F56C LDR R2, [R7,#0x58] .text:0002F570 LDR R12, [R7,#0x30] .text:0002F574 LDR R3, [R2,#8] .text:0002F578 CMP R12, #0 .text:0002F57C RSB R3, R3, R10 .text:0002F580 MOV R0, R3,ASR#2 .text:0002F584 BEQ loc_2F5A0 .text:0002F588 .text:0002F588 loc_2F588 ; CODE XREF: save_for_wbackup+1A0j .text:0002F588 LDR R3, [R12,#8] .text:0002F58C RSB R3, R0, R3 .text:0002F590 STR R3, [R12,#8] .text:0002F594 LDR R12, [R12] .text:0002F598 CMP R12, #0 .text:0002F59C BNE loc_2F588 .text:0002F5A0 .text:0002F5A0 loc_2F5A0 ; CODE XREF: save_for_wbackup+188j .text:0002F5A0 MOV R0, #0 .text:0002F5A4 LDMDB R11, {R4-R11,SP,PC} .text:0002F5A4 ; End of function save_for_wbackup .text:0002F5A4 .text:0002F5A8 .text:0002F5A8 ; =============== S U B R O U T I N E ======================================= .text:0002F5A8 .text:0002F5A8 ; Attributes: bp-based frame .text:0002F5A8 .text:0002F5A8 EXPORT _IO_sputbackwc .text:0002F5A8 _IO_sputbackwc .text:0002F5A8 MOV R12, SP .text:0002F5AC STMFD SP!, {R4,R11,R12,LR,PC} .text:0002F5B0 SUB R11, R12, #4 .text:0002F5B4 MOV R4, R0 .text:0002F5B8 LDR R12, [R4,#0x58] .text:0002F5BC LDR R2, [R12] .text:0002F5C0 LDR R3, [R12,#8] .text:0002F5C4 CMP R2, R3 .text:0002F5C8 BLS loc_2F5E4 .text:0002F5CC LDR R3, [R2,#-4] .text:0002F5D0 CMP R3, R1 .text:0002F5D4 MOVEQ R0, R1 .text:0002F5D8 SUBEQ R3, R2, #4 .text:0002F5DC STREQ R3, [R12] .text:0002F5E0 BEQ loc_2F600 .text:0002F5E4 .text:0002F5E4 loc_2F5E4 ; CODE XREF: _IO_sputbackwc+20j .text:0002F5E4 LDRB R3, [R4,#0x46] .text:0002F5E8 MOV R3, R3,LSL#24 .text:0002F5EC ADD R3, R4, R3,ASR#24 .text:0002F5F0 LDR R2, [R3,#0x94] .text:0002F5F4 MOV R0, R4 .text:0002F5F8 MOV LR, PC .text:0002F5FC LDR PC, [R2,#0x18] .text:0002F600 .text:0002F600 loc_2F600 ; CODE XREF: _IO_sputbackwc+38j .text:0002F600 CMN R0, #1 .text:0002F604 LDMEQDB R11, {R4,R11,SP,PC} .text:0002F608 LDR R3, [R4] .text:0002F60C BIC R3, R3, #0x10 .text:0002F610 STR R3, [R4] .text:0002F614 LDMDB R11, {R4,R11,SP,PC} .text:0002F614 ; End of function _IO_sputbackwc .text:0002F614 .text:0002F618 .text:0002F618 ; =============== S U B R O U T I N E ======================================= .text:0002F618 .text:0002F618 ; Attributes: bp-based frame .text:0002F618 .text:0002F618 EXPORT _IO_sungetwc .text:0002F618 _IO_sungetwc .text:0002F618 MOV R12, SP .text:0002F61C STMFD SP!, {R4,R11,R12,LR,PC} .text:0002F620 MOV R4, R0 .text:0002F624 LDR R2, [R4,#0x58] .text:0002F628 LDR R1, [R2] .text:0002F62C LDR R3, [R2,#8] .text:0002F630 SUB R11, R12, #4 .text:0002F634 CMP R1, R3 .text:0002F638 BLS loc_2F654 .text:0002F63C SUB R3, R1, #4 .text:0002F640 STR R3, [R2] .text:0002F644 LDR R2, [R4,#0x58] .text:0002F648 LDR R3, [R2] .text:0002F64C LDR R0, [R3] .text:0002F650 B loc_2F674 .text:0002F654 ; --------------------------------------------------------------------------- .text:0002F654 .text:0002F654 loc_2F654 ; CODE XREF: _IO_sungetwc+20j .text:0002F654 LDRB R3, [R4,#0x46] .text:0002F658 MOV R0, R4 .text:0002F65C MOV R3, R3,LSL#24 .text:0002F660 ADD R3, R4, R3,ASR#24 .text:0002F664 LDR R2, [R3,#0x94] .text:0002F668 MOV R1, 0xFFFFFFFF .text:0002F66C MOV LR, PC .text:0002F670 LDR PC, [R2,#0x18] .text:0002F674 .text:0002F674 loc_2F674 ; CODE XREF: _IO_sungetwc+38j .text:0002F674 CMN R0, #1 .text:0002F678 LDMEQDB R11, {R4,R11,SP,PC} .text:0002F67C LDR R3, [R4] .text:0002F680 BIC R3, R3, #0x10 .text:0002F684 STR R3, [R4] .text:0002F688 LDMDB R11, {R4,R11,SP,PC} .text:0002F688 ; End of function _IO_sungetwc .text:0002F688 .text:0002F68C .text:0002F68C ; =============== S U B R O U T I N E ======================================= .text:0002F68C .text:0002F68C ; Attributes: bp-based frame .text:0002F68C .text:0002F68C EXPORT _IO_adjust_wcolumn .text:0002F68C _IO_adjust_wcolumn .text:0002F68C MOV R12, SP .text:0002F690 STMFD SP!, {R11,R12,LR,PC} .text:0002F694 SUB R11, R12, #4 .text:0002F698 ADD R12, R1, R2,LSL#2 .text:0002F69C CMP R12, R1 .text:0002F6A0 MOV LR, R0 .text:0002F6A4 BLS loc_2F6CC .text:0002F6A8 MOV R0, R12 .text:0002F6AC .text:0002F6AC loc_2F6AC ; CODE XREF: _IO_adjust_wcolumn+3Cj .text:0002F6AC LDR R3, [R12,#-4]! .text:0002F6B0 CMP R3, #0xA .text:0002F6B4 RSBEQ R0, R12, R0 .text:0002F6B8 MOVEQ R0, R0,ASR#2 .text:0002F6BC SUBEQ R0, R0, #1 .text:0002F6C0 LDMEQDB R11, {R11,SP,PC} .text:0002F6C4 CMP R12, R1 .text:0002F6C8 BHI loc_2F6AC .text:0002F6CC .text:0002F6CC loc_2F6CC ; CODE XREF: _IO_adjust_wcolumn+18j .text:0002F6CC ADD R0, LR, R2 .text:0002F6D0 LDMDB R11, {R11,SP,PC} .text:0002F6D0 ; End of function _IO_adjust_wcolumn .text:0002F6D0 .text:0002F6D4 .text:0002F6D4 ; =============== S U B R O U T I N E ======================================= .text:0002F6D4 .text:0002F6D4 ; Attributes: bp-based frame .text:0002F6D4 .text:0002F6D4 EXPORT _IO_init_wmarker .text:0002F6D4 _IO_init_wmarker .text:0002F6D4 MOV R12, SP .text:0002F6D8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002F6DC MOV R5, R0 .text:0002F6E0 MOV R4, R1 .text:0002F6E4 STR R4, [R5,#4] .text:0002F6E8 LDR R3, [R4] .text:0002F6EC SUB R11, R12, #4 .text:0002F6F0 TST R3, #0x800 .text:0002F6F4 BEQ loc_2F700 .text:0002F6F8 MOV R0, R4 .text:0002F6FC BL _IO_switch_to_wget_mode .text:0002F700 .text:0002F700 loc_2F700 ; CODE XREF: _IO_init_wmarker+20j .text:0002F700 LDR R3, [R4] .text:0002F704 TST R3, #0x100 .text:0002F708 BEQ loc_2F724 .text:0002F70C LDR R2, [R4,#0x58] .text:0002F710 LDMIA R2, {R1,R3} .text:0002F714 SUB R3, R1, R3 .text:0002F718 MOV R3, R3,ASR#2 .text:0002F71C STR R3, [R5,#8] .text:0002F720 B loc_2F73C .text:0002F724 ; --------------------------------------------------------------------------- .text:0002F724 .text:0002F724 loc_2F724 ; CODE XREF: _IO_init_wmarker+34j .text:0002F724 LDR R3, [R4,#0x58] .text:0002F728 LDR R2, [R3] .text:0002F72C LDR R1, [R3,#8] .text:0002F730 RSB R2, R1, R2 .text:0002F734 MOV R2, R2,ASR#2 .text:0002F738 STR R2, [R5,#8] .text:0002F73C .text:0002F73C loc_2F73C ; CODE XREF: _IO_init_wmarker+4Cj .text:0002F73C LDR R3, [R4,#0x30] .text:0002F740 STR R3, [R5] .text:0002F744 STR R5, [R4,#0x30] .text:0002F748 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002F748 ; End of function _IO_init_wmarker .text:0002F748 .text:0002F74C .text:0002F74C ; =============== S U B R O U T I N E ======================================= .text:0002F74C .text:0002F74C ; Attributes: bp-based frame .text:0002F74C .text:0002F74C EXPORT _IO_wmarker_delta .text:0002F74C _IO_wmarker_delta .text:0002F74C MOV R12, SP .text:0002F750 STMFD SP!, {R11,R12,LR,PC} .text:0002F754 LDR R2, [R0,#4] .text:0002F758 SUB R11, R12, #4 .text:0002F75C CMP R2, #0 .text:0002F760 MOVEQ R0, 0xFFFFFFFF .text:0002F764 LDMEQDB R11, {R11,SP,PC} .text:0002F768 LDR R3, [R2] .text:0002F76C TST R3, #0x100 .text:0002F770 LDRNE R3, [R2,#0x58] .text:0002F774 LDMNEIA R3, {R1,R2} .text:0002F778 SUBNE R2, R1, R2 .text:0002F77C LDREQ R3, [R2,#0x58] .text:0002F780 LDREQ R2, [R3] .text:0002F784 LDREQ R1, [R3,#8] .text:0002F788 RSBEQ R2, R1, R2 .text:0002F78C MOV R2, R2,ASR#2 .text:0002F790 LDR R0, [R0,#8] .text:0002F794 RSB R0, R2, R0 .text:0002F798 LDMDB R11, {R11,SP,PC} .text:0002F798 ; End of function _IO_wmarker_delta .text:0002F798 .text:0002F79C .text:0002F79C ; =============== S U B R O U T I N E ======================================= .text:0002F79C .text:0002F79C ; Attributes: bp-based frame .text:0002F79C .text:0002F79C EXPORT _IO_seekwmark .text:0002F79C _IO_seekwmark .text:0002F79C MOV R12, SP .text:0002F7A0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002F7A4 MOV R5, R1 .text:0002F7A8 LDR R4, [R5,#4] .text:0002F7AC SUB R11, R12, #4 .text:0002F7B0 CMP R4, R0 .text:0002F7B4 MOVNE R0, 0xFFFFFFFF .text:0002F7B8 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0002F7BC LDR R3, [R5,#8] .text:0002F7C0 CMP R3, #0 .text:0002F7C4 BLT loc_2F7EC .text:0002F7C8 LDR R3, [R4] .text:0002F7CC TST R3, #0x100 .text:0002F7D0 BEQ loc_2F7DC .text:0002F7D4 MOV R0, R4 .text:0002F7D8 BL _IO_switch_to_main_wget_area .text:0002F7DC .text:0002F7DC loc_2F7DC ; CODE XREF: _IO_seekwmark+34j .text:0002F7DC LDR R1, [R4,#0x58] .text:0002F7E0 LDR R2, [R5,#8] .text:0002F7E4 LDR R3, [R1,#8] .text:0002F7E8 B loc_2F80C .text:0002F7EC ; --------------------------------------------------------------------------- .text:0002F7EC .text:0002F7EC loc_2F7EC ; CODE XREF: _IO_seekwmark+28j .text:0002F7EC LDR R3, [R4] .text:0002F7F0 TST R3, #0x100 .text:0002F7F4 BNE loc_2F800 .text:0002F7F8 MOV R0, R4 .text:0002F7FC BL _IO_switch_to_wbackup_area .text:0002F800 .text:0002F800 loc_2F800 ; CODE XREF: _IO_seekwmark+58j .text:0002F800 LDR R1, [R4,#0x58] .text:0002F804 LDR R2, [R5,#8] .text:0002F808 LDR R3, [R1,#4] .text:0002F80C .text:0002F80C loc_2F80C ; CODE XREF: _IO_seekwmark+4Cj .text:0002F80C ADD R3, R3, R2,LSL#2 .text:0002F810 STR R3, [R1] .text:0002F814 MOV R0, #0 .text:0002F818 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002F818 ; End of function _IO_seekwmark .text:0002F818 .text:0002F81C .text:0002F81C ; =============== S U B R O U T I N E ======================================= .text:0002F81C .text:0002F81C ; Attributes: bp-based frame .text:0002F81C .text:0002F81C EXPORT _IO_unsave_wmarkers .text:0002F81C _IO_unsave_wmarkers .text:0002F81C MOV R12, SP .text:0002F820 STMFD SP!, {R11,R12,LR,PC} .text:0002F824 LDR R3, [R0,#0x30] .text:0002F828 SUB R11, R12, #4 .text:0002F82C CMP R3, #0 .text:0002F830 MOVNE R3, #0 .text:0002F834 STRNE R3, [R0,#0x30] .text:0002F838 LDR R3, [R0,#0x24] .text:0002F83C CMP R3, #0 .text:0002F840 LDMEQDB R11, {R11,SP,PC} .text:0002F844 BL _IO_free_wbackup_area .text:0002F848 LDMDB R11, {R11,SP,PC} .text:0002F848 ; End of function _IO_unsave_wmarkers .text:0002F848 .text:0002F84C .text:0002F84C ; =============== S U B R O U T I N E ======================================= .text:0002F84C .text:0002F84C ; Attributes: bp-based frame .text:0002F84C .text:0002F84C EXPORT _IO_wfile_setbuf .text:0002F84C _IO_wfile_setbuf .text:0002F84C MOV R12, SP .text:0002F850 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002F854 SUB R11, R12, #4 .text:0002F858 MOV R4, R0 .text:0002F85C BL _IO_wdefault_setbuf .text:0002F860 CMP R0, #0 .text:0002F864 LDMEQDB R11, {R4,R11,SP,PC} .text:0002F868 LDR R2, [R4,#0x58] .text:0002F86C LDR R3, [R2,#0x18] .text:0002F870 STR R3, [R2,#0x14] .text:0002F874 STR R3, [R2,#0x10] .text:0002F878 STR R3, [R2,#0xC] .text:0002F87C LDR R1, [R4,#0x58] .text:0002F880 LDR R3, [R1,#0x18] .text:0002F884 STR R3, [R1,#8] .text:0002F888 LDR R2, [R4,#0x58] .text:0002F88C LDR R3, [R2,#0x18] .text:0002F890 STR R3, [R2] .text:0002F894 LDR R1, [R4,#0x58] .text:0002F898 LDR R3, [R1,#0x18] .text:0002F89C MOV R0, R4 .text:0002F8A0 STR R3, [R1,#4] .text:0002F8A4 LDMDB R11, {R4,R11,SP,PC} .text:0002F8A4 ; End of function _IO_wfile_setbuf .text:0002F8A4 .text:0002F8A8 .text:0002F8A8 ; =============== S U B R O U T I N E ======================================= .text:0002F8A8 .text:0002F8A8 ; Attributes: bp-based frame .text:0002F8A8 .text:0002F8A8 EXPORT _IO_wdo_write .text:0002F8A8 _IO_wdo_write ; CODE XREF: _IO_wfile_overflow+19Cp .text:0002F8A8 ; _IO_wfile_overflow+1F4p ... .text:0002F8A8 .text:0002F8A8 var_3C = -0x3C .text:0002F8A8 var_38 = -0x38 .text:0002F8A8 var_34 = -0x34 .text:0002F8A8 var_30 = -0x30 .text:0002F8A8 var_2C = -0x2C .text:0002F8A8 .text:0002F8A8 MOV R12, SP .text:0002F8AC STMFD SP!, {R4-R12,LR,PC} .text:0002F8B0 SUB R11, R12, #4 .text:0002F8B4 MOV R6, R1 .text:0002F8B8 SUBS R7, R2, #0 .text:0002F8BC MOV R4, R0 .text:0002F8C0 SUB SP, SP, #0x14 .text:0002F8C4 LDR R8, [R4,#0x54] .text:0002F8C8 BEQ loc_2F98C .text:0002F8CC LDR R2, [R4,#0x18] .text:0002F8D0 LDR R3, [R4,#0x14] .text:0002F8D4 CMP R2, R3 .text:0002F8D8 BNE loc_2F8F8 .text:0002F8DC LDR R1, [R4,#0x10] .text:0002F8E0 CMP R2, R1 .text:0002F8E4 BEQ loc_2F8F8 .text:0002F8E8 RSB R2, R1, R2 .text:0002F8EC BL _IO_new_do_write .text:0002F8F0 CMN R0, #1 .text:0002F8F4 BEQ locret_2F9F4 .text:0002F8F8 .text:0002F8F8 loc_2F8F8 ; CODE XREF: _IO_wdo_write+30j .text:0002F8F8 ; _IO_wdo_write+3Cj .text:0002F8F8 SUB R9, R11, #-var_2C .text:0002F8FC ADD R10, R4, #0x14 .text:0002F900 .text:0002F900 loc_2F900 ; CODE XREF: _IO_wdo_write+E0j .text:0002F900 STR R9, [SP,#0x3C+var_3C] .text:0002F904 STR R10, [SP,#0x3C+var_30] .text:0002F908 LDR R3, [R4,#0x14] .text:0002F90C STR R3, [SP,#0x3C+var_38] .text:0002F910 LDR R2, [R4,#0x20] .text:0002F914 STR R2, [SP,#0x3C+var_34] .text:0002F918 MOV R0, R8 .text:0002F91C ADD R3, R6, R7,LSL#2 .text:0002F920 LDR R1, [R4,#0x58] .text:0002F924 MOV R2, R6 .text:0002F928 ADD R1, R1, #0x2C .text:0002F92C MOV LR, PC .text:0002F930 LDR PC, [R8,#4] .text:0002F934 LDR R1, [R4,#0x10] .text:0002F938 MOV R5, R0 .text:0002F93C ADD R3, R4, #0x14 .text:0002F940 LDMDA R3, {R2,R3} .text:0002F944 SUB R2, R3, R2 .text:0002F948 MOV R0, R4 .text:0002F94C BL _IO_new_do_write .text:0002F950 CMN R0, #1 .text:0002F954 BEQ locret_2F9F4 .text:0002F958 LDR R2, [R11,#var_2C] .text:0002F95C CMP R5, #0 .text:0002F960 RSB R3, R6, R2 .text:0002F964 MOV R1, R3,ASR#2 .text:0002F968 RSB R7, R1, R7 .text:0002F96C BEQ loc_2F980 .text:0002F970 CMP R5, #1 .text:0002F974 BNE loc_2F98C .text:0002F978 CMP R1, #0 .text:0002F97C BEQ loc_2F98C .text:0002F980 .text:0002F980 loc_2F980 ; CODE XREF: _IO_wdo_write+C4j .text:0002F980 MOV R6, R2 .text:0002F984 CMP R7, #0 .text:0002F988 BNE loc_2F900 .text:0002F98C .text:0002F98C loc_2F98C ; CODE XREF: _IO_wdo_write+20j .text:0002F98C ; _IO_wdo_write+CCj ... .text:0002F98C LDR R2, [R4,#0x58] .text:0002F990 LDR R3, [R2,#0x18] .text:0002F994 STR R3, [R2,#8] .text:0002F998 LDR R1, [R4,#0x58] .text:0002F99C LDR R3, [R1,#0x18] .text:0002F9A0 STR R3, [R1] .text:0002F9A4 LDR R0, [R4,#0x58] .text:0002F9A8 LDR R3, [R0,#0x18] .text:0002F9AC STR R3, [R0,#4] .text:0002F9B0 LDR R2, [R4,#0x58] .text:0002F9B4 LDR R1, [R2,#0x18] .text:0002F9B8 STR R1, [R2,#0x10] .text:0002F9BC STR R1, [R2,#0xC] .text:0002F9C0 LDR R3, [R4] .text:0002F9C4 BIC R3, R3, #0x1FC .text:0002F9C8 BIC R3, R3, #1 .text:0002F9CC MOV R3, R3,LSL#22 .text:0002F9D0 MOV R3, R3,LSR#22 .text:0002F9D4 CMP R3, #0 .text:0002F9D8 LDR R3, [R4,#0x58] .text:0002F9DC LDRNE R2, [R3,#0x18] .text:0002F9E0 LDREQ R2, [R3,#0x1C] .text:0002F9E4 CMP R7, #0 .text:0002F9E8 MOVNE R0, 0xFFFFFFFF .text:0002F9EC MOVEQ R0, #0 .text:0002F9F0 STR R2, [R3,#0x14] .text:0002F9F4 .text:0002F9F4 locret_2F9F4 ; CODE XREF: _IO_wdo_write+4Cj .text:0002F9F4 ; _IO_wdo_write+ACj .text:0002F9F4 LDMDB R11, {R4-R11,SP,PC} .text:0002F9F4 ; End of function _IO_wdo_write .text:0002F9F4 .text:0002F9F8 .text:0002F9F8 ; =============== S U B R O U T I N E ======================================= .text:0002F9F8 .text:0002F9F8 ; Attributes: bp-based frame .text:0002F9F8 .text:0002F9F8 EXPORT _IO_wfile_underflow .text:0002F9F8 _IO_wfile_underflow .text:0002F9F8 .text:0002F9F8 var_34 = -0x34 .text:0002F9F8 var_30 = -0x30 .text:0002F9F8 var_2C = -0x2C .text:0002F9F8 var_28 = -0x28 .text:0002F9F8 var_24 = -0x24 .text:0002F9F8 var_20 = -0x20 .text:0002F9F8 .text:0002F9F8 MOV R12, SP .text:0002F9FC STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002FA00 MOV R5, R0 .text:0002FA04 SUB SP, SP, #0x18 .text:0002FA08 LDR R3, [R5] .text:0002FA0C SUB R11, R12, #4 .text:0002FA10 TST R3, #4 .text:0002FA14 BEQ loc_2FA2C .text:0002FA18 ORR R3, R3, #0x20 .text:0002FA1C STR R3, [R5] .text:0002FA20 BL __errno_location .text:0002FA24 MOV R3, #9 .text:0002FA28 B loc_2FC90 .text:0002FA2C ; --------------------------------------------------------------------------- .text:0002FA2C .text:0002FA2C loc_2FA2C ; CODE XREF: _IO_wfile_underflow+1Cj .text:0002FA2C LDR R2, [R5,#0x58] .text:0002FA30 LDMIA R2, {R0,R3} .text:0002FA34 CMP R0, R3 .text:0002FA38 LDRCC R0, [R0] .text:0002FA3C BCC locret_2FDAC .text:0002FA40 LDMIB R5, {R3,R4} .text:0002FA44 LDR R6, [R5,#0x54] .text:0002FA48 CMP R3, R4 .text:0002FA4C BCS loc_2FB1C .text:0002FA50 MOV R0, R6 .text:0002FA54 RSB R4, R3, R4 .text:0002FA58 MOV LR, PC .text:0002FA5C LDR PC, [R6,#0x1C] .text:0002FA60 CMP R4, R0 .text:0002FA64 BCC loc_2FAE4 .text:0002FA68 LDR R2, [R5,#4] .text:0002FA6C LDR R3, [R5,#0x58] .text:0002FA70 STR R2, [R11,#var_20] .text:0002FA74 ADD R1, R3, #0x34 .text:0002FA78 ADD R0, R3, #0x2C .text:0002FA7C LDMIA R0, {R2,R3} .text:0002FA80 STMIA R1, {R2,R3} .text:0002FA84 SUB R2, R11, #-var_20 .text:0002FA88 STR R2, [SP,#0x34+var_34] .text:0002FA8C LDR R1, [R5,#0x58] .text:0002FA90 LDR R3, [R1,#4] .text:0002FA94 STR R3, [SP,#0x34+var_30] .text:0002FA98 LDR R2, [R1,#0x1C] .text:0002FA9C ADD R3, R1, #4 .text:0002FAA0 STR R3, [SP,#0x34+var_28] .text:0002FAA4 STR R2, [SP,#0x34+var_2C] .text:0002FAA8 LDR R2, [R5,#4] .text:0002FAAC MOV R0, R6 .text:0002FAB0 LDR R3, [R5,#8] .text:0002FAB4 ADD R1, R1, #0x2C .text:0002FAB8 MOV LR, PC .text:0002FABC LDR PC, [R6,#0xC] .text:0002FAC0 LDR R3, [R11,#var_20] .text:0002FAC4 STR R3, [R5,#4] .text:0002FAC8 LDR R2, [R5,#0x58] .text:0002FACC LDMIA R2, {R1,R3} .text:0002FAD0 CMP R1, R3 .text:0002FAD4 LDRCC R0, [R1] .text:0002FAD8 BCC locret_2FDAC .text:0002FADC CMP R0, #2 .text:0002FAE0 BEQ loc_2FD54 .text:0002FAE4 .text:0002FAE4 loc_2FAE4 ; CODE XREF: _IO_wfile_underflow+6Cj .text:0002FAE4 LDR R0, [R5,#0x1C] .text:0002FAE8 LDR R1, [R5,#4] .text:0002FAEC ADD R3, R5, #8 .text:0002FAF0 LDMDA R3, {R2,R3} .text:0002FAF4 SUB R2, R3, R2 .text:0002FAF8 BL memmove .text:0002FAFC ADD R2, R5, #8 .text:0002FB00 LDMDA R2, {R2,R3} .text:0002FB04 SUB R3, R3, R2 .text:0002FB08 LDR R2, [R5,#0x1C] .text:0002FB0C ADD R3, R2, R3 .text:0002FB10 STMIB R5, {R2,R3} .text:0002FB14 STR R2, [R5,#0xC] .text:0002FB18 B loc_2FB2C .text:0002FB1C ; --------------------------------------------------------------------------- .text:0002FB1C .text:0002FB1C loc_2FB1C ; CODE XREF: _IO_wfile_underflow+54j .text:0002FB1C LDR R3, [R5,#0x1C] .text:0002FB20 STR R3, [R5,#8] .text:0002FB24 STR R3, [R5,#4] .text:0002FB28 STR R3, [R5,#0xC] .text:0002FB2C .text:0002FB2C loc_2FB2C ; CODE XREF: _IO_wfile_underflow+120j .text:0002FB2C LDR R3, [R5,#0x1C] .text:0002FB30 CMP R3, #0 .text:0002FB34 BNE loc_2FB6C .text:0002FB38 LDR R0, [R5,#0x24] .text:0002FB3C CMP R0, #0 .text:0002FB40 BEQ loc_2FB54 .text:0002FB44 BL free .text:0002FB48 LDR R3, [R5] .text:0002FB4C BIC R3, R3, #0x100 .text:0002FB50 STR R3, [R5] .text:0002FB54 .text:0002FB54 loc_2FB54 ; CODE XREF: _IO_wfile_underflow+148j .text:0002FB54 MOV R0, R5 .text:0002FB58 BL _IO_doallocbuf .text:0002FB5C LDR R3, [R5,#0x1C] .text:0002FB60 STR R3, [R5,#8] .text:0002FB64 STR R3, [R5,#4] .text:0002FB68 STR R3, [R5,#0xC] .text:0002FB6C .text:0002FB6C loc_2FB6C ; CODE XREF: _IO_wfile_underflow+13Cj .text:0002FB6C LDR R3, [R5,#0x1C] .text:0002FB70 STR R3, [R5,#0x18] .text:0002FB74 STR R3, [R5,#0x14] .text:0002FB78 STR R3, [R5,#0x10] .text:0002FB7C LDR R0, [R5,#0x58] .text:0002FB80 LDR R3, [R0,#0x18] .text:0002FB84 CMP R3, #0 .text:0002FB88 BNE loc_2FBB0 .text:0002FB8C LDR R0, [R0,#0x20] .text:0002FB90 CMP R0, #0 .text:0002FB94 BEQ loc_2FBA8 .text:0002FB98 BL free .text:0002FB9C LDR R3, [R5] .text:0002FBA0 BIC R3, R3, #0x100 .text:0002FBA4 STR R3, [R5] .text:0002FBA8 .text:0002FBA8 loc_2FBA8 ; CODE XREF: _IO_wfile_underflow+19Cj .text:0002FBA8 MOV R0, R5 .text:0002FBAC BL _IO_wdoallocbuf .text:0002FBB0 .text:0002FBB0 loc_2FBB0 ; CODE XREF: _IO_wfile_underflow+190j .text:0002FBB0 LDR R3, [R5] .text:0002FBB4 BIC R3, R3, #0x1FC .text:0002FBB8 BIC R3, R3, #1 .text:0002FBBC MOV R3, R3,LSL#22 .text:0002FBC0 MOV R3, R3,LSR#22 .text:0002FBC4 CMP R3, #0 .text:0002FBC8 BEQ loc_2FBD0 .text:0002FBCC BL _flushlbf .text:0002FBD0 .text:0002FBD0 loc_2FBD0 ; CODE XREF: _IO_wfile_underflow+1D0j .text:0002FBD0 MOV R0, R5 .text:0002FBD4 BL _IO_switch_to_get_mode .text:0002FBD8 LDR R3, [R5,#0x58] .text:0002FBDC LDR R2, [R3,#0x18] .text:0002FBE0 STR R2, [R3] .text:0002FBE4 STR R2, [R3,#8] .text:0002FBE8 LDR R1, [R5,#0x58] .text:0002FBEC LDR R3, [R1,#0x18] .text:0002FBF0 STR R3, [R1,#4] .text:0002FBF4 LDR R2, [R5,#0x58] .text:0002FBF8 LDR R3, [R2,#0x18] .text:0002FBFC STR R3, [R2,#0x14] .text:0002FC00 STR R3, [R2,#0x10] .text:0002FC04 MOV R7, #0 .text:0002FC08 STR R3, [R2,#0xC] .text:0002FC0C .text:0002FC0C loc_2FC0C ; CODE XREF: _IO_wfile_underflow+39Cj .text:0002FC0C LDR R1, [R5,#8] .text:0002FC10 LDRB R3, [R5,#0x46] .text:0002FC14 MOV R0, R5 .text:0002FC18 LDR R2, [R5,#0x20] .text:0002FC1C MOV R3, R3,LSL#24 .text:0002FC20 ADD R3, R5, R3,ASR#24 .text:0002FC24 LDR R12, [R3,#0x94] .text:0002FC28 RSB R2, R1, R2 .text:0002FC2C MOV LR, PC .text:0002FC30 LDR PC, [R12,#0x38] .text:0002FC34 CMP R0, #0 .text:0002FC38 BGT loc_2FC6C .text:0002FC3C MOVNE R2, #0 .text:0002FC40 MOVEQ R2, #1 .text:0002FC44 CMP R7, #0 .text:0002FC48 MOVNE R3, #0 .text:0002FC4C MOVEQ R3, #1 .text:0002FC50 ANDS R2, R2, R3 .text:0002FC54 LDRNE R3, [R5] .text:0002FC58 ORRNE R3, R3, #0x10 .text:0002FC5C LDREQ R3, [R5] .text:0002FC60 MOVEQ R0, R2 .text:0002FC64 ORREQ R3, R3, #0x20 .text:0002FC68 STR R3, [R5] .text:0002FC6C .text:0002FC6C loc_2FC6C ; CODE XREF: _IO_wfile_underflow+240j .text:0002FC6C LDR R3, [R5,#8] .text:0002FC70 CMP R0, #0 .text:0002FC74 ADD R3, R3, R0 .text:0002FC78 STR R3, [R5,#8] .text:0002FC7C BNE loc_2FC9C .text:0002FC80 CMP R7, #0 .text:0002FC84 BEQ loc_2FC94 .text:0002FC88 BL __errno_location .text:0002FC8C MOV R3, #0x54 .text:0002FC90 .text:0002FC90 loc_2FC90 ; CODE XREF: _IO_wfile_underflow+30j .text:0002FC90 STR R3, [R0] .text:0002FC94 .text:0002FC94 loc_2FC94 ; CODE XREF: _IO_wfile_underflow+28Cj .text:0002FC94 MOV R0, 0xFFFFFFFF .text:0002FC98 B locret_2FDAC .text:0002FC9C ; --------------------------------------------------------------------------- .text:0002FC9C .text:0002FC9C loc_2FC9C ; CODE XREF: _IO_wfile_underflow+284j .text:0002FC9C MOV R2, #0x4C .text:0002FCA0 LDR R3, [R5,R2] .text:0002FCA4 ADD R12, R5, R2 .text:0002FCA8 CMN R3, #1 .text:0002FCAC BNE loc_2FCBC .text:0002FCB0 LDR R3, [R12,#4] .text:0002FCB4 CMN R3, #1 .text:0002FCB8 BEQ loc_2FCCC .text:0002FCBC .text:0002FCBC loc_2FCBC ; CODE XREF: _IO_wfile_underflow+2B4j .text:0002FCBC LDMIA R12, {R3,R4} .text:0002FCC0 ADDS R1, R3, R0 .text:0002FCC4 ADC R2, R4, R0,ASR#31 .text:0002FCC8 STMIA R12, {R1,R2} .text:0002FCCC .text:0002FCCC loc_2FCCC ; CODE XREF: _IO_wfile_underflow+2C0j .text:0002FCCC LDR R3, [R5,#0x58] .text:0002FCD0 ADD R1, R3, #0x34 .text:0002FCD4 ADD R0, R3, #0x2C .text:0002FCD8 LDMIA R0, {R2,R3} .text:0002FCDC STMIA R1, {R2,R3} .text:0002FCE0 SUB R2, R11, #-var_24 .text:0002FCE4 STR R2, [SP,#0x34+var_34] .text:0002FCE8 LDR R2, [R5,#4] .text:0002FCEC STR R2, [R5,#0xC] .text:0002FCF0 LDR R1, [R5,#0x58] .text:0002FCF4 LDR R3, [R1,#4] .text:0002FCF8 STR R3, [SP,#0x34+var_30] .text:0002FCFC LDR R0, [R1,#0x1C] .text:0002FD00 ADD R3, R1, #4 .text:0002FD04 STR R3, [SP,#0x34+var_28] .text:0002FD08 STR R0, [SP,#0x34+var_2C] .text:0002FD0C ADD R1, R1, #0x2C .text:0002FD10 LDR R3, [R5,#8] .text:0002FD14 MOV R0, R6 .text:0002FD18 MOV LR, PC .text:0002FD1C LDR PC, [R6,#0xC] .text:0002FD20 LDR R3, [R11,#var_24] .text:0002FD24 STR R3, [R5,#4] .text:0002FD28 LDR R1, [R5,#0x58] .text:0002FD2C LDR R2, [R1,#4] .text:0002FD30 LDR R3, [R1,#0x18] .text:0002FD34 CMP R2, R3 .text:0002FD38 BNE loc_2FDA4 .text:0002FD3C CMP R0, #2 .text:0002FD40 BEQ loc_2FD54 .text:0002FD44 LDR R2, [R5,#8] .text:0002FD48 LDR R3, [R5,#0x20] .text:0002FD4C CMP R2, R3 .text:0002FD50 BNE loc_2FD74 .text:0002FD54 .text:0002FD54 loc_2FD54 ; CODE XREF: _IO_wfile_underflow+E8j .text:0002FD54 ; _IO_wfile_underflow+348j .text:0002FD54 BL __errno_location .text:0002FD58 MOV R2, #0x54 .text:0002FD5C STR R2, [R0] .text:0002FD60 LDR R3, [R5] .text:0002FD64 MOV R0, 0xFFFFFFFF .text:0002FD68 ORR R3, R3, #0x20 .text:0002FD6C STR R3, [R5] .text:0002FD70 B locret_2FDAC .text:0002FD74 ; --------------------------------------------------------------------------- .text:0002FD74 .text:0002FD74 loc_2FD74 ; CODE XREF: _IO_wfile_underflow+358j .text:0002FD74 CMP R0, #1 .text:0002FD78 BEQ loc_2FD90 .text:0002FD7C LDR R0, =aStatus__codecv ; "status == __codecvt_partial" .text:0002FD80 LDR R1, =aWfileops_c ; "wfileops.c" .text:0002FD84 LDR R3, =a_io_wfile_unde ; "_IO_wfile_underflow" .text:0002FD88 MOV R2, #0x11C .text:0002FD8C BL __assert_fail .text:0002FD90 ; --------------------------------------------------------------------------- .text:0002FD90 .text:0002FD90 loc_2FD90 ; CODE XREF: _IO_wfile_underflow+380j .text:0002FD90 ADD R7, R7, #1 .text:0002FD94 B loc_2FC0C .text:0002FD94 ; --------------------------------------------------------------------------- .text:0002FD98 off_2FD98 DCD aStatus__codecv ; DATA XREF: _IO_wfile_underflow+384r .text:0002FD98 ; "status == __codecvt_partial" .text:0002FD9C off_2FD9C DCD aWfileops_c ; DATA XREF: _IO_wfile_underflow+388r .text:0002FD9C ; "wfileops.c" .text:0002FDA0 off_2FDA0 DCD a_io_wfile_unde ; DATA XREF: _IO_wfile_underflow+38Cr .text:0002FDA0 ; "_IO_wfile_underflow" .text:0002FDA4 ; --------------------------------------------------------------------------- .text:0002FDA4 .text:0002FDA4 loc_2FDA4 ; CODE XREF: _IO_wfile_underflow+340j .text:0002FDA4 LDR R3, [R1] .text:0002FDA8 LDR R0, [R3] .text:0002FDAC .text:0002FDAC locret_2FDAC ; CODE XREF: _IO_wfile_underflow+44j .text:0002FDAC ; _IO_wfile_underflow+E0j ... .text:0002FDAC LDMDB R11, {R4-R7,R11,SP,PC} .text:0002FDAC ; End of function _IO_wfile_underflow .text:0002FDAC .text:0002FDB0 .text:0002FDB0 ; =============== S U B R O U T I N E ======================================= .text:0002FDB0 .text:0002FDB0 ; Attributes: bp-based frame .text:0002FDB0 .text:0002FDB0 EXPORT _IO_wfile_overflow .text:0002FDB0 _IO_wfile_overflow .text:0002FDB0 MOV R12, SP .text:0002FDB4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002FDB8 SUB R11, R12, #4 .text:0002FDBC MOV R4, R0 .text:0002FDC0 LDR R3, [R4] .text:0002FDC4 MOV R5, R1 .text:0002FDC8 TST R3, #8 .text:0002FDCC BEQ loc_2FDEC .text:0002FDD0 ORR R3, R3, #0x20 .text:0002FDD4 STR R3, [R4] .text:0002FDD8 BL __errno_location .text:0002FDDC MOV R3, #9 .text:0002FDE0 STR R3, [R0] .text:0002FDE4 .text:0002FDE4 loc_2FDE4 ; CODE XREF: _IO_wfile_overflow+1FCj .text:0002FDE4 ; _IO_wfile_overflow+280j .text:0002FDE4 MOV R0, 0xFFFFFFFF .text:0002FDE8 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002FDEC ; --------------------------------------------------------------------------- .text:0002FDEC .text:0002FDEC loc_2FDEC ; CODE XREF: _IO_wfile_overflow+1Cj .text:0002FDEC TST R3, #0x800 .text:0002FDF0 BNE loc_2FF00 .text:0002FDF4 LDR R1, [R4,#0x58] .text:0002FDF8 LDR R3, [R1,#0xC] .text:0002FDFC CMP R3, #0 .text:0002FE00 BNE loc_2FE58 .text:0002FE04 MOV R0, R4 .text:0002FE08 BL _IO_wdoallocbuf .text:0002FE0C LDR R2, [R4,#0x58] .text:0002FE10 LDR R3, [R2,#0x18] .text:0002FE14 STR R3, [R2,#8] .text:0002FE18 LDR R1, [R4,#0x58] .text:0002FE1C LDR R3, [R1,#0x18] .text:0002FE20 STR R3, [R1] .text:0002FE24 LDR R0, [R4,#0x58] .text:0002FE28 LDR R3, [R0,#0x18] .text:0002FE2C STR R3, [R0,#4] .text:0002FE30 LDR R2, [R4,#0x10] .text:0002FE34 CMP R2, #0 .text:0002FE38 BNE loc_2FE80 .text:0002FE3C MOV R0, R4 .text:0002FE40 BL _IO_doallocbuf .text:0002FE44 LDR R3, [R4,#0x1C] .text:0002FE48 STR R3, [R4,#0xC] .text:0002FE4C STR R3, [R4,#4] .text:0002FE50 STR R3, [R4,#8] .text:0002FE54 B loc_2FE80 .text:0002FE58 ; --------------------------------------------------------------------------- .text:0002FE58 .text:0002FE58 loc_2FE58 ; CODE XREF: _IO_wfile_overflow+50j .text:0002FE58 LDR R2, [R1] .text:0002FE5C LDR R3, [R1,#0x1C] .text:0002FE60 CMP R2, R3 .text:0002FE64 BNE loc_2FE80 .text:0002FE68 LDR R3, [R4,#0x1C] .text:0002FE6C STR R3, [R4,#4] .text:0002FE70 STR R3, [R4,#8] .text:0002FE74 LDR R2, [R1,#0x18] .text:0002FE78 STR R2, [R1] .text:0002FE7C STR R2, [R1,#4] .text:0002FE80 .text:0002FE80 loc_2FE80 ; CODE XREF: _IO_wfile_overflow+88j .text:0002FE80 ; _IO_wfile_overflow+A4j ... .text:0002FE80 LDR R2, [R4,#0x58] .text:0002FE84 LDR R3, [R2] .text:0002FE88 STR R3, [R2,#0x10] .text:0002FE8C LDR R1, [R4,#0x58] .text:0002FE90 LDR R3, [R1,#0x10] .text:0002FE94 STR R3, [R1,#0xC] .text:0002FE98 LDR R0, [R4,#0x58] .text:0002FE9C LDR R2, [R0,#0x1C] .text:0002FEA0 STR R2, [R0,#0x14] .text:0002FEA4 LDR R3, [R4,#0x58] .text:0002FEA8 LDR R2, [R3,#4] .text:0002FEAC STR R2, [R3] .text:0002FEB0 STR R2, [R3,#8] .text:0002FEB4 LDR R1, [R4,#4] .text:0002FEB8 STR R1, [R4,#0x14] .text:0002FEBC STR R1, [R4,#0x10] .text:0002FEC0 LDR R3, [R4,#0x20] .text:0002FEC4 LDR R2, [R4] .text:0002FEC8 STR R3, [R4,#0x18] .text:0002FECC ORR R2, R2, #0x800 .text:0002FED0 STR R2, [R4] .text:0002FED4 BIC R3, R2, #0x1FC .text:0002FED8 BIC R3, R3, #1 .text:0002FEDC LDR R1, [R4,#8] .text:0002FEE0 MOV R3, R3,LSL#22 .text:0002FEE4 STR R1, [R4,#4] .text:0002FEE8 MOV R3, R3,LSR#22 .text:0002FEEC CMP R3, #0 .text:0002FEF0 STR R1, [R4,#0xC] .text:0002FEF4 LDRNE R2, [R4,#0x58] .text:0002FEF8 LDRNE R3, [R2,#0x10] .text:0002FEFC STRNE R3, [R2,#0x14] .text:0002FF00 .text:0002FF00 loc_2FF00 ; CODE XREF: _IO_wfile_overflow+40j .text:0002FF00 CMN R5, #1 .text:0002FF04 BNE loc_2FF54 .text:0002FF08 LDR R3, [R4,#0x5C] .text:0002FF0C CMP R3, #0 .text:0002FF10 BGT loc_2FF30 .text:0002FF14 MOV R0, R4 .text:0002FF18 LDR R1, [R0,#0x10] .text:0002FF1C ADD R3, R0, #0x14 .text:0002FF20 LDMDA R3, {R2,R3} .text:0002FF24 SUB R2, R3, R2 .text:0002FF28 BL _IO_new_do_write .text:0002FF2C LDMDB R11, {R4,R5,R11,SP,PC} .text:0002FF30 ; --------------------------------------------------------------------------- .text:0002FF30 .text:0002FF30 loc_2FF30 ; CODE XREF: _IO_wfile_overflow+160j .text:0002FF30 LDR R3, [R4,#0x58] .text:0002FF34 ADD R1, R3, #0x10 .text:0002FF38 LDMDA R1, {R1,R2} .text:0002FF3C SUB R2, R2, R1 .text:0002FF40 MOV R0, R4 .text:0002FF44 LDR R1, [R3,#0xC] .text:0002FF48 MOV R2, R2,ASR#2 .text:0002FF4C BL _IO_wdo_write .text:0002FF50 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002FF54 ; --------------------------------------------------------------------------- .text:0002FF54 .text:0002FF54 loc_2FF54 ; CODE XREF: _IO_wfile_overflow+154j .text:0002FF54 LDR R2, [R4,#0x58] .text:0002FF58 LDR R12, [R2,#0x10] .text:0002FF5C LDR R3, [R2,#0x1C] .text:0002FF60 CMP R12, R3 .text:0002FF64 BNE loc_2FFB0 .text:0002FF68 LDR R3, [R4,#0x5C] .text:0002FF6C CMP R3, #0 .text:0002FF70 BGT loc_2FF90 .text:0002FF74 LDR R1, [R4,#0x10] .text:0002FF78 ADD R3, R4, #0x14 .text:0002FF7C LDMDA R3, {R2,R3} .text:0002FF80 SUB R2, R3, R2 .text:0002FF84 MOV R0, R4 .text:0002FF88 BL _IO_new_do_write .text:0002FF8C B loc_2FFA8 .text:0002FF90 ; --------------------------------------------------------------------------- .text:0002FF90 .text:0002FF90 loc_2FF90 ; CODE XREF: _IO_wfile_overflow+1C0j .text:0002FF90 LDR R2, [R2,#0xC] .text:0002FF94 MOV R0, R4 .text:0002FF98 MOV R1, R2 .text:0002FF9C RSB R2, R2, R12 .text:0002FFA0 MOV R2, R2,ASR#2 .text:0002FFA4 BL _IO_wdo_write .text:0002FFA8 .text:0002FFA8 loc_2FFA8 ; CODE XREF: _IO_wfile_overflow+1DCj .text:0002FFA8 CMN R0, #1 .text:0002FFAC BEQ loc_2FDE4 .text:0002FFB0 .text:0002FFB0 loc_2FFB0 ; CODE XREF: _IO_wfile_overflow+1B4j .text:0002FFB0 LDR R2, [R4,#0x58] .text:0002FFB4 LDR R3, [R2,#0x10] .text:0002FFB8 STR R5, [R3],#4 .text:0002FFBC STR R3, [R2,#0x10] .text:0002FFC0 LDR R3, [R4] .text:0002FFC4 TST R3, #2 .text:0002FFC8 BNE loc_2FFE4 .text:0002FFCC MOV R3, R3,LSR#9 .text:0002FFD0 CMP R5, #0xA .text:0002FFD4 ANDEQ R3, R3, #1 .text:0002FFD8 MOVNE R3, #0 .text:0002FFDC CMP R3, #0 .text:0002FFE0 BEQ loc_30034 .text:0002FFE4 .text:0002FFE4 loc_2FFE4 ; CODE XREF: _IO_wfile_overflow+218j .text:0002FFE4 LDR R3, [R4,#0x5C] .text:0002FFE8 CMP R3, #0 .text:0002FFEC BGT loc_3000C .text:0002FFF0 MOV R0, R4 .text:0002FFF4 LDR R1, [R0,#0x10] .text:0002FFF8 ADD R3, R0, #0x14 .text:0002FFFC LDMDA R3, {R2,R3} .text:00030000 SUB R2, R3, R2 .text:00030004 BL _IO_new_do_write .text:00030008 B loc_3002C .text:0003000C ; --------------------------------------------------------------------------- .text:0003000C .text:0003000C loc_3000C ; CODE XREF: _IO_wfile_overflow+23Cj .text:0003000C LDR R3, [R4,#0x58] .text:00030010 ADD R1, R3, #0x10 .text:00030014 LDMDA R1, {R1,R2} .text:00030018 SUB R2, R2, R1 .text:0003001C MOV R0, R4 .text:00030020 LDR R1, [R3,#0xC] .text:00030024 MOV R2, R2,ASR#2 .text:00030028 BL _IO_wdo_write .text:0003002C .text:0003002C loc_3002C ; CODE XREF: _IO_wfile_overflow+258j .text:0003002C CMN R0, #1 .text:00030030 BEQ loc_2FDE4 .text:00030034 .text:00030034 loc_30034 ; CODE XREF: _IO_wfile_overflow+230j .text:00030034 MOV R0, R5 .text:00030038 LDMDB R11, {R4,R5,R11,SP,PC} .text:00030038 ; End of function _IO_wfile_overflow .text:00030038 .text:0003003C .text:0003003C ; =============== S U B R O U T I N E ======================================= .text:0003003C .text:0003003C ; Attributes: bp-based frame .text:0003003C .text:0003003C EXPORT _IO_wfile_sync .text:0003003C _IO_wfile_sync .text:0003003C .text:0003003C var_20 = -0x20 .text:0003003C .text:0003003C MOV R12, SP .text:00030040 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00030044 MOV R4, R0 .text:00030048 SUB SP, SP, #4 .text:0003004C LDR R3, [R4,#0x58] .text:00030050 SUB R11, R12, #4 .text:00030054 ADD R2, R3, #0xC .text:00030058 LDMIA R2, {R2,R12} .text:0003005C MOV R7, #0 .text:00030060 CMP R12, R2 .text:00030064 BLS loc_300BC .text:00030068 LDR R3, [R4,#0x5C] .text:0003006C CMP R3, R7 .text:00030070 BGT loc_30098 .text:00030074 LDR R1, [R4,#0x10] .text:00030078 ADD R0, R4, #0x14 .text:0003007C LDMDA R0, {R0,R2} .text:00030080 SUB R2, R2, R0 .text:00030084 MOV R0, R4 .text:00030088 BL _IO_new_do_write .text:0003008C CMP R0, R7 .text:00030090 BNE loc_300B4 .text:00030094 B loc_300BC .text:00030098 ; --------------------------------------------------------------------------- .text:00030098 .text:00030098 loc_30098 ; CODE XREF: _IO_wfile_sync+34j .text:00030098 MOV R0, R4 .text:0003009C MOV R1, R2 .text:000300A0 RSB R2, R2, R12 .text:000300A4 MOV R2, R2,ASR#2 .text:000300A8 BL _IO_wdo_write .text:000300AC CMP R0, #0 .text:000300B0 BEQ loc_300BC .text:000300B4 .text:000300B4 loc_300B4 ; CODE XREF: _IO_wfile_sync+54j .text:000300B4 MOV R0, 0xFFFFFFFF .text:000300B8 B locret_301B4 .text:000300BC ; --------------------------------------------------------------------------- .text:000300BC .text:000300BC loc_300BC ; CODE XREF: _IO_wfile_sync+28j .text:000300BC ; _IO_wfile_sync+58j ... .text:000300BC LDR R3, [R4,#0x58] .text:000300C0 LDMIA R3, {R1,R2} .text:000300C4 SUB R2, R1, R2 .text:000300C8 MOVS R5, R2,ASR#2 .text:000300CC BEQ loc_3019C .text:000300D0 LDR R6, [R4,#0x54] .text:000300D4 MOV R0, R6 .text:000300D8 MOV LR, PC .text:000300DC LDR PC, [R6,#0x10] .text:000300E0 CMP R0, #0 .text:000300E4 MULGT R5, R0, R5 .text:000300E8 BGT loc_30138 .text:000300EC LDR R3, [R4,#0x58] .text:000300F0 ADD R2, R3, #0x2C .text:000300F4 ADD R3, R3, #0x34 .text:000300F8 LDMIA R3, {R0,R1} .text:000300FC STMIA R2, {R0,R1} .text:00030100 STR R5, [SP,#0x20+var_20] .text:00030104 LDR R1, [R4,#0x58] .text:00030108 LDR R2, [R4,#0xC] .text:0003010C MOV R0, R6 .text:00030110 LDR R3, [R4,#8] .text:00030114 ADD R1, R1, #0x2C .text:00030118 MOV LR, PC .text:0003011C LDR PC, [R6,#0x18] .text:00030120 LDR R2, [R4,#0xC] .text:00030124 LDR R3, [R4,#8] .text:00030128 RSB R3, R2, R3 .text:0003012C RSB R5, R3, R0 .text:00030130 ADD R2, R2, R0 .text:00030134 STR R2, [R4,#4] .text:00030138 .text:00030138 loc_30138 ; CODE XREF: _IO_wfile_sync+ACj .text:00030138 MOV R0, R4 .text:0003013C LDRB R3, [R4,#0x46] .text:00030140 MOV R1, R5 .text:00030144 MOV R2, R1,ASR#31 .text:00030148 MOV R3, R3,LSL#24 .text:0003014C ADD R3, R4, R3,ASR#24 .text:00030150 LDR R12, [R3,#0x94] .text:00030154 MOV R3, #1 .text:00030158 MOV LR, PC .text:0003015C LDR PC, [R12,#0x40] .text:00030160 CMN R0, #1 .text:00030164 BNE loc_30170 .text:00030168 CMN R1, #1 .text:0003016C BEQ loc_30188 .text:00030170 .text:00030170 loc_30170 ; CODE XREF: _IO_wfile_sync+128j .text:00030170 LDR R3, [R4,#0x58] .text:00030174 LDR R2, [R3] .text:00030178 STR R2, [R3,#4] .text:0003017C LDR R1, [R4,#4] .text:00030180 STR R1, [R4,#8] .text:00030184 B loc_3019C .text:00030188 ; --------------------------------------------------------------------------- .text:00030188 .text:00030188 loc_30188 ; CODE XREF: _IO_wfile_sync+130j .text:00030188 BL __errno_location .text:0003018C LDR R3, [R0] .text:00030190 CMP R3, #0x1D .text:00030194 MOVEQ R7, #0 .text:00030198 MOVNE R7, 0xFFFFFFFF .text:0003019C .text:0003019C loc_3019C ; CODE XREF: _IO_wfile_sync+90j .text:0003019C ; _IO_wfile_sync+148j .text:0003019C CMN R7, #1 .text:000301A0 ADDNE R3, R4, #0x4C .text:000301A4 MOVNE R2, 0xFFFFFFFF .text:000301A8 MOVNE R1, 0xFFFFFFFF .text:000301AC STMNEIA R3, {R1,R2} .text:000301B0 MOV R0, R7 .text:000301B4 .text:000301B4 locret_301B4 ; CODE XREF: _IO_wfile_sync+7Cj .text:000301B4 LDMDB R11, {R4-R7,R11,SP,PC} .text:000301B4 ; End of function _IO_wfile_sync .text:000301B4 .text:000301B8 .text:000301B8 ; =============== S U B R O U T I N E ======================================= .text:000301B8 .text:000301B8 ; Attributes: bp-based frame .text:000301B8 .text:000301B8 EXPORT _IO_wfile_seekoff .text:000301B8 _IO_wfile_seekoff .text:000301B8 .text:000301B8 var_94 = -0x94 .text:000301B8 var_90 = -0x90 .text:000301B8 var_88 = -0x88 .text:000301B8 var_78 = -0x78 .text:000301B8 var_5C = -0x5C .text:000301B8 arg_0 = 4 .text:000301B8 .text:000301B8 MOV R12, SP .text:000301BC STMFD SP!, {R4-R12,LR,PC} .text:000301C0 SUB R11, R12, #4 .text:000301C4 MOV R7, R0 .text:000301C8 SUB SP, SP, #0x6C .text:000301CC LDR R0, [R7,#0x58] .text:000301D0 SUB R4, R11, #-var_90 .text:000301D4 STMIA R4, {R1,R2} .text:000301D8 LDR R2, [R0,#8] .text:000301DC MOV R8, R3 .text:000301E0 LDR R3, [R0,#4] .text:000301E4 MOV R10, #0 .text:000301E8 LDR R9, [R11,#arg_0] .text:000301EC CMP R2, R3 .text:000301F0 BNE loc_30208 .text:000301F4 ADD R2, R0, #0xC .text:000301F8 LDMIA R2, {R2,R3} .text:000301FC CMP R2, R3 .text:00030200 MOVNE R10, #0 .text:00030204 MOVEQ R10, #1 .text:00030208 .text:00030208 loc_30208 ; CODE XREF: _IO_wfile_seekoff+38j .text:00030208 CMP R9, #0 .text:0003020C MOVEQ R8, #1 .text:00030210 MOVEQ R3, #0 .text:00030214 MOVEQ R2, #0 .text:00030218 SUBEQ R4, R11, #-var_90 .text:0003021C STMEQIA R4, {R2,R3} .text:00030220 LDR R2, [R0,#0x10] .text:00030224 LDR R3, [R0,#0xC] .text:00030228 CMP R2, R3 .text:0003022C BHI loc_3023C .text:00030230 LDR R3, [R7] .text:00030234 TST R3, #0x800 .text:00030238 BEQ loc_30254 .text:0003023C .text:0003023C loc_3023C ; CODE XREF: _IO_wfile_seekoff+74j .text:0003023C MOV R0, R7 .text:00030240 BL _IO_switch_to_wget_mode .text:00030244 CMP R0, #0 .text:00030248 ADRNE R0, dword_305C0 .text:0003024C LDMNEIA R0, {R0,R1} .text:00030250 BNE locret_30784 .text:00030254 .text:00030254 loc_30254 ; CODE XREF: _IO_wfile_seekoff+80j .text:00030254 LDR R0, [R7,#0x58] .text:00030258 LDR R3, [R0,#0x18] .text:0003025C CMP R3, #0 .text:00030260 BNE loc_302E4 .text:00030264 LDR R0, [R0,#8] .text:00030268 CMP R0, #0 .text:0003026C BEQ loc_30280 .text:00030270 BL free .text:00030274 LDR R3, [R7] .text:00030278 BIC R3, R3, #0x100 .text:0003027C STR R3, [R7] .text:00030280 .text:00030280 loc_30280 ; CODE XREF: _IO_wfile_seekoff+B4j .text:00030280 MOV R0, R7 .text:00030284 BL _IO_doallocbuf .text:00030288 LDR R2, [R7,#0x1C] .text:0003028C STR R2, [R7,#0x14] .text:00030290 STR R2, [R7,#0x10] .text:00030294 STR R2, [R7,#0x18] .text:00030298 STR R2, [R7,#0xC] .text:0003029C STR R2, [R7,#4] .text:000302A0 STR R2, [R7,#8] .text:000302A4 LDR R3, [R7,#0x58] .text:000302A8 LDR R2, [R3,#0x18] .text:000302AC STR R2, [R3,#0x10] .text:000302B0 STR R2, [R3,#0xC] .text:000302B4 LDR R1, [R7,#0x58] .text:000302B8 LDR R3, [R1,#0x18] .text:000302BC STR R3, [R1,#0x14] .text:000302C0 LDR R2, [R7,#0x58] .text:000302C4 LDR R3, [R2,#0x18] .text:000302C8 STR R3, [R2,#8] .text:000302CC LDR R1, [R7,#0x58] .text:000302D0 LDR R3, [R1,#0x18] .text:000302D4 STR R3, [R1] .text:000302D8 LDR R2, [R7,#0x58] .text:000302DC LDR R3, [R2,#0x18] .text:000302E0 STR R3, [R2,#4] .text:000302E4 .text:000302E4 loc_302E4 ; CODE XREF: _IO_wfile_seekoff+A8j .text:000302E4 CMP R8, #1 .text:000302E8 BEQ loc_302FC .text:000302EC BLE loc_3044C .text:000302F0 CMP R8, #2 .text:000302F4 BEQ loc_303F4 .text:000302F8 B loc_3044C .text:000302FC ; --------------------------------------------------------------------------- .text:000302FC .text:000302FC loc_302FC ; CODE XREF: _IO_wfile_seekoff+130j .text:000302FC LDR R4, [R7,#0x54] .text:00030300 MOV R0, R4 .text:00030304 MOV LR, PC .text:00030308 LDR PC, [R4,#0x10] .text:0003030C CMP R0, #0 .text:00030310 BLE loc_30344 .text:00030314 LDR R3, [R7,#0x58] .text:00030318 LDMIA R3, {R2,R5} .text:0003031C SUB R2, R5, R2 .text:00030320 MOV R2, R2,ASR#2 .text:00030324 MUL R12, R0, R2 .text:00030328 SUB R2, R11, #-var_90 .text:0003032C LDMIA R2, {R2,R3} .text:00030330 SUBS R0, R2, R12 .text:00030334 SBC R1, R3, R12,ASR#31 .text:00030338 SUB R3, R11, #-var_90 .text:0003033C STMIA R3, {R0,R1} .text:00030340 B loc_303B4 .text:00030344 ; --------------------------------------------------------------------------- .text:00030344 .text:00030344 loc_30344 ; CODE XREF: _IO_wfile_seekoff+158j .text:00030344 LDR R3, [R7,#0x58] .text:00030348 ADD R0, R3, #0x2C .text:0003034C LDMIA R3, {R5,LR} .text:00030350 SUB LR, R5, LR .text:00030354 ADD R1, R3, #0x34 .text:00030358 LDMIA R1, {R2,R3} .text:0003035C STMIA R0, {R2,R3} .text:00030360 MOV R2, LR,ASR#2 .text:00030364 STR R2, [SP,#0x94+var_94] .text:00030368 LDR R1, [R7,#0x58] .text:0003036C LDR R2, [R7,#0xC] .text:00030370 MOV R0, R4 .text:00030374 LDR R3, [R7,#8] .text:00030378 ADD R1, R1, #0x2C .text:0003037C MOV LR, PC .text:00030380 LDR PC, [R4,#0x18] .text:00030384 ADD R3, R7, #8 .text:00030388 LDMIA R3, {R3,LR} .text:0003038C SUB R4, R11, #-var_90 .text:00030390 LDMIA R4, {R4,R5} .text:00030394 RSB R3, LR, R3 .text:00030398 RSB R6, R0, R3 .text:0003039C SUBS R2, R4, R6 .text:000303A0 SBC R3, R5, R6,ASR#31 .text:000303A4 SUB R5, R11, #-var_90 .text:000303A8 STMIA R5, {R2,R3} .text:000303AC ADD R2, LR, R0 .text:000303B0 STR R2, [R7,#4] .text:000303B4 .text:000303B4 loc_303B4 ; CODE XREF: _IO_wfile_seekoff+188j .text:000303B4 MOV R2, #0x4C .text:000303B8 LDR R3, [R7,R2] .text:000303BC ADD R2, R7, R2 .text:000303C0 CMN R3, #1 .text:000303C4 BNE loc_303D4 .text:000303C8 LDR R3, [R2,#4] .text:000303CC CMN R3, #1 .text:000303D0 BEQ loc_306C4 .text:000303D4 .text:000303D4 loc_303D4 ; CODE XREF: _IO_wfile_seekoff+20Cj .text:000303D4 LDMIA R2, {R3,R4} .text:000303D8 SUB R5, R11, #-var_90 .text:000303DC LDMIA R5, {R1,R2} .text:000303E0 MOV R8, #0 .text:000303E4 ADDS R1, R1, R3 .text:000303E8 ADC R2, R2, R4 .text:000303EC STMIA R5, {R1,R2} .text:000303F0 B loc_3044C .text:000303F4 ; --------------------------------------------------------------------------- .text:000303F4 .text:000303F4 loc_303F4 ; CODE XREF: _IO_wfile_seekoff+13Cj .text:000303F4 LDRB R3, [R7,#0x46] .text:000303F8 MOV R0, R7 .text:000303FC MOV R3, R3,LSL#24 .text:00030400 ADD R3, R7, R3,ASR#24 .text:00030404 LDR R2, [R3,#0x94] .text:00030408 SUB R1, R11, #-var_88 .text:0003040C MOV LR, PC .text:00030410 LDR PC, [R2,#0x48] .text:00030414 CMP R0, #0 .text:00030418 BNE loc_306C4 .text:0003041C LDR R3, [R11,#var_78] .text:00030420 AND R3, R3, #0xF000 .text:00030424 CMP R3, #0x8000 .text:00030428 BNE loc_306C4 .text:0003042C SUB R3, R11, #-var_5C .text:00030430 LDMIA R3, {R1,R2} .text:00030434 SUB R5, R11, #-var_90 .text:00030438 LDMIA R5, {R3,R4} .text:0003043C MOV R8, R0 .text:00030440 ADDS R3, R3, R1 .text:00030444 ADC R4, R4, R2 .text:00030448 STMIA R5, {R3,R4} .text:0003044C .text:0003044C loc_3044C ; CODE XREF: _IO_wfile_seekoff+134j .text:0003044C ; _IO_wfile_seekoff+140j ... .text:0003044C CMP R9, #0 .text:00030450 BNE loc_30460 .text:00030454 SUB R12, R11, #-var_90 .text:00030458 LDMIA R12, {R0,R1} .text:0003045C B locret_30784 .text:00030460 ; --------------------------------------------------------------------------- .text:00030460 .text:00030460 loc_30460 ; CODE XREF: _IO_wfile_seekoff+298j .text:00030460 MOV R2, #0x4C .text:00030464 LDR R3, [R7,R2] .text:00030468 ADD R1, R7, R2 .text:0003046C CMN R3, #1 .text:00030470 BNE loc_30484 .text:00030474 LDR R3, [R1,#4] .text:00030478 LDR R12, [R7] .text:0003047C CMN R3, #1 .text:00030480 BEQ loc_30508 .text:00030484 .text:00030484 loc_30484 ; CODE XREF: _IO_wfile_seekoff+2B8j .text:00030484 LDR R0, [R7,#0xC] .text:00030488 LDR R12, [R7] .text:0003048C CMP R0, #0 .text:00030490 BEQ loc_30508 .text:00030494 TST R12, #0x100 .text:00030498 BNE loc_30508 .text:0003049C LDMIA R1, {R1,R2} .text:000304A0 SUB LR, R11, #-var_90 .text:000304A4 LDMIA LR, {R4,R5} .text:000304A8 LDR R3, [R7,#8] .text:000304AC SUBS R4, R4, R1 .text:000304B0 SBC R5, R5, R2 .text:000304B4 RSB R3, R0, R3 .text:000304B8 MOV R2, R3 .text:000304BC MOV R3, R2,ASR#31 .text:000304C0 ADDS R4, R4, R2 .text:000304C4 ADC R5, R5, R3 .text:000304C8 CMP R5, #0 .text:000304CC BLT loc_30508 .text:000304D0 CMP R5, R3 .text:000304D4 BGT loc_30508 .text:000304D8 BNE loc_304E4 .text:000304DC CMP R4, R2 .text:000304E0 BHI loc_30508 .text:000304E4 .text:000304E4 loc_304E4 ; CODE XREF: _IO_wfile_seekoff+320j .text:000304E4 ADD R3, R0, R4 .text:000304E8 STR R3, [R7,#4] .text:000304EC LDR R2, [R7,#0x1C] .text:000304F0 STR R2, [R7,#0x14] .text:000304F4 STR R2, [R7,#0x10] .text:000304F8 STR R2, [R7,#0x18] .text:000304FC BIC R3, R12, #0x10 .text:00030500 STR R3, [R7] .text:00030504 B loc_30748 .text:00030508 ; --------------------------------------------------------------------------- .text:00030508 .text:00030508 loc_30508 ; CODE XREF: _IO_wfile_seekoff+2C8j .text:00030508 ; _IO_wfile_seekoff+2D8j ... .text:00030508 TST R12, #4 .text:0003050C BNE loc_306C4 .text:00030510 ADD R0, R7, #0x20 .text:00030514 LDMDA R0, {R0,R2} .text:00030518 SUB R2, R2, R0 .text:0003051C SUB R1, R11, #-var_90 .text:00030520 LDMIA R1, {R4,R5} .text:00030524 MOV R12, R1 .text:00030528 LDMIA R12, {R8,R9} .text:0003052C RSB R3, R2, #0 .text:00030530 AND R8, R8, R3 .text:00030534 AND R9, R9, R3,ASR#31 .text:00030538 SUBS R4, R4, R8 .text:0003053C SBC R5, R5, R9 .text:00030540 MOV R3, R2,ASR#31 .text:00030544 CMP R5, R3 .text:00030548 BGT loc_30558 .text:0003054C BNE loc_30568 .text:00030550 CMP R4, R2 .text:00030554 BLS loc_30568 .text:00030558 .text:00030558 loc_30558 ; CODE XREF: _IO_wfile_seekoff+390j .text:00030558 SUB LR, R11, #-var_90 .text:0003055C MOV R5, #0 .text:00030560 MOV R4, #0 .text:00030564 LDMIA LR, {R8,R9} .text:00030568 .text:00030568 loc_30568 ; CODE XREF: _IO_wfile_seekoff+394j .text:00030568 ; _IO_wfile_seekoff+39Cj .text:00030568 MOV R0, R7 .text:0003056C MOV R2, R9 .text:00030570 MOV R1, R8 .text:00030574 LDRB R3, [R7,#0x46] .text:00030578 MOV R6, #0x94 .text:0003057C MOV R3, R3,LSL#24 .text:00030580 ADD R3, R7, R3,ASR#24 .text:00030584 LDR R12, [R3,R6] .text:00030588 MOV R3, #0 .text:0003058C MOV LR, PC .text:00030590 LDR PC, [R12,#0x40] .text:00030594 MOV R9, R1 .text:00030598 MOV R8, R0 .text:0003059C CMP R9, #0 .text:000305A0 MOVLT R1, 0xFFFFFFFF .text:000305A4 MOVLT R0, 0xFFFFFFFF .text:000305A8 BLT locret_30784 .text:000305AC ORR R0, R5, R4 .text:000305B0 CMP R0, #0 .text:000305B4 BNE loc_305C8 .text:000305B8 MOV R12, R0 .text:000305BC B loc_30678 .text:000305BC ; --------------------------------------------------------------------------- .text:000305C0 dword_305C0 DCD 0xFFFFFFFF, 0 ; DATA XREF: _IO_wfile_seekoff+90o .text:000305C8 ; --------------------------------------------------------------------------- .text:000305C8 .text:000305C8 loc_305C8 ; CODE XREF: _IO_wfile_seekoff+3FCj .text:000305C8 LDRB R3, [R7,#0x46] .text:000305CC CMP R10, #0 .text:000305D0 LDR R1, [R7,#0x1C] .text:000305D4 MOV R3, R3,LSL#24 .text:000305D8 ADD R3, R7, R3,ASR#24 .text:000305DC LDR R12, [R3,R6] .text:000305E0 LDREQ R3, [R7,#0x20] .text:000305E4 RSBEQ R2, R1, R3 .text:000305E8 MOVNE R2, R4 .text:000305EC MOV R0, R7 .text:000305F0 MOV LR, PC .text:000305F4 LDR PC, [R12,#0x38] .text:000305F8 MOV R12, R0 .text:000305FC MOV R1, R12 .text:00030600 MOV R2, R1,ASR#31 .text:00030604 CMP R5, R2 .text:00030608 BGT loc_30618 .text:0003060C BNE loc_30678 .text:00030610 CMP R4, R1 .text:00030614 BLS loc_30678 .text:00030618 .text:00030618 loc_30618 ; CODE XREF: _IO_wfile_seekoff+450j .text:00030618 SUB R0, R11, #-var_90 .text:0003061C STMIA R0, {R4,R5} .text:00030620 MOV R5, R0 .text:00030624 MOV LR, R0 .text:00030628 LDMIA R5, {R3,R4} .text:0003062C MOV R8, #1 .text:00030630 SUBS R3, R3, R1 .text:00030634 SBC R4, R4, R2 .text:00030638 CMN R12, #1 .text:0003063C MOVNE R1, #0 .text:00030640 MOVEQ R1, #1 .text:00030644 MOV R2, #0 .text:00030648 RSBS R5, R1, #0 .text:0003064C RSC R6, R2, #0 .text:00030650 MOV R12, R0 .text:00030654 LDMIA R12, {R1,R2} .text:00030658 BIC R3, R3, R5 .text:0003065C BIC R4, R4, R6 .text:00030660 AND R1, R1, R5 .text:00030664 AND R2, R2, R6 .text:00030668 ORR R1, R1, R3 .text:0003066C ORR R2, R2, R4 .text:00030670 STMIA LR, {R1,R2} .text:00030674 B loc_306C4 .text:00030678 ; --------------------------------------------------------------------------- .text:00030678 .text:00030678 loc_30678 ; CODE XREF: _IO_wfile_seekoff+404j .text:00030678 ; _IO_wfile_seekoff+454j ... .text:00030678 LDR R1, [R7,#0x1C] .text:0003067C STR R1, [R7,#0xC] .text:00030680 ADD R3, R1, R4 .text:00030684 STR R3, [R7,#4] .text:00030688 ADD R2, R1, R12 .text:0003068C STR R2, [R7,#8] .text:00030690 STR R1, [R7,#0x14] .text:00030694 STR R1, [R7,#0x10] .text:00030698 STR R1, [R7,#0x18] .text:0003069C ADD R0, R7, #0x4C .text:000306A0 ADDS R3, R8, R12 .text:000306A4 ADC R4, R9, R12,ASR#31 .text:000306A8 STMIA R0, {R3,R4} .text:000306AC LDR R2, [R7] .text:000306B0 SUB R3, R11, #-var_90 .text:000306B4 LDMIA R3, {R0,R1} .text:000306B8 BIC R2, R2, #0x10 .text:000306BC STR R2, [R7] .text:000306C0 B locret_30784 .text:000306C4 ; --------------------------------------------------------------------------- .text:000306C4 .text:000306C4 loc_306C4 ; CODE XREF: _IO_wfile_seekoff+218j .text:000306C4 ; _IO_wfile_seekoff+260j ... .text:000306C4 MOV R0, R7 .text:000306C8 BL _IO_unsave_markers .text:000306CC MOV R0, R7 .text:000306D0 LDRB R3, [R7,#0x46] .text:000306D4 SUB R4, R11, #-var_90 .text:000306D8 LDMIA R4, {R1,R2} .text:000306DC MOV R3, R3,LSL#24 .text:000306E0 ADD R3, R7, R3,ASR#24 .text:000306E4 LDR R12, [R3,#0x94] .text:000306E8 MOV R3, R8 .text:000306EC MOV LR, PC .text:000306F0 LDR PC, [R12,#0x40] .text:000306F4 MOV R9, R1 .text:000306F8 MOV R8, R0 .text:000306FC CMN R8, #1 .text:00030700 BNE loc_3070C .text:00030704 CMN R9, #1 .text:00030708 BEQ loc_3073C .text:0003070C .text:0003070C loc_3070C ; CODE XREF: _IO_wfile_seekoff+548j .text:0003070C LDR R3, [R7] .text:00030710 BIC R3, R3, #0x10 .text:00030714 STR R3, [R7] .text:00030718 ADD R2, R7, #0x4C .text:0003071C STMIA R2, {R8,R9} .text:00030720 LDR R3, [R7,#0x1C] .text:00030724 STR R3, [R7,#0xC] .text:00030728 STR R3, [R7,#4] .text:0003072C STR R3, [R7,#8] .text:00030730 STR R3, [R7,#0x14] .text:00030734 STR R3, [R7,#0x10] .text:00030738 STR R3, [R7,#0x18] .text:0003073C .text:0003073C loc_3073C ; CODE XREF: _IO_wfile_seekoff+550j .text:0003073C MOV R1, R9 .text:00030740 MOV R0, R8 .text:00030744 B locret_30784 .text:00030748 ; --------------------------------------------------------------------------- .text:00030748 .text:00030748 loc_30748 ; CODE XREF: _IO_wfile_seekoff+34Cj .text:00030748 ADD R1, R7, #0x4C .text:0003074C LDR R3, [R1,#4] .text:00030750 CMP R3, #0 .text:00030754 BLT loc_3077C .text:00030758 LDRB R3, [R7,#0x46] .text:0003075C MOV R0, R7 .text:00030760 LDMIA R1, {R1,R2} .text:00030764 MOV R3, R3,LSL#24 .text:00030768 ADD R3, R7, R3,ASR#24 .text:0003076C LDR R12, [R3,#0x94] .text:00030770 MOV R3, #0 .text:00030774 MOV LR, PC .text:00030778 LDR PC, [R12,#0x40] .text:0003077C .text:0003077C loc_3077C ; CODE XREF: _IO_wfile_seekoff+59Cj .text:0003077C SUB R5, R11, #-var_90 .text:00030780 LDMIA R5, {R0,R1} .text:00030784 .text:00030784 locret_30784 ; CODE XREF: _IO_wfile_seekoff+98j .text:00030784 ; _IO_wfile_seekoff+2A4j ... .text:00030784 LDMDB R11, {R4-R11,SP,PC} .text:00030784 ; End of function _IO_wfile_seekoff .text:00030784 .text:00030788 .text:00030788 ; =============== S U B R O U T I N E ======================================= .text:00030788 .text:00030788 ; Attributes: bp-based frame .text:00030788 .text:00030788 EXPORT _IO_wfile_xsputn .text:00030788 _IO_wfile_xsputn .text:00030788 MOV R12, SP .text:0003078C STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00030790 SUB R11, R12, #4 .text:00030794 MOV R5, R1 .text:00030798 MOV LR, R5 .text:0003079C MOV R6, R2 .text:000307A0 MOV R8, R6 .text:000307A4 MOV R10, #0 .text:000307A8 CMP R6, R10 .text:000307AC MOV R7, R0 .text:000307B0 MOVEQ R0, R6 .text:000307B4 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:000307B8 LDR R3, [R7] .text:000307BC LDR R2, [R7,#0x58] .text:000307C0 AND R3, R3, #0xA00 .text:000307C4 CMP R3, #0xA00 .text:000307C8 ADD R0, R2, #0x14 .text:000307CC LDMDA R0, {R0,R1} .text:000307D0 SUB R1, R1, R0 .text:000307D4 MOV R12, R2 .text:000307D8 LDR R2, [R2,#0x10] .text:000307DC MOV R4, R1,ASR#2 .text:000307E0 BNE loc_30820 .text:000307E4 LDR R3, [R12,#0x1C] .text:000307E8 RSB R3, R2, R3 .text:000307EC MOV R4, R3,ASR#2 .text:000307F0 CMP R4, R6 .text:000307F4 BCC loc_30820 .text:000307F8 ADD R2, LR, R6,LSL#2 .text:000307FC .text:000307FC loc_307FC ; CODE XREF: _IO_wfile_xsputn+84j .text:000307FC CMP R2, R5 .text:00030800 BLS loc_30820 .text:00030804 LDR R3, [R2,#-4]! .text:00030808 CMP R3, #0xA .text:0003080C BNE loc_307FC .text:00030810 RSB R3, R5, R2 .text:00030814 MOV R3, R3,ASR#2 .text:00030818 ADD R4, R3, #1 .text:0003081C MOV R10, #1 .text:00030820 .text:00030820 loc_30820 ; CODE XREF: _IO_wfile_xsputn+58j .text:00030820 ; _IO_wfile_xsputn+6Cj ... .text:00030820 CMP R4, #0 .text:00030824 BEQ loc_30888 .text:00030828 CMP R4, R6 .text:0003082C MOVCS R4, R6 .text:00030830 CMP R4, #0x14 .text:00030834 BLS loc_3085C .text:00030838 MOV R1, R5 .text:0003083C LDR R0, [R12,#0x10] .text:00030840 MOV R2, R4 .text:00030844 BL wmempcpy .text:00030848 ADD LR, R5, R4,LSL#2 .text:0003084C LDR R3, [R7,#0x58] .text:00030850 RSB R1, R4, R6 .text:00030854 STR R0, [R3,#0x10] .text:00030858 B loc_30884 .text:0003085C ; --------------------------------------------------------------------------- .text:0003085C .text:0003085C loc_3085C ; CODE XREF: _IO_wfile_xsputn+ACj .text:0003085C SUBS R0, R4, #1 .text:00030860 RSB R1, R4, R6 .text:00030864 LDR R2, [R12,#0x10] .text:00030868 BMI loc_3087C .text:0003086C .text:0003086C loc_3086C ; CODE XREF: _IO_wfile_xsputn+F0j .text:0003086C LDR R3, [LR],#4 .text:00030870 SUBS R0, R0, #1 .text:00030874 STR R3, [R2],#4 .text:00030878 BPL loc_3086C .text:0003087C .text:0003087C loc_3087C ; CODE XREF: _IO_wfile_xsputn+E0j .text:0003087C LDR R3, [R7,#0x58] .text:00030880 STR R2, [R3,#0x10] .text:00030884 .text:00030884 loc_30884 ; CODE XREF: _IO_wfile_xsputn+D0j .text:00030884 MOV R8, R1 .text:00030888 .text:00030888 loc_30888 ; CODE XREF: _IO_wfile_xsputn+9Cj .text:00030888 CMP R8, #0 .text:0003088C BEQ loc_308A4 .text:00030890 MOV R0, R7 .text:00030894 MOV R1, LR .text:00030898 MOV R2, R8 .text:0003089C BL _IO_wdefault_xsputn .text:000308A0 RSB R8, R0, R8 .text:000308A4 .text:000308A4 loc_308A4 ; CODE XREF: _IO_wfile_xsputn+104j .text:000308A4 CMP R10, #0 .text:000308A8 BEQ loc_308D4 .text:000308AC LDR R3, [R7,#0x58] .text:000308B0 ADD R2, R3, #0xC .text:000308B4 LDMIA R2, {R2,R12} .text:000308B8 CMP R12, R2 .text:000308BC BEQ loc_308D4 .text:000308C0 MOV R0, R7 .text:000308C4 MOV R1, R2 .text:000308C8 RSB R2, R2, R12 .text:000308CC MOV R2, R2,ASR#2 .text:000308D0 BL _IO_wdo_write .text:000308D4 .text:000308D4 loc_308D4 ; CODE XREF: _IO_wfile_xsputn+120j .text:000308D4 ; _IO_wfile_xsputn+134j .text:000308D4 RSB R0, R8, R6 .text:000308D8 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000308D8 ; End of function _IO_wfile_xsputn .text:000308D8 .text:000308DC .text:000308DC ; =============== S U B R O U T I N E ======================================= .text:000308DC .text:000308DC ; Attributes: bp-based frame .text:000308DC .text:000308DC EXPORT _IO_fwide .text:000308DC _IO_fwide ; CODE XREF: fwide+B4p .text:000308DC ; vfwprintf+48p ... .text:000308DC .text:000308DC var_28 = -0x28 .text:000308DC var_24 = -0x24 .text:000308DC .text:000308DC MOV R12, SP .text:000308E0 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:000308E4 SUB R11, R12, #4 .text:000308E8 CMP R1, #0 .text:000308EC MOVEQ R3, #0 .text:000308F0 MOVNE R3, #1 .text:000308F4 MOVGE R8, R3 .text:000308F8 MOVLT R8, 0xFFFFFFFF .text:000308FC CMP R8, #0 .text:00030900 MOV R6, R0 .text:00030904 SUB SP, SP, #8 .text:00030908 LDREQ R0, [R6,#0x5C] .text:0003090C BEQ loc_309F8 .text:00030910 LDR R7, [R6,#0x5C] .text:00030914 CMP R7, #0 .text:00030918 MOVNE R0, R7 .text:0003091C BNE loc_309F8 .text:00030920 CMP R8, #0 .text:00030924 BLE loc_309F0 .text:00030928 LDR R3, [R6,#0x58] .text:0003092C ADD R4, R3, #0x3C .text:00030930 STR R4, [R6,#0x54] .text:00030934 LDR R2, [R3,#4] .text:00030938 STR R2, [R3] .text:0003093C LDR R1, [R6,#0x58] .text:00030940 LDR R3, [R1,#0xC] .text:00030944 STR R3, [R1,#0x10] .text:00030948 MOV R5, #8 .text:0003094C MOV R2, R5 .text:00030950 LDR R0, [R6,#0x58] .text:00030954 MOV R1, R7 .text:00030958 ADD R0, R0, #0x2C .text:0003095C BL memset .text:00030960 MOV R1, R7 .text:00030964 LDR R0, [R6,#0x58] .text:00030968 MOV R2, R5 .text:0003096C ADD R0, R0, #0x34 .text:00030970 BL memset .text:00030974 SUB R0, R11, #-var_28 .text:00030978 BL __wcsmbs_clone_conv .text:0003097C MOV R0, R4 .text:00030980 LDR R1, =__libio_codecvt .text:00030984 MOV R2, #0x78 .text:00030988 BL memcpy .text:0003098C MOV R2, #1 .text:00030990 STR R2, [R4,#0x20] .text:00030994 LDR R1, [R11,#var_28] .text:00030998 STR R7, [R4,#0x34] .text:0003099C STR R2, [R4,#0x38] .text:000309A0 STR R2, [R4,#0x30] .text:000309A4 STR R1, [R4,#0x24] .text:000309A8 LDR R3, [R6,#0x58] .text:000309AC STR R7, [R4,#0x48] .text:000309B0 STR R2, [R4,#0x4C] .text:000309B4 ADD R3, R3, #0x2C .text:000309B8 STR R3, [R4,#0x3C] .text:000309BC LDR R1, [R11,#var_24] .text:000309C0 STR R7, [R4,#0x60] .text:000309C4 STR R2, [R4,#0x64] .text:000309C8 STR R2, [R4,#0x5C] .text:000309CC STR R1, [R4,#0x50] .text:000309D0 LDR R2, =libio_translit .text:000309D4 LDR R3, [R6,#0x58] .text:000309D8 STR R2, [R4,#0x74] .text:000309DC ADD R3, R3, #0x2C .text:000309E0 STR R3, [R4,#0x68] .text:000309E4 LDR R2, [R6,#0x58] .text:000309E8 LDR R3, [R2,#0xB8] .text:000309EC STR R3, [R6,#0x94] .text:000309F0 .text:000309F0 loc_309F0 ; CODE XREF: _IO_fwide+48j .text:000309F0 MOV R0, R8 .text:000309F4 STR R8, [R6,#0x5C] .text:000309F8 .text:000309F8 loc_309F8 ; CODE XREF: _IO_fwide+30j .text:000309F8 ; _IO_fwide+40j .text:000309F8 B locret_30A04 .text:000309F8 ; --------------------------------------------------------------------------- .text:000309FC off_309FC DCD __libio_codecvt ; DATA XREF: _IO_fwide+A4r .text:00030A00 off_30A00 DCD libio_translit ; DATA XREF: _IO_fwide+F4r .text:00030A04 ; --------------------------------------------------------------------------- .text:00030A04 .text:00030A04 locret_30A04 ; CODE XREF: _IO_fwide:loc_309F8j .text:00030A04 LDMDB R11, {R4-R8,R11,SP,PC} .text:00030A04 ; End of function _IO_fwide .text:00030A04 .text:00030A08 .text:00030A08 ; =============== S U B R O U T I N E ======================================= .text:00030A08 .text:00030A08 ; Attributes: bp-based frame .text:00030A08 .text:00030A08 do_out .text:00030A08 .text:00030A08 var_38 = -0x38 .text:00030A08 var_34 = -0x34 .text:00030A08 var_30 = -0x30 .text:00030A08 var_2C = -0x2C .text:00030A08 var_28 = -0x28 .text:00030A08 var_24 = -0x24 .text:00030A08 arg_0 = 4 .text:00030A08 arg_4 = 8 .text:00030A08 arg_8 = 0xC .text:00030A08 arg_C = 0x10 .text:00030A08 .text:00030A08 MOV R12, SP .text:00030A0C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00030A10 SUB R11, R12, #4 .text:00030A14 SUB SP, SP, #0x18 .text:00030A18 STR R2, [R11,#var_24] .text:00030A1C MOV R4, R0 .text:00030A20 STR R1, [R4,#0x68] .text:00030A24 LDR R2, [R11,#arg_4] .text:00030A28 STR R2, [R4,#0x54] .text:00030A2C LDR R1, [R11,#arg_8] .text:00030A30 STR R1, [R4,#0x58] .text:00030A34 LDR R7, [R11,#arg_0] .text:00030A38 LDR R5, [R4,#0x50] .text:00030A3C LDR R0, [R5,#0x14] .text:00030A40 MOV R6, R3 .text:00030A44 LDR R8, [R11,#arg_C] .text:00030A48 BL _dl_mcount_wrapper_check .text:00030A4C MOV R2, #0 .text:00030A50 STR R2, [SP,#0x38+var_38] .text:00030A54 SUB R3, R11, #-var_28 .text:00030A58 STR R3, [SP,#0x38+var_34] .text:00030A5C STR R2, [SP,#0x38+var_30] .text:00030A60 STR R2, [SP,#0x38+var_2C] .text:00030A64 MOV R0, R5 .text:00030A68 ADD R1, R4, #0x54 .text:00030A6C SUB R2, R11, #-var_24 .text:00030A70 MOV R3, R6 .text:00030A74 MOV LR, PC .text:00030A78 LDR PC, [R5,#0x14] .text:00030A7C LDR R3, [R11,#var_24] .text:00030A80 STR R3, [R7] .text:00030A84 LDR R2, [R4,#0x54] .text:00030A88 STR R2, [R8] .text:00030A8C CMP R0, #7 ; switch 8 cases .text:00030A90 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:00030A94 B loc_30AC8 ; jumptable 00030A90 default case .text:00030A94 ; --------------------------------------------------------------------------- .text:00030A98 DCD loc_30AB8 ; jump table for switch statement .text:00030A98 DCD loc_30AC8 .text:00030A98 DCD loc_30AC8 .text:00030A98 DCD loc_30AC8 .text:00030A98 DCD loc_30AB8 .text:00030A98 DCD loc_30AC0 .text:00030A98 DCD loc_30AC8 .text:00030A98 DCD loc_30AC0 .text:00030AB8 ; --------------------------------------------------------------------------- .text:00030AB8 .text:00030AB8 loc_30AB8 ; CODE XREF: do_out+88j .text:00030AB8 ; DATA XREF: do_out+90o .text:00030AB8 MOV R0, #0 ; jumptable 00030A90 cases 0,4 .text:00030ABC B locret_30ACC .text:00030AC0 ; --------------------------------------------------------------------------- .text:00030AC0 .text:00030AC0 loc_30AC0 ; CODE XREF: do_out+88j .text:00030AC0 ; DATA XREF: do_out+90o .text:00030AC0 MOV R0, #1 ; jumptable 00030A90 cases 5,7 .text:00030AC4 B locret_30ACC .text:00030AC8 ; --------------------------------------------------------------------------- .text:00030AC8 .text:00030AC8 loc_30AC8 ; CODE XREF: do_out+88j .text:00030AC8 ; do_out+8Cj .text:00030AC8 ; DATA XREF: ... .text:00030AC8 MOV R0, #2 ; jumptable 00030A90 default case .text:00030ACC .text:00030ACC locret_30ACC ; CODE XREF: do_out+B4j .text:00030ACC ; do_out+BCj .text:00030ACC LDMDB R11, {R4-R8,R11,SP,PC} .text:00030ACC ; End of function do_out .text:00030ACC .text:00030AD0 .text:00030AD0 ; =============== S U B R O U T I N E ======================================= .text:00030AD0 .text:00030AD0 ; Attributes: bp-based frame .text:00030AD0 .text:00030AD0 do_unshift .text:00030AD0 .text:00030AD0 var_2C = -0x2C .text:00030AD0 var_28 = -0x28 .text:00030AD0 var_24 = -0x24 .text:00030AD0 var_20 = -0x20 .text:00030AD0 var_1C = -0x1C .text:00030AD0 arg_0 = 4 .text:00030AD0 .text:00030AD0 MOV R12, SP .text:00030AD4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00030AD8 MOV R4, R0 .text:00030ADC SUB SP, SP, #0x14 .text:00030AE0 STR R2, [R4,#0x54] .text:00030AE4 STR R3, [R4,#0x58] .text:00030AE8 STR R1, [R4,#0x68] .text:00030AEC LDR R5, [R4,#0x50] .text:00030AF0 LDR R0, [R5,#0x14] .text:00030AF4 SUB R11, R12, #4 .text:00030AF8 LDR R6, [R11,#arg_0] .text:00030AFC BL _dl_mcount_wrapper_check .text:00030B00 MOV R2, #0 .text:00030B04 STR R2, [SP,#0x2C+var_2C] .text:00030B08 SUB R3, R11, #-var_1C .text:00030B0C STR R3, [SP,#0x2C+var_28] .text:00030B10 MOV R1, #1 .text:00030B14 STR R1, [SP,#0x2C+var_24] .text:00030B18 STR R2, [SP,#0x2C+var_20] .text:00030B1C MOV R0, R5 .text:00030B20 ADD R1, R4, #0x54 .text:00030B24 MOV R3, R2 .text:00030B28 MOV LR, PC .text:00030B2C LDR PC, [R5,#0x14] .text:00030B30 LDR R3, [R4,#0x54] .text:00030B34 STR R3, [R6] .text:00030B38 CMP R0, #7 ; switch 8 cases .text:00030B3C LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:00030B40 B loc_30B74 ; jumptable 00030B3C default case .text:00030B40 ; --------------------------------------------------------------------------- .text:00030B44 DCD loc_30B64 ; jump table for switch statement .text:00030B44 DCD loc_30B74 .text:00030B44 DCD loc_30B74 .text:00030B44 DCD loc_30B74 .text:00030B44 DCD loc_30B64 .text:00030B44 DCD loc_30B6C .text:00030B44 DCD loc_30B74 .text:00030B44 DCD loc_30B6C .text:00030B64 ; --------------------------------------------------------------------------- .text:00030B64 .text:00030B64 loc_30B64 ; CODE XREF: do_unshift+6Cj .text:00030B64 ; DATA XREF: do_unshift+74o .text:00030B64 MOV R0, #0 ; jumptable 00030B3C cases 0,4 .text:00030B68 B locret_30B78 .text:00030B6C ; --------------------------------------------------------------------------- .text:00030B6C .text:00030B6C loc_30B6C ; CODE XREF: do_unshift+6Cj .text:00030B6C ; DATA XREF: do_unshift+74o .text:00030B6C MOV R0, #1 ; jumptable 00030B3C cases 5,7 .text:00030B70 B locret_30B78 .text:00030B74 ; --------------------------------------------------------------------------- .text:00030B74 .text:00030B74 loc_30B74 ; CODE XREF: do_unshift+6Cj .text:00030B74 ; do_unshift+70j .text:00030B74 ; DATA XREF: ... .text:00030B74 MOV R0, #2 ; jumptable 00030B3C default case .text:00030B78 .text:00030B78 locret_30B78 ; CODE XREF: do_unshift+98j .text:00030B78 ; do_unshift+A0j .text:00030B78 LDMDB R11, {R4-R6,R11,SP,PC} .text:00030B78 ; End of function do_unshift .text:00030B78 .text:00030B7C .text:00030B7C ; =============== S U B R O U T I N E ======================================= .text:00030B7C .text:00030B7C ; Attributes: bp-based frame .text:00030B7C .text:00030B7C do_in .text:00030B7C .text:00030B7C var_38 = -0x38 .text:00030B7C var_34 = -0x34 .text:00030B7C var_30 = -0x30 .text:00030B7C var_2C = -0x2C .text:00030B7C var_28 = -0x28 .text:00030B7C var_24 = -0x24 .text:00030B7C arg_0 = 4 .text:00030B7C arg_4 = 8 .text:00030B7C arg_8 = 0xC .text:00030B7C arg_C = 0x10 .text:00030B7C .text:00030B7C MOV R12, SP .text:00030B80 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00030B84 SUB R11, R12, #4 .text:00030B88 SUB SP, SP, #0x18 .text:00030B8C STR R2, [R11,#var_24] .text:00030B90 MOV R4, R0 .text:00030B94 STR R1, [R4,#0x3C] .text:00030B98 LDR R2, [R11,#arg_4] .text:00030B9C STR R2, [R4,#0x28] .text:00030BA0 LDR R1, [R11,#arg_8] .text:00030BA4 STR R1, [R4,#0x2C] .text:00030BA8 LDR R7, [R11,#arg_0] .text:00030BAC LDR R5, [R4,#0x24] .text:00030BB0 LDR R0, [R5,#0x14] .text:00030BB4 MOV R6, R3 .text:00030BB8 LDR R8, [R11,#arg_C] .text:00030BBC BL _dl_mcount_wrapper_check .text:00030BC0 MOV R2, #0 .text:00030BC4 STR R2, [SP,#0x38+var_38] .text:00030BC8 SUB R3, R11, #-var_28 .text:00030BCC STR R3, [SP,#0x38+var_34] .text:00030BD0 STR R2, [SP,#0x38+var_30] .text:00030BD4 STR R2, [SP,#0x38+var_2C] .text:00030BD8 MOV R0, R5 .text:00030BDC ADD R1, R4, #0x28 .text:00030BE0 SUB R2, R11, #-var_24 .text:00030BE4 MOV R3, R6 .text:00030BE8 MOV LR, PC .text:00030BEC LDR PC, [R5,#0x14] .text:00030BF0 LDR R3, [R11,#var_24] .text:00030BF4 STR R3, [R7] .text:00030BF8 LDR R2, [R4,#0x28] .text:00030BFC STR R2, [R8] .text:00030C00 CMP R0, #7 ; switch 8 cases .text:00030C04 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:00030C08 B loc_30C3C ; jumptable 00030C04 default case .text:00030C08 ; --------------------------------------------------------------------------- .text:00030C0C DCD loc_30C2C ; jump table for switch statement .text:00030C0C DCD loc_30C3C .text:00030C0C DCD loc_30C3C .text:00030C0C DCD loc_30C3C .text:00030C0C DCD loc_30C2C .text:00030C0C DCD loc_30C34 .text:00030C0C DCD loc_30C3C .text:00030C0C DCD loc_30C34 .text:00030C2C ; --------------------------------------------------------------------------- .text:00030C2C .text:00030C2C loc_30C2C ; CODE XREF: do_in+88j .text:00030C2C ; DATA XREF: do_in+90o .text:00030C2C MOV R0, #0 ; jumptable 00030C04 cases 0,4 .text:00030C30 B locret_30C40 .text:00030C34 ; --------------------------------------------------------------------------- .text:00030C34 .text:00030C34 loc_30C34 ; CODE XREF: do_in+88j .text:00030C34 ; DATA XREF: do_in+90o .text:00030C34 MOV R0, #1 ; jumptable 00030C04 cases 5,7 .text:00030C38 B locret_30C40 .text:00030C3C ; --------------------------------------------------------------------------- .text:00030C3C .text:00030C3C loc_30C3C ; CODE XREF: do_in+88j .text:00030C3C ; do_in+8Cj .text:00030C3C ; DATA XREF: ... .text:00030C3C MOV R0, #2 ; jumptable 00030C04 default case .text:00030C40 .text:00030C40 locret_30C40 ; CODE XREF: do_in+B4j .text:00030C40 ; do_in+BCj .text:00030C40 LDMDB R11, {R4-R8,R11,SP,PC} .text:00030C40 ; End of function do_in .text:00030C40 .text:00030C44 .text:00030C44 ; =============== S U B R O U T I N E ======================================= .text:00030C44 .text:00030C44 ; Attributes: bp-based frame .text:00030C44 .text:00030C44 do_encoding .text:00030C44 MOV R12, SP .text:00030C48 STMFD SP!, {R11,R12,LR,PC} .text:00030C4C LDR R2, [R0,#0x24] .text:00030C50 LDR R1, [R2,#0x30] .text:00030C54 SUB R11, R12, #4 .text:00030C58 CMP R1, #0 .text:00030C5C MOVNE R0, 0xFFFFFFFF .text:00030C60 LDMNEDB R11, {R11,SP,PC} .text:00030C64 LDR R3, [R2,#0x20] .text:00030C68 LDR R0, [R2,#0x24] .text:00030C6C CMP R3, R0 .text:00030C70 MOVNE R0, R1 .text:00030C74 LDMDB R11, {R11,SP,PC} .text:00030C74 ; End of function do_encoding .text:00030C74 .text:00030C78 .text:00030C78 ; =============== S U B R O U T I N E ======================================= .text:00030C78 .text:00030C78 ; Attributes: bp-based frame .text:00030C78 .text:00030C78 do_always_noconv .text:00030C78 MOV R12, SP .text:00030C7C STMFD SP!, {R11,R12,LR,PC} .text:00030C80 SUB R11, R12, #4 .text:00030C84 MOV R0, #0 .text:00030C88 LDMDB R11, {R11,SP,PC} .text:00030C88 ; End of function do_always_noconv .text:00030C88 .text:00030C8C .text:00030C8C ; =============== S U B R O U T I N E ======================================= .text:00030C8C .text:00030C8C ; Attributes: bp-based frame .text:00030C8C .text:00030C8C do_length .text:00030C8C .text:00030C8C var_34 = -0x34 .text:00030C8C var_30 = -0x30 .text:00030C8C var_2C = -0x2C .text:00030C8C var_28 = -0x28 .text:00030C8C var_24 = -0x24 .text:00030C8C var_20 = -0x20 .text:00030C8C arg_0 = 4 .text:00030C8C .text:00030C8C MOV R12, SP .text:00030C90 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00030C94 SUB R11, R12, #4 .text:00030C98 MOV R7, R2 .text:00030C9C SUB SP, SP, #0x18 .text:00030CA0 STR R7, [R11,#var_20] .text:00030CA4 LDR R12, [R11,#arg_0] .text:00030CA8 MOV R4, R0 .text:00030CAC STR R1, [R4,#0x3C] .text:00030CB0 MOV R1, R12,LSL#5 .text:00030CB4 SUB SP, SP, R1,LSR#3 .text:00030CB8 ADD R2, SP, #0x34+var_24 .text:00030CBC STR R2, [R4,#0x28] .text:00030CC0 ADD R2, R2, R12,LSL#2 .text:00030CC4 STR R2, [R4,#0x2C] .text:00030CC8 LDR R5, [R4,#0x24] .text:00030CCC LDR R0, [R5,#0x14] .text:00030CD0 MOV R6, R3 .text:00030CD4 BL _dl_mcount_wrapper_check .text:00030CD8 MOV R2, #0 .text:00030CDC STR R2, [SP,#0x34+var_34] .text:00030CE0 SUB R3, R11, #-var_24 .text:00030CE4 STR R3, [SP,#0x34+var_30] .text:00030CE8 STR R2, [SP,#0x34+var_2C] .text:00030CEC STR R2, [SP,#0x34+var_28] .text:00030CF0 MOV R0, R5 .text:00030CF4 ADD R1, R4, #0x28 .text:00030CF8 SUB R2, R11, #-var_20 .text:00030CFC MOV R3, R6 .text:00030D00 MOV LR, PC .text:00030D04 LDR PC, [R5,#0x14] .text:00030D08 LDR R0, [R11,#var_20] .text:00030D0C RSB R0, R7, R0 .text:00030D10 LDMDB R11, {R4-R7,R11,SP,PC} .text:00030D10 ; End of function do_length .text:00030D10 .text:00030D14 .text:00030D14 ; =============== S U B R O U T I N E ======================================= .text:00030D14 .text:00030D14 ; Attributes: bp-based frame .text:00030D14 .text:00030D14 do_max_length .text:00030D14 MOV R12, SP .text:00030D18 STMFD SP!, {R11,R12,LR,PC} .text:00030D1C LDR R3, [R0,#0x24] .text:00030D20 SUB R11, R12, #4 .text:00030D24 LDR R0, [R3,#0x24] .text:00030D28 LDMDB R11, {R11,SP,PC} .text:00030D28 ; End of function do_max_length .text:00030D28 .text:00030D2C .text:00030D2C ; =============== S U B R O U T I N E ======================================= .text:00030D2C .text:00030D2C ; Attributes: bp-based frame .text:00030D2C .text:00030D2C EXPORT fgets_unlocked .text:00030D2C fgets_unlocked ; CODE XREF: read_alias_file+B0p .text:00030D2C ; read_alias_file+444p ... .text:00030D2C .text:00030D2C var_20 = -0x20 .text:00030D2C .text:00030D2C MOV R12, SP .text:00030D30 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00030D34 SUB R11, R12, #4 .text:00030D38 MOV R5, R0 .text:00030D3C MOV R4, R2 .text:00030D40 SUBS R12, R1, #0 .text:00030D44 SUB SP, SP, #4 .text:00030D48 MOVLE R0, #0 .text:00030D4C BLE locret_30DC0 .text:00030D50 MOV R3, #1 .text:00030D54 STR R3, [SP,#0x20+var_20] .text:00030D58 LDR R2, [R4] .text:00030D5C MOV R0, R4 .text:00030D60 BIC R3, R2, #0x20 .text:00030D64 STR R3, [R4] .text:00030D68 MOV R1, R5 .text:00030D6C AND R7, R2, #0x20 .text:00030D70 SUB R2, R12, #1 .text:00030D74 MOV R3, #0xA .text:00030D78 BL _IO_getline .text:00030D7C SUBS R6, R0, #0 .text:00030D80 BEQ loc_30DA0 .text:00030D84 LDR R3, [R4] .text:00030D88 TST R3, #0x20 .text:00030D8C BEQ loc_30DA8 .text:00030D90 BL __errno_location .text:00030D94 LDR R3, [R0] .text:00030D98 CMP R3, #0xB .text:00030D9C BEQ loc_30DA8 .text:00030DA0 .text:00030DA0 loc_30DA0 ; CODE XREF: fgets_unlocked+54j .text:00030DA0 MOV R0, #0 .text:00030DA4 B loc_30DB4 .text:00030DA8 ; --------------------------------------------------------------------------- .text:00030DA8 .text:00030DA8 loc_30DA8 ; CODE XREF: fgets_unlocked+60j .text:00030DA8 ; fgets_unlocked+70j .text:00030DA8 MOV R0, R5 .text:00030DAC MOV R3, #0 .text:00030DB0 STRB R3, [R5,R6] .text:00030DB4 .text:00030DB4 loc_30DB4 ; CODE XREF: fgets_unlocked+78j .text:00030DB4 LDR R3, [R4] .text:00030DB8 ORR R3, R3, R7 .text:00030DBC STR R3, [R4] .text:00030DC0 .text:00030DC0 locret_30DC0 ; CODE XREF: fgets_unlocked+20j .text:00030DC0 LDMDB R11, {R4-R7,R11,SP,PC} .text:00030DC0 ; End of function fgets_unlocked .text:00030DC0 .text:00030DC4 .text:00030DC4 ; =============== S U B R O U T I N E ======================================= .text:00030DC4 .text:00030DC4 ; Attributes: bp-based frame .text:00030DC4 .text:00030DC4 EXPORT _IO_new_file_init .text:00030DC4 _IO_new_file_init ; CODE XREF: fopen+58p .text:00030DC4 MOV R12, SP ; Alternative name is '_IO_file_init' .text:00030DC8 STMFD SP!, {R4,R11,R12,LR,PC} .text:00030DCC MOV R4, R0 .text:00030DD0 ADD R1, R4, #0x4C .text:00030DD4 MOV R3, 0xFFFFFFFF .text:00030DD8 MOV R2, 0xFFFFFFFF .text:00030DDC STMIA R1, {R2,R3} .text:00030DE0 LDR R3, [R4] .text:00030DE4 ORR R3, R3, #0x2400 .text:00030DE8 ORR R3, R3, #0xC .text:00030DEC STR R3, [R4] .text:00030DF0 SUB R11, R12, #4 .text:00030DF4 BL _IO_link_in .text:00030DF8 MOV R3, 0xFFFFFFFF .text:00030DFC STR R3, [R4,#0x38] .text:00030E00 LDMDB R11, {R4,R11,SP,PC} .text:00030E00 ; End of function _IO_new_file_init .text:00030E00 .text:00030E04 .text:00030E04 ; =============== S U B R O U T I N E ======================================= .text:00030E04 .text:00030E04 ; Attributes: bp-based frame .text:00030E04 .text:00030E04 EXPORT _IO_new_file_close_it .text:00030E04 _IO_new_file_close_it ; CODE XREF: fclose+6Cp .text:00030E04 MOV R12, SP ; Alternative name is '_IO_file_close_it' .text:00030E08 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00030E0C MOV R4, R0 .text:00030E10 LDR R0, [R4,#0x38] .text:00030E14 SUB R11, R12, #4 .text:00030E18 CMN R0, #1 .text:00030E1C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00030E20 LDR R3, [R4,#0x5C] .text:00030E24 CMP R3, #0 .text:00030E28 BGT loc_30E48 .text:00030E2C LDR R1, [R4,#0x10] .text:00030E30 ADD R3, R4, #0x14 .text:00030E34 LDMDA R3, {R2,R3} .text:00030E38 SUB R2, R3, R2 .text:00030E3C MOV R0, R4 .text:00030E40 BL _IO_new_do_write .text:00030E44 B loc_30E68 .text:00030E48 ; --------------------------------------------------------------------------- .text:00030E48 .text:00030E48 loc_30E48 ; CODE XREF: _IO_new_file_close_it+24j .text:00030E48 LDR R3, [R4,#0x58] .text:00030E4C ADD R1, R3, #0x10 .text:00030E50 LDMDA R1, {R1,R2} .text:00030E54 SUB R2, R2, R1 .text:00030E58 MOV R0, R4 .text:00030E5C LDR R1, [R3,#0xC] .text:00030E60 MOV R2, R2,ASR#2 .text:00030E64 BL _IO_wdo_write .text:00030E68 .text:00030E68 loc_30E68 ; CODE XREF: _IO_new_file_close_it+40j .text:00030E68 MOV R6, R0 .text:00030E6C MOV R0, R4 .text:00030E70 BL _IO_unsave_markers .text:00030E74 LDRB R3, [R4,#0x46] .text:00030E78 MOV R3, R3,LSL#24 .text:00030E7C ADD R3, R4, R3,ASR#24 .text:00030E80 LDR R2, [R3,#0x94] .text:00030E84 MOV R0, R4 .text:00030E88 MOV LR, PC .text:00030E8C LDR PC, [R2,#0x44] .text:00030E90 LDR R3, [R4,#0x5C] .text:00030E94 MOV R5, R0 .text:00030E98 CMP R3, #0 .text:00030E9C BGT loc_30ED4 .text:00030EA0 MOV R0, R4 .text:00030EA4 MOV R1, #0 .text:00030EA8 MOV R2, R1 .text:00030EAC MOV R3, R1 .text:00030EB0 BL _IO_setb .text:00030EB4 MOV R3, #0 .text:00030EB8 STR R3, [R4,#0xC] .text:00030EBC STR R3, [R4,#4] .text:00030EC0 STR R3, [R4,#8] .text:00030EC4 STR R3, [R4,#0x14] .text:00030EC8 STR R3, [R4,#0x10] .text:00030ECC STR R3, [R4,#0x18] .text:00030ED0 B loc_30F18 .text:00030ED4 ; --------------------------------------------------------------------------- .text:00030ED4 .text:00030ED4 loc_30ED4 ; CODE XREF: _IO_new_file_close_it+98j .text:00030ED4 MOV R0, R4 .text:00030ED8 MOV R1, #0 .text:00030EDC MOV R2, R1 .text:00030EE0 MOV R3, R1 .text:00030EE4 BL _IO_wsetb .text:00030EE8 LDR R2, [R4,#0x58] .text:00030EEC MOV R0, #0 .text:00030EF0 STR R0, [R2,#8] .text:00030EF4 LDR R3, [R4,#0x58] .text:00030EF8 STR R0, [R3] .text:00030EFC LDR R2, [R4,#0x58] .text:00030F00 STR R0, [R2,#4] .text:00030F04 LDR R1, [R4,#0x58] .text:00030F08 STR R0, [R1,#0x10] .text:00030F0C STR R0, [R1,#0xC] .text:00030F10 LDR R3, [R4,#0x58] .text:00030F14 STR R0, [R3,#0x14] .text:00030F18 .text:00030F18 loc_30F18 ; CODE XREF: _IO_new_file_close_it+CCj .text:00030F18 MOV R0, R4 .text:00030F1C BL _IO_un_link .text:00030F20 MOV R3, 0xFFFFFFFF .text:00030F24 STR R3, [R4,#0x38] .text:00030F28 CMP R5, #0 .text:00030F2C LDR R2, =0xFBAD240C .text:00030F30 MOVNE R0, R5 .text:00030F34 MOVEQ R0, R6 .text:00030F38 STR R2, [R4] .text:00030F3C ADD R3, R4, #0x4C .text:00030F40 MOV R2, 0xFFFFFFFF .text:00030F44 MOV R1, 0xFFFFFFFF .text:00030F48 STMIA R3, {R1,R2} .text:00030F4C LDMDB R11, {R4-R6,R11,SP,PC} .text:00030F4C ; End of function _IO_new_file_close_it .text:00030F4C .text:00030F4C ; --------------------------------------------------------------------------- .text:00030F50 dword_30F50 DCD 0xFBAD240C ; DATA XREF: _IO_new_file_close_it+128r .text:00030F54 .text:00030F54 ; =============== S U B R O U T I N E ======================================= .text:00030F54 .text:00030F54 ; Attributes: bp-based frame .text:00030F54 .text:00030F54 WEAK _IO_new_file_finish .text:00030F54 _IO_new_file_finish .text:00030F54 MOV R12, SP .text:00030F58 STMFD SP!, {R4,R11,R12,LR,PC} .text:00030F5C MOV R4, R0 .text:00030F60 LDR R3, [R4,#0x38] .text:00030F64 SUB R11, R12, #4 .text:00030F68 CMN R3, #1 .text:00030F6C BEQ loc_30FDC .text:00030F70 LDR R3, [R4,#0x5C] .text:00030F74 CMP R3, #0 .text:00030F78 BGT loc_30F94 .text:00030F7C LDR R1, [R4,#0x10] .text:00030F80 ADD R3, R4, #0x14 .text:00030F84 LDMDA R3, {R2,R3} .text:00030F88 SUB R2, R3, R2 .text:00030F8C BL _IO_new_do_write .text:00030F90 B loc_30FB4 .text:00030F94 ; --------------------------------------------------------------------------- .text:00030F94 .text:00030F94 loc_30F94 ; CODE XREF: _IO_new_file_finish+24j .text:00030F94 LDR R3, [R4,#0x58] .text:00030F98 ADD R1, R3, #0x10 .text:00030F9C LDMDA R1, {R1,R2} .text:00030FA0 SUB R2, R2, R1 .text:00030FA4 MOV R0, R4 .text:00030FA8 LDR R1, [R3,#0xC] .text:00030FAC MOV R2, R2,ASR#2 .text:00030FB0 BL _IO_wdo_write .text:00030FB4 .text:00030FB4 loc_30FB4 ; CODE XREF: _IO_new_file_finish+3Cj .text:00030FB4 LDR R3, [R4] .text:00030FB8 TST R3, #0x40 .text:00030FBC BNE loc_30FDC .text:00030FC0 LDRB R3, [R4,#0x46] .text:00030FC4 MOV R3, R3,LSL#24 .text:00030FC8 ADD R3, R4, R3,ASR#24 .text:00030FCC LDR R2, [R3,#0x94] .text:00030FD0 MOV R0, R4 .text:00030FD4 MOV LR, PC .text:00030FD8 LDR PC, [R2,#0x44] .text:00030FDC .text:00030FDC loc_30FDC ; CODE XREF: _IO_new_file_finish+18j .text:00030FDC ; _IO_new_file_finish+68j .text:00030FDC MOV R0, R4 .text:00030FE0 MOV R1, #0 .text:00030FE4 BL _IO_default_finish .text:00030FE8 LDMDB R11, {R4,R11,SP,PC} .text:00030FE8 ; End of function _IO_new_file_finish .text:00030FE8 .text:00030FEC .text:00030FEC ; =============== S U B R O U T I N E ======================================= .text:00030FEC .text:00030FEC ; Attributes: bp-based frame .text:00030FEC .text:00030FEC EXPORT _IO_new_file_fopen .text:00030FEC _IO_new_file_fopen ; CODE XREF: fopen+6Cp .text:00030FEC .text:00030FEC var_30 = -0x30 .text:00030FEC var_2C = -0x2C .text:00030FEC var_28 = -0x28 .text:00030FEC .text:00030FEC MOV R12, SP ; Alternative name is '_IO_file_fopen' .text:00030FF0 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00030FF4 SUB R11, R12, #4 .text:00030FF8 MOV R8, R2 .text:00030FFC MOV R12, #0 .text:00031000 MOV R6, #0x1B4 .text:00031004 MOV R5, R0 .text:00031008 ADD R6, R6, #2 .text:0003100C SUB SP, SP, #0xC .text:00031010 LDR R2, [R5,#0x38] .text:00031014 MOV R0, R1 .text:00031018 CMN R2, #1 .text:0003101C MOVNE R0, #0 .text:00031020 BNE loc_31260 .text:00031024 LDRB R2, [R8] .text:00031028 CMP R2, #0x72 .text:0003102C BEQ loc_3104C .text:00031030 BGT loc_31040 .text:00031034 CMP R2, #0x61 .text:00031038 BEQ loc_31068 .text:0003103C B loc_3107C .text:00031040 ; --------------------------------------------------------------------------- .text:00031040 .text:00031040 loc_31040 ; CODE XREF: _IO_new_file_fopen+44j .text:00031040 CMP R2, #0x77 .text:00031044 BEQ loc_31058 .text:00031048 B loc_3107C .text:0003104C ; --------------------------------------------------------------------------- .text:0003104C .text:0003104C loc_3104C ; CODE XREF: _IO_new_file_fopen+40j .text:0003104C MOV R1, R12 .text:00031050 MOV R4, #8 .text:00031054 B loc_31090 .text:00031058 ; --------------------------------------------------------------------------- .text:00031058 .text:00031058 loc_31058 ; CODE XREF: _IO_new_file_fopen+58j .text:00031058 MOV R1, #1 .text:0003105C MOV R12, #0x240 .text:00031060 MOV R4, #4 .text:00031064 B loc_31090 .text:00031068 ; --------------------------------------------------------------------------- .text:00031068 .text:00031068 loc_31068 ; CODE XREF: _IO_new_file_fopen+4Cj .text:00031068 MOV R1, #1 .text:0003106C MOV R12, #0x440 .text:00031070 MOV R4, 0x1004 .text:00031078 B loc_31090 .text:0003107C ; --------------------------------------------------------------------------- .text:0003107C .text:0003107C loc_3107C ; CODE XREF: _IO_new_file_fopen+50j .text:0003107C ; _IO_new_file_fopen+5Cj .text:0003107C BL __errno_location .text:00031080 MOV R3, #0x16 .text:00031084 STR R3, [R0] .text:00031088 MOV R0, #0 .text:0003108C B loc_31260 .text:00031090 ; --------------------------------------------------------------------------- .text:00031090 .text:00031090 loc_31090 ; CODE XREF: _IO_new_file_fopen+68j .text:00031090 ; _IO_new_file_fopen+78j ... .text:00031090 MOV LR, #1 .text:00031094 LDR R10, =aCcs ; ",ccs=" .text:00031098 B loc_310A0 .text:0003109C ; --------------------------------------------------------------------------- .text:0003109C .text:0003109C loc_3109C ; CODE XREF: _IO_new_file_fopen+C4j .text:0003109C ; _IO_new_file_fopen+DCj ... .text:0003109C ADD LR, LR, #1 .text:000310A0 .text:000310A0 loc_310A0 ; CODE XREF: _IO_new_file_fopen+ACj .text:000310A0 CMP LR, #3 .text:000310A4 BGT loc_310EC .text:000310A8 LDRB R2, [R8,#1]! .text:000310AC CMP R2, #0x62 .text:000310B0 BEQ loc_3109C .text:000310B4 BGT loc_310CC .text:000310B8 CMP R2, #0 .text:000310BC BEQ loc_310EC .text:000310C0 CMP R2, #0x2B .text:000310C4 BEQ loc_310D8 .text:000310C8 B loc_3109C .text:000310CC ; --------------------------------------------------------------------------- .text:000310CC .text:000310CC loc_310CC ; CODE XREF: _IO_new_file_fopen+C8j .text:000310CC CMP R2, #0x78 .text:000310D0 BEQ loc_310E4 .text:000310D4 B loc_3109C .text:000310D8 ; --------------------------------------------------------------------------- .text:000310D8 .text:000310D8 loc_310D8 ; CODE XREF: _IO_new_file_fopen+D8j .text:000310D8 MOV R1, #2 .text:000310DC AND R4, R4, #0x1000 .text:000310E0 B loc_3109C .text:000310E4 ; --------------------------------------------------------------------------- .text:000310E4 .text:000310E4 loc_310E4 ; CODE XREF: _IO_new_file_fopen+E4j .text:000310E4 ORR R12, R12, #0x80 .text:000310E8 B loc_3109C .text:000310EC ; --------------------------------------------------------------------------- .text:000310EC .text:000310EC loc_310EC ; CODE XREF: _IO_new_file_fopen+B8j .text:000310EC ; _IO_new_file_fopen+D0j .text:000310EC CMP R3, #0 .text:000310F0 ORR R1, R1, R12 .text:000310F4 BEQ loc_31104 .text:000310F8 MOV R2, R6 .text:000310FC BL open .text:00031100 B loc_3110C .text:00031104 ; --------------------------------------------------------------------------- .text:00031104 .text:00031104 loc_31104 ; CODE XREF: _IO_new_file_fopen+108j .text:00031104 MOV R2, R6 .text:00031108 BL open64 .text:0003110C .text:0003110C loc_3110C ; CODE XREF: _IO_new_file_fopen+114j .text:0003110C CMP R0, #0 .text:00031110 BLT loc_31194 .text:00031114 BIC R2, R4, #0xFF0 .text:00031118 BIC R2, R2, #3 .text:0003111C MOV R2, R2,LSL#19 .text:00031120 MOV R2, R2,LSR#19 .text:00031124 LDR R3, [R5] .text:00031128 TST R4, #0x1000 .text:0003112C STR R0, [R5,#0x38] .text:00031130 BIC R3, R3, #0x1000 .text:00031134 BIC R3, R3, #0xC .text:00031138 ORR R3, R3, R2 .text:0003113C STR R3, [R5] .text:00031140 BEQ loc_3119C .text:00031144 LDRB R3, [R5,#0x46] .text:00031148 MOV R3, R3,LSL#24 .text:0003114C ADD R3, R5, R3,ASR#24 .text:00031150 LDR R12, [R3,#0x94] .text:00031154 MOV R2, #3 .text:00031158 STR R2, [SP,#0x30+var_30] .text:0003115C MOV R0, R5 .text:00031160 MOV R2, #0 .text:00031164 MOV R1, #0 .text:00031168 MOV R3, #2 .text:0003116C MOV LR, PC .text:00031170 LDR PC, [R12,#0x24] .text:00031174 CMN R0, #1 .text:00031178 BNE loc_3119C .text:0003117C CMN R1, #1 .text:00031180 BNE loc_3119C .text:00031184 BL __errno_location .text:00031188 LDR R3, [R0] .text:0003118C CMP R3, #0x1D .text:00031190 BEQ loc_3119C .text:00031194 .text:00031194 loc_31194 ; CODE XREF: _IO_new_file_fopen+124j .text:00031194 MOV R7, #0 .text:00031198 B loc_311A8 .text:0003119C ; --------------------------------------------------------------------------- .text:0003119C .text:0003119C loc_3119C ; CODE XREF: _IO_new_file_fopen+154j .text:0003119C ; _IO_new_file_fopen+18Cj ... .text:0003119C MOV R0, R5 .text:000311A0 MOV R7, R5 .text:000311A4 BL _IO_link_in .text:000311A8 .text:000311A8 loc_311A8 ; CODE XREF: _IO_new_file_fopen+1ACj .text:000311A8 MOV R0, R8 .text:000311AC MOV R1, R10 .text:000311B0 BL strstr .text:000311B4 SUBS R1, R0, #0 .text:000311B8 BEQ loc_3125C .text:000311BC LDR R3, [R5,#0x58] .text:000311C0 CMP R3, #0 .text:000311C4 BEQ loc_311DC .text:000311C8 SUB R0, R11, #-var_2C .text:000311CC ADD R1, R1, #5 .text:000311D0 BL __wcsmbs_named_conv .text:000311D4 SUBS R6, R0, #0 .text:000311D8 BEQ loc_311F0 .text:000311DC .text:000311DC loc_311DC ; CODE XREF: _IO_new_file_fopen+1D8j .text:000311DC MOV R0, R7 .text:000311E0 BL fclose .text:000311E4 MOV R0, #0 .text:000311E8 B loc_31260 .text:000311E8 ; --------------------------------------------------------------------------- .text:000311EC off_311EC DCD aCcs ; DATA XREF: _IO_new_file_fopen+A8r .text:000311EC ; ",ccs=" .text:000311F0 ; --------------------------------------------------------------------------- .text:000311F0 .text:000311F0 loc_311F0 ; CODE XREF: _IO_new_file_fopen+1ECj .text:000311F0 LDR R4, [R5,#0x58] .text:000311F4 ADD R4, R4, #0x3C .text:000311F8 STR R4, [R5,#0x54] .text:000311FC MOV R2, #0x78 .text:00031200 LDR R1, =__libio_codecvt .text:00031204 MOV R0, R4 .text:00031208 BL memcpy .text:0003120C MOV R2, #1 .text:00031210 STR R2, [R4,#0x20] .text:00031214 LDR R1, [R11,#var_2C] .text:00031218 STR R6, [R4,#0x34] .text:0003121C STR R2, [R4,#0x38] .text:00031220 STR R2, [R4,#0x30] .text:00031224 STR R1, [R4,#0x24] .text:00031228 LDR R3, [R7,#0x58] .text:0003122C STR R2, [R4,#0x4C] .text:00031230 ADD R3, R3, #0x2C .text:00031234 STR R3, [R4,#0x3C] .text:00031238 LDR R1, [R11,#var_28] .text:0003123C STR R6, [R4,#0x60] .text:00031240 STR R2, [R4,#0x64] .text:00031244 STR R2, [R4,#0x5C] .text:00031248 STR R1, [R4,#0x50] .text:0003124C LDR R3, [R7,#0x58] .text:00031250 ADD R3, R3, #0x2C .text:00031254 STR R3, [R4,#0x68] .text:00031258 STR R2, [R7,#0x5C] .text:0003125C .text:0003125C loc_3125C ; CODE XREF: _IO_new_file_fopen+1CCj .text:0003125C MOV R0, R7 .text:00031260 .text:00031260 loc_31260 ; CODE XREF: _IO_new_file_fopen+34j .text:00031260 ; _IO_new_file_fopen+A0j ... .text:00031260 B locret_31268 .text:00031260 ; --------------------------------------------------------------------------- .text:00031264 off_31264 DCD __libio_codecvt ; DATA XREF: _IO_new_file_fopen+214r .text:00031268 ; --------------------------------------------------------------------------- .text:00031268 .text:00031268 locret_31268 ; CODE XREF: _IO_new_file_fopen:loc_31260j .text:00031268 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00031268 ; End of function _IO_new_file_fopen .text:00031268 .text:0003126C .text:0003126C ; =============== S U B R O U T I N E ======================================= .text:0003126C .text:0003126C ; Attributes: bp-based frame .text:0003126C .text:0003126C EXPORT _IO_new_file_attach .text:0003126C _IO_new_file_attach .text:0003126C .text:0003126C var_14 = -0x14 .text:0003126C .text:0003126C MOV R12, SP ; Alternative name is '_IO_file_attach' .text:00031270 STMFD SP!, {R4,R11,R12,LR,PC} .text:00031274 MOV R4, R0 .text:00031278 SUB SP, SP, #4 .text:0003127C LDR R3, [R4,#0x38] .text:00031280 SUB R11, R12, #4 .text:00031284 CMN R3, #1 .text:00031288 MOVNE R0, #0 .text:0003128C BNE locret_3130C .text:00031290 LDR R3, [R4] .text:00031294 STR R1, [R4,#0x38] .text:00031298 BIC R3, R3, #0xC .text:0003129C ORR R3, R3, #0x40 .text:000312A0 STR R3, [R4] .text:000312A4 ADD R1, R4, #0x4C .text:000312A8 MOV R3, 0xFFFFFFFF .text:000312AC MOV R2, 0xFFFFFFFF .text:000312B0 STMIA R1, {R2,R3} .text:000312B4 LDRB R3, [R4,#0x46] .text:000312B8 MOV R3, R3,LSL#24 .text:000312BC ADD R3, R4, R3,ASR#24 .text:000312C0 LDR R12, [R3,#0x94] .text:000312C4 MOV R2, #3 .text:000312C8 STR R2, [SP,#0x14+var_14] .text:000312CC MOV R0, R4 .text:000312D0 MOV R2, #0 .text:000312D4 MOV R1, #0 .text:000312D8 MOV R3, #1 .text:000312DC MOV LR, PC .text:000312E0 LDR PC, [R12,#0x24] .text:000312E4 CMN R0, #1 .text:000312E8 BNE loc_31308 .text:000312EC CMN R1, #1 .text:000312F0 BNE loc_31308 .text:000312F4 BL __errno_location .text:000312F8 LDR R3, [R0] .text:000312FC MOV R0, #0 .text:00031300 CMP R3, #0x1D .text:00031304 BNE locret_3130C .text:00031308 .text:00031308 loc_31308 ; CODE XREF: _IO_new_file_attach+7Cj .text:00031308 ; _IO_new_file_attach+84j .text:00031308 MOV R0, R4 .text:0003130C .text:0003130C locret_3130C ; CODE XREF: _IO_new_file_attach+20j .text:0003130C ; _IO_new_file_attach+98j .text:0003130C LDMDB R11, {R4,R11,SP,PC} .text:0003130C ; End of function _IO_new_file_attach .text:0003130C .text:00031310 .text:00031310 ; =============== S U B R O U T I N E ======================================= .text:00031310 .text:00031310 ; Attributes: bp-based frame .text:00031310 .text:00031310 WEAK _IO_new_file_setbuf .text:00031310 _IO_new_file_setbuf .text:00031310 MOV R12, SP .text:00031314 STMFD SP!, {R4,R11,R12,LR,PC} .text:00031318 SUB R11, R12, #4 .text:0003131C MOV R4, R0 .text:00031320 BL _IO_default_setbuf .text:00031324 CMP R0, #0 .text:00031328 LDMEQDB R11, {R4,R11,SP,PC} .text:0003132C LDR R3, [R4,#0x1C] .text:00031330 STR R3, [R4,#0x18] .text:00031334 STR R3, [R4,#0x14] .text:00031338 STR R3, [R4,#0x10] .text:0003133C STR R3, [R4,#0xC] .text:00031340 STR R3, [R4,#4] .text:00031344 MOV R0, R4 .text:00031348 STR R3, [R4,#8] .text:0003134C LDMDB R11, {R4,R11,SP,PC} .text:0003134C ; End of function _IO_new_file_setbuf .text:0003134C .text:00031350 .text:00031350 ; =============== S U B R O U T I N E ======================================= .text:00031350 .text:00031350 ; Attributes: bp-based frame .text:00031350 .text:00031350 EXPORT _IO_new_do_write .text:00031350 _IO_new_do_write ; CODE XREF: _IO_wdo_write+44p .text:00031350 ; _IO_wdo_write+A4p ... .text:00031350 MOV R12, SP ; Alternative name is '_IO_do_write' .text:00031354 STMFD SP!, {R4,R11,R12,LR,PC} .text:00031358 SUB R11, R12, #4 .text:0003135C SUBS R4, R2, #0 .text:00031360 BEQ loc_31378 .text:00031364 MOV R2, R4 .text:00031368 BL new_do_write .text:0003136C CMP R0, R4 .text:00031370 MOV R0, 0xFFFFFFFF .text:00031374 LDMNEDB R11, {R4,R11,SP,PC} .text:00031378 .text:00031378 loc_31378 ; CODE XREF: _IO_new_do_write+10j .text:00031378 MOV R0, #0 .text:0003137C LDMDB R11, {R4,R11,SP,PC} .text:0003137C ; End of function _IO_new_do_write .text:0003137C .text:00031380 .text:00031380 ; =============== S U B R O U T I N E ======================================= .text:00031380 .text:00031380 ; Attributes: bp-based frame .text:00031380 .text:00031380 new_do_write ; CODE XREF: _IO_new_do_write+18p .text:00031380 ; _IO_new_file_xsputn+14Cp .text:00031380 MOV R12, SP .text:00031384 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00031388 SUB R11, R12, #4 .text:0003138C MOV R4, R0 .text:00031390 MOV R6, R1 .text:00031394 LDR R3, [R4] .text:00031398 MOV R7, R2 .text:0003139C ANDS R5, R3, #0x1000 .text:000313A0 ADDNE R3, R4, #0x4C .text:000313A4 MOVNE R2, 0xFFFFFFFF .text:000313A8 MOVNE R1, 0xFFFFFFFF .text:000313AC STMNEIA R3, {R1,R2} .text:000313B0 BNE loc_31408 .text:000313B4 LDR R3, [R4,#8] .text:000313B8 LDR R1, [R4,#0x10] .text:000313BC CMP R3, R1 .text:000313C0 BEQ loc_31408 .text:000313C4 MOV R0, R4 .text:000313C8 RSB R1, R3, R1 .text:000313CC LDRB R3, [R4,#0x46] .text:000313D0 MOV R2, R1,ASR#31 .text:000313D4 MOV R3, R3,LSL#24 .text:000313D8 ADD R3, R4, R3,ASR#24 .text:000313DC LDR R12, [R3,#0x94] .text:000313E0 MOV R3, #1 .text:000313E4 MOV LR, PC .text:000313E8 LDR PC, [R12,#0x40] .text:000313EC CMN R0, #1 .text:000313F0 BNE loc_31400 .text:000313F4 CMN R1, #1 .text:000313F8 MOVEQ R0, R5 .text:000313FC LDMEQDB R11, {R4-R7,R11,SP,PC} .text:00031400 .text:00031400 loc_31400 ; CODE XREF: new_do_write+70j .text:00031400 ADD R3, R4, #0x4C .text:00031404 STMIA R3, {R0,R1} .text:00031408 .text:00031408 loc_31408 ; CODE XREF: new_do_write+30j .text:00031408 ; new_do_write+40j .text:00031408 MOV R0, R4 .text:0003140C LDRB R3, [R4,#0x46] .text:00031410 MOV R1, R6 .text:00031414 MOV R3, R3,LSL#24 .text:00031418 ADD R3, R4, R3,ASR#24 .text:0003141C LDR R12, [R3,#0x94] .text:00031420 MOV R2, R7 .text:00031424 MOV LR, PC .text:00031428 LDR PC, [R12,#0x3C] .text:0003142C LDR R3, [R4,#0x44] .text:00031430 MOV R5, R0 .text:00031434 MOVS R3, R3,LSL#16 .text:00031438 MOVEQ R2, #0 .text:0003143C MOVNE R2, #1 .text:00031440 CMP R2, #0 .text:00031444 CMPNE R5, #0 .text:00031448 BEQ loc_31478 .text:0003144C LDRB R0, [R4,#0x44] .text:00031450 MOV R1, R6 .text:00031454 LDRB R3, [R4,#0x45] .text:00031458 MOV R2, R5 .text:0003145C ORR R0, R0, R3,LSL#8 .text:00031460 SUB R0, R0, #1 .text:00031464 BL _IO_adjust_column .text:00031468 ADD R0, R0, #1 .text:0003146C STRB R0, [R4,#0x44] .text:00031470 MOV R0, R0,ASR#8 .text:00031474 STRB R0, [R4,#0x45] .text:00031478 .text:00031478 loc_31478 ; CODE XREF: new_do_write+C8j .text:00031478 LDR R2, [R4,#0x1C] .text:0003147C STR R2, [R4,#0xC] .text:00031480 STR R2, [R4,#4] .text:00031484 STR R2, [R4,#8] .text:00031488 LDR R3, [R4,#0x5C] .text:0003148C STR R2, [R4,#0x14] .text:00031490 CMP R3, #0 .text:00031494 STR R2, [R4,#0x10] .text:00031498 BGT loc_314B8 .text:0003149C LDR R3, [R4] .text:000314A0 BIC R3, R3, #0x1FC .text:000314A4 BIC R3, R3, #1 .text:000314A8 MOV R3, R3,LSL#22 .text:000314AC MOV R3, R3,LSR#22 .text:000314B0 CMP R3, #0 .text:000314B4 BNE loc_314BC .text:000314B8 .text:000314B8 loc_314B8 ; CODE XREF: new_do_write+118j .text:000314B8 LDR R2, [R4,#0x20] .text:000314BC .text:000314BC loc_314BC ; CODE XREF: new_do_write+134j .text:000314BC MOV R0, R5 .text:000314C0 STR R2, [R4,#0x18] .text:000314C4 LDMDB R11, {R4-R7,R11,SP,PC} .text:000314C4 ; End of function new_do_write .text:000314C4 .text:000314C8 .text:000314C8 ; =============== S U B R O U T I N E ======================================= .text:000314C8 .text:000314C8 ; Attributes: bp-based frame .text:000314C8 .text:000314C8 WEAK _IO_new_file_underflow .text:000314C8 _IO_new_file_underflow .text:000314C8 MOV R12, SP .text:000314CC STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000314D0 MOV R5, R0 .text:000314D4 LDR R3, [R5] .text:000314D8 SUB R11, R12, #4 .text:000314DC TST R3, #4 .text:000314E0 BEQ loc_31500 .text:000314E4 ORR R3, R3, #0x20 .text:000314E8 STR R3, [R5] .text:000314EC BL __errno_location .text:000314F0 MOV R3, #9 .text:000314F4 STR R3, [R0] .text:000314F8 MOV R0, 0xFFFFFFFF .text:000314FC LDMDB R11, {R4,R5,R11,SP,PC} .text:00031500 ; --------------------------------------------------------------------------- .text:00031500 .text:00031500 loc_31500 ; CODE XREF: _IO_new_file_underflow+18j .text:00031500 LDMIB R5, {R2,R3} .text:00031504 CMP R2, R3 .text:00031508 LDRCCB R0, [R2] .text:0003150C LDMCCDB R11, {R4,R5,R11,SP,PC} .text:00031510 LDR R3, [R5,#0x1C] .text:00031514 CMP R3, #0 .text:00031518 BNE loc_31540 .text:0003151C LDR R0, [R5,#0x24] .text:00031520 CMP R0, #0 .text:00031524 BEQ loc_31538 .text:00031528 BL free .text:0003152C LDR R3, [R5] .text:00031530 BIC R3, R3, #0x100 .text:00031534 STR R3, [R5] .text:00031538 .text:00031538 loc_31538 ; CODE XREF: _IO_new_file_underflow+5Cj .text:00031538 MOV R0, R5 .text:0003153C BL _IO_doallocbuf .text:00031540 .text:00031540 loc_31540 ; CODE XREF: _IO_new_file_underflow+50j .text:00031540 LDR R3, [R5] .text:00031544 BIC R3, R3, #0x1FC .text:00031548 BIC R3, R3, #1 .text:0003154C MOV R3, R3,LSL#22 .text:00031550 MOV R3, R3,LSR#22 .text:00031554 CMP R3, #0 .text:00031558 BEQ loc_31560 .text:0003155C BL _flushlbf .text:00031560 .text:00031560 loc_31560 ; CODE XREF: _IO_new_file_underflow+90j .text:00031560 MOV R0, R5 .text:00031564 BL _IO_switch_to_get_mode .text:00031568 LDR R1, [R5,#0x1C] .text:0003156C STR R1, [R5,#4] .text:00031570 STR R1, [R5,#0xC] .text:00031574 STR R1, [R5,#8] .text:00031578 STR R1, [R5,#0x18] .text:0003157C STR R1, [R5,#0x14] .text:00031580 STR R1, [R5,#0x10] .text:00031584 LDRB R3, [R5,#0x46] .text:00031588 MOV R0, R5 .text:0003158C LDR R2, [R5,#0x20] .text:00031590 MOV R3, R3,LSL#24 .text:00031594 ADD R3, R5, R3,ASR#24 .text:00031598 LDR R12, [R3,#0x94] .text:0003159C RSB R2, R1, R2 .text:000315A0 MOV LR, PC .text:000315A4 LDR PC, [R12,#0x38] .text:000315A8 CMP R0, #0 .text:000315AC BGT loc_315C8 .text:000315B0 LDREQ R3, [R5] .text:000315B4 ORREQ R3, R3, #0x10 .text:000315B8 LDRNE R3, [R5] .text:000315BC MOVNE R0, #0 .text:000315C0 ORRNE R3, R3, #0x20 .text:000315C4 STR R3, [R5] .text:000315C8 .text:000315C8 loc_315C8 ; CODE XREF: _IO_new_file_underflow+E4j .text:000315C8 LDR R3, [R5,#8] .text:000315CC CMP R0, #0 .text:000315D0 ADD R3, R3, R0 .text:000315D4 STR R3, [R5,#8] .text:000315D8 MOVEQ R0, 0xFFFFFFFF .text:000315DC LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000315E0 MOV R2, #0x4C .text:000315E4 LDR R3, [R5,R2] .text:000315E8 ADD R12, R5, R2 .text:000315EC CMN R3, #1 .text:000315F0 BNE loc_31600 .text:000315F4 LDR R3, [R12,#4] .text:000315F8 CMN R3, #1 .text:000315FC BEQ loc_31610 .text:00031600 .text:00031600 loc_31600 ; CODE XREF: _IO_new_file_underflow+128j .text:00031600 LDMIA R12, {R3,R4} .text:00031604 ADDS R1, R3, R0 .text:00031608 ADC R2, R4, R0,ASR#31 .text:0003160C STMIA R12, {R1,R2} .text:00031610 .text:00031610 loc_31610 ; CODE XREF: _IO_new_file_underflow+134j .text:00031610 LDR R3, [R5,#4] .text:00031614 LDRB R0, [R3] .text:00031618 LDMDB R11, {R4,R5,R11,SP,PC} .text:00031618 ; End of function _IO_new_file_underflow .text:00031618 .text:0003161C .text:0003161C ; =============== S U B R O U T I N E ======================================= .text:0003161C .text:0003161C ; Attributes: bp-based frame .text:0003161C .text:0003161C WEAK _IO_new_file_overflow .text:0003161C _IO_new_file_overflow .text:0003161C MOV R12, SP .text:00031620 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00031624 SUB R11, R12, #4 .text:00031628 MOV R4, R0 .text:0003162C LDR R3, [R4] .text:00031630 MOV R5, R1 .text:00031634 TST R3, #8 .text:00031638 BEQ loc_31658 .text:0003163C ORR R3, R3, #0x20 .text:00031640 STR R3, [R4] .text:00031644 BL __errno_location .text:00031648 MOV R3, #9 .text:0003164C STR R3, [R0] .text:00031650 .text:00031650 loc_31650 ; CODE XREF: _IO_new_file_overflow+150j .text:00031650 MOV R0, 0xFFFFFFFF .text:00031654 LDMDB R11, {R4,R5,R11,SP,PC} .text:00031658 ; --------------------------------------------------------------------------- .text:00031658 .text:00031658 loc_31658 ; CODE XREF: _IO_new_file_overflow+1Cj .text:00031658 TST R3, #0x800 .text:0003165C LDR R3, [R4,#0x10] .text:00031660 BEQ loc_3166C .text:00031664 CMP R3, #0 .text:00031668 BNE loc_316F4 .text:0003166C .text:0003166C loc_3166C ; CODE XREF: _IO_new_file_overflow+44j .text:0003166C CMP R3, #0 .text:00031670 BNE loc_3168C .text:00031674 MOV R0, R4 .text:00031678 BL _IO_doallocbuf .text:0003167C LDR R3, [R4,#0x1C] .text:00031680 STR R3, [R4,#0xC] .text:00031684 STR R3, [R4,#4] .text:00031688 STR R3, [R4,#8] .text:0003168C .text:0003168C loc_3168C ; CODE XREF: _IO_new_file_overflow+54j .text:0003168C LDR R2, [R4,#4] .text:00031690 LDR R3, [R4,#0x20] .text:00031694 CMP R2, R3 .text:00031698 LDREQ R3, [R4,#0x1C] .text:0003169C STREQ R3, [R4,#4] .text:000316A0 STREQ R3, [R4,#8] .text:000316A4 LDR R1, [R4,#4] .text:000316A8 STR R1, [R4,#0x14] .text:000316AC LDR R3, [R4,#0x20] .text:000316B0 STR R3, [R4,#0x18] .text:000316B4 LDR R2, [R4,#8] .text:000316B8 STR R2, [R4,#4] .text:000316BC STR R2, [R4,#0xC] .text:000316C0 LDR R3, [R4,#0x5C] .text:000316C4 LDR R2, [R4] .text:000316C8 STR R1, [R4,#0x10] .text:000316CC CMP R3, #0 .text:000316D0 ORR R2, R2, #0x800 .text:000316D4 STR R2, [R4] .text:000316D8 BGT loc_316F4 .text:000316DC BIC R3, R2, #0x1FC .text:000316E0 BIC R3, R3, #1 .text:000316E4 MOV R3, R3,LSL#22 .text:000316E8 MOV R3, R3,LSR#22 .text:000316EC CMP R3, #0 .text:000316F0 STRNE R1, [R4,#0x18] .text:000316F4 .text:000316F4 loc_316F4 ; CODE XREF: _IO_new_file_overflow+4Cj .text:000316F4 ; _IO_new_file_overflow+BCj .text:000316F4 CMN R5, #1 .text:000316F8 BNE loc_31718 .text:000316FC MOV R0, R4 .text:00031700 LDR R1, [R0,#0x10] .text:00031704 ADD R3, R0, #0x14 .text:00031708 LDMDA R3, {R2,R3} .text:0003170C SUB R2, R3, R2 .text:00031710 BL _IO_new_do_write .text:00031714 LDMDB R11, {R4,R5,R11,SP,PC} .text:00031718 ; --------------------------------------------------------------------------- .text:00031718 .text:00031718 loc_31718 ; CODE XREF: _IO_new_file_overflow+DCj .text:00031718 LDR R2, [R4,#0x14] .text:0003171C LDR R3, [R4,#0x20] .text:00031720 CMP R2, R3 .text:00031724 BNE loc_31770 .text:00031728 LDR R3, [R4,#0x5C] .text:0003172C CMP R3, #0 .text:00031730 BGT loc_31748 .text:00031734 LDR R1, [R4,#0x10] .text:00031738 MOV R0, R4 .text:0003173C RSB R2, R1, R2 .text:00031740 BL _IO_new_do_write .text:00031744 B loc_31768 .text:00031748 ; --------------------------------------------------------------------------- .text:00031748 .text:00031748 loc_31748 ; CODE XREF: _IO_new_file_overflow+114j .text:00031748 LDR R3, [R4,#0x58] .text:0003174C ADD R1, R3, #0x10 .text:00031750 LDMDA R1, {R1,R2} .text:00031754 SUB R2, R2, R1 .text:00031758 MOV R0, R4 .text:0003175C LDR R1, [R3,#0xC] .text:00031760 MOV R2, R2,ASR#2 .text:00031764 BL _IO_wdo_write .text:00031768 .text:00031768 loc_31768 ; CODE XREF: _IO_new_file_overflow+128j .text:00031768 CMN R0, #1 .text:0003176C BEQ loc_31650 .text:00031770 .text:00031770 loc_31770 ; CODE XREF: _IO_new_file_overflow+108j .text:00031770 LDR R2, [R4,#0x14] .text:00031774 STRB R5, [R2],#1 .text:00031778 LDR R3, [R4] .text:0003177C STR R2, [R4,#0x14] .text:00031780 TST R3, #2 .text:00031784 BNE loc_317A0 .text:00031788 MOV R3, R3,LSR#9 .text:0003178C CMP R5, #0xA .text:00031790 ANDEQ R3, R3, #1 .text:00031794 MOVNE R3, #0 .text:00031798 CMP R3, #0 .text:0003179C BEQ loc_317B8 .text:000317A0 .text:000317A0 loc_317A0 ; CODE XREF: _IO_new_file_overflow+168j .text:000317A0 LDR R1, [R4,#0x10] .text:000317A4 MOV R0, R4 .text:000317A8 RSB R2, R1, R2 .text:000317AC BL _IO_new_do_write .text:000317B0 CMN R0, #1 .text:000317B4 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000317B8 .text:000317B8 loc_317B8 ; CODE XREF: _IO_new_file_overflow+180j .text:000317B8 AND R0, R5, #0xFF .text:000317BC LDMDB R11, {R4,R5,R11,SP,PC} .text:000317BC ; End of function _IO_new_file_overflow .text:000317BC .text:000317C0 .text:000317C0 ; =============== S U B R O U T I N E ======================================= .text:000317C0 .text:000317C0 ; Attributes: bp-based frame .text:000317C0 .text:000317C0 WEAK _IO_new_file_sync .text:000317C0 _IO_new_file_sync .text:000317C0 MOV R12, SP .text:000317C4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000317C8 MOV R4, R0 .text:000317CC LDR R2, [R4,#0x14] .text:000317D0 SUB R11, R12, #4 .text:000317D4 LDR R1, [R4,#0x10] .text:000317D8 MOV R5, #0 .text:000317DC CMP R2, R1 .text:000317E0 BLS loc_31834 .text:000317E4 LDR R3, [R4,#0x5C] .text:000317E8 CMP R3, R5 .text:000317EC BGT loc_31804 .text:000317F0 RSB R2, R1, R2 .text:000317F4 BL _IO_new_do_write .text:000317F8 CMP R0, R5 .text:000317FC BNE loc_3182C .text:00031800 B loc_31834 .text:00031804 ; --------------------------------------------------------------------------- .text:00031804 .text:00031804 loc_31804 ; CODE XREF: _IO_new_file_sync+2Cj .text:00031804 LDR R3, [R4,#0x58] .text:00031808 ADD R1, R3, #0x10 .text:0003180C LDMDA R1, {R1,R2} .text:00031810 SUB R2, R2, R1 .text:00031814 MOV R0, R4 .text:00031818 LDR R1, [R3,#0xC] .text:0003181C MOV R2, R2,ASR#2 .text:00031820 BL _IO_wdo_write .text:00031824 CMP R0, #0 .text:00031828 BEQ loc_31834 .text:0003182C .text:0003182C loc_3182C ; CODE XREF: _IO_new_file_sync+3Cj .text:0003182C MOV R0, 0xFFFFFFFF .text:00031830 LDMDB R11, {R4,R5,R11,SP,PC} .text:00031834 ; --------------------------------------------------------------------------- .text:00031834 .text:00031834 loc_31834 ; CODE XREF: _IO_new_file_sync+20j .text:00031834 ; _IO_new_file_sync+40j ... .text:00031834 ADD R2, R4, #4 .text:00031838 LDMIA R2, {R1,R2} .text:0003183C SUB R1, R1, R2 .text:00031840 CMP R1, #0 .text:00031844 BEQ loc_3189C .text:00031848 MOV R0, R4 .text:0003184C LDRB R3, [R4,#0x46] .text:00031850 MOV R2, R1,ASR#31 .text:00031854 MOV R3, R3,LSL#24 .text:00031858 ADD R3, R4, R3,ASR#24 .text:0003185C LDR R12, [R3,#0x94] .text:00031860 MOV R3, #1 .text:00031864 MOV LR, PC .text:00031868 LDR PC, [R12,#0x40] .text:0003186C CMN R0, #1 .text:00031870 BNE loc_3187C .text:00031874 CMN R1, #1 .text:00031878 BEQ loc_31888 .text:0003187C .text:0003187C loc_3187C ; CODE XREF: _IO_new_file_sync+B0j .text:0003187C LDR R3, [R4,#4] .text:00031880 STR R3, [R4,#8] .text:00031884 B loc_3189C .text:00031888 ; --------------------------------------------------------------------------- .text:00031888 .text:00031888 loc_31888 ; CODE XREF: _IO_new_file_sync+B8j .text:00031888 BL __errno_location .text:0003188C LDR R3, [R0] .text:00031890 CMP R3, #0x1D .text:00031894 MOVEQ R5, #0 .text:00031898 MOVNE R5, 0xFFFFFFFF .text:0003189C .text:0003189C loc_3189C ; CODE XREF: _IO_new_file_sync+84j .text:0003189C ; _IO_new_file_sync+C4j .text:0003189C CMN R5, #1 .text:000318A0 ADDNE R3, R4, #0x4C .text:000318A4 MOVNE R2, 0xFFFFFFFF .text:000318A8 MOVNE R1, 0xFFFFFFFF .text:000318AC STMNEIA R3, {R1,R2} .text:000318B0 MOV R0, R5 .text:000318B4 LDMDB R11, {R4,R5,R11,SP,PC} .text:000318B4 ; End of function _IO_new_file_sync .text:000318B4 .text:000318B8 .text:000318B8 ; =============== S U B R O U T I N E ======================================= .text:000318B8 .text:000318B8 ; Attributes: bp-based frame .text:000318B8 .text:000318B8 WEAK _IO_new_file_seekoff .text:000318B8 _IO_new_file_seekoff .text:000318B8 .text:000318B8 var_90 = -0x90 .text:000318B8 var_88 = -0x88 .text:000318B8 var_78 = -0x78 .text:000318B8 var_5C = -0x5C .text:000318B8 arg_0 = 4 .text:000318B8 .text:000318B8 MOV R12, SP .text:000318BC STMFD SP!, {R4-R12,LR,PC} .text:000318C0 SUB R11, R12, #4 .text:000318C4 SUB R4, R11, #-var_90 .text:000318C8 SUB SP, SP, #0x68 .text:000318CC STMIA R4, {R1,R2} .text:000318D0 MOV R7, R0 .text:000318D4 LDR R2, [R7,#0xC] .text:000318D8 MOV R8, R3 .text:000318DC LDR R3, [R7,#8] .text:000318E0 MOV R10, #0 .text:000318E4 LDR R5, [R11,#arg_0] .text:000318E8 CMP R2, R3 .text:000318EC BNE loc_31904 .text:000318F0 ADD R2, R7, #0x10 .text:000318F4 LDMIA R2, {R2,R3} .text:000318F8 CMP R2, R3 .text:000318FC MOVNE R10, #0 .text:00031900 MOVEQ R10, #1 .text:00031904 .text:00031904 loc_31904 ; CODE XREF: _IO_new_file_seekoff+34j .text:00031904 CMP R5, #0 .text:00031908 MOVEQ R8, #1 .text:0003190C MOVEQ R3, #0 .text:00031910 MOVEQ R2, #0 .text:00031914 SUBEQ R4, R11, #-var_90 .text:00031918 STMEQIA R4, {R2,R3} .text:0003191C LDR R2, [R7,#0x14] .text:00031920 LDR R3, [R7,#0x10] .text:00031924 CMP R2, R3 .text:00031928 BHI loc_31938 .text:0003192C LDR R3, [R7] .text:00031930 TST R3, #0x800 .text:00031934 BEQ loc_31948 .text:00031938 .text:00031938 loc_31938 ; CODE XREF: _IO_new_file_seekoff+70j .text:00031938 MOV R0, R7 .text:0003193C BL _IO_switch_to_get_mode .text:00031940 CMP R0, #0 .text:00031944 BNE loc_31BC4 .text:00031948 .text:00031948 loc_31948 ; CODE XREF: _IO_new_file_seekoff+7Cj .text:00031948 LDR R3, [R7,#0x1C] .text:0003194C CMP R3, #0 .text:00031950 BNE loc_31994 .text:00031954 LDR R0, [R7,#0xC] .text:00031958 CMP R0, #0 .text:0003195C BEQ loc_31970 .text:00031960 BL free .text:00031964 LDR R3, [R7] .text:00031968 BIC R3, R3, #0x100 .text:0003196C STR R3, [R7] .text:00031970 .text:00031970 loc_31970 ; CODE XREF: _IO_new_file_seekoff+A4j .text:00031970 MOV R0, R7 .text:00031974 BL _IO_doallocbuf .text:00031978 LDR R3, [R7,#0x1C] .text:0003197C STR R3, [R7,#0x14] .text:00031980 STR R3, [R7,#0x10] .text:00031984 STR R3, [R7,#0x18] .text:00031988 STR R3, [R7,#0xC] .text:0003198C STR R3, [R7,#4] .text:00031990 STR R3, [R7,#8] .text:00031994 .text:00031994 loc_31994 ; CODE XREF: _IO_new_file_seekoff+98j .text:00031994 CMP R8, #1 .text:00031998 BEQ loc_319AC .text:0003199C BLE loc_31A68 .text:000319A0 CMP R8, #2 .text:000319A4 BEQ loc_31A10 .text:000319A8 B loc_31A68 .text:000319AC ; --------------------------------------------------------------------------- .text:000319AC .text:000319AC loc_319AC ; CODE XREF: _IO_new_file_seekoff+E0j .text:000319AC ADD R12, R7, #8 .text:000319B0 LDMDA R12, {R12,LR} .text:000319B4 SUB LR, LR, R12 .text:000319B8 MOV R2, #0x4C .text:000319BC LDR R6, [R7,R2] .text:000319C0 SUB R3, R11, #-var_90 .text:000319C4 LDMIA R3, {R3,R4} .text:000319C8 ADD R2, R7, R2 .text:000319CC SUBS R0, R3, LR .text:000319D0 SBC R1, R4, LR,ASR#31 .text:000319D4 SUB R4, R11, #-var_90 .text:000319D8 CMN R6, #1 .text:000319DC STMIA R4, {R0,R1} .text:000319E0 BNE loc_319F0 .text:000319E4 LDR R3, [R2,#4] .text:000319E8 CMN R3, #1 .text:000319EC BEQ loc_31CD8 .text:000319F0 .text:000319F0 loc_319F0 ; CODE XREF: _IO_new_file_seekoff+128j .text:000319F0 LDMIA R2, {R3,R4} .text:000319F4 SUB R12, R11, #-var_90 .text:000319F8 LDMIA R12, {R1,R2} .text:000319FC MOV R8, #0 .text:00031A00 ADDS R1, R1, R3 .text:00031A04 ADC R2, R2, R4 .text:00031A08 STMIA R12, {R1,R2} .text:00031A0C B loc_31A68 .text:00031A10 ; --------------------------------------------------------------------------- .text:00031A10 .text:00031A10 loc_31A10 ; CODE XREF: _IO_new_file_seekoff+ECj .text:00031A10 LDRB R3, [R7,#0x46] .text:00031A14 MOV R0, R7 .text:00031A18 MOV R3, R3,LSL#24 .text:00031A1C ADD R3, R7, R3,ASR#24 .text:00031A20 LDR R2, [R3,#0x94] .text:00031A24 SUB R1, R11, #-var_88 .text:00031A28 MOV LR, PC .text:00031A2C LDR PC, [R2,#0x48] .text:00031A30 CMP R0, #0 .text:00031A34 BNE loc_31CD8 .text:00031A38 LDR R3, [R11,#var_78] .text:00031A3C AND R3, R3, #0xF000 .text:00031A40 CMP R3, #0x8000 .text:00031A44 BNE loc_31CD8 .text:00031A48 SUB R3, R11, #-var_5C .text:00031A4C LDMIA R3, {R1,R2} .text:00031A50 SUB R12, R11, #-var_90 .text:00031A54 LDMIA R12, {R3,R4} .text:00031A58 MOV R8, R0 .text:00031A5C ADDS R3, R3, R1 .text:00031A60 ADC R4, R4, R2 .text:00031A64 STMIA R12, {R3,R4} .text:00031A68 .text:00031A68 loc_31A68 ; CODE XREF: _IO_new_file_seekoff+E4j .text:00031A68 ; _IO_new_file_seekoff+F0j ... .text:00031A68 CMP R5, #0 .text:00031A6C BNE loc_31A7C .text:00031A70 SUB R2, R11, #-var_90 .text:00031A74 LDMIA R2, {R0,R1} .text:00031A78 B locret_31D98 .text:00031A7C ; --------------------------------------------------------------------------- .text:00031A7C .text:00031A7C loc_31A7C ; CODE XREF: _IO_new_file_seekoff+1B4j .text:00031A7C MOV R2, #0x4C .text:00031A80 LDR R3, [R7,R2] .text:00031A84 ADD R1, R7, R2 .text:00031A88 CMN R3, #1 .text:00031A8C BNE loc_31AA0 .text:00031A90 LDR R3, [R1,#4] .text:00031A94 LDR R0, [R7] .text:00031A98 CMN R3, #1 .text:00031A9C BEQ loc_31B28 .text:00031AA0 .text:00031AA0 loc_31AA0 ; CODE XREF: _IO_new_file_seekoff+1D4j .text:00031AA0 LDR R12, [R7,#0xC] .text:00031AA4 LDR R0, [R7] .text:00031AA8 CMP R12, #0 .text:00031AAC BEQ loc_31B28 .text:00031AB0 TST R0, #0x100 .text:00031AB4 BNE loc_31B28 .text:00031AB8 LDMIA R1, {R1,R2} .text:00031ABC SUB R3, R11, #-var_90 .text:00031AC0 LDMIA R3, {R4,R5} .text:00031AC4 LDR R3, [R7,#8] .text:00031AC8 SUBS R4, R4, R1 .text:00031ACC SBC R5, R5, R2 .text:00031AD0 RSB R3, R12, R3 .text:00031AD4 MOV R2, R3 .text:00031AD8 MOV R3, R2,ASR#31 .text:00031ADC ADDS R4, R4, R2 .text:00031AE0 ADC R5, R5, R3 .text:00031AE4 CMP R5, #0 .text:00031AE8 BLT loc_31B28 .text:00031AEC CMP R5, R3 .text:00031AF0 BGT loc_31B28 .text:00031AF4 BNE loc_31B00 .text:00031AF8 CMP R4, R2 .text:00031AFC BHI loc_31B28 .text:00031B00 .text:00031B00 loc_31B00 ; CODE XREF: _IO_new_file_seekoff+23Cj .text:00031B00 BIC R3, R0, #0x10 .text:00031B04 STR R3, [R7] .text:00031B08 LDR R2, [R7,#0x1C] .text:00031B0C STR R2, [R7,#0xC] .text:00031B10 ADD R3, R2, R4 .text:00031B14 STR R3, [R7,#4] .text:00031B18 STR R2, [R7,#0x14] .text:00031B1C STR R2, [R7,#0x10] .text:00031B20 STR R2, [R7,#0x18] .text:00031B24 B loc_31D5C .text:00031B28 ; --------------------------------------------------------------------------- .text:00031B28 .text:00031B28 loc_31B28 ; CODE XREF: _IO_new_file_seekoff+1E4j .text:00031B28 ; _IO_new_file_seekoff+1F4j ... .text:00031B28 TST R0, #4 .text:00031B2C BNE loc_31CD8 .text:00031B30 ADD R4, R7, #0x20 .text:00031B34 LDMDA R4, {R2,R4} .text:00031B38 SUB R2, R4, R2 .text:00031B3C SUB R12, R11, #-var_90 .text:00031B40 LDMIA R12, {R4,R5} .text:00031B44 MOV R0, R12 .text:00031B48 LDMIA R0, {R8,R9} .text:00031B4C RSB R3, R2, #0 .text:00031B50 AND R8, R8, R3 .text:00031B54 AND R9, R9, R3,ASR#31 .text:00031B58 SUBS R4, R4, R8 .text:00031B5C SBC R5, R5, R9 .text:00031B60 MOV R3, R2,ASR#31 .text:00031B64 CMP R5, R3 .text:00031B68 BGT loc_31B78 .text:00031B6C BNE loc_31B88 .text:00031B70 CMP R4, R2 .text:00031B74 BLS loc_31B88 .text:00031B78 .text:00031B78 loc_31B78 ; CODE XREF: _IO_new_file_seekoff+2B0j .text:00031B78 SUB R1, R11, #-var_90 .text:00031B7C MOV R5, #0 .text:00031B80 MOV R4, #0 .text:00031B84 LDMIA R1, {R8,R9} .text:00031B88 .text:00031B88 loc_31B88 ; CODE XREF: _IO_new_file_seekoff+2B4j .text:00031B88 ; _IO_new_file_seekoff+2BCj .text:00031B88 MOV R0, R7 .text:00031B8C MOV R2, R9 .text:00031B90 MOV R1, R8 .text:00031B94 LDRB R3, [R7,#0x46] .text:00031B98 MOV R6, #0x94 .text:00031B9C MOV R3, R3,LSL#24 .text:00031BA0 ADD R3, R7, R3,ASR#24 .text:00031BA4 LDR R12, [R3,R6] .text:00031BA8 MOV R3, #0 .text:00031BAC MOV LR, PC .text:00031BB0 LDR PC, [R12,#0x40] .text:00031BB4 MOV R9, R1 .text:00031BB8 MOV R8, R0 .text:00031BBC CMP R9, #0 .text:00031BC0 BGE loc_31BD0 .text:00031BC4 .text:00031BC4 loc_31BC4 ; CODE XREF: _IO_new_file_seekoff+8Cj .text:00031BC4 MOV R1, 0xFFFFFFFF .text:00031BC8 MOV R0, 0xFFFFFFFF .text:00031BCC B locret_31D98 .text:00031BD0 ; --------------------------------------------------------------------------- .text:00031BD0 .text:00031BD0 loc_31BD0 ; CODE XREF: _IO_new_file_seekoff+308j .text:00031BD0 ORR R0, R5, R4 .text:00031BD4 CMP R0, #0 .text:00031BD8 MOVEQ R12, R0 .text:00031BDC BEQ loc_31C8C .text:00031BE0 LDRB R3, [R7,#0x46] .text:00031BE4 CMP R10, #0 .text:00031BE8 LDR R1, [R7,#0x1C] .text:00031BEC MOV R3, R3,LSL#24 .text:00031BF0 ADD R3, R7, R3,ASR#24 .text:00031BF4 LDR R12, [R3,R6] .text:00031BF8 LDREQ R3, [R7,#0x20] .text:00031BFC RSBEQ R2, R1, R3 .text:00031C00 MOVNE R2, R4 .text:00031C04 MOV R0, R7 .text:00031C08 MOV LR, PC .text:00031C0C LDR PC, [R12,#0x38] .text:00031C10 MOV R12, R0 .text:00031C14 MOV R1, R12 .text:00031C18 MOV R2, R1,ASR#31 .text:00031C1C CMP R5, R2 .text:00031C20 BGT loc_31C30 .text:00031C24 BNE loc_31C8C .text:00031C28 CMP R4, R1 .text:00031C2C BLS loc_31C8C .text:00031C30 .text:00031C30 loc_31C30 ; CODE XREF: _IO_new_file_seekoff+368j .text:00031C30 SUB R3, R11, #-var_90 .text:00031C34 STMIA R3, {R4,R5} .text:00031C38 MOV R0, R3 .text:00031C3C LDMIA R0, {R3,R4} .text:00031C40 MOV R8, #1 .text:00031C44 SUBS R3, R3, R1 .text:00031C48 SBC R4, R4, R2 .text:00031C4C CMN R12, #1 .text:00031C50 MOVNE R1, #0 .text:00031C54 MOVEQ R1, #1 .text:00031C58 MOV R2, #0 .text:00031C5C RSBS R5, R1, #0 .text:00031C60 RSC R6, R2, #0 .text:00031C64 MOV R12, R0 .text:00031C68 LDMIA R12, {R1,R2} .text:00031C6C BIC R3, R3, R5 .text:00031C70 BIC R4, R4, R6 .text:00031C74 AND R1, R1, R5 .text:00031C78 AND R2, R2, R6 .text:00031C7C ORR R1, R1, R3 .text:00031C80 ORR R2, R2, R4 .text:00031C84 STMIA R0, {R1,R2} .text:00031C88 B loc_31CD8 .text:00031C8C ; --------------------------------------------------------------------------- .text:00031C8C .text:00031C8C loc_31C8C ; CODE XREF: _IO_new_file_seekoff+324j .text:00031C8C ; _IO_new_file_seekoff+36Cj ... .text:00031C8C LDR R1, [R7,#0x1C] .text:00031C90 STR R1, [R7,#0xC] .text:00031C94 ADD R3, R1, R4 .text:00031C98 STR R3, [R7,#4] .text:00031C9C ADD R2, R1, R12 .text:00031CA0 STR R2, [R7,#8] .text:00031CA4 STR R1, [R7,#0x14] .text:00031CA8 STR R1, [R7,#0x10] .text:00031CAC STR R1, [R7,#0x18] .text:00031CB0 ADD R0, R7, #0x4C .text:00031CB4 ADDS R3, R8, R12 .text:00031CB8 ADC R4, R9, R12,ASR#31 .text:00031CBC STMIA R0, {R3,R4} .text:00031CC0 LDR R2, [R7] .text:00031CC4 SUB R3, R11, #-var_90 .text:00031CC8 LDMIA R3, {R0,R1} .text:00031CCC BIC R2, R2, #0x10 .text:00031CD0 STR R2, [R7] .text:00031CD4 B locret_31D98 .text:00031CD8 ; --------------------------------------------------------------------------- .text:00031CD8 .text:00031CD8 loc_31CD8 ; CODE XREF: _IO_new_file_seekoff+134j .text:00031CD8 ; _IO_new_file_seekoff+17Cj ... .text:00031CD8 MOV R0, R7 .text:00031CDC BL _IO_unsave_markers .text:00031CE0 MOV R0, R7 .text:00031CE4 LDRB R3, [R7,#0x46] .text:00031CE8 SUB R4, R11, #-var_90 .text:00031CEC LDMIA R4, {R1,R2} .text:00031CF0 MOV R3, R3,LSL#24 .text:00031CF4 ADD R3, R7, R3,ASR#24 .text:00031CF8 LDR R12, [R3,#0x94] .text:00031CFC MOV R3, R8 .text:00031D00 MOV LR, PC .text:00031D04 LDR PC, [R12,#0x40] .text:00031D08 MOV R9, R1 .text:00031D0C MOV R8, R0 .text:00031D10 CMN R8, #1 .text:00031D14 BNE loc_31D20 .text:00031D18 CMN R9, #1 .text:00031D1C BEQ loc_31D50 .text:00031D20 .text:00031D20 loc_31D20 ; CODE XREF: _IO_new_file_seekoff+45Cj .text:00031D20 LDR R3, [R7] .text:00031D24 BIC R3, R3, #0x10 .text:00031D28 STR R3, [R7] .text:00031D2C ADD R2, R7, #0x4C .text:00031D30 STMIA R2, {R8,R9} .text:00031D34 LDR R3, [R7,#0x1C] .text:00031D38 STR R3, [R7,#0xC] .text:00031D3C STR R3, [R7,#4] .text:00031D40 STR R3, [R7,#8] .text:00031D44 STR R3, [R7,#0x14] .text:00031D48 STR R3, [R7,#0x10] .text:00031D4C STR R3, [R7,#0x18] .text:00031D50 .text:00031D50 loc_31D50 ; CODE XREF: _IO_new_file_seekoff+464j .text:00031D50 MOV R1, R9 .text:00031D54 MOV R0, R8 .text:00031D58 B locret_31D98 .text:00031D5C ; --------------------------------------------------------------------------- .text:00031D5C .text:00031D5C loc_31D5C ; CODE XREF: _IO_new_file_seekoff+26Cj .text:00031D5C ADD R1, R7, #0x4C .text:00031D60 LDR R3, [R1,#4] .text:00031D64 CMP R3, #0 .text:00031D68 BLT loc_31D90 .text:00031D6C LDRB R3, [R7,#0x46] .text:00031D70 MOV R0, R7 .text:00031D74 LDMIA R1, {R1,R2} .text:00031D78 MOV R3, R3,LSL#24 .text:00031D7C ADD R3, R7, R3,ASR#24 .text:00031D80 LDR R12, [R3,#0x94] .text:00031D84 MOV R3, #0 .text:00031D88 MOV LR, PC .text:00031D8C LDR PC, [R12,#0x40] .text:00031D90 .text:00031D90 loc_31D90 ; CODE XREF: _IO_new_file_seekoff+4B0j .text:00031D90 SUB R12, R11, #-var_90 .text:00031D94 LDMIA R12, {R0,R1} .text:00031D98 .text:00031D98 locret_31D98 ; CODE XREF: _IO_new_file_seekoff+1C0j .text:00031D98 ; _IO_new_file_seekoff+314j ... .text:00031D98 LDMDB R11, {R4-R11,SP,PC} .text:00031D98 ; End of function _IO_new_file_seekoff .text:00031D98 .text:00031D9C .text:00031D9C ; =============== S U B R O U T I N E ======================================= .text:00031D9C .text:00031D9C ; Attributes: bp-based frame .text:00031D9C .text:00031D9C EXPORT _IO_file_read .text:00031D9C _IO_file_read .text:00031D9C MOV R12, SP .text:00031DA0 STMFD SP!, {R11,R12,LR,PC} .text:00031DA4 LDR R0, [R0,#0x38] .text:00031DA8 SUB R11, R12, #4 .text:00031DAC BL read .text:00031DB0 LDMDB R11, {R11,SP,PC} .text:00031DB0 ; End of function _IO_file_read .text:00031DB0 .text:00031DB4 .text:00031DB4 ; =============== S U B R O U T I N E ======================================= .text:00031DB4 .text:00031DB4 ; Attributes: bp-based frame .text:00031DB4 .text:00031DB4 EXPORT _IO_file_seek .text:00031DB4 _IO_file_seek .text:00031DB4 MOV R12, SP .text:00031DB8 STMFD SP!, {R11,R12,LR,PC} .text:00031DBC LDR R0, [R0,#0x38] .text:00031DC0 SUB R11, R12, #4 .text:00031DC4 BL lseek64 .text:00031DC8 LDMDB R11, {R11,SP,PC} .text:00031DC8 ; End of function _IO_file_seek .text:00031DC8 .text:00031DCC .text:00031DCC ; =============== S U B R O U T I N E ======================================= .text:00031DCC .text:00031DCC ; Attributes: bp-based frame .text:00031DCC .text:00031DCC EXPORT _IO_file_stat .text:00031DCC _IO_file_stat .text:00031DCC MOV R12, SP .text:00031DD0 STMFD SP!, {R11,R12,LR,PC} .text:00031DD4 SUB R11, R12, #4 .text:00031DD8 MOV R2, R1 .text:00031DDC LDR R3, [R0,#0x38] .text:00031DE0 MOV R0, #3 .text:00031DE4 MOV R1, R3 .text:00031DE8 BL __fxstat64 .text:00031DEC LDMDB R11, {R11,SP,PC} .text:00031DEC ; End of function _IO_file_stat .text:00031DEC .text:00031DF0 .text:00031DF0 ; =============== S U B R O U T I N E ======================================= .text:00031DF0 .text:00031DF0 ; Attributes: bp-based frame .text:00031DF0 .text:00031DF0 EXPORT _IO_file_close .text:00031DF0 _IO_file_close .text:00031DF0 MOV R12, SP .text:00031DF4 STMFD SP!, {R11,R12,LR,PC} .text:00031DF8 LDR R0, [R0,#0x38] .text:00031DFC SUB R11, R12, #4 .text:00031E00 BL close .text:00031E04 LDMDB R11, {R11,SP,PC} .text:00031E04 ; End of function _IO_file_close .text:00031E04 .text:00031E08 .text:00031E08 ; =============== S U B R O U T I N E ======================================= .text:00031E08 .text:00031E08 ; Attributes: bp-based frame .text:00031E08 .text:00031E08 WEAK _IO_new_file_write .text:00031E08 _IO_new_file_write .text:00031E08 MOV R12, SP .text:00031E0C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00031E10 SUB R11, R12, #4 .text:00031E14 MOV R6, R1 .text:00031E18 MOV R7, R2 .text:00031E1C MOV R4, R7 .text:00031E20 MOV R5, R0 .text:00031E24 B loc_31E30 .text:00031E28 ; --------------------------------------------------------------------------- .text:00031E28 .text:00031E28 loc_31E28 ; CODE XREF: _IO_new_file_write+44j .text:00031E28 RSB R4, R0, R4 .text:00031E2C ADD R6, R6, R0 .text:00031E30 .text:00031E30 loc_31E30 ; CODE XREF: _IO_new_file_write+1Cj .text:00031E30 CMP R4, #0 .text:00031E34 BLE loc_31E5C .text:00031E38 MOV R1, R6 .text:00031E3C LDR R0, [R5,#0x38] .text:00031E40 MOV R2, R4 .text:00031E44 BL write .text:00031E48 CMP R0, #0 .text:00031E4C BGE loc_31E28 .text:00031E50 LDR R3, [R5] .text:00031E54 ORR R3, R3, #0x20 .text:00031E58 STR R3, [R5] .text:00031E5C .text:00031E5C loc_31E5C ; CODE XREF: _IO_new_file_write+2Cj .text:00031E5C ADD R0, R5, #0x4C .text:00031E60 LDR R3, [R0,#4] .text:00031E64 RSB R7, R4, R7 .text:00031E68 CMP R3, #0 .text:00031E6C BLT loc_31E80 .text:00031E70 LDMIA R0, {R3,R4} .text:00031E74 ADDS R1, R3, R7 .text:00031E78 ADC R2, R4, R7,ASR#31 .text:00031E7C STMIA R0, {R1,R2} .text:00031E80 .text:00031E80 loc_31E80 ; CODE XREF: _IO_new_file_write+64j .text:00031E80 MOV R0, R7 .text:00031E84 LDMDB R11, {R4-R7,R11,SP,PC} .text:00031E84 ; End of function _IO_new_file_write .text:00031E84 .text:00031E88 .text:00031E88 ; =============== S U B R O U T I N E ======================================= .text:00031E88 .text:00031E88 ; Attributes: bp-based frame .text:00031E88 .text:00031E88 EXPORT _IO_new_file_xsputn .text:00031E88 _IO_new_file_xsputn .text:00031E88 MOV R12, SP ; Alternative name is '_IO_file_xsputn' .text:00031E8C STMFD SP!, {R4-R12,LR,PC} .text:00031E90 SUB R11, R12, #4 .text:00031E94 MOV R6, R1 .text:00031E98 MOV R10, R6 .text:00031E9C MOV R8, R2 .text:00031EA0 MOV R5, R8 .text:00031EA4 MOV R9, #0 .text:00031EA8 CMP R8, R9 .text:00031EAC MOV R7, R0 .text:00031EB0 MOVEQ R0, R8 .text:00031EB4 LDMEQDB R11, {R4-R11,SP,PC} .text:00031EB8 LDR R3, [R7] .text:00031EBC ADD R2, R7, #0x18 .text:00031EC0 LDMDA R2, {R2,R4} .text:00031EC4 SUB R4, R4, R2 .text:00031EC8 LDR R0, [R7,#0x14] .text:00031ECC AND R3, R3, #0xA00 .text:00031ED0 CMP R3, #0xA00 .text:00031ED4 BNE loc_31F0C .text:00031ED8 LDR R3, [R7,#0x20] .text:00031EDC RSB R4, R0, R3 .text:00031EE0 CMP R4, R8 .text:00031EE4 BCC loc_31F0C .text:00031EE8 ADD R2, R10, R8 .text:00031EEC .text:00031EEC loc_31EEC ; CODE XREF: _IO_new_file_xsputn+74j .text:00031EEC CMP R2, R6 .text:00031EF0 BLS loc_31F0C .text:00031EF4 LDRB R3, [R2,#-1]! .text:00031EF8 CMP R3, #0xA .text:00031EFC BNE loc_31EEC .text:00031F00 RSB R3, R6, R2 .text:00031F04 ADD R4, R3, #1 .text:00031F08 MOV R9, #1 .text:00031F0C .text:00031F0C loc_31F0C ; CODE XREF: _IO_new_file_xsputn+4Cj .text:00031F0C ; _IO_new_file_xsputn+5Cj ... .text:00031F0C CMP R4, #0 .text:00031F10 BEQ loc_31F60 .text:00031F14 CMP R4, R8 .text:00031F18 MOVCS R4, R8 .text:00031F1C CMP R4, #0x14 .text:00031F20 BLS loc_31F3C .text:00031F24 MOV R1, R6 .text:00031F28 MOV R2, R4 .text:00031F2C ADD R10, R6, R4 .text:00031F30 BL mempcpy .text:00031F34 RSB R2, R4, R8 .text:00031F38 B loc_31F58 .text:00031F3C ; --------------------------------------------------------------------------- .text:00031F3C .text:00031F3C loc_31F3C ; CODE XREF: _IO_new_file_xsputn+98j .text:00031F3C SUBS R1, R4, #1 .text:00031F40 RSB R2, R4, R8 .text:00031F44 BMI loc_31F58 .text:00031F48 .text:00031F48 loc_31F48 ; CODE XREF: _IO_new_file_xsputn+CCj .text:00031F48 LDRB R3, [R10],#1 .text:00031F4C SUBS R1, R1, #1 .text:00031F50 STRB R3, [R0],#1 .text:00031F54 BPL loc_31F48 .text:00031F58 .text:00031F58 loc_31F58 ; CODE XREF: _IO_new_file_xsputn+B0j .text:00031F58 ; _IO_new_file_xsputn+BCj .text:00031F58 STR R0, [R7,#0x14] .text:00031F5C MOV R5, R2 .text:00031F60 .text:00031F60 loc_31F60 ; CODE XREF: _IO_new_file_xsputn+88j .text:00031F60 ADD R3, R5, R9 .text:00031F64 CMP R3, #0 .text:00031F68 BEQ loc_32004 .text:00031F6C LDRB R3, [R7,#0x46] .text:00031F70 MOV R0, R7 .text:00031F74 MOV R3, R3,LSL#24 .text:00031F78 ADD R3, R7, R3,ASR#24 .text:00031F7C LDR R2, [R3,#0x94] .text:00031F80 MOV R1, 0xFFFFFFFF .text:00031F84 MOV LR, PC .text:00031F88 LDR PC, [R2,#0xC] .text:00031F8C CMN R0, #1 .text:00031F90 BNE loc_31F9C .text:00031F94 .text:00031F94 loc_31F94 ; CODE XREF: _IO_new_file_xsputn+15Cj .text:00031F94 RSB R0, R5, R8 .text:00031F98 LDMDB R11, {R4-R11,SP,PC} .text:00031F9C ; --------------------------------------------------------------------------- .text:00031F9C .text:00031F9C loc_31F9C ; CODE XREF: _IO_new_file_xsputn+108j .text:00031F9C ADD R3, R7, #0x20 .text:00031FA0 LDMDA R3, {R1,R3} .text:00031FA4 SUB R1, R3, R1 .text:00031FA8 MOV R6, R5 .text:00031FAC CMP R1, #0x7F .text:00031FB0 BLS loc_31FC0 .text:00031FB4 MOV R0, R5 .text:00031FB8 BL __umodsi3 .text:00031FBC RSB R6, R0, R5 .text:00031FC0 .text:00031FC0 loc_31FC0 ; CODE XREF: _IO_new_file_xsputn+128j .text:00031FC0 CMP R6, #0 .text:00031FC4 BEQ loc_31FE8 .text:00031FC8 MOV R0, R7 .text:00031FCC MOV R1, R10 .text:00031FD0 MOV R2, R6 .text:00031FD4 BL new_do_write .text:00031FD8 MOV R4, R0 .text:00031FDC RSB R5, R4, R5 .text:00031FE0 CMP R4, R6 .text:00031FE4 BCC loc_31F94 .text:00031FE8 .text:00031FE8 loc_31FE8 ; CODE XREF: _IO_new_file_xsputn+13Cj .text:00031FE8 CMP R5, #0 .text:00031FEC BEQ loc_32004 .text:00031FF0 MOV R0, R7 .text:00031FF4 ADD R1, R10, R6 .text:00031FF8 MOV R2, R5 .text:00031FFC BL _IO_default_xsputn .text:00032000 RSB R5, R0, R5 .text:00032004 .text:00032004 loc_32004 ; CODE XREF: _IO_new_file_xsputn+E0j .text:00032004 ; _IO_new_file_xsputn+164j .text:00032004 RSB R0, R5, R8 .text:00032008 LDMDB R11, {R4-R11,SP,PC} .text:00032008 ; End of function _IO_new_file_xsputn .text:00032008 .text:0003200C .text:0003200C ; =============== S U B R O U T I N E ======================================= .text:0003200C .text:0003200C ; Attributes: bp-based frame .text:0003200C .text:0003200C EXPORT _IO_file_xsgetn .text:0003200C _IO_file_xsgetn .text:0003200C MOV R12, SP .text:00032010 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00032014 SUB R11, R12, #4 .text:00032018 MOV R7, R1 .text:0003201C MOV R5, R0 .text:00032020 MOV R8, R2 .text:00032024 LDR R3, [R5,#0x1C] .text:00032028 MOV R6, R8 .text:0003202C CMP R3, #0 .text:00032030 BNE loc_32058 .text:00032034 LDR R0, [R5,#0x24] .text:00032038 CMP R0, #0 .text:0003203C BEQ loc_32050 .text:00032040 BL free .text:00032044 LDR R3, [R5] .text:00032048 BIC R3, R3, #0x100 .text:0003204C STR R3, [R5] .text:00032050 .text:00032050 loc_32050 ; CODE XREF: _IO_file_xsgetn+30j .text:00032050 MOV R0, R5 .text:00032054 BL _IO_doallocbuf .text:00032058 .text:00032058 loc_32058 ; CODE XREF: _IO_file_xsgetn+24j .text:00032058 CMP R8, #0 .text:0003205C BEQ loc_321D8 .text:00032060 .text:00032060 loc_32060 ; CODE XREF: _IO_file_xsgetn+1C8j .text:00032060 ADD R3, R5, #8 .text:00032064 LDMDA R3, {R3,R4} .text:00032068 SUB R4, R4, R3 .text:0003206C LDR R1, [R5,#4] .text:00032070 CMP R6, R4 .text:00032074 BHI loc_32098 .text:00032078 MOV R0, R7 .text:0003207C MOV R2, R6 .text:00032080 BL memcpy .text:00032084 LDR R3, [R5,#4] .text:00032088 ADD R3, R3, R6 .text:0003208C MOV R6, #0 .text:00032090 STR R3, [R5,#4] .text:00032094 B loc_321D0 .text:00032098 ; --------------------------------------------------------------------------- .text:00032098 .text:00032098 loc_32098 ; CODE XREF: _IO_file_xsgetn+68j .text:00032098 CMP R4, #0 .text:0003209C BEQ loc_320C0 .text:000320A0 MOV R0, R7 .text:000320A4 MOV R2, R4 .text:000320A8 BL mempcpy .text:000320AC MOV R7, R0 .text:000320B0 LDR R3, [R5,#4] .text:000320B4 RSB R6, R4, R6 .text:000320B8 ADD R3, R3, R4 .text:000320BC STR R3, [R5,#4] .text:000320C0 .text:000320C0 loc_320C0 ; CODE XREF: _IO_file_xsgetn+90j .text:000320C0 LDR R3, [R5] .text:000320C4 TST R3, #0x100 .text:000320C8 BEQ loc_320D8 .text:000320CC MOV R0, R5 .text:000320D0 BL _IO_switch_to_main_get_area .text:000320D4 B loc_321D0 .text:000320D8 ; --------------------------------------------------------------------------- .text:000320D8 .text:000320D8 loc_320D8 ; CODE XREF: _IO_file_xsgetn+BCj .text:000320D8 LDR R3, [R5,#0x1C] .text:000320DC CMP R3, #0 .text:000320E0 MOV R1, R3 .text:000320E4 BEQ loc_3210C .text:000320E8 LDR R3, [R5,#0x20] .text:000320EC RSB R3, R1, R3 .text:000320F0 CMP R6, R3 .text:000320F4 BCS loc_3210C .text:000320F8 MOV R0, R5 .text:000320FC BL __underflow .text:00032100 CMN R0, #1 .text:00032104 BEQ loc_321D8 .text:00032108 B loc_321D0 .text:0003210C ; --------------------------------------------------------------------------- .text:0003210C .text:0003210C loc_3210C ; CODE XREF: _IO_file_xsgetn+D8j .text:0003210C ; _IO_file_xsgetn+E8j .text:0003210C STR R1, [R5,#0xC] .text:00032110 STR R1, [R5,#4] .text:00032114 STR R1, [R5,#8] .text:00032118 STR R1, [R5,#0x14] .text:0003211C STR R1, [R5,#0x10] .text:00032120 MOV LR, R6 .text:00032124 CMP R1, #0 .text:00032128 STR R1, [R5,#0x18] .text:0003212C BEQ loc_3214C .text:00032130 LDR R3, [R5,#0x20] .text:00032134 RSB R1, R1, R3 .text:00032138 CMP R1, #0x7F .text:0003213C BLS loc_3214C .text:00032140 MOV R0, R6 .text:00032144 BL __umodsi3 .text:00032148 RSB LR, R0, R6 .text:0003214C .text:0003214C loc_3214C ; CODE XREF: _IO_file_xsgetn+120j .text:0003214C ; _IO_file_xsgetn+130j .text:0003214C MOV R0, R5 .text:00032150 LDRB R3, [R5,#0x46] .text:00032154 MOV R1, R7 .text:00032158 MOV R3, R3,LSL#24 .text:0003215C ADD R3, R5, R3,ASR#24 .text:00032160 LDR R12, [R3,#0x94] .text:00032164 MOV R2, LR .text:00032168 MOV LR, PC .text:0003216C LDR PC, [R12,#0x38] .text:00032170 SUBS LR, R0, #0 .text:00032174 BGT loc_32198 .text:00032178 LDREQ R3, [R5] .text:0003217C ORREQ R3, R3, #0x10 .text:00032180 STREQ R3, [R5] .text:00032184 BEQ loc_321D8 .text:00032188 LDR R3, [R5] .text:0003218C ORR R3, R3, #0x20 .text:00032190 STR R3, [R5] .text:00032194 B loc_321D8 .text:00032198 ; --------------------------------------------------------------------------- .text:00032198 .text:00032198 loc_32198 ; CODE XREF: _IO_file_xsgetn+168j .text:00032198 ADD R7, R7, LR .text:0003219C MOV R2, #0x4C .text:000321A0 RSB R6, LR, R6 .text:000321A4 LDR R3, [R5,R2] .text:000321A8 ADD R0, R5, R2 .text:000321AC CMN R3, #1 .text:000321B0 BNE loc_321C0 .text:000321B4 LDR R3, [R0,#4] .text:000321B8 CMN R3, #1 .text:000321BC BEQ loc_321D0 .text:000321C0 .text:000321C0 loc_321C0 ; CODE XREF: _IO_file_xsgetn+1A4j .text:000321C0 LDMIA R0, {R3,R4} .text:000321C4 ADDS R1, R3, LR .text:000321C8 ADC R2, R4, LR,ASR#31 .text:000321CC STMIA R0, {R1,R2} .text:000321D0 .text:000321D0 loc_321D0 ; CODE XREF: _IO_file_xsgetn+88j .text:000321D0 ; _IO_file_xsgetn+C8j ... .text:000321D0 CMP R6, #0 .text:000321D4 BNE loc_32060 .text:000321D8 .text:000321D8 loc_321D8 ; CODE XREF: _IO_file_xsgetn+50j .text:000321D8 ; _IO_file_xsgetn+F8j ... .text:000321D8 RSB R0, R6, R8 .text:000321DC LDMDB R11, {R4-R8,R11,SP,PC} .text:000321DC ; End of function _IO_file_xsgetn .text:000321DC .text:000321E0 .text:000321E0 ; =============== S U B R O U T I N E ======================================= .text:000321E0 .text:000321E0 ; Attributes: bp-based frame .text:000321E0 .text:000321E0 EXPORT _IO_file_open .text:000321E0 _IO_file_open .text:000321E0 .text:000321E0 var_18 = -0x18 .text:000321E0 arg_0 = 4 .text:000321E0 arg_4 = 8 .text:000321E0 .text:000321E0 MOV R12, SP .text:000321E4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000321E8 SUB R11, R12, #4 .text:000321EC MOV R4, R0 .text:000321F0 MOV R0, R1 .text:000321F4 MOV R1, R2 .text:000321F8 SUB SP, SP, #4 .text:000321FC LDR R12, [R11,#arg_4] .text:00032200 MOV R2, R3 .text:00032204 LDR R5, [R11,#arg_0] .text:00032208 CMP R12, #0 .text:0003220C BEQ loc_32218 .text:00032210 BL open .text:00032214 B loc_3221C .text:00032218 ; --------------------------------------------------------------------------- .text:00032218 .text:00032218 loc_32218 ; CODE XREF: _IO_file_open+2Cj .text:00032218 BL open64 .text:0003221C .text:0003221C loc_3221C ; CODE XREF: _IO_file_open+34j .text:0003221C CMP R0, #0 .text:00032220 MOVLT R0, #0 .text:00032224 BLT locret_322B8 .text:00032228 BIC R2, R5, #0xFF0 .text:0003222C BIC R2, R2, #3 .text:00032230 MOV R2, R2,LSL#19 .text:00032234 MOV R2, R2,LSR#19 .text:00032238 LDR R3, [R4] .text:0003223C TST R5, #0x1000 .text:00032240 STR R0, [R4,#0x38] .text:00032244 BIC R3, R3, #0x1000 .text:00032248 BIC R3, R3, #0xC .text:0003224C ORR R3, R3, R2 .text:00032250 STR R3, [R4] .text:00032254 BEQ loc_322AC .text:00032258 LDRB R3, [R4,#0x46] .text:0003225C MOV R3, R3,LSL#24 .text:00032260 ADD R3, R4, R3,ASR#24 .text:00032264 LDR R12, [R3,#0x94] .text:00032268 MOV R2, #3 .text:0003226C STR R2, [SP,#0x18+var_18] .text:00032270 MOV R0, R4 .text:00032274 MOV R2, #0 .text:00032278 MOV R1, #0 .text:0003227C MOV R3, #2 .text:00032280 MOV LR, PC .text:00032284 LDR PC, [R12,#0x24] .text:00032288 CMN R0, #1 .text:0003228C BNE loc_322AC .text:00032290 CMN R1, #1 .text:00032294 BNE loc_322AC .text:00032298 BL __errno_location .text:0003229C LDR R3, [R0] .text:000322A0 MOV R0, #0 .text:000322A4 CMP R3, #0x1D .text:000322A8 BNE locret_322B8 .text:000322AC .text:000322AC loc_322AC ; CODE XREF: _IO_file_open+74j .text:000322AC ; _IO_file_open+ACj ... .text:000322AC MOV R0, R4 .text:000322B0 BL _IO_link_in .text:000322B4 MOV R0, R4 .text:000322B8 .text:000322B8 locret_322B8 ; CODE XREF: _IO_file_open+44j .text:000322B8 ; _IO_file_open+C8j .text:000322B8 LDMDB R11, {R4,R5,R11,SP,PC} .text:000322B8 ; End of function _IO_file_open .text:000322B8 .text:000322BC .text:000322BC ; =============== S U B R O U T I N E ======================================= .text:000322BC .text:000322BC ; Attributes: bp-based frame .text:000322BC .text:000322BC WEAK strchr .text:000322BC strchr ; CODE XREF: _dl_dst_count+130p .text:000322BC ; expand_dynamic_string_token+20p ... .text:000322BC MOV R12, SP .text:000322C0 STMFD SP!, {R4,R11,R12,LR,PC} .text:000322C4 SUB R11, R12, #4 .text:000322C8 MOV R3, R0 .text:000322CC TST R3, #3 .text:000322D0 AND R1, R1, #0xFF .text:000322D4 BEQ loc_322F8 .text:000322D8 .text:000322D8 loc_322D8 ; CODE XREF: strchr+38j .text:000322D8 LDRB R0, [R3] .text:000322DC CMP R0, R1 .text:000322E0 BEQ loc_3239C .text:000322E4 CMP R0, #0 .text:000322E8 LDMEQDB R11, {R4,R11,SP,PC} .text:000322EC ADD R3, R3, #1 .text:000322F0 TST R3, #3 .text:000322F4 BNE loc_322D8 .text:000322F8 .text:000322F8 loc_322F8 ; CODE XREF: strchr+18j .text:000322F8 MOV R12, R3 .text:000322FC MOV LR, 0x7EFEFEFF .text:00032308 ORR R4, R1, R1,LSL#8 .text:0003230C ORR R4, R4, R4,LSL#16 .text:00032310 .text:00032310 loc_32310 ; CODE XREF: strchr+7Cj .text:00032310 ; strchr+DCj .text:00032310 LDR R2, [R12],#4 .text:00032314 MVN R0, LR .text:00032318 ADD R3, R2, LR .text:0003231C EOR R3, R2, R3 .text:00032320 BICS R3, R0, R3 .text:00032324 BNE loc_3233C .text:00032328 EOR R3, R2, R4 .text:0003232C ADD R2, R3, LR .text:00032330 EOR R3, R3, R2 .text:00032334 BICS R3, R0, R3 .text:00032338 BEQ loc_32310 .text:0003233C .text:0003233C loc_3233C ; CODE XREF: strchr+68j .text:0003233C LDRB R3, [R12,#-4] .text:00032340 SUB R0, R12, #4 .text:00032344 CMP R3, R1 .text:00032348 LDMEQDB R11, {R4,R11,SP,PC} .text:0003234C CMP R3, #0 .text:00032350 BEQ loc_3239C .text:00032354 LDRB R3, [R12,#-3] .text:00032358 SUB R0, R12, #3 .text:0003235C CMP R3, R1 .text:00032360 LDMEQDB R11, {R4,R11,SP,PC} .text:00032364 CMP R3, #0 .text:00032368 BEQ loc_3239C .text:0003236C LDRB R3, [R12,#-2] .text:00032370 SUB R0, R12, #2 .text:00032374 CMP R3, R1 .text:00032378 LDMEQDB R11, {R4,R11,SP,PC} .text:0003237C CMP R3, #0 .text:00032380 BEQ loc_3239C .text:00032384 MOV R0, R12 .text:00032388 LDRB R3, [R0,#-1]! .text:0003238C CMP R3, R1 .text:00032390 LDMEQDB R11, {R4,R11,SP,PC} .text:00032394 CMP R3, #0 .text:00032398 BNE loc_32310 .text:0003239C .text:0003239C loc_3239C ; CODE XREF: strchr+24j .text:0003239C ; strchr+94j ... .text:0003239C MOV R0, R3 .text:000323A0 LDMDB R11, {R4,R11,SP,PC} .text:000323A0 ; End of function strchr .text:000323A0 .text:000323A4 .text:000323A4 ; =============== S U B R O U T I N E ======================================= .text:000323A4 .text:000323A4 ; Attributes: bp-based frame .text:000323A4 .text:000323A4 EXPORT strcmp .text:000323A4 strcmp ; CODE XREF: add_name_to_object+28p .text:000323A4 ; _dl_map_object+4Cp ... .text:000323A4 MOV R12, SP .text:000323A8 STMFD SP!, {R11,R12,LR,PC} .text:000323AC SUB R11, R12, #4 .text:000323B0 MOV R2, R0 .text:000323B4 .text:000323B4 loc_323B4 ; CODE XREF: strcmp+24j .text:000323B4 LDRB R0, [R2],#1 .text:000323B8 LDRB R3, [R1],#1 .text:000323BC CMP R0, #0 .text:000323C0 BEQ loc_323D4 .text:000323C4 CMP R0, R3 .text:000323C8 BEQ loc_323B4 .text:000323CC RSB R0, R3, R0 .text:000323D0 LDMDB R11, {R11,SP,PC} .text:000323D4 ; --------------------------------------------------------------------------- .text:000323D4 .text:000323D4 loc_323D4 ; CODE XREF: strcmp+1Cj .text:000323D4 RSB R0, R3, #0 .text:000323D8 LDMDB R11, {R11,SP,PC} .text:000323D8 ; End of function strcmp .text:000323D8 .text:000323DC .text:000323DC ; =============== S U B R O U T I N E ======================================= .text:000323DC .text:000323DC ; Attributes: bp-based frame .text:000323DC .text:000323DC WEAK strdup .text:000323DC strdup ; CODE XREF: _nl_find_domain+F8p .text:000323DC ; get_proc_path+9Cp ... .text:000323DC MOV R12, SP .text:000323E0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000323E4 SUB R11, R12, #4 .text:000323E8 MOV R5, R0 .text:000323EC BL strlen .text:000323F0 ADD R4, R0, #1 .text:000323F4 MOV R0, R4 .text:000323F8 BL malloc .text:000323FC CMP R0, #0 .text:00032400 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00032404 MOV R1, R5 .text:00032408 MOV R2, R4 .text:0003240C BL memcpy .text:00032410 LDMDB R11, {R4,R5,R11,SP,PC} .text:00032410 ; End of function strdup .text:00032410 .text:00032414 .text:00032414 ; =============== S U B R O U T I N E ======================================= .text:00032414 .text:00032414 ; Attributes: bp-based frame .text:00032414 .text:00032414 WEAK strnlen .text:00032414 strnlen ; CODE XREF: vfprintf+18B0p .text:00032414 ; vfprintf+3C30p ... .text:00032414 MOV R12, SP .text:00032418 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0003241C SUB R11, R12, #4 .text:00032420 MOV R5, R0 .text:00032424 MOV R4, R1 .text:00032428 MOV R1, #0 .text:0003242C MOV R2, R4 .text:00032430 BL memchr .text:00032434 CMP R0, #0 .text:00032438 SUBNE R0, R0, R5 .text:0003243C MOVEQ R0, R4 .text:00032440 LDMDB R11, {R4,R5,R11,SP,PC} .text:00032440 ; End of function strnlen .text:00032440 .text:00032444 .text:00032444 ; =============== S U B R O U T I N E ======================================= .text:00032444 .text:00032444 ; Attributes: bp-based frame .text:00032444 .text:00032444 EXPORT strncmp .text:00032444 strncmp ; CODE XREF: _dl_dst_count+38p .text:00032444 ; _dl_dst_count+54p ... .text:00032444 MOV R12, SP .text:00032448 STMFD SP!, {R4,R11,R12,LR,PC} .text:0003244C SUB R11, R12, #4 .text:00032450 MOV LR, R0 .text:00032454 MOV R0, #0 .text:00032458 MOV R12, R0 .text:0003245C CMP R2, #3 .text:00032460 BLS loc_324FC .text:00032464 MOV R4, R2,LSR#2 .text:00032468 .text:00032468 loc_32468 ; CODE XREF: strncmp+B0j .text:00032468 LDRB R0, [LR],#1 .text:0003246C LDRB R12, [R1],#1 .text:00032470 SUBS R3, R0, R12 .text:00032474 MOVNE R3, #1 .text:00032478 CMP R0, #0 .text:0003247C MOVEQ R3, #1 .text:00032480 CMP R3, #0 .text:00032484 BEQ loc_32490 .text:00032488 .text:00032488 loc_32488 ; CODE XREF: strncmp+68j .text:00032488 ; strncmp+88j ... .text:00032488 RSB R0, R12, R0 .text:0003248C LDMDB R11, {R4,R11,SP,PC} .text:00032490 ; --------------------------------------------------------------------------- .text:00032490 .text:00032490 loc_32490 ; CODE XREF: strncmp+40j .text:00032490 LDRB R0, [LR],#1 .text:00032494 LDRB R12, [R1],#1 .text:00032498 SUBS R3, R0, R12 .text:0003249C MOVNE R3, #1 .text:000324A0 CMP R0, #0 .text:000324A4 MOVEQ R3, #1 .text:000324A8 CMP R3, #0 .text:000324AC BNE loc_32488 .text:000324B0 LDRB R0, [LR],#1 .text:000324B4 LDRB R12, [R1],#1 .text:000324B8 SUBS R3, R0, R12 .text:000324BC MOVNE R3, #1 .text:000324C0 CMP R0, #0 .text:000324C4 MOVEQ R3, #1 .text:000324C8 CMP R3, #0 .text:000324CC BNE loc_32488 .text:000324D0 LDRB R0, [LR],#1 .text:000324D4 LDRB R12, [R1],#1 .text:000324D8 SUBS R3, R0, R12 .text:000324DC MOVNE R3, #1 .text:000324E0 CMP R0, #0 .text:000324E4 MOVEQ R3, #1 .text:000324E8 CMP R3, #0 .text:000324EC BNE loc_32488 .text:000324F0 SUBS R4, R4, #1 .text:000324F4 BNE loc_32468 .text:000324F8 AND R2, R2, #3 .text:000324FC .text:000324FC loc_324FC ; CODE XREF: strncmp+1Cj .text:000324FC CMP R2, #0 .text:00032500 BEQ loc_3252C .text:00032504 .text:00032504 loc_32504 ; CODE XREF: strncmp+E4j .text:00032504 LDRB R0, [LR],#1 .text:00032508 LDRB R12, [R1],#1 .text:0003250C SUBS R3, R0, R12 .text:00032510 MOVNE R3, #1 .text:00032514 CMP R0, #0 .text:00032518 MOVEQ R3, #1 .text:0003251C CMP R3, #0 .text:00032520 BNE loc_32488 .text:00032524 SUBS R2, R2, #1 .text:00032528 BNE loc_32504 .text:0003252C .text:0003252C loc_3252C ; CODE XREF: strncmp+BCj .text:0003252C RSB R0, R12, R0 .text:00032530 LDMDB R11, {R4,R11,SP,PC} .text:00032530 ; End of function strncmp .text:00032530 .text:00032534 .text:00032534 ; =============== S U B R O U T I N E ======================================= .text:00032534 .text:00032534 ; Attributes: bp-based frame .text:00032534 .text:00032534 EXPORT strrchr .text:00032534 strrchr ; CODE XREF: _dl_new_object+288p .text:00032534 ; _dl_get_origin+54p ... .text:00032534 MOV R12, SP ; Alternative name is 'rindex' .text:00032538 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0003253C SUB R11, R12, #4 .text:00032540 MOV R4, R1 .text:00032544 ANDS R4, R4, #0xFF .text:00032548 BNE loc_32558 .text:0003254C MOV R1, R4 .text:00032550 BL rawmemchr .text:00032554 LDMDB R11, {R4,R5,R11,SP,PC} .text:00032558 ; --------------------------------------------------------------------------- .text:00032558 .text:00032558 loc_32558 ; CODE XREF: strrchr+14j .text:00032558 MOV R5, #0 .text:0003255C B loc_32568 .text:00032560 ; --------------------------------------------------------------------------- .text:00032560 .text:00032560 loc_32560 ; CODE XREF: strrchr+40j .text:00032560 MOV R5, R0 .text:00032564 ADD R0, R5, #1 .text:00032568 .text:00032568 loc_32568 ; CODE XREF: strrchr+28j .text:00032568 MOV R1, R4 .text:0003256C BL strchr .text:00032570 CMP R0, #0 .text:00032574 BNE loc_32560 .text:00032578 MOV R0, R5 .text:0003257C LDMDB R11, {R4,R5,R11,SP,PC} .text:0003257C ; End of function strrchr .text:0003257C .text:00032580 .text:00032580 ; =============== S U B R O U T I N E ======================================= .text:00032580 .text:00032580 ; Attributes: bp-based frame .text:00032580 .text:00032580 EXPORT strpbrk .text:00032580 strpbrk ; CODE XREF: decompose_rpath+158p .text:00032580 ; _dl_init_paths+26Cp .text:00032580 MOV R12, SP .text:00032584 STMFD SP!, {R11,R12,LR,PC} .text:00032588 LDRB R3, [R0] .text:0003258C SUB R11, R12, #4 .text:00032590 CMP R3, #0 .text:00032594 BEQ loc_325D0 .text:00032598 .text:00032598 loc_32598 ; CODE XREF: strpbrk+4Cj .text:00032598 MOV R2, R1 .text:0003259C LDRB R3, [R2] .text:000325A0 CMP R3, #0 .text:000325A4 BEQ loc_325C4 .text:000325A8 LDRB R12, [R0] .text:000325AC .text:000325AC loc_325AC ; CODE XREF: strpbrk+40j .text:000325AC ADD R2, R2, #1 .text:000325B0 CMP R3, R12 .text:000325B4 LDMEQDB R11, {R11,SP,PC} .text:000325B8 LDRB R3, [R2] .text:000325BC CMP R3, #0 .text:000325C0 BNE loc_325AC .text:000325C4 .text:000325C4 loc_325C4 ; CODE XREF: strpbrk+24j .text:000325C4 LDRB R3, [R0,#1]! .text:000325C8 CMP R3, #0 .text:000325CC BNE loc_32598 .text:000325D0 .text:000325D0 loc_325D0 ; CODE XREF: strpbrk+14j .text:000325D0 MOV R0, #0 .text:000325D4 LDMDB R11, {R11,SP,PC} .text:000325D4 ; End of function strpbrk .text:000325D4 .text:000325D8 .text:000325D8 ; =============== S U B R O U T I N E ======================================= .text:000325D8 .text:000325D8 ; Attributes: bp-based frame .text:000325D8 .text:000325D8 EXPORT strstr .text:000325D8 strstr ; CODE XREF: decompose_rpath+50p .text:000325D8 ; _nl_init_domain_conv+54p ... .text:000325D8 MOV R12, SP .text:000325DC STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000325E0 LDRB R4, [R1] .text:000325E4 SUB R11, R12, #4 .text:000325E8 CMP R4, #0 .text:000325EC LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000325F0 SUB R0, R0, #1 .text:000325F4 .text:000325F4 loc_325F4 ; CODE XREF: strstr+2Cj .text:000325F4 LDRB LR, [R0,#1]! .text:000325F8 CMP LR, #0 .text:000325FC BEQ loc_326B4 .text:00032600 CMP LR, R4 .text:00032604 BNE loc_325F4 .text:00032608 LDRB LR, [R1,#1]! .text:0003260C CMP LR, #0 .text:00032610 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00032614 ADD R1, R1, #1 .text:00032618 B loc_32644 .text:0003261C ; --------------------------------------------------------------------------- .text:0003261C .text:0003261C loc_3261C ; CODE XREF: strstr+68j .text:0003261C ; strstr+D4j .text:0003261C LDRB R2, [R0,#1]! .text:00032620 CMP R2, #0 .text:00032624 BEQ loc_326B4 .text:00032628 CMP R2, R4 .text:0003262C BEQ loc_32644 .text:00032630 LDRB R2, [R0,#1]! .text:00032634 CMP R2, #0 .text:00032638 BEQ loc_326B4 .text:0003263C .text:0003263C loc_3263C ; CODE XREF: strstr+7Cj .text:0003263C CMP R2, R4 .text:00032640 BNE loc_3261C .text:00032644 .text:00032644 loc_32644 ; CODE XREF: strstr+40j .text:00032644 ; strstr+54j .text:00032644 LDRB R2, [R0,#1]! .text:00032648 CMP R2, #0 .text:0003264C BEQ loc_326B4 .text:00032650 CMP R2, LR .text:00032654 BNE loc_3263C .text:00032658 ADD R12, R0, #1 .text:0003265C LDRB R2, [R1] .text:00032660 SUB R0, R0, #1 .text:00032664 LDRB R3, [R12] .text:00032668 MOV R5, R1 .text:0003266C CMP R3, R2 .text:00032670 BNE loc_326A4 .text:00032674 .text:00032674 loc_32674 ; CODE XREF: strstr+C8j .text:00032674 CMP R2, #0 .text:00032678 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0003267C LDRB R2, [R1,#1]! .text:00032680 LDRB R3, [R12,#1]! .text:00032684 CMP R3, R2 .text:00032688 BNE loc_326A4 .text:0003268C CMP R2, #0 .text:00032690 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00032694 LDRB R2, [R1,#1]! .text:00032698 LDRB R3, [R12,#1]! .text:0003269C CMP R3, R2 .text:000326A0 BEQ loc_32674 .text:000326A4 .text:000326A4 loc_326A4 ; CODE XREF: strstr+98j .text:000326A4 ; strstr+B0j .text:000326A4 MOV R1, R5 .text:000326A8 CMP R2, #0 .text:000326AC BNE loc_3261C .text:000326B0 LDMDB R11, {R4,R5,R11,SP,PC} .text:000326B4 ; --------------------------------------------------------------------------- .text:000326B4 .text:000326B4 loc_326B4 ; CODE XREF: strstr+24j .text:000326B4 ; strstr+4Cj ... .text:000326B4 MOV R0, #0 .text:000326B8 LDMDB R11, {R4,R5,R11,SP,PC} .text:000326B8 ; End of function strstr .text:000326B8 .text:000326BC .text:000326BC ; =============== S U B R O U T I N E ======================================= .text:000326BC .text:000326BC ; Attributes: bp-based frame .text:000326BC .text:000326BC WEAK memchr .text:000326BC memchr ; CODE XREF: strnlen+1Cp .text:000326BC ; argz_stringify+30p ... .text:000326BC MOV R12, SP ; Alternative name is '__memchr' .text:000326C0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000326C4 SUB R11, R12, #4 .text:000326C8 SUBS R12, R2, #0 .text:000326CC AND R1, R1, #0xFF .text:000326D0 BEQ loc_326F4 .text:000326D4 .text:000326D4 loc_326D4 ; CODE XREF: memchr+34j .text:000326D4 TST R0, #3 .text:000326D8 BEQ loc_326F4 .text:000326DC LDRB R3, [R0] .text:000326E0 CMP R3, R1 .text:000326E4 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:000326E8 ADD R0, R0, #1 .text:000326EC SUBS R12, R12, #1 .text:000326F0 BNE loc_326D4 .text:000326F4 .text:000326F4 loc_326F4 ; CODE XREF: memchr+14j .text:000326F4 ; memchr+1Cj .text:000326F4 MOV LR, R0 .text:000326F8 MOV R4, 0x7EFEFEFF .text:00032704 ORR R5, R1, R1,LSL#8 .text:00032708 ORR R5, R5, R5,LSL#16 .text:0003270C CMP R12, #3 .text:00032710 BLS loc_3277C .text:00032714 MVN R6, R4 .text:00032718 .text:00032718 loc_32718 ; CODE XREF: memchr+BCj .text:00032718 LDR R3, [LR],#4 .text:0003271C EOR R3, R3, R5 .text:00032720 ADD R2, R3, R4 .text:00032724 EOR R3, R3, R2 .text:00032728 BICS R3, R6, R3 .text:0003272C BEQ loc_32770 .text:00032730 LDRB R3, [LR,#-4] .text:00032734 SUB R0, LR, #4 .text:00032738 CMP R3, R1 .text:0003273C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00032740 LDRB R3, [R0,#1] .text:00032744 CMP R3, R1 .text:00032748 SUBEQ R0, LR, #3 .text:0003274C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00032750 LDRB R3, [R0,#2] .text:00032754 CMP R3, R1 .text:00032758 SUBEQ R0, LR, #2 .text:0003275C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00032760 LDRB R3, [R0,#3] .text:00032764 CMP R3, R1 .text:00032768 SUBEQ R0, LR, #1 .text:0003276C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00032770 .text:00032770 loc_32770 ; CODE XREF: memchr+70j .text:00032770 SUB R12, R12, #4 .text:00032774 CMP R12, #3 .text:00032778 BHI loc_32718 .text:0003277C .text:0003277C loc_3277C ; CODE XREF: memchr+54j .text:0003277C MOV R0, LR .text:00032780 B loc_32794 .text:00032784 ; --------------------------------------------------------------------------- .text:00032784 .text:00032784 loc_32784 ; CODE XREF: memchr+E4j .text:00032784 LDRB R3, [R0] .text:00032788 CMP R3, R1 .text:0003278C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00032790 ADD R0, R0, #1 .text:00032794 .text:00032794 loc_32794 ; CODE XREF: memchr+C4j .text:00032794 MOV R3, R12 .text:00032798 SUB R12, R12, #1 .text:0003279C CMP R3, #0 .text:000327A0 BNE loc_32784 .text:000327A4 MOV R0, #0 .text:000327A8 LDMDB R11, {R4-R6,R11,SP,PC} .text:000327A8 ; End of function memchr .text:000327A8 .text:000327AC .text:000327AC ; =============== S U B R O U T I N E ======================================= .text:000327AC .text:000327AC ; Attributes: bp-based frame .text:000327AC .text:000327AC WEAK memcmp .text:000327AC memcmp ; CODE XREF: decompose_rpath+208p .text:000327AC ; _dl_init_paths+318p ... .text:000327AC .text:000327AC var_78 = -0x78 .text:000327AC var_74 = -0x74 .text:000327AC var_70 = -0x70 .text:000327AC var_6C = -0x6C .text:000327AC var_68 = -0x68 .text:000327AC var_64 = -0x64 .text:000327AC var_60 = -0x60 .text:000327AC var_5C = -0x5C .text:000327AC var_58 = -0x58 .text:000327AC var_54 = -0x54 .text:000327AC var_50 = -0x50 .text:000327AC var_4C = -0x4C .text:000327AC var_48 = -0x48 .text:000327AC var_44 = -0x44 .text:000327AC var_40 = -0x40 .text:000327AC var_3C = -0x3C .text:000327AC var_38 = -0x38 .text:000327AC var_34 = -0x34 .text:000327AC var_30 = -0x30 .text:000327AC var_2C = -0x2C .text:000327AC .text:000327AC MOV R12, SP .text:000327B0 STMFD SP!, {R4-R12,LR,PC} .text:000327B4 SUB R11, R12, #4 .text:000327B8 MOV R10, R2 .text:000327BC MOV R9, R0 .text:000327C0 MOV R8, R1 .text:000327C4 CMP R10, #0xF .text:000327C8 SUB SP, SP, #0x50 .text:000327CC BLS loc_32B90 .text:000327D0 TST R8, #3 .text:000327D4 BEQ loc_327F4 .text:000327D8 .text:000327D8 loc_327D8 ; CODE XREF: memcmp+44j .text:000327D8 LDRB R12, [R9],#1 .text:000327DC LDRB R3, [R8],#1 .text:000327E0 SUBS R0, R12, R3 .text:000327E4 BNE locret_32BB4 .text:000327E8 SUB R10, R10, #1 .text:000327EC TST R8, #3 .text:000327F0 BNE loc_327D8 .text:000327F4 .text:000327F4 loc_327F4 ; CODE XREF: memcmp+28j .text:000327F4 ANDS R3, R9, #3 .text:000327F8 BNE loc_3299C .text:000327FC MOV R0, R9 .text:00032800 MOV R2, R8 .text:00032804 MOV R12, R10,LSR#2 .text:00032808 MOV R4, R12 .text:0003280C AND R3, R4, #3 .text:00032810 CMP R3, #3 ; switch 4 cases .text:00032814 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00032818 B loc_3282C ; jumptable 00032814 default case .text:00032818 ; --------------------------------------------------------------------------- .text:0003281C DCD loc_3285C ; jump table for switch statement .text:0003281C DCD loc_32868 .text:0003281C DCD loc_3282C .text:0003281C DCD loc_32844 .text:0003282C ; --------------------------------------------------------------------------- .text:0003282C .text:0003282C loc_3282C ; CODE XREF: memcmp+68j .text:0003282C ; memcmp+6Cj .text:0003282C ; DATA XREF: ... .text:0003282C SUB R0, R9, #8 ; jumptable 00032814 default case .text:00032830 SUB R2, R8, #8 .text:00032834 LDR R1, [R9] .text:00032838 ADD R4, R12, #2 .text:0003283C LDR LR, [R8] .text:00032840 B loc_32924 .text:00032844 ; --------------------------------------------------------------------------- .text:00032844 .text:00032844 loc_32844 ; CODE XREF: memcmp+68j .text:00032844 ; DATA XREF: memcmp+70o .text:00032844 MOV R0, R9 ; jumptable 00032814 case 3 .text:00032848 MOV R2, R8 .text:0003284C LDR R3, [R0],#-4 .text:00032850 ADD R4, R12, #1 .text:00032854 LDR R12, [R2],#-4 .text:00032858 B loc_328EC .text:0003285C ; --------------------------------------------------------------------------- .text:0003285C .text:0003285C loc_3285C ; CODE XREF: memcmp+68j .text:0003285C ; DATA XREF: memcmp+70o .text:0003285C LDR R1, [R9] ; jumptable 00032814 case 0 .text:00032860 LDR LR, [R8] .text:00032864 B loc_328B4 .text:00032868 ; --------------------------------------------------------------------------- .text:00032868 .text:00032868 loc_32868 ; CODE XREF: memcmp+68j .text:00032868 ; DATA XREF: memcmp+70o .text:00032868 MOV R0, R9 ; jumptable 00032814 case 1 .text:0003286C MOV R2, R8 .text:00032870 LDR R3, [R0],#4 .text:00032874 SUB R4, R12, #1 .text:00032878 LDR R12, [R2],#4 .text:0003287C .text:0003287C loc_3287C ; CODE XREF: memcmp+1BCj .text:0003287C LDR R1, [R0] .text:00032880 CMP R3, R12 .text:00032884 LDR LR, [R2] .text:00032888 BEQ loc_328B4 .text:0003288C STR R3, [R11,#var_2C] .text:00032890 SUB R2, R11, #-var_2C .text:00032894 SUB LR, R11, #-var_30 .text:00032898 STR R12, [R11,#var_30] .text:0003289C .text:0003289C loc_3289C ; CODE XREF: memcmp+FCj .text:0003289C LDRB R3, [R2],#1 .text:000328A0 LDRB R0, [LR],#1 .text:000328A4 CMP R3, R0 .text:000328A8 BEQ loc_3289C .text:000328AC RSB R0, R0, R3 .text:000328B0 B loc_32B78 .text:000328B4 ; --------------------------------------------------------------------------- .text:000328B4 .text:000328B4 loc_328B4 ; CODE XREF: memcmp+B8j .text:000328B4 ; memcmp+DCj .text:000328B4 LDR R3, [R0,#4] .text:000328B8 CMP R1, LR .text:000328BC LDR R12, [R2,#4] .text:000328C0 BEQ loc_328EC .text:000328C4 STR R1, [R11,#var_34] .text:000328C8 SUB R2, R11, #-var_34 .text:000328CC SUB R12, R11, #-var_38 .text:000328D0 STR LR, [R11,#var_38] .text:000328D4 .text:000328D4 loc_328D4 ; CODE XREF: memcmp+134j .text:000328D4 LDRB R3, [R2],#1 .text:000328D8 LDRB R0, [R12],#1 .text:000328DC CMP R3, R0 .text:000328E0 BEQ loc_328D4 .text:000328E4 RSB R0, R0, R3 .text:000328E8 B loc_32B78 .text:000328EC ; --------------------------------------------------------------------------- .text:000328EC .text:000328EC loc_328EC ; CODE XREF: memcmp+ACj .text:000328EC ; memcmp+114j .text:000328EC LDR R1, [R0,#8] .text:000328F0 CMP R3, R12 .text:000328F4 LDR LR, [R2,#8] .text:000328F8 BEQ loc_32924 .text:000328FC STR R3, [R11,#var_3C] .text:00032900 SUB R2, R11, #-var_3C .text:00032904 SUB LR, R11, #-var_40 .text:00032908 STR R12, [R11,#var_40] .text:0003290C .text:0003290C loc_3290C ; CODE XREF: memcmp+16Cj .text:0003290C LDRB R3, [R2],#1 .text:00032910 LDRB R0, [LR],#1 .text:00032914 CMP R3, R0 .text:00032918 BEQ loc_3290C .text:0003291C RSB R0, R0, R3 .text:00032920 B loc_32B78 .text:00032924 ; --------------------------------------------------------------------------- .text:00032924 .text:00032924 loc_32924 ; CODE XREF: memcmp+94j .text:00032924 ; memcmp+14Cj .text:00032924 LDR R3, [R0,#0xC] .text:00032928 CMP R1, LR .text:0003292C LDR R12, [R2,#0xC] .text:00032930 BEQ loc_3295C .text:00032934 STR R1, [R11,#var_44] .text:00032938 SUB R2, R11, #-var_44 .text:0003293C SUB R12, R11, #-var_48 .text:00032940 STR LR, [R11,#var_48] .text:00032944 .text:00032944 loc_32944 ; CODE XREF: memcmp+1A4j .text:00032944 LDRB R3, [R2],#1 .text:00032948 LDRB R0, [R12],#1 .text:0003294C CMP R3, R0 .text:00032950 BEQ loc_32944 .text:00032954 RSB R0, R0, R3 .text:00032958 B loc_32B78 .text:0003295C ; --------------------------------------------------------------------------- .text:0003295C .text:0003295C loc_3295C ; CODE XREF: memcmp+184j .text:0003295C ADD R0, R0, #0x10 .text:00032960 ADD R2, R2, #0x10 .text:00032964 SUBS R4, R4, #4 .text:00032968 BNE loc_3287C .text:0003296C CMP R3, R12 .text:00032970 BEQ loc_32B74 .text:00032974 STR R3, [R11,#var_4C] .text:00032978 SUB R4, R11, #-var_4C .text:0003297C SUB LR, R11, #-var_50 .text:00032980 STR R12, [R11,#var_50] .text:00032984 .text:00032984 loc_32984 ; CODE XREF: memcmp+1E4j .text:00032984 LDRB R3, [R4],#1 .text:00032988 LDRB R0, [LR],#1 .text:0003298C CMP R3, R0 .text:00032990 BEQ loc_32984 .text:00032994 RSB R0, R0, R3 .text:00032998 B loc_32B78 .text:0003299C ; --------------------------------------------------------------------------- .text:0003299C .text:0003299C loc_3299C ; CODE XREF: memcmp+4Cj .text:0003299C MOV LR, R8 .text:000329A0 MOV R0, R10,LSR#2 .text:000329A4 MOV R5, R0 .text:000329A8 BIC R12, R9, #3 .text:000329AC MOV R6, R3,LSL#3 .text:000329B0 RSB R7, R6, #0x20 .text:000329B4 AND R3, R5, #3 .text:000329B8 CMP R3, #3 ; switch 4 cases .text:000329BC LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:000329C0 B loc_329D4 ; jumptable 000329BC default case .text:000329C0 ; --------------------------------------------------------------------------- .text:000329C4 DCD loc_32A04 ; jump table for switch statement .text:000329C4 DCD loc_32A14 .text:000329C4 DCD loc_329D4 .text:000329C4 DCD loc_329EC .text:000329D4 ; --------------------------------------------------------------------------- .text:000329D4 .text:000329D4 loc_329D4 ; CODE XREF: memcmp+210j .text:000329D4 ; memcmp+214j .text:000329D4 ; DATA XREF: ... .text:000329D4 LDMIA R12, {R1,R4} ; jumptable 000329BC default case .text:000329D8 SUB R12, R12, #4 .text:000329DC SUB LR, R8, #8 .text:000329E0 ADD R5, R0, #2 .text:000329E4 LDR R2, [R8] .text:000329E8 B loc_32AEC .text:000329EC ; --------------------------------------------------------------------------- .text:000329EC .text:000329EC loc_329EC ; CODE XREF: memcmp+210j .text:000329EC ; DATA XREF: memcmp+218o .text:000329EC LDR R2, [R12] ; jumptable 000329BC case 3 .text:000329F0 MOV LR, R8 .text:000329F4 LDR R1, [R12,#4] .text:000329F8 ADD R5, R0, #1 .text:000329FC LDR R0, [LR],#-4 .text:00032A00 B loc_32AAC .text:00032A04 ; --------------------------------------------------------------------------- .text:00032A04 .text:00032A04 loc_32A04 ; CODE XREF: memcmp+210j .text:00032A04 ; DATA XREF: memcmp+218o .text:00032A04 LDR R1, [R12] ; jumptable 000329BC case 0 .text:00032A08 LDR R2, [R12,#4]! .text:00032A0C LDR R4, [R8] .text:00032A10 B loc_32A6C .text:00032A14 ; --------------------------------------------------------------------------- .text:00032A14 .text:00032A14 loc_32A14 ; CODE XREF: memcmp+210j .text:00032A14 ; DATA XREF: memcmp+218o .text:00032A14 LDR R4, [R12] ; jumptable 000329BC case 1 .text:00032A18 MOV LR, R8 .text:00032A1C LDR R1, [R12,#4] .text:00032A20 ADD R12, R12, #8 .text:00032A24 SUB R5, R0, #1 .text:00032A28 LDR R0, [LR],#4 .text:00032A2C .text:00032A2C loc_32A2C ; CODE XREF: memcmp+38Cj .text:00032A2C MOV R3, R1,LSL R7 .text:00032A30 ORR R3, R3, R4,LSR R6 .text:00032A34 LDR R2, [R12] .text:00032A38 CMP R3, R0 .text:00032A3C LDR R4, [LR] .text:00032A40 BEQ loc_32A6C .text:00032A44 STR R3, [R11,#var_54] .text:00032A48 SUB LR, R11, #-var_54 .text:00032A4C SUB R12, R11, #-var_58 .text:00032A50 STR R0, [R11,#var_58] .text:00032A54 .text:00032A54 loc_32A54 ; CODE XREF: memcmp+2B4j .text:00032A54 LDRB R3, [LR],#1 .text:00032A58 LDRB R0, [R12],#1 .text:00032A5C CMP R3, R0 .text:00032A60 BEQ loc_32A54 .text:00032A64 RSB R0, R0, R3 .text:00032A68 B loc_32B78 .text:00032A6C ; --------------------------------------------------------------------------- .text:00032A6C .text:00032A6C loc_32A6C ; CODE XREF: memcmp+264j .text:00032A6C ; memcmp+294j .text:00032A6C MOV R3, R2,LSL R7 .text:00032A70 ORR R3, R3, R1,LSR R6 .text:00032A74 LDR R1, [R12,#4] .text:00032A78 CMP R3, R4 .text:00032A7C LDR R0, [LR,#4] .text:00032A80 BEQ loc_32AAC .text:00032A84 STR R3, [R11,#var_5C] .text:00032A88 SUB LR, R11, #-var_5C .text:00032A8C SUB R12, R11, #-var_60 .text:00032A90 STR R4, [R11,#var_60] .text:00032A94 .text:00032A94 loc_32A94 ; CODE XREF: memcmp+2F4j .text:00032A94 LDRB R3, [LR],#1 .text:00032A98 LDRB R0, [R12],#1 .text:00032A9C CMP R3, R0 .text:00032AA0 BEQ loc_32A94 .text:00032AA4 RSB R0, R0, R3 .text:00032AA8 B loc_32B78 .text:00032AAC ; --------------------------------------------------------------------------- .text:00032AAC .text:00032AAC loc_32AAC ; CODE XREF: memcmp+254j .text:00032AAC ; memcmp+2D4j .text:00032AAC MOV R3, R1,LSL R7 .text:00032AB0 ORR R3, R3, R2,LSR R6 .text:00032AB4 LDR R4, [R12,#8] .text:00032AB8 CMP R3, R0 .text:00032ABC LDR R2, [LR,#8] .text:00032AC0 BEQ loc_32AEC .text:00032AC4 STR R3, [R11,#var_64] .text:00032AC8 SUB LR, R11, #-var_64 .text:00032ACC SUB R12, R11, #-var_68 .text:00032AD0 STR R0, [R11,#var_68] .text:00032AD4 .text:00032AD4 loc_32AD4 ; CODE XREF: memcmp+334j .text:00032AD4 LDRB R3, [LR],#1 .text:00032AD8 LDRB R0, [R12],#1 .text:00032ADC CMP R3, R0 .text:00032AE0 BEQ loc_32AD4 .text:00032AE4 RSB R0, R0, R3 .text:00032AE8 B loc_32B78 .text:00032AEC ; --------------------------------------------------------------------------- .text:00032AEC .text:00032AEC loc_32AEC ; CODE XREF: memcmp+23Cj .text:00032AEC ; memcmp+314j .text:00032AEC MOV R3, R4,LSL R7 .text:00032AF0 ORR R3, R3, R1,LSR R6 .text:00032AF4 LDR R1, [R12,#0xC] .text:00032AF8 CMP R3, R2 .text:00032AFC LDR R0, [LR,#0xC] .text:00032B00 BEQ loc_32B2C .text:00032B04 STR R3, [R11,#var_6C] .text:00032B08 SUB LR, R11, #-var_6C .text:00032B0C SUB R12, R11, #-var_70 .text:00032B10 STR R2, [R11,#var_70] .text:00032B14 .text:00032B14 loc_32B14 ; CODE XREF: memcmp+374j .text:00032B14 LDRB R3, [LR],#1 .text:00032B18 LDRB R0, [R12],#1 .text:00032B1C CMP R3, R0 .text:00032B20 BEQ loc_32B14 .text:00032B24 RSB R0, R0, R3 .text:00032B28 B loc_32B78 .text:00032B2C ; --------------------------------------------------------------------------- .text:00032B2C .text:00032B2C loc_32B2C ; CODE XREF: memcmp+354j .text:00032B2C ADD R12, R12, #0x10 .text:00032B30 ADD LR, LR, #0x10 .text:00032B34 SUBS R5, R5, #4 .text:00032B38 BNE loc_32A2C .text:00032B3C MOV R3, R1,LSL R7 .text:00032B40 ORR R3, R3, R4,LSR R6 .text:00032B44 CMP R3, R0 .text:00032B48 BEQ loc_32B74 .text:00032B4C STR R3, [R11,#var_74] .text:00032B50 SUB LR, R11, #-var_74 .text:00032B54 SUB R12, R11, #-var_78 .text:00032B58 STR R0, [R11,#var_78] .text:00032B5C .text:00032B5C loc_32B5C ; CODE XREF: memcmp+3BCj .text:00032B5C LDRB R3, [LR],#1 .text:00032B60 LDRB R0, [R12],#1 .text:00032B64 CMP R3, R0 .text:00032B68 BEQ loc_32B5C .text:00032B6C RSB R0, R0, R3 .text:00032B70 B loc_32B78 .text:00032B74 ; --------------------------------------------------------------------------- .text:00032B74 .text:00032B74 loc_32B74 ; CODE XREF: memcmp+1C4j .text:00032B74 ; memcmp+39Cj .text:00032B74 MOV R0, #0 .text:00032B78 .text:00032B78 loc_32B78 ; CODE XREF: memcmp+104j .text:00032B78 ; memcmp+13Cj ... .text:00032B78 CMP R0, #0 .text:00032B7C BNE locret_32BB4 .text:00032B80 BIC R3, R10, #3 .text:00032B84 ADD R9, R9, R3 .text:00032B88 ADD R8, R8, R3 .text:00032B8C AND R10, R10, #3 .text:00032B90 .text:00032B90 loc_32B90 ; CODE XREF: memcmp+20j .text:00032B90 CMP R10, #0 .text:00032B94 BEQ loc_32BB0 .text:00032B98 .text:00032B98 loc_32B98 ; CODE XREF: memcmp+400j .text:00032B98 LDRB R12, [R9],#1 .text:00032B9C LDRB R3, [R8],#1 .text:00032BA0 SUBS R0, R12, R3 .text:00032BA4 BNE locret_32BB4 .text:00032BA8 SUBS R10, R10, #1 .text:00032BAC BNE loc_32B98 .text:00032BB0 .text:00032BB0 loc_32BB0 ; CODE XREF: memcmp+3E8j .text:00032BB0 MOV R0, #0 .text:00032BB4 .text:00032BB4 locret_32BB4 ; CODE XREF: memcmp+38j .text:00032BB4 ; memcmp+3D0j ... .text:00032BB4 LDMDB R11, {R4-R11,SP,PC} .text:00032BB4 ; End of function memcmp .text:00032BB4 .text:00032BB8 .text:00032BB8 ; =============== S U B R O U T I N E ======================================= .text:00032BB8 .text:00032BB8 ; Attributes: bp-based frame .text:00032BB8 .text:00032BB8 WEAK stpcpy .text:00032BB8 stpcpy ; CODE XREF: _dl_dst_substitute+160p .text:00032BB8 ; _dl_lookup_symbol+480p ... .text:00032BB8 MOV R12, SP ; Alternative name is '__stpcpy' .text:00032BBC STMFD SP!, {R11,R12,LR,PC} .text:00032BC0 SUB R11, R12, #4 .text:00032BC4 .text:00032BC4 loc_32BC4 ; CODE XREF: stpcpy+1Cj .text:00032BC4 LDRB R3, [R1] .text:00032BC8 STRB R3, [R0],#1 .text:00032BCC LDRB R2, [R1],#1 .text:00032BD0 CMP R2, #0 .text:00032BD4 BNE loc_32BC4 .text:00032BD8 SUB R0, R0, #1 .text:00032BDC LDMDB R11, {R11,SP,PC} .text:00032BDC ; End of function stpcpy .text:00032BDC .text:00032BE0 .text:00032BE0 ; =============== S U B R O U T I N E ======================================= .text:00032BE0 .text:00032BE0 ; Attributes: bp-based frame .text:00032BE0 .text:00032BE0 WEAK strcasecmp .text:00032BE0 strcasecmp ; CODE XREF: alias_compare+14p .text:00032BE0 ; __gconv_open+148p ... .text:00032BE0 MOV R12, SP ; Alternative name is '__strcasecmp' .text:00032BE4 STMFD SP!, {R11,R12,LR,PC} .text:00032BE8 SUB R11, R12, #4 .text:00032BEC MOV LR, R0 .text:00032BF0 CMP LR, R1 .text:00032BF4 MOVEQ R0, #0 .text:00032BF8 LDMEQDB R11, {R11,SP,PC} .text:00032BFC LDR R3, =__ctype_tolower .text:00032C00 LDR R12, [R3] .text:00032C04 .text:00032C04 loc_32C04 ; CODE XREF: strcasecmp+40j .text:00032C04 LDRB R3, [LR],#1 .text:00032C08 LDRB R2, [R1],#1 .text:00032C0C LDRB R0, [R12,R3,LSL#2] .text:00032C10 LDRB R3, [R12,R2,LSL#2] .text:00032C14 CMP R0, #0 .text:00032C18 BEQ loc_32C24 .text:00032C1C CMP R0, R3 .text:00032C20 BEQ loc_32C04 .text:00032C24 .text:00032C24 loc_32C24 ; CODE XREF: strcasecmp+38j .text:00032C24 RSB R0, R3, R0 .text:00032C28 LDMDB R11, {R11,SP,PC} .text:00032C28 ; End of function strcasecmp .text:00032C28 .text:00032C28 ; --------------------------------------------------------------------------- .text:00032C2C off_32C2C DCD __ctype_tolower ; DATA XREF: strcasecmp+1Cr .text:00032C30 .text:00032C30 ; =============== S U B R O U T I N E ======================================= .text:00032C30 .text:00032C30 ; Attributes: bp-based frame .text:00032C30 .text:00032C30 WEAK rawmemchr .text:00032C30 rawmemchr ; CODE XREF: _dl_new_object+258p .text:00032C30 ; __dcigettext+244p ... .text:00032C30 MOV R12, SP .text:00032C34 STMFD SP!, {R4,R11,R12,LR,PC} .text:00032C38 SUB R11, R12, #4 .text:00032C3C TST R0, #3 .text:00032C40 AND R1, R1, #0xFF .text:00032C44 BEQ loc_32C60 .text:00032C48 .text:00032C48 loc_32C48 ; CODE XREF: rawmemchr+2Cj .text:00032C48 LDRB R3, [R0] .text:00032C4C CMP R3, R1 .text:00032C50 LDMEQDB R11, {R4,R11,SP,PC} .text:00032C54 ADD R0, R0, #1 .text:00032C58 TST R0, #3 .text:00032C5C BNE loc_32C48 .text:00032C60 .text:00032C60 loc_32C60 ; CODE XREF: rawmemchr+14j .text:00032C60 MOV R12, R0 .text:00032C64 MOV LR, 0x7EFEFEFF .text:00032C70 ORR R4, R1, R1,LSL#8 .text:00032C74 ORR R4, R4, R4,LSL#16 .text:00032C78 .text:00032C78 loc_32C78 ; CODE XREF: rawmemchr+60j .text:00032C78 ; rawmemchr+98j .text:00032C78 LDR R3, [R12],#4 .text:00032C7C EOR R3, R3, R4 .text:00032C80 ADD R2, R3, LR .text:00032C84 MVN R3, R3 .text:00032C88 EOR R2, R2, R3 .text:00032C8C BICS R2, R2, LR .text:00032C90 BEQ loc_32C78 .text:00032C94 LDRB R3, [R12,#-4] .text:00032C98 SUB R0, R12, #4 .text:00032C9C CMP R3, R1 .text:00032CA0 LDMEQDB R11, {R4,R11,SP,PC} .text:00032CA4 LDRB R3, [R0,#1] .text:00032CA8 CMP R3, R1 .text:00032CAC SUBEQ R0, R12, #3 .text:00032CB0 LDMEQDB R11, {R4,R11,SP,PC} .text:00032CB4 LDRB R3, [R0,#2] .text:00032CB8 CMP R3, R1 .text:00032CBC BEQ loc_32CD4 .text:00032CC0 LDRB R3, [R0,#3] .text:00032CC4 CMP R3, R1 .text:00032CC8 BNE loc_32C78 .text:00032CCC SUB R0, R12, #1 .text:00032CD0 LDMDB R11, {R4,R11,SP,PC} .text:00032CD4 ; --------------------------------------------------------------------------- .text:00032CD4 .text:00032CD4 loc_32CD4 ; CODE XREF: rawmemchr+8Cj .text:00032CD4 SUB R0, R12, #2 .text:00032CD8 LDMDB R11, {R4,R11,SP,PC} .text:00032CD8 ; End of function rawmemchr .text:00032CD8 .text:00032CDC .text:00032CDC ; =============== S U B R O U T I N E ======================================= .text:00032CDC .text:00032CDC ; Attributes: bp-based frame .text:00032CDC .text:00032CDC WEAK argz_count .text:00032CDC argz_count ; CODE XREF: _nl_make_l10nflist+2E4p .text:00032CDC ; _nl_make_l10nflist+368p ... .text:00032CDC MOV R12, SP ; Alternative name is '__argz_count' .text:00032CE0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00032CE4 SUB R11, R12, #4 .text:00032CE8 MOV R4, R0 .text:00032CEC MOV R6, #0 .text:00032CF0 SUBS R5, R1, #0 .text:00032CF4 BEQ loc_32D18 .text:00032CF8 .text:00032CF8 loc_32CF8 ; CODE XREF: argz_count+38j .text:00032CF8 MOV R0, R4 .text:00032CFC BL strlen .text:00032D00 ADD R3, R0, #1 .text:00032D04 ADD R4, R4, R3 .text:00032D08 ADD R6, R6, #1 .text:00032D0C SUB R3, R5, #1 .text:00032D10 SUBS R5, R3, R0 .text:00032D14 BNE loc_32CF8 .text:00032D18 .text:00032D18 loc_32D18 ; CODE XREF: argz_count+18j .text:00032D18 MOV R0, R6 .text:00032D1C LDMDB R11, {R4-R6,R11,SP,PC} .text:00032D1C ; End of function argz_count .text:00032D1C .text:00032D20 .text:00032D20 ; =============== S U B R O U T I N E ======================================= .text:00032D20 .text:00032D20 ; Attributes: bp-based frame .text:00032D20 .text:00032D20 WEAK argz_stringify .text:00032D20 argz_stringify ; CODE XREF: _nl_make_l10nflist+158p .text:00032D20 MOV R12, SP ; Alternative name is '__argz_stringify' .text:00032D24 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00032D28 SUB R11, R12, #4 .text:00032D2C MOV R5, R0 .text:00032D30 SUBS R4, R1, #0 .text:00032D34 MOV R6, R2 .text:00032D38 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00032D3C B loc_32D44 .text:00032D40 ; --------------------------------------------------------------------------- .text:00032D40 .text:00032D40 loc_32D40 ; CODE XREF: argz_stringify+54j .text:00032D40 STRB R6, [R5],#1 .text:00032D44 .text:00032D44 loc_32D44 ; CODE XREF: argz_stringify+1Cj .text:00032D44 MOV R0, R5 .text:00032D48 MOV R1, #0 .text:00032D4C MOV R2, R4 .text:00032D50 BL memchr .text:00032D54 CMP R0, #0 .text:00032D58 SUBNE R0, R0, R5 .text:00032D5C MOVEQ R0, R4 .text:00032D60 ADD R5, R5, R0 .text:00032D64 RSB R4, R0, R4 .text:00032D68 MOV R3, R4 .text:00032D6C SUB R4, R4, #1 .text:00032D70 CMP R3, #1 .text:00032D74 BHI loc_32D40 .text:00032D78 LDMDB R11, {R4-R6,R11,SP,PC} .text:00032D78 ; End of function argz_stringify .text:00032D78 .text:00032D7C .text:00032D7C ; =============== S U B R O U T I N E ======================================= .text:00032D7C .text:00032D7C ; Attributes: bp-based frame .text:00032D7C .text:00032D7C WEAK wcslen .text:00032D7C wcslen ; CODE XREF: vfwprintf+1F48p .text:00032D7C ; vfwprintf+47E8p ... .text:00032D7C MOV R12, SP ; Alternative name is '__wcslen' .text:00032D80 STMFD SP!, {R11,R12,LR,PC} .text:00032D84 MOV R2, #0 .text:00032D88 LDR R3, [R0,R2,LSL#2] .text:00032D8C SUB R11, R12, #4 .text:00032D90 CMP R3, R2 .text:00032D94 BEQ loc_32DE0 .text:00032D98 .text:00032D98 loc_32D98 ; CODE XREF: wcslen+60j .text:00032D98 ADD R2, R2, #1 .text:00032D9C LDR R3, [R0,R2,LSL#2] .text:00032DA0 CMP R3, #0 .text:00032DA4 BNE loc_32DB0 .text:00032DA8 .text:00032DA8 loc_32DA8 ; CODE XREF: wcslen+40j .text:00032DA8 ; wcslen+50j .text:00032DA8 MOV R0, R2 .text:00032DAC LDMDB R11, {R11,SP,PC} .text:00032DB0 ; --------------------------------------------------------------------------- .text:00032DB0 .text:00032DB0 loc_32DB0 ; CODE XREF: wcslen+28j .text:00032DB0 ADD R2, R2, #1 .text:00032DB4 LDR R3, [R0,R2,LSL#2] .text:00032DB8 CMP R3, #0 .text:00032DBC BEQ loc_32DA8 .text:00032DC0 ADD R2, R2, #1 .text:00032DC4 LDR R3, [R0,R2,LSL#2] .text:00032DC8 CMP R3, #0 .text:00032DCC BEQ loc_32DA8 .text:00032DD0 ADD R2, R2, #1 .text:00032DD4 LDR R3, [R0,R2,LSL#2] .text:00032DD8 CMP R3, #0 .text:00032DDC BNE loc_32D98 .text:00032DE0 .text:00032DE0 loc_32DE0 ; CODE XREF: wcslen+18j .text:00032DE0 MOV R0, R2 .text:00032DE4 LDMDB R11, {R11,SP,PC} .text:00032DE4 ; End of function wcslen .text:00032DE4 .text:00032DE8 .text:00032DE8 ; =============== S U B R O U T I N E ======================================= .text:00032DE8 .text:00032DE8 ; Attributes: bp-based frame .text:00032DE8 .text:00032DE8 WEAK wmemcpy .text:00032DE8 wmemcpy ; CODE XREF: _IO_wdefault_pbackfail+140p .text:00032DE8 ; save_for_wbackup+C0p ... .text:00032DE8 MOV R12, SP ; Alternative name is '__wmemcpy' .text:00032DEC STMFD SP!, {R11,R12,LR,PC} .text:00032DF0 SUB R11, R12, #4 .text:00032DF4 MOV R2, R2,LSL#2 .text:00032DF8 BL memcpy .text:00032DFC LDMDB R11, {R11,SP,PC} .text:00032DFC ; End of function wmemcpy .text:00032DFC .text:00032E00 .text:00032E00 ; =============== S U B R O U T I N E ======================================= .text:00032E00 .text:00032E00 ; Attributes: bp-based frame .text:00032E00 .text:00032E00 WEAK wmemmove .text:00032E00 wmemmove ; CODE XREF: group_number_0+48p .text:00032E00 ; save_for_wbackup+114p .text:00032E00 MOV R12, SP .text:00032E04 STMFD SP!, {R11,R12,LR,PC} .text:00032E08 SUB R11, R12, #4 .text:00032E0C MOV R2, R2,LSL#2 .text:00032E10 BL memmove .text:00032E14 LDMDB R11, {R11,SP,PC} .text:00032E14 ; End of function wmemmove .text:00032E14 .text:00032E18 .text:00032E18 ; =============== S U B R O U T I N E ======================================= .text:00032E18 .text:00032E18 ; Attributes: bp-based frame .text:00032E18 .text:00032E18 WEAK wmempcpy .text:00032E18 wmempcpy ; CODE XREF: _IO_wdefault_xsputn+5Cp .text:00032E18 ; _IO_wdefault_xsgetn+50p ... .text:00032E18 MOV R12, SP ; Alternative name is '__wmempcpy' .text:00032E1C STMFD SP!, {R11,R12,LR,PC} .text:00032E20 SUB R11, R12, #4 .text:00032E24 MOV R2, R2,LSL#2 .text:00032E28 BL mempcpy .text:00032E2C LDMDB R11, {R11,SP,PC} .text:00032E2C ; End of function wmempcpy .text:00032E2C .text:00032E30 .text:00032E30 ; =============== S U B R O U T I N E ======================================= .text:00032E30 .text:00032E30 ; Attributes: bp-based frame .text:00032E30 .text:00032E30 WEAK btowc .text:00032E30 btowc ; CODE XREF: vfwprintf+1C90p .text:00032E30 ; vfwprintf:loc_2D860p .text:00032E30 .text:00032E30 var_60 = -0x60 .text:00032E30 var_50 = -0x50 .text:00032E30 var_4C = -0x4C .text:00032E30 var_48 = -0x48 .text:00032E30 var_44 = -0x44 .text:00032E30 var_41 = -0x41 .text:00032E30 var_40 = -0x40 .text:00032E30 var_3C = -0x3C .text:00032E30 var_38 = -0x38 .text:00032E30 var_34 = -0x34 .text:00032E30 var_30 = -0x30 .text:00032E30 var_2C = -0x2C .text:00032E30 var_28 = -0x28 .text:00032E30 var_20 = -0x20 .text:00032E30 .text:00032E30 MOV R12, SP .text:00032E34 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00032E38 SUB R11, R12, #4 .text:00032E3C MOV R4, R0 .text:00032E40 ADD R3, R4, #0x80 .text:00032E44 CMN R4, #1 .text:00032E48 MOVNE R2, #0 .text:00032E4C MOVEQ R2, #1 .text:00032E50 CMP R3, #0x180 .text:00032E54 MOVCC R5, R2 .text:00032E58 MOVCS R5, #1 .text:00032E5C CMP R5, #0 .text:00032E60 SUB R3, R11, #-var_41 .text:00032E64 SUB SP, SP, #0x44 .text:00032E68 STR R3, [R11,#var_4C] .text:00032E6C MOVNE R0, 0xFFFFFFFF .text:00032E70 BNE loc_32F2C .text:00032E74 SUB R3, R11, #-var_48 .text:00032E78 STR R3, [R11,#var_40] .text:00032E7C SUB R2, R11, #-var_44 .text:00032E80 STR R2, [R11,#var_3C] .text:00032E84 STR R5, [R11,#var_34] .text:00032E88 MOV R6, #1 .text:00032E8C STR R6, [R11,#var_30] .text:00032E90 STR R6, [R11,#var_38] .text:00032E94 SUB R0, R11, #-var_28 .text:00032E98 STR R0, [R11,#var_2C] .text:00032E9C STR R5, [R11,#var_20] .text:00032EA0 MOV R1, R5 .text:00032EA4 MOV R2, #8 .text:00032EA8 SUB R7, R11, #-var_40 .text:00032EAC BL memset .text:00032EB0 LDR R3, =__wcsmbs_last_locale .text:00032EB4 LDR R2, =_nl_current_LC_CTYPE .text:00032EB8 LDR R1, [R3] .text:00032EBC LDR R0, [R2] .text:00032EC0 CMP R1, R0 .text:00032EC4 BEQ loc_32ECC .text:00032EC8 BL __wcsmbs_load_conv .text:00032ECC .text:00032ECC loc_32ECC ; CODE XREF: btowc+94j .text:00032ECC STRB R4, [R11,#var_41] .text:00032ED0 LDR R4, =__wcsmbs_gconv_fcts .text:00032ED4 LDR R3, [R4] .text:00032ED8 LDR R0, [R3,#0x14] .text:00032EDC BL _dl_mcount_wrapper_check .text:00032EE0 STR R5, [SP,#0x60+var_60] .text:00032EE4 SUB R3, R11, #-var_50 .text:00032EE8 STMFA SP, {R3,R5,R6} .text:00032EEC MOV R1, R7 .text:00032EF0 LDR R3, [R11,#var_4C] .text:00032EF4 SUB R2, R11, #-var_4C .text:00032EF8 LDR R12, [R4] .text:00032EFC ADD R3, R3, #1 .text:00032F00 MOV R0, R12 .text:00032F04 MOV LR, PC .text:00032F08 LDR PC, [R12,#0x14] .text:00032F0C MOV R3, R0 .text:00032F10 CMP R0, #0 .text:00032F14 CMPNE R3, #5 .text:00032F18 BEQ loc_32F28 .text:00032F1C CMP R3, #4 .text:00032F20 MOVNE R3, 0xFFFFFFFF .text:00032F24 STRNE R3, [R11,#var_48] .text:00032F28 .text:00032F28 loc_32F28 ; CODE XREF: btowc+E8j .text:00032F28 LDR R0, [R11,#var_48] .text:00032F2C .text:00032F2C loc_32F2C ; CODE XREF: btowc+40j .text:00032F2C B locret_32F3C .text:00032F2C ; --------------------------------------------------------------------------- .text:00032F30 off_32F30 DCD __wcsmbs_last_locale ; DATA XREF: btowc+80r .text:00032F34 off_32F34 DCD _nl_current_LC_CTYPE ; DATA XREF: btowc+84r .text:00032F38 off_32F38 DCD __wcsmbs_gconv_fcts ; DATA XREF: btowc+A0r .text:00032F3C ; --------------------------------------------------------------------------- .text:00032F3C .text:00032F3C locret_32F3C ; CODE XREF: btowc:loc_32F2Cj .text:00032F3C LDMDB R11, {R4-R7,R11,SP,PC} .text:00032F3C ; End of function btowc .text:00032F3C .text:00032F40 .text:00032F40 ; =============== S U B R O U T I N E ======================================= .text:00032F40 .text:00032F40 ; Attributes: bp-based frame .text:00032F40 .text:00032F40 WEAK mbrlen .text:00032F40 mbrlen ; CODE XREF: vfprintf+138p .text:00032F40 ; vfprintf+1BC4p ... .text:00032F40 MOV R12, SP ; Alternative name is '__mbrlen' .text:00032F44 STMFD SP!, {R4,R11,R12,LR,PC} .text:00032F48 SUB R11, R12, #4 .text:00032F4C MOV R4, R0 .text:00032F50 MOV R0, #0 .text:00032F54 MOV LR, R1 .text:00032F58 CMP R2, R0 .text:00032F5C LDR R12, =internal .text:00032F60 MOV R1, R4 .text:00032F64 MOVNE R3, R2 .text:00032F68 MOVEQ R3, R12 .text:00032F6C MOV R2, LR .text:00032F70 BL mbrtowc .text:00032F74 LDMDB R11, {R4,R11,SP,PC} .text:00032F74 ; End of function mbrlen .text:00032F74 .text:00032F74 ; --------------------------------------------------------------------------- .text:00032F78 off_32F78 DCD internal ; DATA XREF: mbrlen+1Cr .text:00032F7C .text:00032F7C ; =============== S U B R O U T I N E ======================================= .text:00032F7C .text:00032F7C ; Attributes: bp-based frame .text:00032F7C .text:00032F7C WEAK mbrtowc .text:00032F7C mbrtowc ; CODE XREF: _IO_vfscanf+EF0p .text:00032F7C ; _IO_vfscanf+15BCp ... .text:00032F7C .text:00032F7C var_68 = -0x68 .text:00032F7C var_58 = -0x58 .text:00032F7C var_54 = -0x54 .text:00032F7C var_50 = -0x50 .text:00032F7C var_4C = -0x4C .text:00032F7C var_48 = -0x48 .text:00032F7C var_44 = -0x44 .text:00032F7C var_40 = -0x40 .text:00032F7C var_3C = -0x3C .text:00032F7C var_38 = -0x38 .text:00032F7C var_2C = -0x2C .text:00032F7C .text:00032F7C MOV R12, SP ; Alternative name is '__mbrtowc' .text:00032F80 STMFD SP!, {R4-R12,LR,PC} .text:00032F84 SUB R11, R12, #4 .text:00032F88 MOV R6, #0 .text:00032F8C SUB SP, SP, #0x40 .text:00032F90 STR R6, [R11,#var_40] .text:00032F94 MOV R7, #1 .text:00032F98 STR R7, [R11,#var_3C] .text:00032F9C MOV R10, R2 .text:00032FA0 STR R7, [R11,#var_44] .text:00032FA4 SUB R12, R11, #-var_50 .text:00032FA8 CMP R0, R6 .text:00032FAC MOVNE R5, R0 .text:00032FB0 MOVEQ R5, R12 .text:00032FB4 CMP R3, R6 .text:00032FB8 LDR R2, =state_0 .text:00032FBC MOV R9, R6 .text:00032FC0 STR R6, [R11,#var_2C] .text:00032FC4 MOVEQ R3, R2 .text:00032FC8 SUBS R8, R1, #0 .text:00032FCC STR R3, [R11,#var_38] .text:00032FD0 MOVEQ R5, R12 .text:00032FD4 MOVEQ R6, R7 .text:00032FD8 MOVEQ R10, R7 .text:00032FDC LDREQ R8, =dword_58874 .text:00032FE0 STR R5, [R11,#var_4C] .text:00032FE4 LDR R3, =__wcsmbs_last_locale .text:00032FE8 LDR R2, =_nl_current_LC_CTYPE .text:00032FEC LDR R1, [R3] .text:00032FF0 LDR R0, [R2] .text:00032FF4 ADD R3, R5, #4 .text:00032FF8 STR R3, [R11,#var_48] .text:00032FFC CMP R1, R0 .text:00033000 BEQ loc_33008 .text:00033004 BL __wcsmbs_load_conv .text:00033008 .text:00033008 loc_33008 ; CODE XREF: mbrtowc+84j .text:00033008 STR R8, [R11,#var_54] .text:0003300C LDR R4, =__wcsmbs_gconv_fcts .text:00033010 LDR R3, [R4] .text:00033014 LDR R0, [R3,#0x14] .text:00033018 BL _dl_mcount_wrapper_check .text:0003301C STR R9, [SP,#0x68+var_68] .text:00033020 SUB R3, R11, #-var_58 .text:00033024 STMFA SP, {R3,R6,R7} .text:00033028 SUB R1, R11, #-var_4C .text:0003302C LDR R3, [R11,#var_54] .text:00033030 SUB R2, R11, #-var_54 .text:00033034 LDR R12, [R4] .text:00033038 ADD R3, R3, R10 .text:0003303C MOV R0, R12 .text:00033040 MOV LR, PC .text:00033044 LDR PC, [R12,#0x14] .text:00033048 MOV R3, R0 .text:0003304C CMP R0, #0 .text:00033050 CMPNE R3, #4 .text:00033054 BEQ loc_33080 .text:00033058 CMP R3, #6 .text:0003305C CMPNE R3, #7 .text:00033060 BEQ loc_33080 .text:00033064 CMP R3, #5 .text:00033068 BEQ loc_33080 .text:0003306C LDR R0, =aStatus__gconv_ ; "status == __GCONV_OK || status == __GCO"... .text:00033070 LDR R1, =aMbrtowc_c ; "mbrtowc.c" .text:00033074 LDR R3, =a__mbrtowc ; "__mbrtowc" .text:00033078 MOV R2, #0x54 .text:0003307C BL __assert_fail .text:00033080 ; --------------------------------------------------------------------------- .text:00033080 .text:00033080 loc_33080 ; CODE XREF: mbrtowc+D8j .text:00033080 ; mbrtowc+E4j ... .text:00033080 CMP R3, #4 .text:00033084 CMPNE R3, #0 .text:00033088 BEQ loc_33094 .text:0003308C CMP R3, #5 .text:00033090 BNE loc_33100 .text:00033094 .text:00033094 loc_33094 ; CODE XREF: mbrtowc+10Cj .text:00033094 LDR R3, [R11,#var_4C] .text:00033098 CMP R3, R5 .text:0003309C BEQ loc_330D0 .text:000330A0 LDR R4, [R5] .text:000330A4 CMP R4, #0 .text:000330A8 BNE loc_330D0 .text:000330AC LDR R0, [R11,#var_38] .text:000330B0 BL mbsinit .text:000330B4 CMP R0, #0 .text:000330B8 BNE loc_3311C .text:000330BC LDR R0, =a__mbsinitData_ ; "__mbsinit (data.__statep)" .text:000330C0 LDR R1, =aMbrtowc_c ; "mbrtowc.c" .text:000330C4 LDR R3, =a__mbrtowc ; "__mbrtowc" .text:000330C8 MOV R2, #0x5D .text:000330CC BL __assert_fail .text:000330D0 ; --------------------------------------------------------------------------- .text:000330D0 .text:000330D0 loc_330D0 ; CODE XREF: mbrtowc+120j .text:000330D0 ; mbrtowc+12Cj .text:000330D0 LDR R3, [R11,#var_54] .text:000330D4 RSB R4, R8, R3 .text:000330D8 B loc_3311C .text:000330D8 ; --------------------------------------------------------------------------- .text:000330DC off_330DC DCD state_0 ; DATA XREF: mbrtowc+3Cr .text:000330E0 off_330E0 DCD dword_58874 ; DATA XREF: mbrtowc+60r .text:000330E4 off_330E4 DCD __wcsmbs_last_locale ; DATA XREF: mbrtowc+68r .text:000330E8 off_330E8 DCD _nl_current_LC_CTYPE ; DATA XREF: mbrtowc+6Cr .text:000330EC off_330EC DCD __wcsmbs_gconv_fcts ; DATA XREF: mbrtowc+90r .text:000330F0 off_330F0 DCD aStatus__gconv_ ; DATA XREF: mbrtowc+F0r .text:000330F0 ; "status == __GCONV_OK || status == __GCO"... .text:000330F4 off_330F4 DCD aMbrtowc_c ; DATA XREF: mbrtowc+F4r .text:000330F4 ; mbrtowc+144r .text:000330F4 ; "mbrtowc.c" .text:000330F8 off_330F8 DCD a__mbrtowc ; DATA XREF: mbrtowc+F8r .text:000330F8 ; mbrtowc+148r .text:000330F8 ; "__mbrtowc" .text:000330FC off_330FC DCD a__mbsinitData_ ; DATA XREF: mbrtowc+140r .text:000330FC ; "__mbsinit (data.__statep)" .text:00033100 ; --------------------------------------------------------------------------- .text:00033100 .text:00033100 loc_33100 ; CODE XREF: mbrtowc+114j .text:00033100 CMP R3, #7 .text:00033104 MOV R4, 0xFFFFFFFE .text:00033108 BEQ loc_3311C .text:0003310C ADD R4, R4, #1 .text:00033110 BL __errno_location .text:00033114 MOV R3, #0x54 .text:00033118 STR R3, [R0] .text:0003311C .text:0003311C loc_3311C ; CODE XREF: mbrtowc+13Cj .text:0003311C ; mbrtowc+15Cj ... .text:0003311C MOV R0, R4 .text:00033120 LDMDB R11, {R4-R11,SP,PC} .text:00033120 ; End of function mbrtowc .text:00033120 .text:00033124 .text:00033124 ; =============== S U B R O U T I N E ======================================= .text:00033124 .text:00033124 ; Attributes: bp-based frame .text:00033124 .text:00033124 WEAK wcrtomb .text:00033124 wcrtomb ; CODE XREF: vfprintf+176Cp .text:00033124 ; vfprintf+3AC4p .text:00033124 .text:00033124 var_5C = -0x5C .text:00033124 var_50 = -0x50 .text:00033124 var_4C = -0x4C .text:00033124 var_48 = -0x48 .text:00033124 var_44 = -0x44 .text:00033124 var_40 = -0x40 .text:00033124 var_3C = -0x3C .text:00033124 var_38 = -0x38 .text:00033124 var_34 = -0x34 .text:00033124 var_30 = -0x30 .text:00033124 var_2C = -0x2C .text:00033124 var_20 = -0x20 .text:00033124 .text:00033124 MOV R12, SP .text:00033128 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0003312C SUB R11, R12, #4 .text:00033130 SUB SP, SP, #0x40 .text:00033134 STR R1, [R11,#var_48] .text:00033138 MOV R6, R0 .text:0003313C MOV R4, R2 .text:00033140 BL __ctype_get_mb_cur_max .text:00033144 MOV R5, #0 .text:00033148 STR R5, [R11,#var_34] .text:0003314C MOV R7, #1 .text:00033150 STR R7, [R11,#var_30] .text:00033154 STR R7, [R11,#var_38] .text:00033158 BIC R0, R0, #0xE0000000 .text:0003315C ADD R0, R0, #3 .text:00033160 BIC R0, R0, #0xC0000003 .text:00033164 RSB SP, R0, SP .text:00033168 LDR R3, =state_1 .text:0003316C CMP R4, R5 .text:00033170 STR R5, [R11,#var_20] .text:00033174 MOVEQ R4, R3 .text:00033178 CMP R6, R5 .text:0003317C ADD R3, SP, #0x5C+var_4C .text:00033180 STR R4, [R11,#var_2C] .text:00033184 MOVEQ R6, R3 .text:00033188 STREQ R5, [R11,#var_48] .text:0003318C STR R6, [R11,#var_40] .text:00033190 BL __ctype_get_mb_cur_max .text:00033194 LDR R3, =__wcsmbs_last_locale .text:00033198 LDR R2, =_nl_current_LC_CTYPE .text:0003319C LDR R1, [R3] .text:000331A0 LDR R2, [R2] .text:000331A4 ADD R0, R6, R0 .text:000331A8 STR R0, [R11,#var_3C] .text:000331AC CMP R1, R2 .text:000331B0 BEQ loc_331BC .text:000331B4 MOV R0, R2 .text:000331B8 BL __wcsmbs_load_conv .text:000331BC .text:000331BC loc_331BC ; CODE XREF: wcrtomb+8Cj .text:000331BC LDR R3, [R11,#var_48] .text:000331C0 CMP R3, #0 .text:000331C4 BNE loc_33220 .text:000331C8 LDR R4, =__wcsmbs_gconv_fcts .text:000331CC LDR R3, [R4,#(__wcsmbs_gconv_fcts+4 - 0x6BD14)] .text:000331D0 LDR R0, [R3,#0x14] .text:000331D4 BL _dl_mcount_wrapper_check .text:000331D8 STR R5, [SP,#0x5C+var_5C] .text:000331DC SUB R3, R11, #-var_44 .text:000331E0 STMFA SP, {R3,R7} .text:000331E4 STR R7, [SP,#0x5C+var_50] .text:000331E8 SUB R1, R11, #-var_40 .text:000331EC MOV R2, R5 .text:000331F0 LDR R12, [R4,#(__wcsmbs_gconv_fcts+4 - 0x6BD14)] .text:000331F4 MOV R3, R5 .text:000331F8 MOV R0, R12 .text:000331FC MOV LR, PC .text:00033200 LDR PC, [R12,#0x14] .text:00033204 MOV R2, R0 .text:00033208 CMP R2, #4 .text:0003320C CMPNE R0, #0 .text:00033210 LDREQ R3, [R11,#var_40] .text:00033214 STREQB R5, [R3],#1 .text:00033218 STREQ R3, [R11,#var_40] .text:0003321C B loc_33268 .text:00033220 ; --------------------------------------------------------------------------- .text:00033220 .text:00033220 loc_33220 ; CODE XREF: wcrtomb+A0j .text:00033220 SUB R3, R11, #-var_48 .text:00033224 STR R3, [R11,#var_4C] .text:00033228 LDR R4, =__wcsmbs_gconv_fcts .text:0003322C LDR R3, [R4,#(__wcsmbs_gconv_fcts+4 - 0x6BD14)] .text:00033230 LDR R0, [R3,#0x14] .text:00033234 BL _dl_mcount_wrapper_check .text:00033238 STR R5, [SP,#0x5C+var_5C] .text:0003323C SUB R3, R11, #-var_44 .text:00033240 STMFA SP, {R3,R5,R7} .text:00033244 SUB R1, R11, #-var_40 .text:00033248 LDR R3, [R11,#var_4C] .text:0003324C SUB R2, R11, #-var_4C .text:00033250 LDR R12, [R4,#(__wcsmbs_gconv_fcts+4 - 0x6BD14)] .text:00033254 ADD R3, R3, #4 .text:00033258 MOV R0, R12 .text:0003325C MOV LR, PC .text:00033260 LDR PC, [R12,#0x14] .text:00033264 MOV R2, R0 .text:00033268 .text:00033268 loc_33268 ; CODE XREF: wcrtomb+F8j .text:00033268 CMP R2, #0 .text:0003326C CMPNE R2, #4 .text:00033270 BEQ loc_3329C .text:00033274 CMP R2, #6 .text:00033278 CMPNE R2, #7 .text:0003327C BEQ loc_3329C .text:00033280 CMP R2, #5 .text:00033284 BEQ loc_3329C .text:00033288 LDR R0, =aStatus__gcon_0 ; "status == __GCONV_OK || status == __GCO"... .text:0003328C LDR R1, =aWcrtomb_c ; "wcrtomb.c" .text:00033290 LDR R3, =a__wcrtomb ; "__wcrtomb" .text:00033294 MOV R2, #0x61 .text:00033298 BL __assert_fail .text:0003329C ; --------------------------------------------------------------------------- .text:0003329C .text:0003329C loc_3329C ; CODE XREF: wcrtomb+14Cj .text:0003329C ; wcrtomb+158j ... .text:0003329C CMP R2, #4 .text:000332A0 CMPNE R2, #0 .text:000332A4 BEQ loc_332B0 .text:000332A8 CMP R2, #5 .text:000332AC BNE loc_332D8 .text:000332B0 .text:000332B0 loc_332B0 ; CODE XREF: wcrtomb+180j .text:000332B0 LDR R3, [R11,#var_40] .text:000332B4 RSB R4, R6, R3 .text:000332B8 B loc_332E8 .text:000332B8 ; --------------------------------------------------------------------------- .text:000332BC off_332BC DCD state_1 ; DATA XREF: wcrtomb+44r .text:000332C0 off_332C0 DCD __wcsmbs_last_locale ; DATA XREF: wcrtomb+70r .text:000332C4 off_332C4 DCD _nl_current_LC_CTYPE ; DATA XREF: wcrtomb+74r .text:000332C8 off_332C8 DCD __wcsmbs_gconv_fcts ; DATA XREF: wcrtomb+A4r .text:000332C8 ; wcrtomb+104r .text:000332CC off_332CC DCD aStatus__gcon_0 ; DATA XREF: wcrtomb+164r .text:000332CC ; "status == __GCONV_OK || status == __GCO"... .text:000332D0 off_332D0 DCD aWcrtomb_c ; DATA XREF: wcrtomb+168r .text:000332D0 ; "wcrtomb.c" .text:000332D4 off_332D4 DCD a__wcrtomb ; DATA XREF: wcrtomb+16Cr .text:000332D4 ; "__wcrtomb" .text:000332D8 ; --------------------------------------------------------------------------- .text:000332D8 .text:000332D8 loc_332D8 ; CODE XREF: wcrtomb+188j .text:000332D8 MOV R4, 0xFFFFFFFF .text:000332DC BL __errno_location .text:000332E0 MOV R3, #0x54 .text:000332E4 STR R3, [R0] .text:000332E8 .text:000332E8 loc_332E8 ; CODE XREF: wcrtomb+194j .text:000332E8 MOV R0, R4 .text:000332EC LDMDB R11, {R4-R7,R11,SP,PC} .text:000332EC ; End of function wcrtomb .text:000332EC .text:000332F0 .text:000332F0 ; =============== S U B R O U T I N E ======================================= .text:000332F0 .text:000332F0 ; Attributes: bp-based frame .text:000332F0 .text:000332F0 WEAK mbsrtowcs .text:000332F0 mbsrtowcs ; CODE XREF: vfwprintf+1EFCp .text:000332F0 ; vfwprintf+47ACp .text:000332F0 .text:000332F0 var_170 = -0x170 .text:000332F0 var_164 = -0x164 .text:000332F0 var_160 = -0x160 .text:000332F0 var_15C = -0x15C .text:000332F0 var_158 = -0x158 .text:000332F0 var_154 = -0x154 .text:000332F0 var_14C = -0x14C .text:000332F0 var_4C = -0x4C .text:000332F0 var_48 = -0x48 .text:000332F0 var_44 = -0x44 .text:000332F0 var_40 = -0x40 .text:000332F0 var_3C = -0x3C .text:000332F0 var_38 = -0x38 .text:000332F0 var_2C = -0x2C .text:000332F0 .text:000332F0 MOV R12, SP ; Alternative name is '__mbsrtowcs' .text:000332F4 STMFD SP!, {R4-R12,LR,PC} .text:000332F8 SUB R11, R12, #4 .text:000332FC MOV R10, #0 .text:00033300 SUB SP, SP, #0x148 .text:00033304 STR R10, [R11,#var_40] .text:00033308 MOV R9, #1 .text:0003330C STR R9, [R11,#var_3C] .text:00033310 STR R9, [R11,#var_44] .text:00033314 STR R10, [R11,#var_2C] .text:00033318 LDR R5, =state_2 .text:0003331C CMP R3, R10 .text:00033320 LDR R12, =__wcsmbs_last_locale .text:00033324 MOV R6, R0 .text:00033328 LDR LR, =_nl_current_LC_CTYPE .text:0003332C MOV R8, R1 .text:00033330 LDR R4, [R12] .text:00033334 MOV R7, R2 .text:00033338 LDR LR, [LR] .text:0003333C MOVEQ R3, R5 .text:00033340 STR R3, [R11,#var_38] .text:00033344 CMP R4, LR .text:00033348 BEQ loc_33354 .text:0003334C MOV R0, LR .text:00033350 BL __wcsmbs_load_conv .text:00033354 .text:00033354 loc_33354 ; CODE XREF: mbsrtowcs+58j .text:00033354 LDR R3, =__wcsmbs_gconv_fcts .text:00033358 CMP R6, #0 .text:0003335C LDR R5, [R3] .text:00033360 BNE loc_33430 .text:00033364 LDR R0, [R8] .text:00033368 STR R0, [R11,#var_158] .text:0003336C BL strlen .text:00033370 SUB R3, R11, #-var_158 .text:00033374 STR R3, [R11,#var_160] .text:00033378 LDR R1, [R11,#var_38] .text:0003337C MOV R7, R6 .text:00033380 LDR LR, [R11,#var_158] .text:00033384 MOV R10, R7 .text:00033388 LDMIA R1, {R3,R4} .text:0003338C SUB R2, R11, #-var_154 .text:00033390 STMIA R2, {R3,R4} .text:00033394 SUB R12, R11, #-var_4C .text:00033398 SUB R9, R11, #-var_15C .text:0003339C SUB R6, R11, #-var_14C .text:000333A0 STR R2, [R11,#var_38] .text:000333A4 ADD R3, LR, R0 .text:000333A8 ADD R8, R3, #1 .text:000333AC STR R12, [R11,#var_48] .text:000333B0 .text:000333B0 loc_333B0 ; CODE XREF: mbsrtowcs+108j .text:000333B0 STR R6, [R11,#var_4C] .text:000333B4 LDR R0, [R5,#0x14] .text:000333B8 BL _dl_mcount_wrapper_check .text:000333BC STR R10, [SP,#0x170+var_170] .text:000333C0 STMFA SP, {R9,R10} .text:000333C4 MOV R4, #1 .text:000333C8 STR R4, [SP,#0x170+var_164] .text:000333CC MOV R0, R5 .text:000333D0 SUB R1, R11, #-var_4C .text:000333D4 LDR R2, [R11,#var_160] .text:000333D8 MOV R3, R8 .text:000333DC MOV LR, PC .text:000333E0 LDR PC, [R5,#0x14] .text:000333E4 MOV R4, R0 .text:000333E8 LDR R2, [R11,#var_4C] .text:000333EC CMP R4, #5 .text:000333F0 RSB R3, R6, R2 .text:000333F4 ADD R7, R7, R3,ASR#2 .text:000333F8 BEQ loc_333B0 .text:000333FC CMP R4, #4 .text:00033400 CMPNE R4, #0 .text:00033404 BNE loc_33500 .text:00033408 LDR R3, [R2,#-4] .text:0003340C CMP R3, #0 .text:00033410 BEQ loc_33428 .text:00033414 LDR R0, =aWchar_tData___ ; "((wchar_t *) data.__outbuf)[-1] == L'\\0"... .text:00033418 LDR R1, =aMbsrtowcs_c ; "mbsrtowcs.c" .text:0003341C LDR R3, =a__mbsrtowcs ; "__mbsrtowcs" .text:00033420 MOV R2, #0x5C .text:00033424 BL __assert_fail .text:00033428 ; --------------------------------------------------------------------------- .text:00033428 .text:00033428 loc_33428 ; CODE XREF: mbsrtowcs+120j .text:00033428 SUB R7, R7, #1 .text:0003342C B loc_33500 .text:00033430 ; --------------------------------------------------------------------------- .text:00033430 .text:00033430 loc_33430 ; CODE XREF: mbsrtowcs+70j .text:00033430 LDR R4, [R8] .text:00033434 BL __ctype_get_mb_cur_max .text:00033438 MUL R1, R0, R7 .text:0003343C MOV R0, R4 .text:00033440 BL strnlen .text:00033444 STR R6, [R11,#var_4C] .text:00033448 ADD R3, R6, R7,LSL#2 .text:0003344C STR R3, [R11,#var_48] .text:00033450 LDR R4, [R8] .text:00033454 ADD R4, R4, R0 .text:00033458 LDR R0, [R5,#0x14] .text:0003345C ADD R4, R4, #1 .text:00033460 BL _dl_mcount_wrapper_check .text:00033464 STR R10, [SP,#0x170+var_170] .text:00033468 SUB R3, R11, #-var_15C .text:0003346C STMFA SP, {R3,R10} .text:00033470 STR R9, [SP,#0x170+var_164] .text:00033474 MOV R0, R5 .text:00033478 SUB R1, R11, #-var_4C .text:0003347C MOV R2, R8 .text:00033480 MOV R3, R4 .text:00033484 MOV LR, PC .text:00033488 LDR PC, [R5,#0x14] .text:0003348C MOV R4, R0 .text:00033490 LDR R3, [R11,#var_4C] .text:00033494 CMP R4, #4 .text:00033498 CMPNE R0, #0 .text:0003349C RSB R3, R6, R3 .text:000334A0 MOV R7, R3,ASR#2 .text:000334A4 BNE loc_33500 .text:000334A8 ADD R3, R6, R7,LSL#2 .text:000334AC LDR R5, [R3,#-4] .text:000334B0 CMP R5, #0 .text:000334B4 BNE loc_33500 .text:000334B8 CMP R7, #0 .text:000334BC BNE loc_334D4 .text:000334C0 LDR R0, =aResult0 ; "result > 0" .text:000334C4 LDR R1, =aMbsrtowcs_c ; "mbsrtowcs.c" .text:000334C8 LDR R3, =a__mbsrtowcs ; "__mbsrtowcs" .text:000334CC MOV R2, #0x7A .text:000334D0 BL __assert_fail .text:000334D4 ; --------------------------------------------------------------------------- .text:000334D4 .text:000334D4 loc_334D4 ; CODE XREF: mbsrtowcs+1CCj .text:000334D4 LDR R0, [R11,#var_38] .text:000334D8 BL mbsinit .text:000334DC CMP R0, #0 .text:000334E0 BNE loc_334F8 .text:000334E4 LDR R0, =a__mbsinitDat_0 ; "__mbsinit (data.__statep)" .text:000334E8 LDR R1, =aMbsrtowcs_c ; "mbsrtowcs.c" .text:000334EC LDR R3, =a__mbsrtowcs ; "__mbsrtowcs" .text:000334F0 MOV R2, #0x7B .text:000334F4 BL __assert_fail .text:000334F8 ; --------------------------------------------------------------------------- .text:000334F8 .text:000334F8 loc_334F8 ; CODE XREF: mbsrtowcs+1F0j .text:000334F8 SUB R7, R7, #1 .text:000334FC STR R5, [R8] .text:00033500 .text:00033500 loc_33500 ; CODE XREF: mbsrtowcs+114j .text:00033500 ; mbsrtowcs+13Cj ... .text:00033500 CMP R4, #0 .text:00033504 CMPNE R4, #4 .text:00033508 BEQ loc_3355C .text:0003350C CMP R4, #6 .text:00033510 CMPNE R4, #7 .text:00033514 BEQ loc_3355C .text:00033518 CMP R4, #5 .text:0003351C BEQ loc_3355C .text:00033520 LDR R0, =aStatus__gcon_1 ; "status == __GCONV_OK || status == __GCO"... .text:00033524 LDR R1, =aMbsrtowcs_c ; "mbsrtowcs.c" .text:00033528 LDR R3, =a__mbsrtowcs ; "__mbsrtowcs" .text:0003352C MOV R2, #0x86 .text:00033530 BL __assert_fail .text:00033530 ; --------------------------------------------------------------------------- .text:00033534 off_33534 DCD state_2 ; DATA XREF: mbsrtowcs+28r .text:00033538 off_33538 DCD __wcsmbs_last_locale ; DATA XREF: mbsrtowcs+30r .text:0003353C off_3353C DCD _nl_current_LC_CTYPE ; DATA XREF: mbsrtowcs+38r .text:00033540 off_33540 DCD __wcsmbs_gconv_fcts ; DATA XREF: mbsrtowcs:loc_33354r .text:00033544 off_33544 DCD aWchar_tData___ ; DATA XREF: mbsrtowcs+124r .text:00033544 ; "((wchar_t *) data.__outbuf)[-1] == L'\\0"... .text:00033548 off_33548 DCD aMbsrtowcs_c ; DATA XREF: mbsrtowcs+128r .text:00033548 ; mbsrtowcs+1D4r ... .text:00033548 ; "mbsrtowcs.c" .text:0003354C off_3354C DCD a__mbsrtowcs ; DATA XREF: mbsrtowcs+12Cr .text:0003354C ; mbsrtowcs+1D8r ... .text:0003354C ; "__mbsrtowcs" .text:00033550 off_33550 DCD aResult0 ; DATA XREF: mbsrtowcs+1D0r .text:00033550 ; "result > 0" .text:00033554 off_33554 DCD a__mbsinitDat_0 ; DATA XREF: mbsrtowcs+1F4r .text:00033554 ; "__mbsinit (data.__statep)" .text:00033558 off_33558 DCD aStatus__gcon_1 ; DATA XREF: mbsrtowcs+230r .text:00033558 ; "status == __GCONV_OK || status == __GCO"... .text:0003355C ; --------------------------------------------------------------------------- .text:0003355C .text:0003355C loc_3355C ; CODE XREF: mbsrtowcs+218j .text:0003355C ; mbsrtowcs+224j ... .text:0003355C CMP R4, #0 .text:00033560 CMPNE R4, #5 .text:00033564 BEQ loc_33584 .text:00033568 CMP R4, #4 .text:0003356C CMPNE R4, #7 .text:00033570 BEQ loc_33584 .text:00033574 MOV R7, 0xFFFFFFFF .text:00033578 BL __errno_location .text:0003357C MOV R3, #0x54 .text:00033580 STR R3, [R0] .text:00033584 .text:00033584 loc_33584 ; CODE XREF: mbsrtowcs+274j .text:00033584 ; mbsrtowcs+280j .text:00033584 MOV R0, R7 .text:00033588 LDMDB R11, {R4-R11,SP,PC} .text:00033588 ; End of function mbsrtowcs .text:00033588 .text:0003358C .text:0003358C ; =============== S U B R O U T I N E ======================================= .text:0003358C .text:0003358C ; Attributes: bp-based frame .text:0003358C .text:0003358C WEAK wcsrtombs .text:0003358C wcsrtombs ; CODE XREF: vfprintf+19E4p .text:0003358C ; vfprintf+1A0Cp ... .text:0003358C .text:0003358C var_178 = -0x178 .text:0003358C var_170 = -0x170 .text:0003358C var_16C = -0x16C .text:0003358C var_168 = -0x168 .text:0003358C var_164 = -0x164 .text:0003358C var_160 = -0x160 .text:0003358C var_15C = -0x15C .text:0003358C var_158 = -0x158 .text:0003358C var_154 = -0x154 .text:0003358C var_14C = -0x14C .text:0003358C var_4C = -0x4C .text:0003358C var_48 = -0x48 .text:0003358C var_44 = -0x44 .text:0003358C var_40 = -0x40 .text:0003358C var_3C = -0x3C .text:0003358C var_38 = -0x38 .text:0003358C var_2C = -0x2C .text:0003358C .text:0003358C MOV R12, SP ; Alternative name is '__wcsrtombs' .text:00033590 STMFD SP!, {R4-R12,LR,PC} .text:00033594 SUB R11, R12, #4 .text:00033598 MOV R8, #0 .text:0003359C SUB SP, SP, #0x150 .text:000335A0 STR R8, [R11,#var_40] .text:000335A4 MOV R4, #1 .text:000335A8 STR R4, [R11,#var_3C] .text:000335AC STR R4, [R11,#var_44] .text:000335B0 STR R8, [R11,#var_2C] .text:000335B4 LDR R5, =state_3 .text:000335B8 LDR R12, =__wcsmbs_last_locale .text:000335BC CMP R3, R8 .text:000335C0 LDR LR, =_nl_current_LC_CTYPE .text:000335C4 MOV R7, R0 .text:000335C8 LDR R4, [R12] .text:000335CC MOV R10, R1 .text:000335D0 LDR LR, [LR] .text:000335D4 MOVEQ R3, R5 .text:000335D8 STR R3, [R11,#var_38] .text:000335DC CMP R4, LR .text:000335E0 MOV R4, R2 .text:000335E4 BEQ loc_335F0 .text:000335E8 MOV R0, LR .text:000335EC BL __wcsmbs_load_conv .text:000335F0 .text:000335F0 loc_335F0 ; CODE XREF: wcsrtombs+58j .text:000335F0 LDR R3, =__wcsmbs_gconv_fcts .text:000335F4 CMP R7, #0 .text:000335F8 LDR R6, [R3,#(__wcsmbs_gconv_fcts+4 - 0x6BD14)] .text:000335FC BNE loc_336D8 .text:00033600 LDR R0, [R10] .text:00033604 BL wcslen .text:00033608 LDR R1, [R10] .text:0003360C SUB R5, R11, #-var_158 .text:00033610 STR R5, [R11,#var_164] .text:00033614 SUB R3, R11, #-var_14C .text:00033618 STR R3, [R11,#var_168] .text:0003361C STR R1, [R11,#var_158] .text:00033620 LDR R2, [R11,#var_38] .text:00033624 MOV R8, R7 .text:00033628 LDMIA R2, {R4,R5} .text:0003362C SUB R3, R11, #-var_154 .text:00033630 STMIA R3, {R4,R5} .text:00033634 MOV R9, R8 .text:00033638 SUB R12, R11, #-var_4C .text:0003363C SUB R10, R11, #-var_15C .text:00033640 STR R3, [R11,#var_38] .text:00033644 ADD R1, R1, R0,LSL#2 .text:00033648 ADD R7, R1, #4 .text:0003364C STR R12, [R11,#var_48] .text:00033650 .text:00033650 loc_33650 ; CODE XREF: wcsrtombs+114j .text:00033650 LDR R5, [R11,#var_168] .text:00033654 STR R5, [R11,#var_4C] .text:00033658 LDR R0, [R6,#0x14] .text:0003365C BL _dl_mcount_wrapper_check .text:00033660 STMEA SP, {R9,R10} .text:00033664 STR R9, [SP,#0x178+var_170] .text:00033668 MOV R12, #1 .text:0003366C STR R12, [SP,#0x178+var_16C] .text:00033670 MOV R0, R6 .text:00033674 SUB R1, R11, #-var_4C .text:00033678 LDR R2, [R11,#var_164] .text:0003367C MOV R3, R7 .text:00033680 MOV LR, PC .text:00033684 LDR PC, [R6,#0x14] .text:00033688 LDR R2, [R11,#var_4C] .text:0003368C MOV R5, R0 .text:00033690 LDR R1, [R11,#var_168] .text:00033694 CMP R5, #5 .text:00033698 RSB R3, R1, R2 .text:0003369C ADD R8, R8, R3 .text:000336A0 BEQ loc_33650 .text:000336A4 CMP R5, #4 .text:000336A8 CMPNE R5, #0 .text:000336AC BNE loc_3379C .text:000336B0 LDRB R3, [R2,#-1] .text:000336B4 CMP R3, #0 .text:000336B8 BEQ loc_336D0 .text:000336BC LDR R0, =aData___outbuf1 ; "data.__outbuf[-1] == '\\0'" .text:000336C0 LDR R1, =aWcsrtombs_c ; "wcsrtombs.c" .text:000336C4 LDR R3, =a__wcsrtombs ; "__wcsrtombs" .text:000336C8 MOV R2, #0x5E .text:000336CC BL __assert_fail .text:000336D0 ; --------------------------------------------------------------------------- .text:000336D0 .text:000336D0 loc_336D0 ; CODE XREF: wcsrtombs+12Cj .text:000336D0 SUB R8, R8, #1 .text:000336D4 B loc_3379C .text:000336D8 ; --------------------------------------------------------------------------- .text:000336D8 .text:000336D8 loc_336D8 ; CODE XREF: wcsrtombs+70j .text:000336D8 LDR R0, [R10] .text:000336DC MOV R1, R4 .text:000336E0 BL wcsnlen .text:000336E4 STR R7, [R11,#var_4C] .text:000336E8 ADD R3, R7, R4 .text:000336EC STR R3, [R11,#var_48] .text:000336F0 LDR R4, [R10] .text:000336F4 ADD R4, R4, R0,LSL#2 .text:000336F8 LDR R0, [R6,#0x14] .text:000336FC ADD R4, R4, #4 .text:00033700 BL _dl_mcount_wrapper_check .text:00033704 STR R8, [SP,#0x178+var_178] .text:00033708 SUB R3, R11, #-var_160 .text:0003370C STMFA SP, {R3,R8} .text:00033710 MOV R3, #1 .text:00033714 STR R3, [SP,#0x178+var_16C] .text:00033718 MOV R0, R6 .text:0003371C SUB R1, R11, #-var_4C .text:00033720 MOV R2, R10 .text:00033724 MOV R3, R4 .text:00033728 MOV LR, PC .text:0003372C LDR PC, [R6,#0x14] .text:00033730 MOV R5, R0 .text:00033734 LDR R3, [R11,#var_4C] .text:00033738 CMP R5, #4 .text:0003373C CMPNE R0, #0 .text:00033740 RSB R8, R7, R3 .text:00033744 BNE loc_3379C .text:00033748 LDRB R4, [R3,#-1] .text:0003374C CMP R4, #0 .text:00033750 BNE loc_3379C .text:00033754 CMP R3, R7 .text:00033758 BNE loc_33770 .text:0003375C LDR R0, =aData___outbufU ; "data.__outbuf != (unsigned char *) dst" .text:00033760 LDR R1, =aWcsrtombs_c ; "wcsrtombs.c" .text:00033764 LDR R3, =a__wcsrtombs ; "__wcsrtombs" .text:00033768 MOV R2, #0x7B .text:0003376C BL __assert_fail .text:00033770 ; --------------------------------------------------------------------------- .text:00033770 .text:00033770 loc_33770 ; CODE XREF: wcsrtombs+1CCj .text:00033770 LDR R0, [R11,#var_38] .text:00033774 BL mbsinit .text:00033778 CMP R0, #0 .text:0003377C BNE loc_33794 .text:00033780 LDR R0, =a__mbsinitDat_1 ; "__mbsinit (data.__statep)" .text:00033784 LDR R1, =aWcsrtombs_c ; "wcsrtombs.c" .text:00033788 LDR R3, =a__wcsrtombs ; "__wcsrtombs" .text:0003378C MOV R2, #0x7C .text:00033790 BL __assert_fail .text:00033794 ; --------------------------------------------------------------------------- .text:00033794 .text:00033794 loc_33794 ; CODE XREF: wcsrtombs+1F0j .text:00033794 SUB R8, R8, #1 .text:00033798 STR R4, [R10] .text:0003379C .text:0003379C loc_3379C ; CODE XREF: wcsrtombs+120j .text:0003379C ; wcsrtombs+148j ... .text:0003379C CMP R5, #0 .text:000337A0 CMPNE R5, #4 .text:000337A4 BEQ loc_337F8 .text:000337A8 CMP R5, #6 .text:000337AC CMPNE R5, #7 .text:000337B0 BEQ loc_337F8 .text:000337B4 CMP R5, #5 .text:000337B8 BEQ loc_337F8 .text:000337BC LDR R0, =aStatus__gcon_2 ; "status == __GCONV_OK || status == __GCO"... .text:000337C0 LDR R1, =aWcsrtombs_c ; "wcsrtombs.c" .text:000337C4 LDR R3, =a__wcsrtombs ; "__wcsrtombs" .text:000337C8 MOV R2, #0x87 .text:000337CC BL __assert_fail .text:000337CC ; --------------------------------------------------------------------------- .text:000337D0 off_337D0 DCD state_3 ; DATA XREF: wcsrtombs+28r .text:000337D4 off_337D4 DCD __wcsmbs_last_locale ; DATA XREF: wcsrtombs+2Cr .text:000337D8 off_337D8 DCD _nl_current_LC_CTYPE ; DATA XREF: wcsrtombs+34r .text:000337DC off_337DC DCD __wcsmbs_gconv_fcts ; DATA XREF: wcsrtombs:loc_335F0r .text:000337E0 off_337E0 DCD aData___outbuf1 ; DATA XREF: wcsrtombs+130r .text:000337E0 ; "data.__outbuf[-1] == '\\0'" .text:000337E4 off_337E4 DCD aWcsrtombs_c ; DATA XREF: wcsrtombs+134r .text:000337E4 ; wcsrtombs+1D4r ... .text:000337E4 ; "wcsrtombs.c" .text:000337E8 off_337E8 DCD a__wcsrtombs ; DATA XREF: wcsrtombs+138r .text:000337E8 ; wcsrtombs+1D8r ... .text:000337E8 ; "__wcsrtombs" .text:000337EC off_337EC DCD aData___outbufU ; DATA XREF: wcsrtombs+1D0r .text:000337EC ; "data.__outbuf != (unsigned char *) dst" .text:000337F0 off_337F0 DCD a__mbsinitDat_1 ; DATA XREF: wcsrtombs+1F4r .text:000337F0 ; "__mbsinit (data.__statep)" .text:000337F4 off_337F4 DCD aStatus__gcon_2 ; DATA XREF: wcsrtombs+230r .text:000337F4 ; "status == __GCONV_OK || status == __GCO"... .text:000337F8 ; --------------------------------------------------------------------------- .text:000337F8 .text:000337F8 loc_337F8 ; CODE XREF: wcsrtombs+218j .text:000337F8 ; wcsrtombs+224j ... .text:000337F8 CMP R5, #0 .text:000337FC CMPNE R5, #5 .text:00033800 BEQ loc_3381C .text:00033804 CMP R5, #4 .text:00033808 BEQ loc_3381C .text:0003380C MOV R8, 0xFFFFFFFF .text:00033810 BL __errno_location .text:00033814 MOV R3, #0x54 .text:00033818 STR R3, [R0] .text:0003381C .text:0003381C loc_3381C ; CODE XREF: wcsrtombs+274j .text:0003381C ; wcsrtombs+27Cj .text:0003381C MOV R0, R8 .text:00033820 LDMDB R11, {R4-R11,SP,PC} .text:00033820 ; End of function wcsrtombs .text:00033820 .text:00033824 .text:00033824 ; =============== S U B R O U T I N E ======================================= .text:00033824 .text:00033824 ; Attributes: bp-based frame .text:00033824 .text:00033824 WEAK mbsnrtowcs .text:00033824 mbsnrtowcs ; CODE XREF: vfprintf+1908p .text:00033824 ; vfprintf+3C8Cp .text:00033824 .text:00033824 var_16C = -0x16C .text:00033824 var_160 = -0x160 .text:00033824 var_15C = -0x15C .text:00033824 var_158 = -0x158 .text:00033824 var_154 = -0x154 .text:00033824 var_150 = -0x150 .text:00033824 var_14C = -0x14C .text:00033824 var_4C = -0x4C .text:00033824 var_48 = -0x48 .text:00033824 var_44 = -0x44 .text:00033824 var_40 = -0x40 .text:00033824 var_3C = -0x3C .text:00033824 var_38 = -0x38 .text:00033824 var_2C = -0x2C .text:00033824 arg_0 = 4 .text:00033824 .text:00033824 MOV R12, SP ; Alternative name is '__mbsnrtowcs' .text:00033828 STMFD SP!, {R4-R12,LR,PC} .text:0003382C SUB R11, R12, #4 .text:00033830 MOV R4, #0 .text:00033834 SUB SP, SP, #0x144 .text:00033838 STR R4, [R11,#var_40] .text:0003383C MOV R12, #1 .text:00033840 STR R12, [R11,#var_3C] .text:00033844 STR R12, [R11,#var_44] .text:00033848 MOV R6, R0 .text:0003384C LDR LR, =state_4 .text:00033850 MOV R10, R1 .text:00033854 LDR R12, [R11,#arg_0] .text:00033858 MOV R7, R3 .text:0003385C STR R4, [R11,#var_2C] .text:00033860 CMP R12, R4 .text:00033864 MOVEQ R12, LR .text:00033868 CMP R2, #0 .text:0003386C STR R12, [R11,#var_38] .text:00033870 MOVEQ R0, R4 .text:00033874 BEQ locret_33A8C .text:00033878 LDR R0, [R10] .text:0003387C SUB R1, R2, #1 .text:00033880 BL strnlen .text:00033884 LDR R3, =__wcsmbs_last_locale .text:00033888 LDR R2, =_nl_current_LC_CTYPE .text:0003388C LDR R1, [R3] .text:00033890 LDR R2, [R2] .text:00033894 LDR R3, [R10] .text:00033898 CMP R1, R2 .text:0003389C ADD R3, R3, R0 .text:000338A0 ADD R9, R3, #1 .text:000338A4 BEQ loc_338B0 .text:000338A8 MOV R0, R2 .text:000338AC BL __wcsmbs_load_conv .text:000338B0 .text:000338B0 loc_338B0 ; CODE XREF: mbsnrtowcs+80j .text:000338B0 LDR R3, =__wcsmbs_gconv_fcts .text:000338B4 CMP R6, #0 .text:000338B8 LDR R5, [R3] .text:000338BC BNE loc_33954 .text:000338C0 SUB R3, R11, #-var_4C .text:000338C4 STR R3, [R11,#var_48] .text:000338C8 SUB R3, R11, #-var_150 .text:000338CC STR R3, [R11,#var_15C] .text:000338D0 SUB R12, R11, #-var_154 .text:000338D4 STR R12, [R11,#var_158] .text:000338D8 MOV R7, R6 .text:000338DC SUB R6, R11, #-var_14C .text:000338E0 MOV R8, R7 .text:000338E4 LDR R3, [R10] .text:000338E8 MOV R10, #1 .text:000338EC STR R3, [R11,#var_150] .text:000338F0 .text:000338F0 loc_338F0 ; CODE XREF: mbsnrtowcs+110j .text:000338F0 STR R6, [R11,#var_4C] .text:000338F4 LDR R0, [R5,#0x14] .text:000338F8 BL _dl_mcount_wrapper_check .text:000338FC STR R8, [SP,#0x16C+var_16C] .text:00033900 LDR R3, [R11,#var_158] .text:00033904 STMFA SP, {R3,R8,R10} .text:00033908 MOV R0, R5 .text:0003390C SUB R1, R11, #-var_4C .text:00033910 LDR R2, [R11,#var_15C] .text:00033914 MOV R3, R9 .text:00033918 MOV LR, PC .text:0003391C LDR PC, [R5,#0x14] .text:00033920 MOV R4, R0 .text:00033924 LDR R2, [R11,#var_4C] .text:00033928 CMP R4, #5 .text:0003392C RSB R3, R6, R2 .text:00033930 ADD R7, R7, R3,ASR#2 .text:00033934 BEQ loc_338F0 .text:00033938 CMP R4, #4 .text:0003393C CMPNE R4, #0 .text:00033940 BNE loc_33A08 .text:00033944 LDR R3, [R2,#-4] .text:00033948 CMP R3, #0 .text:0003394C SUBEQ R7, R7, #1 .text:00033950 B loc_33A08 .text:00033954 ; --------------------------------------------------------------------------- .text:00033954 .text:00033954 loc_33954 ; CODE XREF: mbsnrtowcs+98j .text:00033954 STR R6, [R11,#var_4C] .text:00033958 ADD R3, R6, R7,LSL#2 .text:0003395C STR R3, [R11,#var_48] .text:00033960 LDR R0, [R5,#0x14] .text:00033964 BL _dl_mcount_wrapper_check .text:00033968 STR R4, [SP,#0x16C+var_16C] .text:0003396C SUB R3, R11, #-var_154 .text:00033970 STMFA SP, {R3,R4} .text:00033974 MOV R12, #1 .text:00033978 STR R12, [SP,#0x16C+var_160] .text:0003397C MOV R0, R5 .text:00033980 SUB R1, R11, #-var_4C .text:00033984 MOV R2, R10 .text:00033988 MOV R3, R9 .text:0003398C MOV LR, PC .text:00033990 LDR PC, [R5,#0x14] .text:00033994 MOV R4, R0 .text:00033998 LDR R3, [R11,#var_4C] .text:0003399C CMP R4, #4 .text:000339A0 CMPNE R0, #0 .text:000339A4 RSB R3, R6, R3 .text:000339A8 MOV R7, R3,ASR#2 .text:000339AC BNE loc_33A08 .text:000339B0 CMP R7, #0 .text:000339B4 BNE loc_339CC .text:000339B8 LDR R0, =aResult0_0 ; "result > 0" .text:000339BC LDR R1, =aMbsnrtowcs_c ; "mbsnrtowcs.c" .text:000339C0 LDR R3, =a__mbsnrtowcs ; "__mbsnrtowcs" .text:000339C4 MOV R2, #0x72 .text:000339C8 BL __assert_fail .text:000339CC ; --------------------------------------------------------------------------- .text:000339CC .text:000339CC loc_339CC ; CODE XREF: mbsnrtowcs+190j .text:000339CC ADD R3, R6, R7,LSL#2 .text:000339D0 LDR R5, [R3,#-4] .text:000339D4 CMP R5, #0 .text:000339D8 BNE loc_33A08 .text:000339DC LDR R0, [R11,#var_38] .text:000339E0 BL mbsinit .text:000339E4 CMP R0, #0 .text:000339E8 BNE loc_33A00 .text:000339EC LDR R0, =a__mbsinitDat_2 ; "__mbsinit (data.__statep)" .text:000339F0 LDR R1, =aMbsnrtowcs_c ; "mbsnrtowcs.c" .text:000339F4 LDR R3, =a__mbsnrtowcs ; "__mbsnrtowcs" .text:000339F8 MOV R2, #0x75 .text:000339FC BL __assert_fail .text:00033A00 ; --------------------------------------------------------------------------- .text:00033A00 .text:00033A00 loc_33A00 ; CODE XREF: mbsnrtowcs+1C4j .text:00033A00 SUB R7, R7, #1 .text:00033A04 STR R5, [R10] .text:00033A08 .text:00033A08 loc_33A08 ; CODE XREF: mbsnrtowcs+11Cj .text:00033A08 ; mbsnrtowcs+12Cj ... .text:00033A08 CMP R4, #0 .text:00033A0C CMPNE R4, #4 .text:00033A10 BEQ loc_33A60 .text:00033A14 CMP R4, #6 .text:00033A18 CMPNE R4, #7 .text:00033A1C BEQ loc_33A60 .text:00033A20 CMP R4, #5 .text:00033A24 BEQ loc_33A60 .text:00033A28 LDR R0, =aStatus__gcon_3 ; "status == __GCONV_OK || status == __GCO"... .text:00033A2C LDR R1, =aMbsnrtowcs_c ; "mbsnrtowcs.c" .text:00033A30 LDR R3, =a__mbsnrtowcs ; "__mbsnrtowcs" .text:00033A34 MOV R2, #0x80 .text:00033A38 BL __assert_fail .text:00033A38 ; --------------------------------------------------------------------------- .text:00033A3C off_33A3C DCD state_4 ; DATA XREF: mbsnrtowcs+28r .text:00033A40 off_33A40 DCD __wcsmbs_last_locale ; DATA XREF: mbsnrtowcs+60r .text:00033A44 off_33A44 DCD _nl_current_LC_CTYPE ; DATA XREF: mbsnrtowcs+64r .text:00033A48 off_33A48 DCD __wcsmbs_gconv_fcts ; DATA XREF: mbsnrtowcs:loc_338B0r .text:00033A4C off_33A4C DCD aResult0_0 ; DATA XREF: mbsnrtowcs+194r .text:00033A4C ; "result > 0" .text:00033A50 off_33A50 DCD aMbsnrtowcs_c ; DATA XREF: mbsnrtowcs+198r .text:00033A50 ; mbsnrtowcs+1CCr ... .text:00033A50 ; "mbsnrtowcs.c" .text:00033A54 off_33A54 DCD a__mbsnrtowcs ; DATA XREF: mbsnrtowcs+19Cr .text:00033A54 ; mbsnrtowcs+1D0r ... .text:00033A54 ; "__mbsnrtowcs" .text:00033A58 off_33A58 DCD a__mbsinitDat_2 ; DATA XREF: mbsnrtowcs+1C8r .text:00033A58 ; "__mbsinit (data.__statep)" .text:00033A5C off_33A5C DCD aStatus__gcon_3 ; DATA XREF: mbsnrtowcs+204r .text:00033A5C ; "status == __GCONV_OK || status == __GCO"... .text:00033A60 ; --------------------------------------------------------------------------- .text:00033A60 .text:00033A60 loc_33A60 ; CODE XREF: mbsnrtowcs+1ECj .text:00033A60 ; mbsnrtowcs+1F8j ... .text:00033A60 CMP R4, #0 .text:00033A64 CMPNE R4, #5 .text:00033A68 BEQ loc_33A88 .text:00033A6C CMP R4, #4 .text:00033A70 CMPNE R4, #7 .text:00033A74 BEQ loc_33A88 .text:00033A78 MOV R7, 0xFFFFFFFF .text:00033A7C BL __errno_location .text:00033A80 MOV R3, #0x54 .text:00033A84 STR R3, [R0] .text:00033A88 .text:00033A88 loc_33A88 ; CODE XREF: mbsnrtowcs+244j .text:00033A88 ; mbsnrtowcs+250j .text:00033A88 MOV R0, R7 .text:00033A8C .text:00033A8C locret_33A8C ; CODE XREF: mbsnrtowcs+50j .text:00033A8C LDMDB R11, {R4-R11,SP,PC} .text:00033A8C ; End of function mbsnrtowcs .text:00033A8C .text:00033A90 .text:00033A90 ; =============== S U B R O U T I N E ======================================= .text:00033A90 .text:00033A90 ; Attributes: bp-based frame .text:00033A90 .text:00033A90 WEAK wcsnlen .text:00033A90 wcsnlen ; CODE XREF: vfwprintf+1F30p .text:00033A90 ; vfwprintf+47DCp ... .text:00033A90 MOV R12, SP ; Alternative name is '__wcsnlen' .text:00033A94 STMFD SP!, {R11,R12,LR,PC} .text:00033A98 SUB R11, R12, #4 .text:00033A9C MOV R12, #0 .text:00033AA0 LDR R3, [R0,R12,LSL#2] .text:00033AA4 CMP R3, R12 .text:00033AA8 CMPNE R1, R12 .text:00033AAC BEQ loc_33B20 .text:00033AB0 .text:00033AB0 loc_33AB0 ; CODE XREF: wcsnlen+8Cj .text:00033AB0 ADD R12, R12, #1 .text:00033AB4 LDR R3, [R0,R12,LSL#2] .text:00033AB8 CMP R3, #0 .text:00033ABC BEQ loc_33AC8 .text:00033AC0 SUBS R1, R1, #1 .text:00033AC4 BNE loc_33AD0 .text:00033AC8 .text:00033AC8 loc_33AC8 ; CODE XREF: wcsnlen+2Cj .text:00033AC8 ; wcsnlen+4Cj ... .text:00033AC8 MOV R0, R12 .text:00033ACC LDMDB R11, {R11,SP,PC} .text:00033AD0 ; --------------------------------------------------------------------------- .text:00033AD0 .text:00033AD0 loc_33AD0 ; CODE XREF: wcsnlen+34j .text:00033AD0 ADD R12, R12, #1 .text:00033AD4 LDR R3, [R0,R12,LSL#2] .text:00033AD8 CMP R3, #0 .text:00033ADC BEQ loc_33AC8 .text:00033AE0 SUBS R1, R1, #1 .text:00033AE4 BEQ loc_33AC8 .text:00033AE8 ADD R12, R12, #1 .text:00033AEC LDR R3, [R0,R12,LSL#2] .text:00033AF0 CMP R3, #0 .text:00033AF4 BEQ loc_33AC8 .text:00033AF8 SUBS R1, R1, #1 .text:00033AFC BEQ loc_33AC8 .text:00033B00 ADD R12, R12, #1 .text:00033B04 SUBS R1, R1, #1 .text:00033B08 LDR R2, [R0,R12,LSL#2] .text:00033B0C MOVEQ R3, #0 .text:00033B10 MOVNE R3, #1 .text:00033B14 CMP R3, #0 .text:00033B18 CMPNE R2, #0 .text:00033B1C BNE loc_33AB0 .text:00033B20 .text:00033B20 loc_33B20 ; CODE XREF: wcsnlen+1Cj .text:00033B20 MOV R0, R12 .text:00033B24 LDMDB R11, {R11,SP,PC} .text:00033B24 ; End of function wcsnlen .text:00033B24 .text:00033B28 .text:00033B28 ; =============== S U B R O U T I N E ======================================= .text:00033B28 .text:00033B28 ; Attributes: bp-based frame .text:00033B28 .text:00033B28 WEAK wcschrnul .text:00033B28 wcschrnul ; CODE XREF: vfwprintf+E0p .text:00033B28 ; vfwprintf+2084p ... .text:00033B28 MOV R12, SP .text:00033B2C STMFD SP!, {R11,R12,LR,PC} .text:00033B30 LDR R3, [R0] .text:00033B34 SUB R11, R12, #4 .text:00033B38 CMP R3, #0 .text:00033B3C LDMEQDB R11, {R11,SP,PC} .text:00033B40 CMP R3, R1 .text:00033B44 LDMEQDB R11, {R11,SP,PC} .text:00033B48 .text:00033B48 loc_33B48 ; CODE XREF: wcschrnul+30j .text:00033B48 LDR R3, [R0,#4]! .text:00033B4C CMP R3, #0 .text:00033B50 LDMEQDB R11, {R11,SP,PC} .text:00033B54 CMP R3, R1 .text:00033B58 BNE loc_33B48 .text:00033B5C LDMDB R11, {R11,SP,PC} .text:00033B5C ; End of function wcschrnul .text:00033B5C .text:00033B60 .text:00033B60 ; =============== S U B R O U T I N E ======================================= .text:00033B60 .text:00033B60 ; Attributes: bp-based frame .text:00033B60 .text:00033B60 EXPORT __wcsmbs_load_conv .text:00033B60 __wcsmbs_load_conv ; CODE XREF: btowc+98p .text:00033B60 ; mbrtowc+88p ... .text:00033B60 .text:00033B60 var_40 = -0x40 .text:00033B60 var_3C = -0x3C .text:00033B60 var_38 = -0x38 .text:00033B60 var_34 = -0x34 .text:00033B60 var_30 = -0x30 .text:00033B60 var_2C = -0x2C .text:00033B60 .text:00033B60 MOV R12, SP .text:00033B64 STMFD SP!, {R4-R12,LR,PC} .text:00033B68 SUB R11, R12, #4 .text:00033B6C LDR R3, =0 .text:00033B70 MOV R8, R0 .text:00033B74 CMP R3, #0 .text:00033B78 SUB SP, SP, #0x18 .text:00033B7C BEQ loc_33B8C .text:00033B80 LDR R0, =lock_2 .text:00033B84 MOV LR, PC .text:00033B88 MOV PC, R3 .text:00033B8C .text:00033B8C loc_33B8C ; CODE XREF: __wcsmbs_load_conv+1Cj .text:00033B8C LDR R2, =__wcsmbs_last_locale .text:00033B90 LDR R3, [R2] .text:00033B94 CMP R3, R8 .text:00033B98 BEQ loc_33E24 .text:00033B9C LDR R2, [R8] .text:00033BA0 LDR R3, =_nl_C_name .text:00033BA4 CMP R2, R3 .text:00033BA8 BNE loc_33BC4 .text:00033BAC .text:00033BAC loc_33BAC ; CODE XREF: __wcsmbs_load_conv+274j .text:00033BAC ; __wcsmbs_load_conv+284j .text:00033BAC LDR R3, =to_wc .text:00033BB0 LDR R1, =__wcsmbs_gconv_fcts .text:00033BB4 STR R3, [R1] .text:00033BB8 LDR R2, =to_mb .text:00033BBC STR R2, [R1,#(__wcsmbs_gconv_fcts+4 - 0x6BD14)] .text:00033BC0 B loc_33E1C .text:00033BC4 ; --------------------------------------------------------------------------- .text:00033BC4 .text:00033BC4 loc_33BC4 ; CODE XREF: __wcsmbs_load_conv+48j .text:00033BC4 LDR R2, =__wcsmbs_gconv_fcts .text:00033BC8 MOV R1, #1 .text:00033BCC LDR R0, [R2,#(__wcsmbs_gconv_fcts+4 - 0x6BD14)] .text:00033BD0 MOV R6, #0 .text:00033BD4 BL __gconv_close_transform .text:00033BD8 LDR R3, =__wcsmbs_gconv_fcts .text:00033BDC LDR R0, [R3] .text:00033BE0 MOV R1, #1 .text:00033BE4 BL __gconv_close_transform .text:00033BE8 LDR R5, [R8,#0x58] .text:00033BEC LDR R10, [R8,#0x14] .text:00033BF0 MOV R4, R5 .text:00033BF4 CMP R10, R6 .text:00033BF8 BEQ loc_33C14 .text:00033BFC LDR R0, =aTranslit_0 ; "TRANSLIT" .text:00033C00 CMP R0, R6 .text:00033C04 BEQ loc_33C14 .text:00033C08 BL strlen .text:00033C0C MOV LR, R0 .text:00033C10 B loc_33C18 .text:00033C14 ; --------------------------------------------------------------------------- .text:00033C14 .text:00033C14 loc_33C14 ; CODE XREF: __wcsmbs_load_conv+98j .text:00033C14 ; __wcsmbs_load_conv+A4j .text:00033C14 MOV LR, #0 .text:00033C18 .text:00033C18 loc_33C18 ; CODE XREF: __wcsmbs_load_conv+B0j .text:00033C18 ADD R2, LR, #3 .text:00033C1C SUB R9, R11, #-var_2C .text:00033C20 LDRB R3, [R5] .text:00033C24 SUB R1, R11, #-var_30 .text:00033C28 STR R1, [R11,#var_3C] .text:00033C2C CMP R3, #0 .text:00033C30 BEQ loc_33C48 .text:00033C34 .text:00033C34 loc_33C34 ; CODE XREF: __wcsmbs_load_conv+E4j .text:00033C34 CMP R3, #0x2F .text:00033C38 ADDEQ R6, R6, #1 .text:00033C3C LDRB R3, [R4,#1]! .text:00033C40 CMP R3, #0 .text:00033C44 BNE loc_33C34 .text:00033C48 .text:00033C48 loc_33C48 ; CODE XREF: __wcsmbs_load_conv+D0j .text:00033C48 RSB R3, R5, R4 .text:00033C4C ADD R3, R3, R2 .text:00033C50 ADD R3, R3, #3 .text:00033C54 BIC R3, R3, #3 .text:00033C58 RSB SP, R3, SP .text:00033C5C MOV R4, R5 .text:00033C60 ADD R7, SP, #0x40+var_3C .text:00033C64 LDRB R3, [R4] .text:00033C68 MOV R0, R7 .text:00033C6C CMP R3, #0 .text:00033C70 BEQ loc_33C94 .text:00033C74 LDR R12, =__ctype_toupper .text:00033C78 .text:00033C78 loc_33C78 ; CODE XREF: __wcsmbs_load_conv+130j .text:00033C78 LDRB R1, [R4] .text:00033C7C LDR R3, [R12] .text:00033C80 LDRB R2, [R3,R1,LSL#2] .text:00033C84 STRB R2, [R0],#1 .text:00033C88 LDRB R3, [R4,#1]! .text:00033C8C CMP R3, #0 .text:00033C90 BNE loc_33C78 .text:00033C94 .text:00033C94 loc_33C94 ; CODE XREF: __wcsmbs_load_conv+110j .text:00033C94 CMP R6, #1 .text:00033C98 BHI loc_33CC4 .text:00033C9C CMP R6, #0 .text:00033CA0 MOV R3, #0x2F .text:00033CA4 STRB R3, [R0],#1 .text:00033CA8 BNE loc_33CC4 .text:00033CAC CMP R10, #0 .text:00033CB0 STRB R3, [R0],#1 .text:00033CB4 BEQ loc_33CC4 .text:00033CB8 LDR R1, =aTranslit_0 ; "TRANSLIT" .text:00033CBC MOV R2, LR .text:00033CC0 BL mempcpy .text:00033CC4 .text:00033CC4 loc_33CC4 ; CODE XREF: __wcsmbs_load_conv+138j .text:00033CC4 ; __wcsmbs_load_conv+148j ... .text:00033CC4 MOV R4, #0 .text:00033CC8 STRB R4, [R0] .text:00033CCC STR R4, [SP,#0x40+var_40] .text:00033CD0 LDR R0, =aInternal ; "INTERNAL" .text:00033CD4 MOV R1, R7 .text:00033CD8 LDR R3, [R11,#var_3C] .text:00033CDC MOV R2, R9 .text:00033CE0 BL __gconv_find_transform .text:00033CE4 CMP R0, #0 .text:00033CE8 BNE loc_33D3C .text:00033CEC LDR R12, [R11,#var_30] .text:00033CF0 MOV LR, R0 .text:00033CF4 LDR R3, [R11,#var_2C] .text:00033CF8 CMP R0, R12 .text:00033CFC MOV R1, R12 .text:00033D00 BCS loc_33D20 .text:00033D04 ADD R2, R3, #0x30 .text:00033D08 .text:00033D08 loc_33D08 ; CODE XREF: __wcsmbs_load_conv+1BCj .text:00033D08 LDR R3, [R2],#0x38 .text:00033D0C ADD LR, LR, #1 .text:00033D10 CMP R3, #0 .text:00033D14 ADDNE R0, R0, #1 .text:00033D18 CMP LR, R12 .text:00033D1C BCC loc_33D08 .text:00033D20 .text:00033D20 loc_33D20 ; CODE XREF: __wcsmbs_load_conv+1A0j .text:00033D20 CMP R0, #1 .text:00033D24 BLS loc_33D38 .text:00033D28 LDR R0, [R11,#var_2C] .text:00033D2C BL __gconv_close_transform .text:00033D30 MOV R3, #0 .text:00033D34 STR R3, [R11,#var_2C] .text:00033D38 .text:00033D38 loc_33D38 ; CODE XREF: __wcsmbs_load_conv+1C4j .text:00033D38 LDR R4, [R11,#var_2C] .text:00033D3C .text:00033D3C loc_33D3C ; CODE XREF: __wcsmbs_load_conv+188j .text:00033D3C CMP R4, #0 .text:00033D40 BEQ loc_33DC0 .text:00033D44 MOV R5, #0 .text:00033D48 STR R5, [SP,#0x40+var_40] .text:00033D4C MOV R0, R7 .text:00033D50 SUB R2, R11, #-var_34 .text:00033D54 LDR R1, =aInternal ; "INTERNAL" .text:00033D58 SUB R3, R11, #-var_38 .text:00033D5C BL __gconv_find_transform .text:00033D60 CMP R0, #0 .text:00033D64 MOVNE R3, R5 .text:00033D68 BNE loc_33DC4 .text:00033D6C LDR R12, [R11,#var_38] .text:00033D70 MOV LR, R0 .text:00033D74 LDR R3, [R11,#var_34] .text:00033D78 CMP R0, R12 .text:00033D7C MOV R1, R12 .text:00033D80 BCS loc_33DA0 .text:00033D84 ADD R2, R3, #0x30 .text:00033D88 .text:00033D88 loc_33D88 ; CODE XREF: __wcsmbs_load_conv+23Cj .text:00033D88 LDR R3, [R2],#0x38 .text:00033D8C ADD LR, LR, #1 .text:00033D90 CMP R3, #0 .text:00033D94 ADDNE R0, R0, #1 .text:00033D98 CMP LR, R12 .text:00033D9C BCC loc_33D88 .text:00033DA0 .text:00033DA0 loc_33DA0 ; CODE XREF: __wcsmbs_load_conv+220j .text:00033DA0 CMP R0, #1 .text:00033DA4 BLS loc_33DB8 .text:00033DA8 LDR R0, [R11,#var_34] .text:00033DAC BL __gconv_close_transform .text:00033DB0 MOV R3, #0 .text:00033DB4 STR R3, [R11,#var_34] .text:00033DB8 .text:00033DB8 loc_33DB8 ; CODE XREF: __wcsmbs_load_conv+244j .text:00033DB8 LDR R3, [R11,#var_34] .text:00033DBC B loc_33DC4 .text:00033DC0 ; --------------------------------------------------------------------------- .text:00033DC0 .text:00033DC0 loc_33DC0 ; CODE XREF: __wcsmbs_load_conv+1E0j .text:00033DC0 MOV R3, R4 .text:00033DC4 .text:00033DC4 loc_33DC4 ; CODE XREF: __wcsmbs_load_conv+208j .text:00033DC4 ; __wcsmbs_load_conv+25Cj .text:00033DC4 CMP R3, #0 .text:00033DC8 CMPNE R4, #0 .text:00033DCC BNE loc_33E10 .text:00033DD0 CMP R4, #0 .text:00033DD4 BEQ loc_33BAC .text:00033DD8 MOV R0, R4 .text:00033DDC MOV R1, #1 .text:00033DE0 BL __gconv_close_transform .text:00033DE4 B loc_33BAC .text:00033DE4 ; --------------------------------------------------------------------------- .text:00033DE8 off_33DE8 DCD 0 ; DATA XREF: __wcsmbs_load_conv+Cr .text:00033DEC off_33DEC DCD lock_2 ; DATA XREF: __wcsmbs_load_conv+20r .text:00033DF0 off_33DF0 DCD __wcsmbs_last_locale .text:00033DF0 ; DATA XREF: __wcsmbs_load_conv:loc_33B8Cr .text:00033DF4 off_33DF4 DCD _nl_C_name ; DATA XREF: __wcsmbs_load_conv+40r .text:00033DF8 off_33DF8 DCD to_wc ; DATA XREF: __wcsmbs_load_conv:loc_33BACr .text:00033DFC off_33DFC DCD __wcsmbs_gconv_fcts ; DATA XREF: __wcsmbs_load_conv+50r .text:00033DFC ; __wcsmbs_load_conv:loc_33BC4r ... .text:00033E00 off_33E00 DCD to_mb ; DATA XREF: __wcsmbs_load_conv+58r .text:00033E04 off_33E04 DCD aTranslit_0 ; DATA XREF: __wcsmbs_load_conv+9Cr .text:00033E04 ; __wcsmbs_load_conv+158r .text:00033E04 ; "TRANSLIT" .text:00033E08 off_33E08 DCD __ctype_toupper ; DATA XREF: __wcsmbs_load_conv+114r .text:00033E0C off_33E0C DCD aInternal ; DATA XREF: __wcsmbs_load_conv+170r .text:00033E0C ; __wcsmbs_load_conv+1F4r .text:00033E0C ; "INTERNAL" .text:00033E10 ; --------------------------------------------------------------------------- .text:00033E10 .text:00033E10 loc_33E10 ; CODE XREF: __wcsmbs_load_conv+26Cj .text:00033E10 LDR R2, =__wcsmbs_gconv_fcts .text:00033E14 STR R3, [R2,#(__wcsmbs_gconv_fcts+4 - 0x6BD14)] .text:00033E18 STR R4, [R2] .text:00033E1C .text:00033E1C loc_33E1C ; CODE XREF: __wcsmbs_load_conv+60j .text:00033E1C LDR R3, =__wcsmbs_last_locale .text:00033E20 STR R8, [R3] .text:00033E24 .text:00033E24 loc_33E24 ; CODE XREF: __wcsmbs_load_conv+38j .text:00033E24 LDR R1, =0 .text:00033E28 CMP R1, #0 .text:00033E2C BEQ locret_33E50 .text:00033E30 LDR R0, =lock_2 .text:00033E34 MOV LR, PC .text:00033E38 MOV PC, R1 .text:00033E3C B locret_33E50 .text:00033E3C ; --------------------------------------------------------------------------- .text:00033E40 off_33E40 DCD __wcsmbs_gconv_fcts ; DATA XREF: __wcsmbs_load_conv:loc_33E10r .text:00033E44 off_33E44 DCD __wcsmbs_last_locale .text:00033E44 ; DATA XREF: __wcsmbs_load_conv:loc_33E1Cr .text:00033E48 off_33E48 DCD 0 ; DATA XREF: __wcsmbs_load_conv:loc_33E24r .text:00033E4C off_33E4C DCD lock_2 ; DATA XREF: __wcsmbs_load_conv+2D0r .text:00033E50 ; --------------------------------------------------------------------------- .text:00033E50 .text:00033E50 locret_33E50 ; CODE XREF: __wcsmbs_load_conv+2CCj .text:00033E50 ; __wcsmbs_load_conv+2DCj .text:00033E50 LDMDB R11, {R4-R11,SP,PC} .text:00033E50 ; End of function __wcsmbs_load_conv .text:00033E50 .text:00033E54 .text:00033E54 ; =============== S U B R O U T I N E ======================================= .text:00033E54 .text:00033E54 ; Attributes: bp-based frame .text:00033E54 .text:00033E54 EXPORT __wcsmbs_clone_conv .text:00033E54 __wcsmbs_clone_conv ; CODE XREF: _IO_fwide+9Cp .text:00033E54 MOV R12, SP .text:00033E58 STMFD SP!, {R4,R11,R12,LR,PC} .text:00033E5C LDR R3, =__wcsmbs_last_locale .text:00033E60 LDR R2, =_nl_current_LC_CTYPE .text:00033E64 LDR R1, [R3] .text:00033E68 SUB R11, R12, #4 .text:00033E6C LDR R2, [R2] .text:00033E70 MOV R4, R0 .text:00033E74 CMP R1, R2 .text:00033E78 BEQ loc_33E84 .text:00033E7C MOV R0, R2 .text:00033E80 BL __wcsmbs_load_conv .text:00033E84 .text:00033E84 loc_33E84 ; CODE XREF: __wcsmbs_clone_conv+24j .text:00033E84 LDR R3, =0 .text:00033E88 CMP R3, #0 .text:00033E8C BEQ loc_33E9C .text:00033E90 LDR R0, =lock_2 .text:00033E94 MOV LR, PC .text:00033E98 MOV PC, R3 .text:00033E9C .text:00033E9C loc_33E9C ; CODE XREF: __wcsmbs_clone_conv+38j .text:00033E9C LDR R3, =__wcsmbs_gconv_fcts .text:00033EA0 LDMIA R3, {R1,R2} .text:00033EA4 STMIA R4, {R1,R2} .text:00033EA8 LDR R2, [R4] .text:00033EAC LDR R3, [R2] .text:00033EB0 CMP R3, #0 .text:00033EB4 LDRNE R3, [R2,#8] .text:00033EB8 ADDNE R3, R3, #1 .text:00033EBC STRNE R3, [R2,#8] .text:00033EC0 LDR R0, [R4,#4] .text:00033EC4 LDR R3, [R0] .text:00033EC8 CMP R3, #0 .text:00033ECC LDRNE R3, [R0,#8] .text:00033ED0 ADDNE R3, R3, #1 .text:00033ED4 STRNE R3, [R0,#8] .text:00033ED8 LDR R3, =0 .text:00033EDC CMP R3, #0 .text:00033EE0 LDMEQDB R11, {R4,R11,SP,PC} .text:00033EE4 LDR R0, =lock_2 .text:00033EE8 MOV LR, PC .text:00033EEC MOV PC, R3 .text:00033EF0 LDMDB R11, {R4,R11,SP,PC} .text:00033EF0 ; End of function __wcsmbs_clone_conv .text:00033EF0 .text:00033EF0 ; --------------------------------------------------------------------------- .text:00033EF4 off_33EF4 DCD __wcsmbs_last_locale ; DATA XREF: __wcsmbs_clone_conv+8r .text:00033EF8 off_33EF8 DCD _nl_current_LC_CTYPE ; DATA XREF: __wcsmbs_clone_conv+Cr .text:00033EFC off_33EFC DCD 0 ; DATA XREF: __wcsmbs_clone_conv:loc_33E84r .text:00033F00 off_33F00 DCD lock_2 ; DATA XREF: __wcsmbs_clone_conv+3Cr .text:00033F00 ; __wcsmbs_clone_conv+90r .text:00033F04 off_33F04 DCD __wcsmbs_gconv_fcts ; DATA XREF: __wcsmbs_clone_conv:loc_33E9Cr .text:00033F08 off_33F08 DCD 0 ; DATA XREF: __wcsmbs_clone_conv+84r .text:00033F0C .text:00033F0C ; =============== S U B R O U T I N E ======================================= .text:00033F0C .text:00033F0C ; Attributes: bp-based frame .text:00033F0C .text:00033F0C EXPORT __wcsmbs_named_conv .text:00033F0C __wcsmbs_named_conv ; CODE XREF: _IO_new_file_fopen+1E4p .text:00033F0C .text:00033F0C var_2C = -0x2C .text:00033F0C var_28 = -0x28 .text:00033F0C var_24 = -0x24 .text:00033F0C var_20 = -0x20 .text:00033F0C var_1C = -0x1C .text:00033F0C .text:00033F0C MOV R12, SP .text:00033F10 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00033F14 SUB R11, R12, #4 .text:00033F18 MOV R5, #0 .text:00033F1C SUB SP, SP, #0x14 .text:00033F20 STR R5, [SP,#0x2C+var_2C] .text:00033F24 MOV R6, R1 .text:00033F28 SUB R2, R11, #-var_1C .text:00033F2C MOV R4, R0 .text:00033F30 LDR R0, =aInternal ; "INTERNAL" .text:00033F34 SUB R3, R11, #-var_20 .text:00033F38 BL __gconv_find_transform .text:00033F3C CMP R0, #0 .text:00033F40 MOVNE R3, R5 .text:00033F44 BNE loc_33F98 .text:00033F48 LDR R12, [R11,#var_20] .text:00033F4C MOV LR, R0 .text:00033F50 LDR R3, [R11,#var_1C] .text:00033F54 CMP R0, R12 .text:00033F58 MOV R1, R12 .text:00033F5C BCS loc_33F7C .text:00033F60 ADD R2, R3, #0x30 .text:00033F64 .text:00033F64 loc_33F64 ; CODE XREF: __wcsmbs_named_conv+6Cj .text:00033F64 LDR R3, [R2],#0x38 .text:00033F68 ADD LR, LR, #1 .text:00033F6C CMP R3, #0 .text:00033F70 ADDNE R0, R0, #1 .text:00033F74 CMP LR, R12 .text:00033F78 BCC loc_33F64 .text:00033F7C .text:00033F7C loc_33F7C ; CODE XREF: __wcsmbs_named_conv+50j .text:00033F7C CMP R0, #1 .text:00033F80 BLS loc_33F94 .text:00033F84 LDR R0, [R11,#var_1C] .text:00033F88 BL __gconv_close_transform .text:00033F8C MOV R3, #0 .text:00033F90 STR R3, [R11,#var_1C] .text:00033F94 .text:00033F94 loc_33F94 ; CODE XREF: __wcsmbs_named_conv+74j .text:00033F94 LDR R3, [R11,#var_1C] .text:00033F98 .text:00033F98 loc_33F98 ; CODE XREF: __wcsmbs_named_conv+38j .text:00033F98 CMP R3, #0 .text:00033F9C STR R3, [R4] .text:00033FA0 BEQ loc_34034 .text:00033FA4 MOV R5, #0 .text:00033FA8 STR R5, [SP,#0x2C+var_2C] .text:00033FAC MOV R0, R6 .text:00033FB0 SUB R2, R11, #-var_24 .text:00033FB4 LDR R1, =aInternal ; "INTERNAL" .text:00033FB8 SUB R3, R11, #-var_28 .text:00033FBC BL __gconv_find_transform .text:00033FC0 CMP R0, #0 .text:00033FC4 MOVNE R3, R5 .text:00033FC8 BNE loc_3401C .text:00033FCC LDR R12, [R11,#var_28] .text:00033FD0 MOV LR, R0 .text:00033FD4 LDR R3, [R11,#var_24] .text:00033FD8 CMP R0, R12 .text:00033FDC MOV R1, R12 .text:00033FE0 BCS loc_34000 .text:00033FE4 ADD R2, R3, #0x30 .text:00033FE8 .text:00033FE8 loc_33FE8 ; CODE XREF: __wcsmbs_named_conv+F0j .text:00033FE8 LDR R3, [R2],#0x38 .text:00033FEC ADD LR, LR, #1 .text:00033FF0 CMP R3, #0 .text:00033FF4 ADDNE R0, R0, #1 .text:00033FF8 CMP LR, R12 .text:00033FFC BCC loc_33FE8 .text:00034000 .text:00034000 loc_34000 ; CODE XREF: __wcsmbs_named_conv+D4j .text:00034000 CMP R0, #1 .text:00034004 BLS loc_34018 .text:00034008 LDR R0, [R11,#var_24] .text:0003400C BL __gconv_close_transform .text:00034010 MOV R3, #0 .text:00034014 STR R3, [R11,#var_24] .text:00034018 .text:00034018 loc_34018 ; CODE XREF: __wcsmbs_named_conv+F8j .text:00034018 LDR R3, [R11,#var_24] .text:0003401C .text:0003401C loc_3401C ; CODE XREF: __wcsmbs_named_conv+BCj .text:0003401C CMP R3, #0 .text:00034020 STR R3, [R4,#4] .text:00034024 BNE loc_34034 .text:00034028 LDR R0, [R4] .text:0003402C MOV R1, #1 .text:00034030 BL __gconv_close_transform .text:00034034 .text:00034034 loc_34034 ; CODE XREF: __wcsmbs_named_conv+94j .text:00034034 ; __wcsmbs_named_conv+118j .text:00034034 LDR R2, [R4] .text:00034038 CMP R2, #0 .text:0003403C BEQ loc_3404C .text:00034040 LDR R3, [R4,#4] .text:00034044 CMP R3, #0 .text:00034048 BNE loc_34058 .text:0003404C .text:0003404C loc_3404C ; CODE XREF: __wcsmbs_named_conv+130j .text:0003404C MOV R0, #1 .text:00034050 B locret_34088 .text:00034050 ; --------------------------------------------------------------------------- .text:00034054 off_34054 DCD aInternal ; DATA XREF: __wcsmbs_named_conv+24r .text:00034054 ; __wcsmbs_named_conv+A8r .text:00034054 ; "INTERNAL" .text:00034058 ; --------------------------------------------------------------------------- .text:00034058 .text:00034058 loc_34058 ; CODE XREF: __wcsmbs_named_conv+13Cj .text:00034058 LDR R3, [R2] .text:0003405C CMP R3, #0 .text:00034060 LDRNE R3, [R2,#8] .text:00034064 ADDNE R3, R3, #1 .text:00034068 STRNE R3, [R2,#8] .text:0003406C LDR R0, [R4,#4] .text:00034070 LDR R3, [R0] .text:00034074 CMP R3, #0 .text:00034078 LDRNE R3, [R0,#8] .text:0003407C ADDNE R3, R3, #1 .text:00034080 STRNE R3, [R0,#8] .text:00034084 MOV R0, #0 .text:00034088 .text:00034088 locret_34088 ; CODE XREF: __wcsmbs_named_conv+144j .text:00034088 LDMDB R11, {R4-R6,R11,SP,PC} .text:00034088 ; End of function __wcsmbs_named_conv .text:00034088 .text:00034088 ; --------------------------------------------------------------------------- .text:0003408C ALIGN 0x10 .text:00034090 .text:00034090 ; =============== S U B R O U T I N E ======================================= .text:00034090 .text:00034090 .text:00034090 WEAK getpid .text:00034090 getpid ; CODE XREF: _dl_debug_vdprintf+6Cp .text:00034090 ; raise+10p ... .text:00034090 SVC 0x900014 .text:00034094 CMN R0, #0x1000 .text:00034098 MOVCC PC, LR .text:0003409C B __syscall_error .text:0003409C ; End of function getpid .text:0003409C .text:000340A0 .text:000340A0 ; =============== S U B R O U T I N E ======================================= .text:000340A0 .text:000340A0 ; Attributes: bp-based frame .text:000340A0 .text:000340A0 WEAK getuid .text:000340A0 getuid ; CODE XREF: __libc_init_secure+18p .text:000340A0 MOV R12, SP ; Alternative name is '__getuid' .text:000340A4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000340A8 LDR R6, =__libc_missing_32bit_uids .text:000340AC LDR R3, [R6] .text:000340B0 SUB R11, R12, #4 .text:000340B4 CMP R3, #0 .text:000340B8 BGT loc_34114 .text:000340BC BL __errno_location .text:000340C0 LDR R5, [R0] .text:000340C4 SVC 0x9000C7 .text:000340C8 MOV R4, R0 .text:000340CC CMN R4, #0x1000 .text:000340D0 BLS loc_340E4 .text:000340D4 BL __errno_location .text:000340D8 RSB R3, R4, #0 .text:000340DC MOV R4, 0xFFFFFFFF .text:000340E0 STR R3, [R0] .text:000340E4 .text:000340E4 loc_340E4 ; CODE XREF: getuid+30j .text:000340E4 CMP R4, #0 .text:000340E8 BEQ loc_340FC .text:000340EC BL __errno_location .text:000340F0 LDR R3, [R0] .text:000340F4 CMP R3, #0x26 .text:000340F8 BEQ loc_34104 .text:000340FC .text:000340FC loc_340FC ; CODE XREF: getuid+48j .text:000340FC MOV R0, R4 .text:00034100 LDMDB R11, {R4-R6,R11,SP,PC} .text:00034104 ; --------------------------------------------------------------------------- .text:00034104 .text:00034104 loc_34104 ; CODE XREF: getuid+58j .text:00034104 BL __errno_location .text:00034108 STR R5, [R0] .text:0003410C MOV R3, #1 .text:00034110 STR R3, [R6] .text:00034114 .text:00034114 loc_34114 ; CODE XREF: getuid+18j .text:00034114 SVC 0x900018 .text:00034118 MOV R4, R0 .text:0003411C CMN R4, #0x1000 .text:00034120 BLS loc_34134 .text:00034124 BL __errno_location .text:00034128 RSB R3, R4, #0 .text:0003412C MOV R4, 0xFFFFFFFF .text:00034130 STR R3, [R0] .text:00034134 .text:00034134 loc_34134 ; CODE XREF: getuid+80j .text:00034134 MOV R0, R4 .text:00034138 LDMDB R11, {R4-R6,R11,SP,PC} .text:00034138 ; End of function getuid .text:00034138 .text:00034138 ; --------------------------------------------------------------------------- .text:0003413C off_3413C DCD __libc_missing_32bit_uids ; DATA XREF: getuid+8r .text:00034140 .text:00034140 ; =============== S U B R O U T I N E ======================================= .text:00034140 .text:00034140 ; Attributes: bp-based frame .text:00034140 .text:00034140 WEAK geteuid .text:00034140 geteuid ; CODE XREF: __libc_init_secure+10p .text:00034140 MOV R12, SP ; Alternative name is '__geteuid' .text:00034144 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00034148 LDR R6, =__libc_missing_32bit_uids .text:0003414C LDR R3, [R6] .text:00034150 SUB R11, R12, #4 .text:00034154 CMP R3, #0 .text:00034158 BGT loc_341B4 .text:0003415C BL __errno_location .text:00034160 LDR R5, [R0] .text:00034164 SVC 0x9000C9 .text:00034168 MOV R4, R0 .text:0003416C CMN R4, #0x1000 .text:00034170 BLS loc_34184 .text:00034174 BL __errno_location .text:00034178 RSB R3, R4, #0 .text:0003417C MOV R4, 0xFFFFFFFF .text:00034180 STR R3, [R0] .text:00034184 .text:00034184 loc_34184 ; CODE XREF: geteuid+30j .text:00034184 CMP R4, #0 .text:00034188 BEQ loc_3419C .text:0003418C BL __errno_location .text:00034190 LDR R3, [R0] .text:00034194 CMP R3, #0x26 .text:00034198 BEQ loc_341A4 .text:0003419C .text:0003419C loc_3419C ; CODE XREF: geteuid+48j .text:0003419C MOV R0, R4 .text:000341A0 LDMDB R11, {R4-R6,R11,SP,PC} .text:000341A4 ; --------------------------------------------------------------------------- .text:000341A4 .text:000341A4 loc_341A4 ; CODE XREF: geteuid+58j .text:000341A4 BL __errno_location .text:000341A8 STR R5, [R0] .text:000341AC MOV R3, #1 .text:000341B0 STR R3, [R6] .text:000341B4 .text:000341B4 loc_341B4 ; CODE XREF: geteuid+18j .text:000341B4 SVC 0x900031 .text:000341B8 MOV R4, R0 .text:000341BC CMN R4, #0x1000 .text:000341C0 BLS loc_341D4 .text:000341C4 BL __errno_location .text:000341C8 RSB R3, R4, #0 .text:000341CC MOV R4, 0xFFFFFFFF .text:000341D0 STR R3, [R0] .text:000341D4 .text:000341D4 loc_341D4 ; CODE XREF: geteuid+80j .text:000341D4 MOV R0, R4 .text:000341D8 LDMDB R11, {R4-R6,R11,SP,PC} .text:000341D8 ; End of function geteuid .text:000341D8 .text:000341D8 ; --------------------------------------------------------------------------- .text:000341DC off_341DC DCD __libc_missing_32bit_uids ; DATA XREF: geteuid+8r .text:000341E0 .text:000341E0 ; =============== S U B R O U T I N E ======================================= .text:000341E0 .text:000341E0 ; Attributes: bp-based frame .text:000341E0 .text:000341E0 WEAK getgid .text:000341E0 getgid ; CODE XREF: __libc_init_secure+2Cp .text:000341E0 MOV R12, SP ; Alternative name is '__getgid' .text:000341E4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000341E8 LDR R6, =__libc_missing_32bit_uids .text:000341EC LDR R3, [R6] .text:000341F0 SUB R11, R12, #4 .text:000341F4 CMP R3, #0 .text:000341F8 BGT loc_34254 .text:000341FC BL __errno_location .text:00034200 LDR R5, [R0] .text:00034204 SVC 0x9000C8 .text:00034208 MOV R4, R0 .text:0003420C CMN R4, #0x1000 .text:00034210 BLS loc_34224 .text:00034214 BL __errno_location .text:00034218 RSB R3, R4, #0 .text:0003421C MOV R4, 0xFFFFFFFF .text:00034220 STR R3, [R0] .text:00034224 .text:00034224 loc_34224 ; CODE XREF: getgid+30j .text:00034224 CMP R4, #0 .text:00034228 BEQ loc_3423C .text:0003422C BL __errno_location .text:00034230 LDR R3, [R0] .text:00034234 CMP R3, #0x26 .text:00034238 BEQ loc_34244 .text:0003423C .text:0003423C loc_3423C ; CODE XREF: getgid+48j .text:0003423C MOV R0, R4 .text:00034240 LDMDB R11, {R4-R6,R11,SP,PC} .text:00034244 ; --------------------------------------------------------------------------- .text:00034244 .text:00034244 loc_34244 ; CODE XREF: getgid+58j .text:00034244 BL __errno_location .text:00034248 STR R5, [R0] .text:0003424C MOV R3, #1 .text:00034250 STR R3, [R6] .text:00034254 .text:00034254 loc_34254 ; CODE XREF: getgid+18j .text:00034254 SVC 0x90002F .text:00034258 MOV R4, R0 .text:0003425C CMN R4, #0x1000 .text:00034260 BLS loc_34274 .text:00034264 BL __errno_location .text:00034268 RSB R3, R4, #0 .text:0003426C MOV R4, 0xFFFFFFFF .text:00034270 STR R3, [R0] .text:00034274 .text:00034274 loc_34274 ; CODE XREF: getgid+80j .text:00034274 MOV R0, R4 .text:00034278 LDMDB R11, {R4-R6,R11,SP,PC} .text:00034278 ; End of function getgid .text:00034278 .text:00034278 ; --------------------------------------------------------------------------- .text:0003427C off_3427C DCD __libc_missing_32bit_uids ; DATA XREF: getgid+8r .text:00034280 .text:00034280 ; =============== S U B R O U T I N E ======================================= .text:00034280 .text:00034280 ; Attributes: bp-based frame .text:00034280 .text:00034280 WEAK getegid .text:00034280 getegid ; CODE XREF: __libc_init_secure+24p .text:00034280 MOV R12, SP ; Alternative name is '__getegid' .text:00034284 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00034288 LDR R6, =__libc_missing_32bit_uids .text:0003428C LDR R3, [R6] .text:00034290 SUB R11, R12, #4 .text:00034294 CMP R3, #0 .text:00034298 BGT loc_342F4 .text:0003429C BL __errno_location .text:000342A0 LDR R5, [R0] .text:000342A4 SVC 0x9000CA .text:000342A8 MOV R4, R0 .text:000342AC CMN R4, #0x1000 .text:000342B0 BLS loc_342C4 .text:000342B4 BL __errno_location .text:000342B8 RSB R3, R4, #0 .text:000342BC MOV R4, 0xFFFFFFFF .text:000342C0 STR R3, [R0] .text:000342C4 .text:000342C4 loc_342C4 ; CODE XREF: getegid+30j .text:000342C4 CMP R4, #0 .text:000342C8 BEQ loc_342DC .text:000342CC BL __errno_location .text:000342D0 LDR R3, [R0] .text:000342D4 CMP R3, #0x26 .text:000342D8 BEQ loc_342E4 .text:000342DC .text:000342DC loc_342DC ; CODE XREF: getegid+48j .text:000342DC MOV R0, R4 .text:000342E0 LDMDB R11, {R4-R6,R11,SP,PC} .text:000342E4 ; --------------------------------------------------------------------------- .text:000342E4 .text:000342E4 loc_342E4 ; CODE XREF: getegid+58j .text:000342E4 BL __errno_location .text:000342E8 STR R5, [R0] .text:000342EC MOV R3, #1 .text:000342F0 STR R3, [R6] .text:000342F4 .text:000342F4 loc_342F4 ; CODE XREF: getegid+18j .text:000342F4 SVC 0x900032 .text:000342F8 MOV R4, R0 .text:000342FC CMN R4, #0x1000 .text:00034300 BLS loc_34314 .text:00034304 BL __errno_location .text:00034308 RSB R3, R4, #0 .text:0003430C MOV R4, 0xFFFFFFFF .text:00034310 STR R3, [R0] .text:00034314 .text:00034314 loc_34314 ; CODE XREF: getegid+80j .text:00034314 MOV R0, R4 .text:00034318 LDMDB R11, {R4-R6,R11,SP,PC} .text:00034318 ; End of function getegid .text:00034318 .text:00034318 ; --------------------------------------------------------------------------- .text:0003431C off_3431C DCD __libc_missing_32bit_uids ; DATA XREF: getegid+8r .text:00034320 .text:00034320 ; =============== S U B R O U T I N E ======================================= .text:00034320 .text:00034320 ; Attributes: bp-based frame .text:00034320 .text:00034320 WEAK sysconf .text:00034320 sysconf ; CODE XREF: qsort+6Cp .text:00034320 ; qsort+98p .text:00034320 MOV R12, SP ; Alternative name is '__sysconf' .text:00034324 STMFD SP!, {R11,R12,LR,PC} .text:00034328 SUB R11, R12, #4 .text:0003432C CMP R0, #0xB3 ; switch 180 cases .text:00034330 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:00034334 B loc_34608 ; jumptable 00034330 default case .text:00034334 ; --------------------------------------------------------------------------- .text:00034338 DCD loc_3461C, loc_34624, loc_34630, loc_34638, loc_34640 ; jump table for switch statement .text:00034338 DCD loc_34648, loc_34650, loc_34658, loc_34658, loc_34658 .text:00034338 DCD loc_34658, loc_34658, loc_34658, loc_34614, loc_34658 .text:00034338 DCD loc_34658, loc_34658, loc_34658, loc_34658, loc_34658 .text:00034338 DCD loc_34614, loc_34658, loc_34658, loc_34614, loc_34614 .text:00034338 DCD loc_34678, loc_34614, loc_34614, loc_34614, loc_34660 .text:00034338 DCD loc_34670, loc_34638, loc_34614, loc_34614, loc_34614 .text:00034338 DCD loc_34680, loc_34688, loc_34690, loc_34688, loc_34698 .text:00034338 DCD loc_346A0, loc_34608, loc_34638, loc_34690, loc_346A8 .text:00034338 DCD loc_34690, loc_346B4, loc_34658, loc_34658, loc_34614 .text:00034338 DCD loc_34608, loc_34658, loc_34658, loc_34614, loc_34614 .text:00034338 DCD loc_34614, loc_34614, loc_34614, loc_34658, loc_34658 .text:00034338 DCD loc_34614, loc_34614, loc_34614, loc_34614, loc_34614 .text:00034338 DCD loc_34614, loc_34614, loc_34658, loc_34658, loc_346C4 .text:00034338 DCD loc_346C4, loc_346CC, loc_346CC, loc_346D4, loc_346C4 .text:00034338 DCD loc_346DC, loc_346C4, loc_34658, loc_34658, loc_34658 .text:00034338 DCD loc_34614, loc_34614, loc_34614, loc_346E4, loc_346EC .text:00034338 DCD loc_346F4, loc_346FC, loc_34704, loc_3470C, loc_34714 .text:00034338 DCD loc_346D4, loc_34658, loc_34658, loc_34658, loc_34658 .text:00034338 DCD loc_34614, loc_346B4, loc_34614, loc_34658, loc_34658 .text:00034338 DCD loc_34658, loc_3471C, loc_346A0, loc_34724, loc_34704 .text:00034338 DCD loc_3472C, loc_34638, loc_34638, loc_34648, loc_34678 .text:00034338 DCD loc_346A8, loc_34734, loc_3473C, loc_346A8, loc_34744 .text:00034338 DCD loc_346A0, loc_34614, loc_34614, loc_34750, loc_3475C .text:00034338 DCD loc_34690, loc_34704, loc_34704, loc_34704, loc_34704 .text:00034338 DCD loc_34658, loc_34658, loc_34614, loc_34614, loc_34658 .text:00034338 DCD loc_34658, loc_34658, loc_34614, loc_34764, loc_34614 .text:00034338 DCD loc_34614, loc_34614, loc_34614, loc_34614, loc_34614 .text:00034338 DCD loc_34614, loc_34614, loc_34614, loc_34614, loc_34614 .text:00034338 DCD loc_34614, loc_34614, loc_34614, loc_34614, loc_34614 .text:00034338 DCD loc_34614, loc_34614, loc_34614, loc_34764, loc_34764 .text:00034338 DCD loc_34658, loc_34614, loc_34658, loc_34614, loc_34764 .text:00034338 DCD loc_34614, loc_34614, loc_34614, loc_34614, loc_34764 .text:00034338 DCD loc_34614, loc_34614, loc_34614, loc_34614, loc_34614 .text:00034338 DCD loc_34614, loc_34608, loc_34614, loc_34614, loc_34770 .text:00034338 DCD loc_34614, loc_34658, loc_34658, loc_34614, loc_34614 .text:00034608 ; --------------------------------------------------------------------------- .text:00034608 .text:00034608 loc_34608 ; CODE XREF: sysconf+10j .text:00034608 ; sysconf+14j .text:00034608 ; DATA XREF: ... .text:00034608 BL __errno_location ; jumptable 00034330 default case .text:0003460C MOV R3, #0x16 .text:00034610 STR R3, [R0] .text:00034614 .text:00034614 loc_34614 ; CODE XREF: sysconf+10j .text:00034614 ; DATA XREF: sysconf+18o .text:00034614 MOV R0, 0xFFFFFFFF ; jumptable 00034330 cases 13,20,23,24,26-28,32-34,49,53-57,60-66,80-82,95,97,116,117,127,128,132,134-152,156,158,160-163,165-170,172,173,175,178,179 .text:00034618 LDMDB R11, {R11,SP,PC} .text:0003461C ; --------------------------------------------------------------------------- .text:0003461C .text:0003461C loc_3461C ; CODE XREF: sysconf+10j .text:0003461C ; DATA XREF: sysconf+18o .text:0003461C MOV R0, #0x20000 ; jumptable 00034330 case 0 .text:00034620 LDMDB R11, {R11,SP,PC} .text:00034624 ; --------------------------------------------------------------------------- .text:00034624 .text:00034624 loc_34624 ; CODE XREF: sysconf+10j .text:00034624 ; DATA XREF: sysconf+18o .text:00034624 MOV R0, 0x3E7 ; jumptable 00034330 case 1 .text:0003462C LDMDB R11, {R11,SP,PC} .text:00034630 ; --------------------------------------------------------------------------- .text:00034630 .text:00034630 loc_34630 ; CODE XREF: sysconf+10j .text:00034630 ; DATA XREF: sysconf+18o .text:00034630 BL __getclktck ; jumptable 00034330 case 2 .text:00034634 LDMDB R11, {R11,SP,PC} .text:00034638 ; --------------------------------------------------------------------------- .text:00034638 .text:00034638 loc_34638 ; CODE XREF: sysconf+10j .text:00034638 ; DATA XREF: sysconf+18o .text:00034638 MOV R0, #0x20 ; jumptable 00034330 cases 3,31,42,106,107 .text:0003463C LDMDB R11, {R11,SP,PC} .text:00034640 ; --------------------------------------------------------------------------- .text:00034640 .text:00034640 loc_34640 ; CODE XREF: sysconf+10j .text:00034640 ; DATA XREF: sysconf+18o .text:00034640 BL getdtablesize ; jumptable 00034330 case 4 .text:00034644 LDMDB R11, {R11,SP,PC} .text:00034648 ; --------------------------------------------------------------------------- .text:00034648 .text:00034648 loc_34648 ; CODE XREF: sysconf+10j .text:00034648 ; DATA XREF: sysconf+18o .text:00034648 MOV R0, #0x10 ; jumptable 00034330 cases 5,108 .text:0003464C LDMDB R11, {R11,SP,PC} .text:00034650 ; --------------------------------------------------------------------------- .text:00034650 .text:00034650 loc_34650 ; CODE XREF: sysconf+10j .text:00034650 ; DATA XREF: sysconf+18o .text:00034650 BL __tzname_max ; jumptable 00034330 case 6 .text:00034654 LDMDB R11, {R11,SP,PC} .text:00034658 ; --------------------------------------------------------------------------- .text:00034658 .text:00034658 loc_34658 ; CODE XREF: sysconf+10j .text:00034658 ; DATA XREF: sysconf+18o .text:00034658 MOV R0, #1 ; jumptable 00034330 cases 7-12,14-19,21,22,47,48,51,52,58,59,67,68,77-79,91-94,98-100,125,126,129-131,155,157,176,177 .text:0003465C LDMDB R11, {R11,SP,PC} .text:00034660 ; --------------------------------------------------------------------------- .text:00034660 .text:00034660 loc_34660 ; CODE XREF: sysconf+10j .text:00034660 ; DATA XREF: sysconf+18o .text:00034660 MOV R0, 0x30B52 ; jumptable 00034330 case 29 .text:0003466C LDMDB R11, {R11,SP,PC} .text:00034670 ; --------------------------------------------------------------------------- .text:00034670 .text:00034670 loc_34670 ; CODE XREF: sysconf+10j .text:00034670 ; DATA XREF: sysconf+18o .text:00034670 BL getpagesize ; jumptable 00034330 case 30 .text:00034674 LDMDB R11, {R11,SP,PC} .text:00034678 ; --------------------------------------------------------------------------- .text:00034678 .text:00034678 loc_34678 ; CODE XREF: sysconf+10j .text:00034678 ; DATA XREF: sysconf+18o .text:00034678 MOV R0, #0x14 ; jumptable 00034330 cases 25,109 .text:0003467C LDMDB R11, {R11,SP,PC} .text:00034680 ; --------------------------------------------------------------------------- .text:00034680 .text:00034680 loc_34680 ; CODE XREF: sysconf+10j .text:00034680 ; DATA XREF: sysconf+18o .text:00034680 MOV R0, #0x100 ; jumptable 00034330 case 35 .text:00034684 LDMDB R11, {R11,SP,PC} .text:00034688 ; --------------------------------------------------------------------------- .text:00034688 .text:00034688 loc_34688 ; CODE XREF: sysconf+10j .text:00034688 ; DATA XREF: sysconf+18o .text:00034688 MOV R0, #0x63 ; jumptable 00034330 cases 36,38 .text:0003468C LDMDB R11, {R11,SP,PC} .text:00034690 ; --------------------------------------------------------------------------- .text:00034690 .text:00034690 loc_34690 ; CODE XREF: sysconf+10j .text:00034690 ; DATA XREF: sysconf+18o .text:00034690 MOV R0, #0x800 ; jumptable 00034330 cases 37,43,45,120 .text:00034694 LDMDB R11, {R11,SP,PC} .text:00034698 ; --------------------------------------------------------------------------- .text:00034698 .text:00034698 loc_34698 ; CODE XREF: sysconf+10j .text:00034698 ; DATA XREF: sysconf+18o .text:00034698 MOV R0, #0x3E8 ; jumptable 00034330 case 39 .text:0003469C LDMDB R11, {R11,SP,PC} .text:000346A0 ; --------------------------------------------------------------------------- .text:000346A0 .text:000346A0 loc_346A0 ; CODE XREF: sysconf+10j .text:000346A0 ; DATA XREF: sysconf+18o .text:000346A0 MOV R0, #0xFF ; jumptable 00034330 cases 40,102,115 .text:000346A4 LDMDB R11, {R11,SP,PC} .text:000346A8 ; --------------------------------------------------------------------------- .text:000346A8 .text:000346A8 loc_346A8 ; CODE XREF: sysconf+10j .text:000346A8 ; DATA XREF: sysconf+18o .text:000346A8 MOV R0, 0x7FFF ; jumptable 00034330 cases 44,110,113 .text:000346B0 LDMDB R11, {R11,SP,PC} .text:000346B4 ; --------------------------------------------------------------------------- .text:000346B4 .text:000346B4 loc_346B4 ; CODE XREF: sysconf+10j .text:000346B4 ; DATA XREF: sysconf+18o .text:000346B4 MOV R0, 0x30A29 ; jumptable 00034330 cases 46,96 .text:000346C0 LDMDB R11, {R11,SP,PC} .text:000346C4 ; --------------------------------------------------------------------------- .text:000346C4 .text:000346C4 loc_346C4 ; CODE XREF: sysconf+10j .text:000346C4 ; DATA XREF: sysconf+18o .text:000346C4 MOV R0, #0x400 ; jumptable 00034330 cases 69,70,74,76 .text:000346C8 LDMDB R11, {R11,SP,PC} .text:000346CC ; --------------------------------------------------------------------------- .text:000346CC .text:000346CC loc_346CC ; CODE XREF: sysconf+10j .text:000346CC ; DATA XREF: sysconf+18o .text:000346CC MOV R0, #9 ; jumptable 00034330 cases 71,72 .text:000346D0 LDMDB R11, {R11,SP,PC} .text:000346D4 ; --------------------------------------------------------------------------- .text:000346D4 .text:000346D4 loc_346D4 ; CODE XREF: sysconf+10j .text:000346D4 ; DATA XREF: sysconf+18o .text:000346D4 MOV R0, #4 ; jumptable 00034330 cases 73,90 .text:000346D8 LDMDB R11, {R11,SP,PC} .text:000346DC ; --------------------------------------------------------------------------- .text:000346DC .text:000346DC loc_346DC ; CODE XREF: sysconf+10j .text:000346DC ; DATA XREF: sysconf+18o .text:000346DC MOV R0, #0x4000 ; jumptable 00034330 case 75 .text:000346E0 LDMDB R11, {R11,SP,PC} .text:000346E4 ; --------------------------------------------------------------------------- .text:000346E4 .text:000346E4 loc_346E4 ; CODE XREF: sysconf+10j .text:000346E4 ; DATA XREF: sysconf+18o .text:000346E4 BL get_nprocs_conf ; jumptable 00034330 case 83 .text:000346E8 LDMDB R11, {R11,SP,PC} .text:000346EC ; --------------------------------------------------------------------------- .text:000346EC .text:000346EC loc_346EC ; CODE XREF: sysconf+10j .text:000346EC ; DATA XREF: sysconf+18o .text:000346EC BL get_nprocs_conf ; jumptable 00034330 case 84 .text:000346F0 LDMDB R11, {R11,SP,PC} .text:000346F4 ; --------------------------------------------------------------------------- .text:000346F4 .text:000346F4 loc_346F4 ; CODE XREF: sysconf+10j .text:000346F4 ; DATA XREF: sysconf+18o .text:000346F4 BL get_phys_pages ; jumptable 00034330 case 85 .text:000346F8 LDMDB R11, {R11,SP,PC} .text:000346FC ; --------------------------------------------------------------------------- .text:000346FC .text:000346FC loc_346FC ; CODE XREF: sysconf+10j .text:000346FC ; DATA XREF: sysconf+18o .text:000346FC BL get_avphys_pages ; jumptable 00034330 case 86 .text:00034700 LDMDB R11, {R11,SP,PC} .text:00034704 ; --------------------------------------------------------------------------- .text:00034704 .text:00034704 loc_34704 ; CODE XREF: sysconf+10j .text:00034704 ; DATA XREF: sysconf+18o .text:00034704 MOV R0, 0x7FFFFFFF ; jumptable 00034330 cases 87,104,121-124 .text:00034708 LDMDB R11, {R11,SP,PC} .text:0003470C ; --------------------------------------------------------------------------- .text:0003470C .text:0003470C loc_3470C ; CODE XREF: sysconf+10j .text:0003470C ; DATA XREF: sysconf+18o .text:0003470C MOV R0, #0x2000 ; jumptable 00034330 case 88 .text:00034710 LDMDB R11, {R11,SP,PC} .text:00034714 ; --------------------------------------------------------------------------- .text:00034714 .text:00034714 loc_34714 ; CODE XREF: sysconf+10j .text:00034714 ; DATA XREF: sysconf+18o .text:00034714 MOV R0, #0x1F4 ; jumptable 00034330 case 89 .text:00034718 LDMDB R11, {R11,SP,PC} .text:0003471C ; --------------------------------------------------------------------------- .text:0003471C .text:0003471C loc_3471C ; CODE XREF: sysconf+10j .text:0003471C ; DATA XREF: sysconf+18o .text:0003471C MOV R0, #8 ; jumptable 00034330 case 101 .text:00034720 LDMDB R11, {R11,SP,PC} .text:00034724 ; --------------------------------------------------------------------------- .text:00034724 .text:00034724 loc_34724 ; CODE XREF: sysconf+10j .text:00034724 ; DATA XREF: sysconf+18o .text:00034724 MOV R0, #0 ; jumptable 00034330 case 103 .text:00034728 LDMDB R11, {R11,SP,PC} .text:0003472C ; --------------------------------------------------------------------------- .text:0003472C .text:0003472C loc_3472C ; CODE XREF: sysconf+10j .text:0003472C ; DATA XREF: sysconf+18o .text:0003472C MOV R0, #0x80000000 ; jumptable 00034330 case 105 .text:00034730 LDMDB R11, {R11,SP,PC} .text:00034734 ; --------------------------------------------------------------------------- .text:00034734 .text:00034734 loc_34734 ; CODE XREF: sysconf+10j .text:00034734 ; DATA XREF: sysconf+18o .text:00034734 MOV R0, #0x7F ; jumptable 00034330 case 111 .text:00034738 LDMDB R11, {R11,SP,PC} .text:0003473C ; --------------------------------------------------------------------------- .text:0003473C .text:0003473C loc_3473C ; CODE XREF: sysconf+10j .text:0003473C ; DATA XREF: sysconf+18o .text:0003473C MOV R0, 0xFFFFFF80 ; jumptable 00034330 case 112 .text:00034740 LDMDB R11, {R11,SP,PC} .text:00034744 ; --------------------------------------------------------------------------- .text:00034744 .text:00034744 loc_34744 ; CODE XREF: sysconf+10j .text:00034744 ; DATA XREF: sysconf+18o .text:00034744 MOV R0, #0x80000000 ; jumptable 00034330 case 114 .text:00034748 MOV R0, R0,ASR#16 .text:0003474C LDMDB R11, {R11,SP,PC} .text:00034750 ; --------------------------------------------------------------------------- .text:00034750 .text:00034750 loc_34750 ; CODE XREF: sysconf+10j .text:00034750 ; DATA XREF: sysconf+18o .text:00034750 MOV R0, 0xFFFF ; jumptable 00034330 case 118 .text:00034758 LDMDB R11, {R11,SP,PC} .text:0003475C ; --------------------------------------------------------------------------- .text:0003475C .text:0003475C loc_3475C ; CODE XREF: sysconf+10j .text:0003475C ; DATA XREF: sysconf+18o .text:0003475C MOV R0, #0x1000 ; jumptable 00034330 case 119 .text:00034760 LDMDB R11, {R11,SP,PC} .text:00034764 ; --------------------------------------------------------------------------- .text:00034764 .text:00034764 loc_34764 ; CODE XREF: sysconf+10j .text:00034764 ; DATA XREF: sysconf+18o .text:00034764 MOV R0, 0x310D0 ; jumptable 00034330 cases 133,153,154,159,164 .text:0003476C LDMDB R11, {R11,SP,PC} .text:00034770 ; --------------------------------------------------------------------------- .text:00034770 .text:00034770 loc_34770 ; CODE XREF: sysconf+10j .text:00034770 ; DATA XREF: sysconf+18o .text:00034770 MOV R0, 0xFFFFFFFF ; jumptable 00034330 case 174 .text:00034774 LDMDB R11, {R11,SP,PC} .text:00034774 ; End of function sysconf .text:00034774 .text:00034778 .text:00034778 ; =============== S U B R O U T I N E ======================================= .text:00034778 .text:00034778 ; Attributes: bp-based frame .text:00034778 .text:00034778 EXPORT __getopt_clean_environment .text:00034778 __getopt_clean_environment ; CODE XREF: init+88p .text:00034778 .text:00034778 var_88 = -0x88 .text:00034778 var_40 = -0x40 .text:00034778 .text:00034778 MOV R12, SP .text:0003477C STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00034780 SUB R11, R12, #4 .text:00034784 MOV R10, R0 .text:00034788 LDR LR, =envvar_tail.60 ; "_GNU_nonoption_argv_flags_=" .text:0003478C SUB SP, SP, #0x64 .text:00034790 LDMIA LR!, {R0-R3} ; "_GNU_nonoption_argv_flags_=" .text:00034794 SUB R12, R11, #-var_40 .text:00034798 STMIA R12!, {R0-R3} .text:0003479C LDMIA LR, {R0-R2} .text:000347A0 STMIA R12, {R0-R2} .text:000347A4 SUB R7, R11, #-var_40 .text:000347A8 MOV R5, R7 .text:000347AC LDR R6, =_itoa_lower_digits .text:000347B0 BL getpid .text:000347B4 MOV R4, R0 .text:000347B8 SUB R8, R11, #-var_88 .text:000347BC .text:000347BC loc_347BC ; CODE XREF: __getopt_clean_environment+68j .text:000347BC MOV R0, R4 .text:000347C0 MOV R1, #0xA .text:000347C4 BL __umodsi3 .text:000347C8 LDRB R3, [R6,R0] .text:000347CC STRB R3, [R5,#-1]! .text:000347D0 MOV R0, R4 .text:000347D4 MOV R1, #0xA .text:000347D8 BL __udivsi3 .text:000347DC SUBS R4, R0, #0 .text:000347E0 BNE loc_347BC .text:000347E4 MOV R7, R5 .text:000347E8 MOV R3, #0x5F .text:000347EC STRB R3, [R7,#-1]! .text:000347F0 MOV R4, R10 .text:000347F4 SUB R2, R7, #0x63 .text:000347F8 LDR R3, [R4] .text:000347FC RSB R6, R2, R8 .text:00034800 CMP R3, #0 .text:00034804 BEQ locret_34868 .text:00034808 LDR R8, =__getopt_nonoption_flags .text:0003480C .text:0003480C loc_3480C ; CODE XREF: __getopt_clean_environment:loc_34864j .text:0003480C MOV R5, R4 .text:00034810 MOV R1, R7 .text:00034814 LDR R0, [R5],#4 .text:00034818 MOV R2, R6 .text:0003481C BL strncmp .text:00034820 CMP R0, #0 .text:00034824 BNE loc_34848 .text:00034828 MOV R0, R4 .text:0003482C LDR R3, [R0] .text:00034830 ADD R3, R3, R6 .text:00034834 STR R3, [R8] .text:00034838 .text:00034838 loc_34838 ; CODE XREF: __getopt_clean_environment+CCj .text:00034838 LDR R3, [R0,#4] .text:0003483C CMP R3, #0 .text:00034840 STR R3, [R0],#4 .text:00034844 BNE loc_34838 .text:00034848 .text:00034848 loc_34848 ; CODE XREF: __getopt_clean_environment+ACj .text:00034848 MOV R4, R5 .text:0003484C LDR R3, [R4] .text:00034850 CMP R3, #0 .text:00034854 B loc_34864 .text:00034854 ; --------------------------------------------------------------------------- .text:00034858 off_34858 DCD envvar_tail.60 ; DATA XREF: __getopt_clean_environment+10r .text:00034858 ; "_GNU_nonoption_argv_flags_=" .text:0003485C off_3485C DCD _itoa_lower_digits ; DATA XREF: __getopt_clean_environment+34r .text:00034860 off_34860 DCD __getopt_nonoption_flags .text:00034860 ; DATA XREF: __getopt_clean_environment+90r .text:00034864 ; --------------------------------------------------------------------------- .text:00034864 .text:00034864 loc_34864 ; CODE XREF: __getopt_clean_environment+DCj .text:00034864 BNE loc_3480C .text:00034868 .text:00034868 locret_34868 ; CODE XREF: __getopt_clean_environment+8Cj .text:00034868 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00034868 ; End of function __getopt_clean_environment .text:00034868 .text:0003486C .text:0003486C ; =============== S U B R O U T I N E ======================================= .text:0003486C .text:0003486C ; Attributes: bp-based frame .text:0003486C .text:0003486C WEAK __xstat64 .text:0003486C __xstat64 ; CODE XREF: open_path+180p .text:0003486C ; opendir+60p .text:0003486C .text:0003486C var_68 = -0x68 .text:0003486C var_67 = -0x67 .text:0003486C var_64 = -0x64 .text:0003486C var_60 = -0x60 .text:0003486C var_5F = -0x5F .text:0003486C var_5E = -0x5E .text:0003486C var_5D = -0x5D .text:0003486C var_5C = -0x5C .text:0003486C var_5B = -0x5B .text:0003486C var_5A = -0x5A .text:0003486C var_59 = -0x59 .text:0003486C var_58 = -0x58 .text:0003486C var_57 = -0x57 .text:0003486C var_54 = -0x54 .text:0003486C var_50 = -0x50 .text:0003486C var_4C = -0x4C .text:0003486C var_48 = -0x48 .text:0003486C var_40 = -0x40 .text:0003486C var_38 = -0x38 .text:0003486C .text:0003486C MOV R12, SP .text:00034870 STMFD SP!, {R4-R12,LR,PC} .text:00034874 SUB R11, R12, #4 .text:00034878 MOV R10, R0 .text:0003487C LDR R9, =__have_no_stat64 .text:00034880 MOV R4, R1 .text:00034884 LDR R3, [R9] .text:00034888 MOV R5, R2 .text:0003488C CMP R3, #0 .text:00034890 SUB SP, SP, #0x40 .text:00034894 BNE loc_34924 .text:00034898 BL __errno_location .text:0003489C MOV R1, R5 .text:000348A0 LDR R8, [R0] .text:000348A4 MOV R0, R4 .text:000348A8 SVC 0x9000C3 .text:000348AC MOV R7, R0 .text:000348B0 CMN R7, #0x1000 .text:000348B4 BLS loc_348C8 .text:000348B8 BL __errno_location .text:000348BC RSB R3, R7, #0 .text:000348C0 MOV R7, 0xFFFFFFFF .text:000348C4 STR R3, [R0] .text:000348C8 .text:000348C8 loc_348C8 ; CODE XREF: __xstat64+48j .text:000348C8 MOV R6, R7 .text:000348CC CMN R6, #1 .text:000348D0 BNE loc_348E4 .text:000348D4 BL __errno_location .text:000348D8 LDR R3, [R0] .text:000348DC CMP R3, #0x26 .text:000348E0 BEQ loc_34914 .text:000348E4 .text:000348E4 loc_348E4 ; CODE XREF: __xstat64+64j .text:000348E4 CMP R6, #0 .text:000348E8 BNE loc_3490C .text:000348EC LDR R0, [R5,#0xC] .text:000348F0 MOV R2, #0x58 .text:000348F4 LDR R3, [R5,R2] .text:000348F8 ADD R1, R5, R2 .text:000348FC CMP R0, R3 .text:00034900 MOVNE R3, R0 .text:00034904 MOVNE R4, #0 .text:00034908 STMNEIA R1, {R3,R4} .text:0003490C .text:0003490C loc_3490C ; CODE XREF: __xstat64+7Cj .text:0003490C MOV R0, R7 .text:00034910 B locret_34A60 .text:00034914 ; --------------------------------------------------------------------------- .text:00034914 .text:00034914 loc_34914 ; CODE XREF: __xstat64+74j .text:00034914 BL __errno_location .text:00034918 STR R8, [R0] .text:0003491C MOV R3, #1 .text:00034920 STR R3, [R9] .text:00034924 .text:00034924 loc_34924 ; CODE XREF: __xstat64+28j .text:00034924 SUB R1, R11, #-var_68 .text:00034928 MOV R0, R4 .text:0003492C SVC 0x90006A .text:00034930 MOV R4, R0 .text:00034934 CMN R4, #0x1000 .text:00034938 BLS loc_3494C .text:0003493C BL __errno_location .text:00034940 RSB R3, R4, #0 .text:00034944 MOV R4, 0xFFFFFFFF .text:00034948 STR R3, [R0] .text:0003494C .text:0003494C loc_3494C ; CODE XREF: __xstat64+CCj .text:0003494C SUBS R6, R4, #0 .text:00034950 BNE loc_34A5C .text:00034954 CMP R10, #1 .text:00034958 BEQ loc_34A40 .text:0003495C CMP R10, #3 .text:00034960 BNE loc_34A40 .text:00034964 LDRB R1, [R11,#var_68] .text:00034968 LDRB R2, [R11,#var_67] .text:0003496C ORR R3, R1, R2,LSL#8 .text:00034970 MOV R4, #0 .text:00034974 STMIA R5, {R3,R4} .text:00034978 STR R6, [R5,#8] .text:0003497C LDR R1, [R11,#var_64] .text:00034980 ADD R2, R5, #0x58 .text:00034984 MOV R3, R1 .text:00034988 MOV R4, #0 .text:0003498C STMIA R2, {R3,R4} .text:00034990 STR R1, [R5,#0xC] .text:00034994 LDRB R3, [R11,#var_60] .text:00034998 LDRB R2, [R11,#var_5F] .text:0003499C ORR R3, R3, R2,LSL#8 .text:000349A0 STR R3, [R5,#0x10] .text:000349A4 LDRB R3, [R11,#var_5D] .text:000349A8 LDRB R2, [R11,#var_5E] .text:000349AC ORR R2, R2, R3,LSL#8 .text:000349B0 STR R2, [R5,#0x14] .text:000349B4 LDRB R2, [R11,#var_5B] .text:000349B8 LDRB R3, [R11,#var_5C] .text:000349BC ORR R3, R3, R2,LSL#8 .text:000349C0 STR R3, [R5,#0x18] .text:000349C4 LDRB R2, [R11,#var_5A] .text:000349C8 LDRB R12, [R11,#var_58] .text:000349CC LDRB R0, [R11,#var_57] .text:000349D0 LDRB R1, [R11,#var_59] .text:000349D4 ORR R3, R12, R0,LSL#8 .text:000349D8 ORR R2, R2, R1,LSL#8 .text:000349DC STR R2, [R5,#0x1C] .text:000349E0 MOV R4, #0 .text:000349E4 ADD R2, R5, #0x20 .text:000349E8 STMIA R2, {R3,R4} .text:000349EC STR R6, [R5,#0x28] .text:000349F0 LDR R3, [R11,#var_54] .text:000349F4 ADD R1, R5, #0x2C .text:000349F8 MOV R4, #0 .text:000349FC STMIA R1, {R3,R4} .text:00034A00 LDR R2, [R11,#var_50] .text:00034A04 STR R2, [R5,#0x34] .text:00034A08 LDR R3, [R11,#var_4C] .text:00034A0C ADD R1, R5, #0x38 .text:00034A10 MOV R4, #0 .text:00034A14 STMIA R1, {R3,R4} .text:00034A18 LDR R2, [R11,#var_48] .text:00034A1C STR R6, [R5,#0x44] .text:00034A20 STR R2, [R5,#0x40] .text:00034A24 LDR R3, [R11,#var_40] .text:00034A28 STR R3, [R5,#0x48] .text:00034A2C STR R6, [R5,#0x4C] .text:00034A30 STR R6, [R5,#0x54] .text:00034A34 LDR R3, [R11,#var_38] .text:00034A38 STR R3, [R5,#0x50] .text:00034A3C B loc_34A58 .text:00034A40 ; --------------------------------------------------------------------------- .text:00034A40 .text:00034A40 loc_34A40 ; CODE XREF: __xstat64+ECj .text:00034A40 ; __xstat64+F4j .text:00034A40 MOV R6, 0xFFFFFFFF .text:00034A44 BL __errno_location .text:00034A48 MOV R3, #0x16 .text:00034A4C STR R3, [R0] .text:00034A50 B loc_34A5C .text:00034A50 ; --------------------------------------------------------------------------- .text:00034A54 off_34A54 DCD __have_no_stat64 ; DATA XREF: __xstat64+10r .text:00034A58 ; --------------------------------------------------------------------------- .text:00034A58 .text:00034A58 loc_34A58 ; CODE XREF: __xstat64+1D0j .text:00034A58 MOV R6, #0 .text:00034A5C .text:00034A5C loc_34A5C ; CODE XREF: __xstat64+E4j .text:00034A5C ; __xstat64+1E4j .text:00034A5C MOV R0, R6 .text:00034A60 .text:00034A60 locret_34A60 ; CODE XREF: __xstat64+A4j .text:00034A60 LDMDB R11, {R4-R11,SP,PC} .text:00034A60 ; End of function __xstat64 .text:00034A60 .text:00034A64 .text:00034A64 ; =============== S U B R O U T I N E ======================================= .text:00034A64 .text:00034A64 ; Attributes: bp-based frame .text:00034A64 .text:00034A64 WEAK open64 .text:00034A64 open64 ; CODE XREF: _IO_new_file_fopen+11Cp .text:00034A64 ; _IO_file_open:loc_32218p ... .text:00034A64 .text:00034A64 varg_r1 = 4 .text:00034A64 varg_r2 = 8 .text:00034A64 varg_r3 = 0xC .text:00034A64 .text:00034A64 MOV R12, SP ; Alternative name is '__open64' .text:00034A68 STMFD SP!, {R1-R3} .text:00034A6C STMFD SP!, {R11,R12,LR,PC} .text:00034A70 SUB R11, R12, #0x10 .text:00034A74 LDR R1, [R11,#varg_r1] .text:00034A78 MOV R2, #0 .text:00034A7C TST R1, #0x40 .text:00034A80 LDRNE R2, [R11,#varg_r2] .text:00034A84 ORR R1, R1, #0x20000 .text:00034A88 BL open .text:00034A8C LDMDB R11, {R11,SP,PC} .text:00034A8C ; End of function open64 .text:00034A8C .text:00034A90 .text:00034A90 ; =============== S U B R O U T I N E ======================================= .text:00034A90 .text:00034A90 .text:00034A90 WEAK lseek .text:00034A90 lseek ; CODE XREF: _dl_map_object_from_fd+1ECp .text:00034A90 ; open_verify+298p ... .text:00034A90 SVC 0x900013 ; Alternative name is '__lseek' .text:00034A94 CMN R0, #0x1000 .text:00034A98 MOVCC PC, LR .text:00034A9C B __syscall_error .text:00034A9C ; End of function lseek .text:00034A9C .text:00034AA0 .text:00034AA0 ; =============== S U B R O U T I N E ======================================= .text:00034AA0 .text:00034AA0 .text:00034AA0 WEAK access .text:00034AA0 access ; CODE XREF: non_dynamic_init+108p .text:00034AA0 SVC 0x900021 ; Alternative name is '__access' .text:00034AA4 CMN R0, #0x1000 .text:00034AA8 MOVCC PC, LR .text:00034AAC B __syscall_error .text:00034AAC ; End of function access .text:00034AAC .text:00034AB0 .text:00034AB0 ; =============== S U B R O U T I N E ======================================= .text:00034AB0 .text:00034AB0 ; Attributes: bp-based frame .text:00034AB0 .text:00034AB0 WEAK getcwd .text:00034AB0 getcwd ; CODE XREF: _dl_new_object+218p .text:00034AB0 ; __dcigettext+1E8p ... .text:00034AB0 MOV R12, SP .text:00034AB4 STMFD SP!, {R4-R12,LR,PC} .text:00034AB8 SUB R11, R12, #4 .text:00034ABC MOV R6, R0 .text:00034AC0 LDR R2, =no_syscall_getcwd .text:00034AC4 MOV R7, R1 .text:00034AC8 LDR R3, [R2] .text:00034ACC MOV R8, R7 .text:00034AD0 CMP R3, #0 .text:00034AD4 BEQ loc_34AF0 .text:00034AD8 LDR R3, =have_new_dcache .text:00034ADC LDR R2, [R3] .text:00034AE0 CMP R2, #0 .text:00034AE4 BNE loc_34AF0 .text:00034AE8 BL generic_getcwd .text:00034AEC LDMDB R11, {R4-R11,SP,PC} .text:00034AF0 ; --------------------------------------------------------------------------- .text:00034AF0 .text:00034AF0 loc_34AF0 ; CODE XREF: getcwd+24j .text:00034AF0 ; getcwd+34j .text:00034AF0 CMP R7, #0 .text:00034AF4 BNE loc_34B1C .text:00034AF8 CMP R6, #0 .text:00034AFC BEQ loc_34B14 .text:00034B00 BL __errno_location .text:00034B04 MOV R3, #0x16 .text:00034B08 STR R3, [R0] .text:00034B0C .text:00034B0C loc_34B0C ; CODE XREF: getcwd+84j .text:00034B0C ; getcwd+144j ... .text:00034B0C MOV R0, #0 .text:00034B10 LDMDB R11, {R4-R11,SP,PC} .text:00034B14 ; --------------------------------------------------------------------------- .text:00034B14 .text:00034B14 loc_34B14 ; CODE XREF: getcwd+4Cj .text:00034B14 MOV R8, 0xFFF .text:00034B1C .text:00034B1C loc_34B1C ; CODE XREF: getcwd+44j .text:00034B1C CMP R6, #0 .text:00034B20 BNE loc_34B38 .text:00034B24 MOV R0, R8 .text:00034B28 BL malloc .text:00034B2C SUBS R5, R0, #0 .text:00034B30 BNE loc_34B3C .text:00034B34 B loc_34B0C .text:00034B38 ; --------------------------------------------------------------------------- .text:00034B38 .text:00034B38 loc_34B38 ; CODE XREF: getcwd+70j .text:00034B38 MOV R5, R6 .text:00034B3C .text:00034B3C loc_34B3C ; CODE XREF: getcwd+80j .text:00034B3C BL __errno_location .text:00034B40 LDR R3, =no_syscall_getcwd .text:00034B44 LDR R10, [R3] .text:00034B48 LDR R9, [R0] .text:00034B4C CMP R10, #0 .text:00034B50 BNE loc_34C0C .text:00034B54 MOV R1, R8 .text:00034B58 MOV R0, R5 .text:00034B5C SVC 0x9000B7 .text:00034B60 MOV R4, R0 .text:00034B64 CMN R4, #0x1000 .text:00034B68 BLS loc_34B7C .text:00034B6C BL __errno_location .text:00034B70 RSB R3, R4, #0 .text:00034B74 MOV R4, 0xFFFFFFFF .text:00034B78 STR R3, [R0] .text:00034B7C .text:00034B7C loc_34B7C ; CODE XREF: getcwd+B8j .text:00034B7C CMP R4, #0 .text:00034B80 BLT loc_34BB0 .text:00034B84 CMP R6, #0 .text:00034B88 CMPEQ R7, #0 .text:00034B8C BNE loc_34BA0 .text:00034B90 MOV R0, R5 .text:00034B94 MOV R1, R4 .text:00034B98 .text:00034B98 loc_34B98 ; CODE XREF: getcwd+1C0j .text:00034B98 BL realloc .text:00034B9C MOV R6, R0 .text:00034BA0 .text:00034BA0 loc_34BA0 ; CODE XREF: getcwd+DCj .text:00034BA0 ; getcwd+1B4j .text:00034BA0 CMP R6, #0 .text:00034BA4 MOVNE R0, R6 .text:00034BA8 MOVEQ R0, R5 .text:00034BAC LDMDB R11, {R4-R11,SP,PC} .text:00034BB0 ; --------------------------------------------------------------------------- .text:00034BB0 .text:00034BB0 loc_34BB0 ; CODE XREF: getcwd+D0j .text:00034BB0 BL __errno_location .text:00034BB4 LDR R3, [R0] .text:00034BB8 CMP R3, #0x26 .text:00034BBC BNE loc_34BD8 .text:00034BC0 LDR R3, =no_syscall_getcwd .text:00034BC4 MOV R2, #1 .text:00034BC8 STR R2, [R3] .text:00034BCC LDR R3, =have_new_dcache .text:00034BD0 STR R2, [R3] .text:00034BD4 B loc_34C04 .text:00034BD8 ; --------------------------------------------------------------------------- .text:00034BD8 .text:00034BD8 loc_34BD8 ; CODE XREF: getcwd+10Cj .text:00034BD8 BL __errno_location .text:00034BDC LDR R3, [R0] .text:00034BE0 CMP R3, #0x22 .text:00034BE4 BNE loc_34BF0 .text:00034BE8 CMP R6, #0 .text:00034BEC BEQ loc_34C04 .text:00034BF0 .text:00034BF0 loc_34BF0 ; CODE XREF: getcwd+134j .text:00034BF0 CMP R6, #0 .text:00034BF4 BNE loc_34B0C .text:00034BF8 MOV R0, R5 .text:00034BFC BL free .text:00034C00 B loc_34B0C .text:00034C04 ; --------------------------------------------------------------------------- .text:00034C04 .text:00034C04 loc_34C04 ; CODE XREF: getcwd+124j .text:00034C04 ; getcwd+13Cj .text:00034C04 BL __errno_location .text:00034C08 STR R9, [R0] .text:00034C0C .text:00034C0C loc_34C0C ; CODE XREF: getcwd+A0j .text:00034C0C MOV R1, R5 .text:00034C10 SUB R4, R8, #1 .text:00034C14 LDR R0, =aProcSelfCwd ; "/proc/self/cwd" .text:00034C18 MOV R2, R4 .text:00034C1C BL readlink .text:00034C20 MOV R1, R0 .text:00034C24 CMN R1, #1 .text:00034C28 BEQ loc_34C80 .text:00034C2C LDRB R3, [R5] .text:00034C30 CMP R3, #0x2F .text:00034C34 BNE loc_34C74 .text:00034C38 CMP R1, R4 .text:00034C3C BCC loc_34C54 .text:00034C40 CMP R6, #0 .text:00034C44 BNE loc_34B0C .text:00034C48 MOV R0, R5 .text:00034C4C BL free .text:00034C50 B loc_34B0C .text:00034C54 ; --------------------------------------------------------------------------- .text:00034C54 .text:00034C54 loc_34C54 ; CODE XREF: getcwd+18Cj .text:00034C54 CMP R6, #0 .text:00034C58 CMPEQ R7, #0 .text:00034C5C MOV R3, #0 .text:00034C60 STRB R3, [R5,R1] .text:00034C64 BNE loc_34BA0 .text:00034C68 MOV R0, R5 .text:00034C6C ADD R1, R1, #1 .text:00034C70 B loc_34B98 .text:00034C74 ; --------------------------------------------------------------------------- .text:00034C74 .text:00034C74 loc_34C74 ; CODE XREF: getcwd+184j .text:00034C74 LDR R2, =have_new_dcache .text:00034C78 MOV R3, #0 .text:00034C7C STR R3, [R2] .text:00034C80 .text:00034C80 loc_34C80 ; CODE XREF: getcwd+178j .text:00034C80 BL __errno_location .text:00034C84 LDR R3, [R0] .text:00034C88 CMP R3, #0xD .text:00034C8C BEQ loc_34CA8 .text:00034C90 BL __errno_location .text:00034C94 LDR R3, [R0] .text:00034C98 CMP R3, #0x24 .text:00034C9C LDRNE R2, =have_new_dcache .text:00034CA0 MOVNE R3, #0 .text:00034CA4 STRNE R3, [R2] .text:00034CA8 .text:00034CA8 loc_34CA8 ; CODE XREF: getcwd+1DCj .text:00034CA8 BL __errno_location .text:00034CAC CMP R7, #0 .text:00034CB0 STR R9, [R0] .text:00034CB4 BNE loc_34CC4 .text:00034CB8 MOV R0, R5 .text:00034CBC MOV R5, R7 .text:00034CC0 BL free .text:00034CC4 .text:00034CC4 loc_34CC4 ; CODE XREF: getcwd+204j .text:00034CC4 MOV R0, R5 .text:00034CC8 MOV R1, R7 .text:00034CCC BL generic_getcwd .text:00034CD0 MOV R4, R0 .text:00034CD4 CMP R4, #0 .text:00034CD8 CMPEQ R6, #0 .text:00034CDC BNE loc_34CF0 .text:00034CE0 CMP R7, #0 .text:00034CE4 BEQ loc_34CF0 .text:00034CE8 MOV R0, R5 .text:00034CEC BL free .text:00034CF0 .text:00034CF0 loc_34CF0 ; CODE XREF: getcwd+22Cj .text:00034CF0 ; getcwd+234j .text:00034CF0 MOV R0, R4 .text:00034CF4 LDMDB R11, {R4-R11,SP,PC} .text:00034CF4 ; End of function getcwd .text:00034CF4 .text:00034CF4 ; --------------------------------------------------------------------------- .text:00034CF8 off_34CF8 DCD no_syscall_getcwd ; DATA XREF: getcwd+10r .text:00034CF8 ; getcwd+90r ... .text:00034CFC off_34CFC DCD have_new_dcache ; DATA XREF: getcwd+28r .text:00034CFC ; getcwd+11Cr ... .text:00034D00 off_34D00 DCD aProcSelfCwd ; DATA XREF: getcwd+164r .text:00034D00 ; "/proc/self/cwd" .text:00034D04 .text:00034D04 ; =============== S U B R O U T I N E ======================================= .text:00034D04 .text:00034D04 ; Attributes: bp-based frame .text:00034D04 .text:00034D04 generic_getcwd ; CODE XREF: getcwd+38p .text:00034D04 ; getcwd+21Cp .text:00034D04 .text:00034D04 var_C0 = -0xC0 .text:00034D04 var_BC = -0xBC .text:00034D04 var_B8 = -0xB8 .text:00034D04 var_B4 = -0xB4 .text:00034D04 var_B0 = -0xB0 .text:00034D04 var_AC = -0xAC .text:00034D04 var_A8 = -0xA8 .text:00034D04 var_A4 = -0xA4 .text:00034D04 var_A0 = -0xA0 .text:00034D04 var_9C = -0x9C .text:00034D04 var_98 = -0x98 .text:00034D04 var_94 = -0x94 .text:00034D04 var_90 = -0x90 .text:00034D04 var_8C = -0x8C .text:00034D04 var_88 = -0x88 .text:00034D04 var_84 = -0x84 .text:00034D04 var_80 = -0x80 .text:00034D04 var_74 = -0x74 .text:00034D04 var_28 = -0x28 .text:00034D04 .text:00034D04 MOV R12, SP .text:00034D08 STMFD SP!, {R4-R12,LR,PC} .text:00034D0C SUB R11, R12, #4 .text:00034D10 MOV R2, #0xE0 .text:00034D14 SUB SP, SP, #0x98 .text:00034D18 STR R2, [R11,#var_94] .text:00034D1C LDR R3, =byte_58E51 .text:00034D20 STR R3, [R11,#var_8C] .text:00034D24 STR R0, [R11,#var_84] .text:00034D28 STR R1, [R11,#var_88] .text:00034D2C BL __errno_location .text:00034D30 SUB R1, R11, #-var_8C .text:00034D34 LDMIA R1, {R1,R12} .text:00034D38 SUB R1, R1, #0xE1 .text:00034D3C STR R1, [R11,#var_90] .text:00034D40 CMP R12, #0 .text:00034D44 STR R12, [R11,#var_B4] .text:00034D48 LDR R0, [R0] .text:00034D4C STR R0, [R11,#var_B0] .text:00034D50 BNE loc_34D78 .text:00034D54 LDR R2, [R11,#var_84] .text:00034D58 CMP R2, #0 .text:00034D5C BEQ loc_34D70 .text:00034D60 BL __errno_location .text:00034D64 MOV R3, #0x16 .text:00034D68 STR R3, [R0] .text:00034D6C B loc_35230 .text:00034D70 ; --------------------------------------------------------------------------- .text:00034D70 .text:00034D70 loc_34D70 ; CODE XREF: generic_getcwd+58j .text:00034D70 MOV R3, #0x1000 .text:00034D74 STR R3, [R11,#var_B4] .text:00034D78 .text:00034D78 loc_34D78 ; CODE XREF: generic_getcwd+4Cj .text:00034D78 LDR R12, [R11,#var_84] .text:00034D7C CMP R12, #0 .text:00034D80 BNE loc_34D9C .text:00034D84 LDR R0, [R11,#var_B4] .text:00034D88 BL malloc .text:00034D8C CMP R0, #0 .text:00034D90 STR R0, [R11,#var_A8] .text:00034D94 BNE loc_34DA4 .text:00034D98 B loc_35234 .text:00034D9C ; --------------------------------------------------------------------------- .text:00034D9C .text:00034D9C loc_34D9C ; CODE XREF: generic_getcwd+7Cj .text:00034D9C LDR R1, [R11,#var_84] .text:00034DA0 STR R1, [R11,#var_A8] .text:00034DA4 .text:00034DA4 loc_34DA4 ; CODE XREF: generic_getcwd+90j .text:00034DA4 LDR R2, [R11,#var_A8] .text:00034DA8 LDR R3, [R11,#var_B4] .text:00034DAC ADD R2, R2, R3 .text:00034DB0 STR R2, [R11,#var_AC] .text:00034DB4 MOV R3, #0 .text:00034DB8 STRB R3, [R2,#-1]! .text:00034DBC STR R2, [R11,#var_AC] .text:00034DC0 MOV R0, #3 .text:00034DC4 SUB R4, R11, #-var_80 .text:00034DC8 LDR R1, =a_ ; "." .text:00034DCC MOV R2, R4 .text:00034DD0 BL _lxstat .text:00034DD4 CMP R0, #0 .text:00034DD8 BLT loc_3521C .text:00034DDC LDR R12, [R11,#var_74] .text:00034DE0 SUB R4, R11, #-var_80 .text:00034DE4 LDMIA R4, {R6,R7} .text:00034DE8 STR R12, [R11,#var_A4] .text:00034DEC MOV R0, #3 .text:00034DF0 LDR R1, =asc_58E58 ; "/" .text:00034DF4 MOV R2, R4 .text:00034DF8 BL _lxstat .text:00034DFC CMP R0, #0 .text:00034E00 BLT loc_3521C .text:00034E04 LDMIA R4, {R2,R3} .text:00034E08 SUB R12, R11, #-var_A0 .text:00034E0C STMIB R12, {R2,R3} .text:00034E10 LDR R1, [R11,#var_74] .text:00034E14 STR R1, [R11,#var_A0] .text:00034E18 B loc_35114 .text:00034E1C ; --------------------------------------------------------------------------- .text:00034E1C .text:00034E1C loc_34E1C ; CODE XREF: generic_getcwd+440j .text:00034E1C LDR R2, [R11,#var_8C] .text:00034E20 LDR R3, [R11,#var_90] .text:00034E24 CMP R2, R3 .text:00034E28 BNE loc_34EB0 .text:00034E2C LDR R12, =dots.120 ; "../../../../../../../../../../../../../"... .text:00034E30 CMP R3, R12 .text:00034E34 BNE loc_34E68 .text:00034E38 LDR R1, [R11,#var_94] .text:00034E3C MOV R4, R1,LSL#1 .text:00034E40 ORR R0, R4, #1 .text:00034E44 BL malloc .text:00034E48 SUBS R5, R0, #0 .text:00034E4C BEQ loc_35204 .text:00034E50 LDR R1, [R11,#var_90] .text:00034E54 LDR R2, [R11,#var_94] .text:00034E58 MOV R0, R5 .text:00034E5C BL mempcpy .text:00034E60 STR R0, [R11,#var_8C] .text:00034E64 B loc_34E90 .text:00034E68 ; --------------------------------------------------------------------------- .text:00034E68 .text:00034E68 loc_34E68 ; CODE XREF: generic_getcwd+130j .text:00034E68 LDR R2, [R11,#var_94] .text:00034E6C LDR R0, [R11,#var_90] .text:00034E70 MOV R4, R2,LSL#1 .text:00034E74 ORR R1, R4, #1 .text:00034E78 BL realloc .text:00034E7C SUBS R5, R0, #0 .text:00034E80 BEQ loc_35204 .text:00034E84 LDR R3, [R11,#var_94] .text:00034E88 ADD R3, R5, R3 .text:00034E8C STR R3, [R11,#var_8C] .text:00034E90 .text:00034E90 loc_34E90 ; CODE XREF: generic_getcwd+160j .text:00034E90 LDR R2, [R11,#var_94] .text:00034E94 STR R4, [R11,#var_94] .text:00034E98 STR R5, [R11,#var_90] .text:00034E9C LDR R0, [R11,#var_8C] .text:00034EA0 MOV R1, R5 .text:00034EA4 BL mempcpy .text:00034EA8 MOV R3, #0 .text:00034EAC STRB R3, [R0] .text:00034EB0 .text:00034EB0 loc_34EB0 ; CODE XREF: generic_getcwd+124j .text:00034EB0 LDR R12, [R11,#var_8C] .text:00034EB4 SUB R12, R12, #3 .text:00034EB8 STR R12, [R11,#var_8C] .text:00034EBC MOV R0, #3 .text:00034EC0 SUB R2, R11, #-var_80 .text:00034EC4 MOV R1, R12 .text:00034EC8 BL _lxstat .text:00034ECC CMP R0, #0 .text:00034ED0 BLT loc_35204 .text:00034ED4 SUB R3, R11, #-var_80 .text:00034ED8 LDMIA R3, {R8,R9} .text:00034EDC MOV R1, #0 .text:00034EE0 STR R1, [R11,#var_C0] .text:00034EE4 LDR R2, [R11,#var_74] .text:00034EE8 CMP R8, R6 .text:00034EEC STR R2, [R11,#var_BC] .text:00034EF0 BNE loc_34EFC .text:00034EF4 CMP R9, R7 .text:00034EF8 BEQ loc_34F04 .text:00034EFC .text:00034EFC loc_34EFC ; CODE XREF: generic_getcwd+1ECj .text:00034EFC MOV R3, #1 .text:00034F00 STR R3, [R11,#var_C0] .text:00034F04 .text:00034F04 loc_34F04 ; CODE XREF: generic_getcwd+1F4j .text:00034F04 LDR R0, [R11,#var_8C] .text:00034F08 BL opendir .text:00034F0C CMP R0, #0 .text:00034F10 STR R0, [R11,#var_B8] .text:00034F14 BEQ loc_35204 .text:00034F18 BL __errno_location .text:00034F1C MOV R3, #0 .text:00034F20 STR R3, [R0] .text:00034F24 SUB R1, R11, #-var_94 .text:00034F28 LDMIA R1, {R1,R12} .text:00034F2C LDR R3, [R11,#var_8C] .text:00034F30 ADD R2, R12, R1 .text:00034F34 RSB R10, R3, R2 .text:00034F38 B loc_35030 .text:00034F38 ; --------------------------------------------------------------------------- .text:00034F3C off_34F3C DCD byte_58E51 ; DATA XREF: generic_getcwd+18r .text:00034F40 off_34F40 DCD a_ ; DATA XREF: generic_getcwd+C4r .text:00034F40 ; "." .text:00034F44 off_34F44 DCD asc_58E58 ; DATA XREF: generic_getcwd+ECr .text:00034F44 ; "/" .text:00034F48 off_34F48 DCD dots.120 ; DATA XREF: generic_getcwd+128r .text:00034F48 ; "../../../../../../../../../../../../../"... .text:00034F4C ; --------------------------------------------------------------------------- .text:00034F4C .text:00034F4C loc_34F4C ; CODE XREF: generic_getcwd+338j .text:00034F4C LDRB R3, [R4,#0xB] .text:00034F50 CMP R3, #0x2E .text:00034F54 BNE loc_34F74 .text:00034F58 LDRB R3, [R4,#0xC] .text:00034F5C CMP R3, #0 .text:00034F60 BEQ loc_35030 .text:00034F64 LDR R3, [R4,#0xC] .text:00034F68 MOV R3, R3,LSL#16 .text:00034F6C CMP R3, #0x2E0000 .text:00034F70 BEQ loc_35030 .text:00034F74 .text:00034F74 loc_34F74 ; CODE XREF: generic_getcwd+250j .text:00034F74 LDR R12, [R11,#var_C0] .text:00034F78 CMP R12, #0 .text:00034F7C BNE loc_34F90 .text:00034F80 LDR R3, [R4] .text:00034F84 LDR R1, [R11,#var_A4] .text:00034F88 CMP R3, R1 .text:00034F8C BNE loc_35030 .text:00034F90 .text:00034F90 loc_34F90 ; CODE XREF: generic_getcwd+278j .text:00034F90 LDRB R3, [R4,#8] .text:00034F94 MOV R2, R10 .text:00034F98 LDRB R0, [R4,#9] .text:00034F9C MOV R5, SP .text:00034FA0 LDR R1, [R11,#var_8C] .text:00034FA4 ORR R3, R3, R0,LSL#8 .text:00034FA8 SUB R3, R3, #0xA .text:00034FAC ADD R3, R10, R3 .text:00034FB0 BIC R3, R3, #0xE0000000 .text:00034FB4 ADD R3, R3, #3 .text:00034FB8 BIC R3, R3, #0xC0000003 .text:00034FBC RSB SP, R3, SP .text:00034FC0 MOV R0, SP .text:00034FC4 BL mempcpy .text:00034FC8 MOV R3, #0x2F .text:00034FCC STRB R3, [R0],#1 .text:00034FD0 ADD R1, R4, #0xB .text:00034FD4 BL strcpy .text:00034FD8 MOV R0, #3 .text:00034FDC MOV R1, SP .text:00034FE0 SUB R2, R11, #-var_80 .text:00034FE4 BL _lxstat .text:00034FE8 CMP R0, #0 .text:00034FEC BLT loc_3502C .text:00034FF0 MOV R2, 0xFFFFFFA8 .text:00034FF4 SUB R12, R11, #-var_28 .text:00034FF8 LDR R3, [R12,R2] .text:00034FFC ADD R2, R2, R11 .text:00035000 CMP R3, R6 .text:00035004 SUB R3, R2, #0x28 .text:00035008 BNE loc_3502C .text:0003500C LDR R3, [R3,#4] .text:00035010 CMP R3, R7 .text:00035014 BNE loc_3502C .text:00035018 LDR R3, [R11,#var_74] .text:0003501C LDR R1, [R11,#var_A4] .text:00035020 MOV SP, R5 .text:00035024 CMP R3, R1 .text:00035028 BEQ loc_35040 .text:0003502C .text:0003502C loc_3502C ; CODE XREF: generic_getcwd+2E8j .text:0003502C ; generic_getcwd+304j ... .text:0003502C MOV SP, R5 .text:00035030 .text:00035030 loc_35030 ; CODE XREF: generic_getcwd+234j .text:00035030 ; generic_getcwd+25Cj ... .text:00035030 LDR R0, [R11,#var_B8] .text:00035034 BL readdir .text:00035038 SUBS R4, R0, #0 .text:0003503C BNE loc_34F4C .text:00035040 .text:00035040 loc_35040 ; CODE XREF: generic_getcwd+324j .text:00035040 CMP R4, #0 .text:00035044 BEQ loc_351E4 .text:00035048 ADD R10, R4, #0xB .text:0003504C MOV R0, R10 .text:00035050 BL strlen .text:00035054 SUB R2, R11, #-var_AC .text:00035058 LDMIA R2, {R2,R3} .text:0003505C MOV R6, R0 .text:00035060 RSB R7, R3, R2 .text:00035064 CMP R7, R6 .text:00035068 BHI loc_350D0 .text:0003506C LDR R12, [R11,#var_88] .text:00035070 CMP R12, #0 .text:00035074 BNE loc_351B0 .text:00035078 LDR R5, [R11,#var_B4] .text:0003507C CMP R5, R6 .text:00035080 MOVCS R3, R5 .text:00035084 MOVCC R3, R6 .text:00035088 MOV R3, R3,LSL#1 .text:0003508C STR R3, [R11,#var_B4] .text:00035090 LDR R0, [R11,#var_A8] .text:00035094 MOV R1, R3 .text:00035098 BL realloc .text:0003509C SUBS R4, R0, #0 .text:000350A0 BEQ loc_351C8 .text:000350A4 LDR R1, [R11,#var_B4] .text:000350A8 LDR R3, [R11,#var_A8] .text:000350AC LDR R12, [R11,#var_AC] .text:000350B0 ADD R0, R4, R1 .text:000350B4 ADD R2, R3, R5 .text:000350B8 RSB R2, R12, R2 .text:000350BC RSB R0, R2, R0 .text:000350C0 ADD R1, R4, R7 .text:000350C4 BL memcpy .text:000350C8 STR R0, [R11,#var_AC] .text:000350CC STR R4, [R11,#var_A8] .text:000350D0 .text:000350D0 loc_350D0 ; CODE XREF: generic_getcwd+364j .text:000350D0 LDR R1, [R11,#var_AC] .text:000350D4 RSB R1, R6, R1 .text:000350D8 STR R1, [R11,#var_AC] .text:000350DC MOV R2, R6 .text:000350E0 MOV R0, R1 .text:000350E4 MOV R1, R10 .text:000350E8 BL memcpy .text:000350EC LDR R2, [R11,#var_AC] .text:000350F0 MOV R3, #0x2F .text:000350F4 STRB R3, [R2,#-1]! .text:000350F8 LDR R3, [R11,#var_BC] .text:000350FC STR R3, [R11,#var_A4] .text:00035100 STR R2, [R11,#var_AC] .text:00035104 LDR R0, [R11,#var_B8] .text:00035108 MOV R7, R9 .text:0003510C MOV R6, R8 .text:00035110 BL closedir .text:00035114 .text:00035114 loc_35114 ; CODE XREF: generic_getcwd+114j .text:00035114 LDR R12, [R11,#var_9C] .text:00035118 MOV R3, #0 .text:0003511C CMP R6, R12 .text:00035120 BNE loc_35130 .text:00035124 LDR R1, [R11,#var_98] .text:00035128 CMP R7, R1 .text:0003512C BEQ loc_35134 .text:00035130 .text:00035130 loc_35130 ; CODE XREF: generic_getcwd+41Cj .text:00035130 MOV R3, #1 .text:00035134 .text:00035134 loc_35134 ; CODE XREF: generic_getcwd+428j .text:00035134 SUB R2, R11, #-var_A4 .text:00035138 LDMIA R2, {R2,R12} .text:0003513C CMP R2, R12 .text:00035140 CMPEQ R3, #0 .text:00035144 BNE loc_34E1C .text:00035148 LDR R1, [R11,#var_B4] .text:0003514C LDR R2, [R11,#var_A8] .text:00035150 LDR R12, [R11,#var_AC] .text:00035154 SUB R3, R1, #1 .text:00035158 ADD R3, R2, R3 .text:0003515C CMP R12, R3 .text:00035160 MOVEQ R3, #0x2F .text:00035164 STREQB R3, [R12,#-1]! .text:00035168 STREQ R12, [R11,#var_AC] .text:0003516C LDR R1, [R11,#var_90] .text:00035170 LDR R2, =dots.120 ; "../../../../../../../../../../../../../"... .text:00035174 CMP R1, R2 .text:00035178 BEQ loc_35184 .text:0003517C MOV R0, R1 .text:00035180 BL free .text:00035184 .text:00035184 loc_35184 ; CODE XREF: generic_getcwd+474j .text:00035184 LDR R0, [R11,#var_A8] .text:00035188 LDR R3, [R11,#var_B4] .text:0003518C LDR R1, [R11,#var_AC] .text:00035190 ADD R2, R0, R3 .text:00035194 RSB R2, R1, R2 .text:00035198 BL memmove .text:0003519C BL __errno_location .text:000351A0 LDR R12, [R11,#var_B0] .text:000351A4 STR R12, [R0] .text:000351A8 LDR R0, [R11,#var_A8] .text:000351AC B loc_35234 .text:000351B0 ; --------------------------------------------------------------------------- .text:000351B0 .text:000351B0 loc_351B0 ; CODE XREF: generic_getcwd+370j .text:000351B0 LDR R0, [R11,#var_B8] .text:000351B4 BL closedir .text:000351B8 BL __errno_location .text:000351BC MOV R3, #0x22 .text:000351C0 STR R3, [R0] .text:000351C4 B loc_35204 .text:000351C8 ; --------------------------------------------------------------------------- .text:000351C8 .text:000351C8 loc_351C8 ; CODE XREF: generic_getcwd+39Cj .text:000351C8 LDR R0, [R11,#var_B8] .text:000351CC BL closedir .text:000351D0 BL __errno_location .text:000351D4 MOV R3, #0xC .text:000351D8 STR R3, [R0] .text:000351DC B loc_35204 .text:000351DC ; --------------------------------------------------------------------------- .text:000351E0 off_351E0 DCD dots.120 ; DATA XREF: generic_getcwd+46Cr .text:000351E0 ; "../../../../../../../../../../../../../"... .text:000351E4 ; --------------------------------------------------------------------------- .text:000351E4 .text:000351E4 loc_351E4 ; CODE XREF: generic_getcwd+340j .text:000351E4 BL __errno_location .text:000351E8 LDR R4, [R0] .text:000351EC LDR R0, [R11,#var_B8] .text:000351F0 BL closedir .text:000351F4 CMP R4, #0 .text:000351F8 MOVEQ R4, #2 .text:000351FC BL __errno_location .text:00035200 STR R4, [R0] .text:00035204 .text:00035204 loc_35204 ; CODE XREF: generic_getcwd+148j .text:00035204 ; generic_getcwd+17Cj ... .text:00035204 LDR R1, [R11,#var_90] .text:00035208 LDR R2, =dots.120 ; "../../../../../../../../../../../../../"... .text:0003520C CMP R1, R2 .text:00035210 BEQ loc_3521C .text:00035214 MOV R0, R1 .text:00035218 BL free .text:0003521C .text:0003521C loc_3521C ; CODE XREF: generic_getcwd+D4j .text:0003521C ; generic_getcwd+FCj ... .text:0003521C LDR R3, [R11,#var_84] .text:00035220 CMP R3, #0 .text:00035224 BNE loc_35230 .text:00035228 LDR R0, [R11,#var_A8] .text:0003522C BL free .text:00035230 .text:00035230 loc_35230 ; CODE XREF: generic_getcwd+68j .text:00035230 ; generic_getcwd+520j .text:00035230 MOV R0, #0 .text:00035234 .text:00035234 loc_35234 ; CODE XREF: generic_getcwd+94j .text:00035234 ; generic_getcwd+4A8j .text:00035234 B locret_3523C .text:00035234 ; --------------------------------------------------------------------------- .text:00035238 off_35238 DCD dots.120 ; DATA XREF: generic_getcwd+504r .text:00035238 ; "../../../../../../../../../../../../../"... .text:0003523C ; --------------------------------------------------------------------------- .text:0003523C .text:0003523C locret_3523C ; CODE XREF: generic_getcwd:loc_35234j .text:0003523C LDMDB R11, {R4-R11,SP,PC} .text:0003523C ; End of function generic_getcwd .text:0003523C .text:00035240 .text:00035240 ; =============== S U B R O U T I N E ======================================= .text:00035240 .text:00035240 .text:00035240 WEAK readlink .text:00035240 readlink ; CODE XREF: _dl_get_origin+28p .text:00035240 ; getcwd+16Cp .text:00035240 SVC 0x900055 ; Alternative name is '__readlink' .text:00035244 CMN R0, #0x1000 .text:00035248 MOVCC PC, LR .text:0003524C B __syscall_error .text:0003524C ; End of function readlink .text:0003524C .text:00035250 .text:00035250 ; =============== S U B R O U T I N E ======================================= .text:00035250 .text:00035250 ; Attributes: bp-based frame .text:00035250 .text:00035250 WEAK brk .text:00035250 brk ; CODE XREF: sbrk+38p .text:00035250 ; sbrk+58p .text:00035250 MOV R12, SP .text:00035254 STMFD SP!, {R11,R12,LR,PC} .text:00035258 SUB R11, R12, #4 .text:0003525C MOV R1, R0 .text:00035260 MOV R0, R1 .text:00035264 SVC 0x90002D .text:00035268 MOV R3, R0 .text:0003526C LDR R2, =__curbrk .text:00035270 CMP R3, R1 .text:00035274 STR R3, [R2] .text:00035278 MOVCS R0, #0 .text:0003527C LDMCSDB R11, {R11,SP,PC} .text:00035280 BL __errno_location .text:00035284 MOV R3, #0xC .text:00035288 STR R3, [R0] .text:0003528C MOV R0, 0xFFFFFFFF .text:00035290 LDMDB R11, {R11,SP,PC} .text:00035290 ; End of function brk .text:00035290 .text:00035290 ; --------------------------------------------------------------------------- .text:00035294 off_35294 DCD __curbrk ; DATA XREF: brk+1Cr .text:00035298 .text:00035298 ; =============== S U B R O U T I N E ======================================= .text:00035298 .text:00035298 ; Attributes: bp-based frame .text:00035298 .text:00035298 WEAK writev .text:00035298 writev ; CODE XREF: _dl_debug_vdprintf+48Cp .text:00035298 MOV R12, SP ; Alternative name is '__writev' .text:0003529C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:000352A0 SUB R11, R12, #4 .text:000352A4 MOV R6, R0 .text:000352A8 MOV R7, R1 .text:000352AC MOV R5, R2 .text:000352B0 BL __errno_location .text:000352B4 MOV R2, R5 .text:000352B8 MOV R1, R7 .text:000352BC LDR R8, [R0] .text:000352C0 MOV R0, R6 .text:000352C4 SVC 0x900092 .text:000352C8 MOV R4, R0 .text:000352CC CMN R4, #0x1000 .text:000352D0 BLS loc_352E4 .text:000352D4 BL __errno_location .text:000352D8 RSB R3, R4, #0 .text:000352DC MOV R4, 0xFFFFFFFF .text:000352E0 STR R3, [R0] .text:000352E4 .text:000352E4 loc_352E4 ; CODE XREF: writev+38j .text:000352E4 CMP R4, #0 .text:000352E8 BGE loc_35304 .text:000352EC BL __errno_location .text:000352F0 LDR R3, [R0] .text:000352F4 CMP R3, #0x16 .text:000352F8 BNE loc_35304 .text:000352FC CMP R5, #8 .text:00035300 BGT loc_3530C .text:00035304 .text:00035304 loc_35304 ; CODE XREF: writev+50j .text:00035304 ; writev+60j .text:00035304 MOV R0, R4 .text:00035308 LDMDB R11, {R4-R8,R11,SP,PC} .text:0003530C ; --------------------------------------------------------------------------- .text:0003530C .text:0003530C loc_3530C ; CODE XREF: writev+68j .text:0003530C BL __errno_location .text:00035310 STR R8, [R0] .text:00035314 MOV R0, R6 .text:00035318 MOV R1, R7 .text:0003531C MOV R2, R5 .text:00035320 BL __atomic_writev_replacement .text:00035324 LDMDB R11, {R4-R8,R11,SP,PC} .text:00035324 ; End of function writev .text:00035324 .text:00035328 .text:00035328 ; =============== S U B R O U T I N E ======================================= .text:00035328 .text:00035328 ; Attributes: bp-based frame .text:00035328 .text:00035328 __atomic_writev_replacement ; CODE XREF: writev+88p .text:00035328 .text:00035328 var_30 = -0x30 .text:00035328 var_2C = -0x2C .text:00035328 .text:00035328 MOV R12, SP .text:0003532C STMFD SP!, {R4-R12,LR,PC} .text:00035330 SUB R11, R12, #4 .text:00035334 MOV R8, #0 .text:00035338 MOV R9, R2 .text:0003533C CMP R8, R9 .text:00035340 MOV R10, R1 .text:00035344 SUB SP, SP, #8 .text:00035348 STR R0, [R11,#var_2C] .text:0003534C BGE loc_3536C .text:00035350 MOV R2, R10 .text:00035354 MOV R5, R9 .text:00035358 .text:00035358 loc_35358 ; CODE XREF: __atomic_writev_replacement+40j .text:00035358 LDR R3, [R2,#4] .text:0003535C ADD R2, R2, #8 .text:00035360 SUBS R5, R5, #1 .text:00035364 ADD R8, R8, R3 .text:00035368 BNE loc_35358 .text:0003536C .text:0003536C loc_3536C ; CODE XREF: __atomic_writev_replacement+24j .text:0003536C ADD R3, R8, #3 .text:00035370 BIC R3, R3, #3 .text:00035374 RSB SP, R3, SP .text:00035378 STR SP, [R11,#var_30] .text:0003537C MOV R6, R8 .text:00035380 MOV R0, SP .text:00035384 MOV R5, #0 .text:00035388 MOV R7, R10 .text:0003538C B loc_35398 .text:00035390 ; --------------------------------------------------------------------------- .text:00035390 .text:00035390 loc_35390 ; CODE XREF: __atomic_writev_replacement+94j .text:00035390 ADD R7, R7, #8 .text:00035394 ADD R5, R5, #1 .text:00035398 .text:00035398 loc_35398 ; CODE XREF: __atomic_writev_replacement+64j .text:00035398 CMP R5, R9 .text:0003539C BGE loc_353C0 .text:000353A0 LDR R4, [R7,#4] .text:000353A4 LDR R1, [R10,R5,LSL#3] .text:000353A8 CMP R4, R6 .text:000353AC MOVCS R4, R6 .text:000353B0 MOV R2, R4 .text:000353B4 BL mempcpy .text:000353B8 SUBS R6, R6, R4 .text:000353BC BNE loc_35390 .text:000353C0 .text:000353C0 loc_353C0 ; CODE XREF: __atomic_writev_replacement+74j .text:000353C0 LDR R0, [R11,#var_2C] .text:000353C4 LDR R1, [R11,#var_30] .text:000353C8 MOV R2, R8 .text:000353CC BL write .text:000353D0 LDMDB R11, {R4-R11,SP,PC} .text:000353D0 ; End of function __atomic_writev_replacement .text:000353D0 .text:000353D4 .text:000353D4 ; =============== S U B R O U T I N E ======================================= .text:000353D4 .text:000353D4 ; Attributes: bp-based frame .text:000353D4 .text:000353D4 WEAK getdtablesize .text:000353D4 getdtablesize ; CODE XREF: sysconf:loc_34640p .text:000353D4 .text:000353D4 var_14 = -0x14 .text:000353D4 .text:000353D4 MOV R12, SP .text:000353D8 STMFD SP!, {R11,R12,LR,PC} .text:000353DC SUB R11, R12, #4 .text:000353E0 MOV R0, #7 .text:000353E4 SUB R1, R11, #-var_14 .text:000353E8 SUB SP, SP, #8 .text:000353EC BL getrlimit .text:000353F0 LDR R3, [R11,#var_14] .text:000353F4 CMP R0, #0 .text:000353F8 MOVGE R0, R3 .text:000353FC MOVLT R0, #0x100 .text:00035400 LDMDB R11, {R11,SP,PC} .text:00035400 ; End of function getdtablesize .text:00035400 .text:00035404 .text:00035404 ; =============== S U B R O U T I N E ======================================= .text:00035404 .text:00035404 ; Attributes: bp-based frame .text:00035404 .text:00035404 maybe_split_for_insert ; CODE XREF: tsearch+C4p .text:00035404 ; tsearch+134p .text:00035404 .text:00035404 arg_0 = 4 .text:00035404 arg_4 = 8 .text:00035404 .text:00035404 MOV R12, SP .text:00035408 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0003540C SUB R11, R12, #4 .text:00035410 MOV R5, R2 .text:00035414 LDR R12, [R11,#arg_4] .text:00035418 MOV R4, R3 .text:0003541C CMP R12, #1 .text:00035420 LDR R0, [R0] .text:00035424 BEQ loc_35458 .text:00035428 LDR R3, [R0,#8] .text:0003542C CMP R3, #0 .text:00035430 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00035434 LDR R2, [R0,#4] .text:00035438 CMP R2, #0 .text:0003543C LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00035440 LDRB R3, [R3,#0xC] .text:00035444 TST R3, #1 .text:00035448 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0003544C LDRB R3, [R2,#0xC] .text:00035450 TST R3, #1 .text:00035454 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00035458 .text:00035458 loc_35458 ; CODE XREF: maybe_split_for_insert+20j .text:00035458 LDR R2, [R0,#8] .text:0003545C LDRB R3, [R0,#0xC] .text:00035460 CMP R2, #0 .text:00035464 ORR R3, R3, #1 .text:00035468 STRB R3, [R0,#0xC] .text:0003546C LDRNEB R3, [R2,#0xC] .text:00035470 ANDNE R3, R3, #0xFE .text:00035474 STRNEB R3, [R2,#0xC] .text:00035478 LDR R2, [R0,#4] .text:0003547C CMP R2, #0 .text:00035480 LDRNEB R3, [R2,#0xC] .text:00035484 ANDNE R3, R3, #0xFE .text:00035488 STRNEB R3, [R2,#0xC] .text:0003548C CMP R1, #0 .text:00035490 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00035494 LDR R1, [R1] .text:00035498 LDRB LR, [R1,#0xC] .text:0003549C TST LR, #1 .text:000354A0 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000354A4 LDR R3, [R11,#arg_0] .text:000354A8 CMP R4, #0 .text:000354AC MOVLE R2, #0 .text:000354B0 MOVGT R2, #1 .text:000354B4 LDR R12, [R5] .text:000354B8 CMP R3, #0 .text:000354BC MOVLE R3, #0 .text:000354C0 MOVGT R3, #1 .text:000354C4 CMP R2, R3 .text:000354C8 BEQ loc_35530 .text:000354CC ORR R3, LR, #1 .text:000354D0 STRB R3, [R1,#0xC] .text:000354D4 LDRB R2, [R12,#0xC] .text:000354D8 ORR R2, R2, #1 .text:000354DC STRB R2, [R12,#0xC] .text:000354E0 LDRB R3, [R0,#0xC] .text:000354E4 CMP R4, #0 .text:000354E8 AND R3, R3, #0xFE .text:000354EC STRB R3, [R0,#0xC] .text:000354F0 BGE loc_35510 .text:000354F4 LDR R3, [R0,#8] .text:000354F8 STR R3, [R1,#4] .text:000354FC STR R1, [R0,#8] .text:00035500 LDR R3, [R0,#4] .text:00035504 STR R3, [R12,#8] .text:00035508 STR R12, [R0,#4] .text:0003550C B loc_35528 .text:00035510 ; --------------------------------------------------------------------------- .text:00035510 .text:00035510 loc_35510 ; CODE XREF: maybe_split_for_insert+ECj .text:00035510 LDR R3, [R0,#4] .text:00035514 STR R3, [R1,#8] .text:00035518 STR R1, [R0,#4] .text:0003551C LDR R3, [R0,#8] .text:00035520 STR R3, [R12,#4] .text:00035524 STR R12, [R0,#8] .text:00035528 .text:00035528 loc_35528 ; CODE XREF: maybe_split_for_insert+108j .text:00035528 STR R0, [R5] .text:0003552C LDMDB R11, {R4,R5,R11,SP,PC} .text:00035530 ; --------------------------------------------------------------------------- .text:00035530 .text:00035530 loc_35530 ; CODE XREF: maybe_split_for_insert+C4j .text:00035530 STR R1, [R5] .text:00035534 LDRB R3, [R1,#0xC] .text:00035538 AND R3, R3, #0xFE .text:0003553C STRB R3, [R1,#0xC] .text:00035540 LDRB R2, [R12,#0xC] .text:00035544 CMP R4, #0 .text:00035548 ORR R2, R2, #1 .text:0003554C STRB R2, [R12,#0xC] .text:00035550 LDRLT R3, [R1,#8] .text:00035554 STRLT R3, [R12,#4] .text:00035558 STRLT R12, [R1,#8] .text:0003555C LDRGE R3, [R1,#4] .text:00035560 STRGE R3, [R12,#8] .text:00035564 STRGE R12, [R1,#4] .text:00035568 LDMDB R11, {R4,R5,R11,SP,PC} .text:00035568 ; End of function maybe_split_for_insert .text:00035568 .text:0003556C .text:0003556C ; =============== S U B R O U T I N E ======================================= .text:0003556C .text:0003556C ; Attributes: bp-based frame .text:0003556C .text:0003556C WEAK tsearch .text:0003556C tsearch ; CODE XREF: __dcigettext+534p .text:0003556C ; __add_to_environ+1D0p ... .text:0003556C .text:0003556C var_38 = -0x38 .text:0003556C var_34 = -0x34 .text:0003556C var_30 = -0x30 .text:0003556C var_2C = -0x2C .text:0003556C .text:0003556C MOV R12, SP ; Alternative name is '__tsearch' .text:00035570 STMFD SP!, {R4-R12,LR,PC} .text:00035574 SUB R11, R12, #4 .text:00035578 MOV R8, #0 .text:0003557C MOV R12, R8 .text:00035580 MOV R7, R8 .text:00035584 MOV R10, R7 .text:00035588 MOV R5, R7 .text:0003558C SUBS R6, R1, #0 .text:00035590 MOV R9, R0 .text:00035594 SUB SP, SP, #0x10 .text:00035598 STR R2, [R11,#var_2C] .text:0003559C BNE loc_355B0 .text:000355A0 MOV R0, R7 .text:000355A4 B locret_356A8 .text:000355A8 ; --------------------------------------------------------------------------- .text:000355A8 .text:000355A8 loc_355A8 ; CODE XREF: tsearch+A4j .text:000355A8 MOV R0, R4 .text:000355AC B locret_356A8 .text:000355B0 ; --------------------------------------------------------------------------- .text:000355B0 .text:000355B0 loc_355B0 ; CODE XREF: tsearch+30j .text:000355B0 LDR R2, [R6] .text:000355B4 CMP R2, #0 .text:000355B8 LDRNEB R3, [R2,#0xC] .text:000355BC ANDNE R3, R3, #0xFE .text:000355C0 STRNEB R3, [R2,#0xC] .text:000355C4 MOV R4, R6 .text:000355C8 B loc_355E0 .text:000355CC ; --------------------------------------------------------------------------- .text:000355CC .text:000355CC loc_355CC ; CODE XREF: tsearch+DCj .text:000355CC MOV R12, R8 .text:000355D0 MOV R8, R6 .text:000355D4 MOV R6, R4 .text:000355D8 MOV R5, R10 .text:000355DC MOV R10, R7 .text:000355E0 .text:000355E0 loc_355E0 ; CODE XREF: tsearch+5Cj .text:000355E0 LDR R3, [R4] .text:000355E4 CMP R3, #0 .text:000355E8 BEQ loc_3564C .text:000355EC LDR R4, [R6] .text:000355F0 LDR R1, [R4] .text:000355F4 STR R12, [R11,#var_30] .text:000355F8 LDR R3, [R11,#var_2C] .text:000355FC MOV R0, R9 .text:00035600 MOV LR, PC .text:00035604 MOV PC, R3 .text:00035608 SUBS R7, R0, #0 .text:0003560C LDR R12, [R11,#var_30] .text:00035610 BEQ loc_355A8 .text:00035614 STR R5, [SP,#0x38+var_38] .text:00035618 MOV R3, #0 .text:0003561C STR R3, [SP,#0x38+var_34] .text:00035620 MOV R0, R6 .text:00035624 MOV R1, R8 .text:00035628 MOV R2, R12 .text:0003562C MOV R3, R10 .text:00035630 BL maybe_split_for_insert .text:00035634 CMP R7, #0 .text:00035638 ADDGE R4, R4, #8 .text:0003563C ADDLT R4, R4, #4 .text:00035640 LDR R3, [R4] .text:00035644 CMP R3, #0 .text:00035648 BNE loc_355CC .text:0003564C .text:0003564C loc_3564C ; CODE XREF: tsearch+7Cj .text:0003564C MOV R0, #0x10 .text:00035650 BL malloc .text:00035654 SUBS R5, R0, #0 .text:00035658 BEQ loc_3567C .text:0003565C STR R5, [R4] .text:00035660 STR R9, [R5] .text:00035664 MOV R2, #0 .text:00035668 STR R2, [R5,#8] .text:0003566C STR R2, [R5,#4] .text:00035670 LDRB R3, [R5,#0xC] .text:00035674 ORR R3, R3, #1 .text:00035678 STRB R3, [R5,#0xC] .text:0003567C .text:0003567C loc_3567C ; CODE XREF: tsearch+ECj .text:0003567C CMP R4, R6 .text:00035680 BEQ loc_356A4 .text:00035684 STR R10, [SP,#0x38+var_38] .text:00035688 MOV R3, #1 .text:0003568C STR R3, [SP,#0x38+var_34] .text:00035690 MOV R0, R4 .text:00035694 MOV R1, R6 .text:00035698 MOV R2, R8 .text:0003569C MOV R3, R7 .text:000356A0 BL maybe_split_for_insert .text:000356A4 .text:000356A4 loc_356A4 ; CODE XREF: tsearch+114j .text:000356A4 MOV R0, R5 .text:000356A8 .text:000356A8 locret_356A8 ; CODE XREF: tsearch+38j .text:000356A8 ; tsearch+40j .text:000356A8 LDMDB R11, {R4-R11,SP,PC} .text:000356A8 ; End of function tsearch .text:000356A8 .text:000356AC .text:000356AC ; =============== S U B R O U T I N E ======================================= .text:000356AC .text:000356AC ; Attributes: bp-based frame .text:000356AC .text:000356AC WEAK tfind .text:000356AC tfind ; CODE XREF: __dcigettext+ACp .text:000356AC ; __add_to_environ+164p ... .text:000356AC MOV R12, SP ; Alternative name is '__tfind' .text:000356B0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000356B4 SUB R11, R12, #4 .text:000356B8 CMP R1, #0 .text:000356BC MOV R6, R0 .text:000356C0 MOV R5, R2 .text:000356C4 BNE loc_35700 .text:000356C8 MOV R0, R1 .text:000356CC LDMDB R11, {R4-R6,R11,SP,PC} .text:000356D0 ; --------------------------------------------------------------------------- .text:000356D0 .text:000356D0 loc_356D0 ; CODE XREF: tfind+44j .text:000356D0 MOV R0, R4 .text:000356D4 LDMDB R11, {R4-R6,R11,SP,PC} .text:000356D8 ; --------------------------------------------------------------------------- .text:000356D8 .text:000356D8 loc_356D8 ; CODE XREF: tfind+5Cj .text:000356D8 LDR R4, [R1] .text:000356DC LDR R1, [R4] .text:000356E0 MOV R0, R6 .text:000356E4 MOV LR, PC .text:000356E8 MOV PC, R5 .text:000356EC CMP R0, #0 .text:000356F0 BEQ loc_356D0 .text:000356F4 CMP R0, #0 .text:000356F8 ADDGE R1, R4, #8 .text:000356FC ADDLT R1, R4, #4 .text:00035700 .text:00035700 loc_35700 ; CODE XREF: tfind+18j .text:00035700 LDR R3, [R1] .text:00035704 CMP R3, #0 .text:00035708 BNE loc_356D8 .text:0003570C MOV R0, #0 .text:00035710 LDMDB R11, {R4-R6,R11,SP,PC} .text:00035710 ; End of function tfind .text:00035710 .text:00035714 .text:00035714 ; =============== S U B R O U T I N E ======================================= .text:00035714 .text:00035714 ; Attributes: bp-based frame .text:00035714 .text:00035714 WEAK tdelete .text:00035714 tdelete .text:00035714 .text:00035714 var_34 = -0x34 .text:00035714 var_30 = -0x30 .text:00035714 var_2C = -0x2C .text:00035714 .text:00035714 MOV R12, SP ; Alternative name is '__tdelete' .text:00035718 STMFD SP!, {R4-R12,LR,PC} .text:0003571C SUB R11, R12, #4 .text:00035720 MOV R3, #0x28 .text:00035724 MOV R5, #0 .text:00035728 SUBS R6, R1, #0 .text:0003572C MOV R9, R2 .text:00035730 SUB SP, SP, #0xC .text:00035734 STR R3, [R11,#var_34] .text:00035738 SUB SP, SP, #0xA0 .text:0003573C MOV R10, SP .text:00035740 STR R0, [R11,#var_2C] .text:00035744 BEQ loc_35754 .text:00035748 LDR R4, [R6] .text:0003574C CMP R4, #0 .text:00035750 BNE loc_3575C .text:00035754 .text:00035754 loc_35754 ; CODE XREF: tdelete+30j .text:00035754 MOV R0, R5 .text:00035758 B locret_35B68 .text:0003575C ; --------------------------------------------------------------------------- .text:0003575C .text:0003575C loc_3575C ; CODE XREF: tdelete+3Cj .text:0003575C ADD R8, R5, #0x53 .text:00035760 B loc_357BC .text:00035764 ; --------------------------------------------------------------------------- .text:00035764 .text:00035764 loc_35764 ; CODE XREF: tdelete+C0j .text:00035764 LDR R3, [R11,#var_34] .text:00035768 CMP R5, R3 .text:0003576C BNE loc_35794 .text:00035770 ADD R3, R5, #0x14 .text:00035774 STR R3, [R11,#var_34] .text:00035778 BIC R3, R8, #3 .text:0003577C RSB SP, R3, SP .text:00035780 MOV R0, SP .text:00035784 MOV R1, R10 .text:00035788 MOV R2, R5,LSL#2 .text:0003578C BL memcpy .text:00035790 MOV R10, R0 .text:00035794 .text:00035794 loc_35794 ; CODE XREF: tdelete+58j .text:00035794 STR R6, [R10,R5,LSL#2] .text:00035798 ADD R8, R8, #4 .text:0003579C LDR R4, [R6] .text:000357A0 CMP R7, #0 .text:000357A4 ADDGE R6, R4, #8 .text:000357A8 ADDLT R6, R4, #4 .text:000357AC LDR R0, [R6] .text:000357B0 ADD R5, R5, #1 .text:000357B4 CMP R0, #0 .text:000357B8 BEQ locret_35B68 .text:000357BC .text:000357BC loc_357BC ; CODE XREF: tdelete+4Cj .text:000357BC LDR R3, [R6] .text:000357C0 LDR R0, [R11,#var_2C] .text:000357C4 LDR R1, [R3] .text:000357C8 MOV LR, PC .text:000357CC MOV PC, R9 .text:000357D0 SUBS R7, R0, #0 .text:000357D4 BNE loc_35764 .text:000357D8 LDR R9, [R6] .text:000357DC LDR R1, [R9,#8] .text:000357E0 LDR R12, [R9,#4] .text:000357E4 STR R4, [R11,#var_30] .text:000357E8 CMP R1, #0 .text:000357EC CMPNE R12, #0 .text:000357F0 MOVEQ R7, R9 .text:000357F4 BEQ loc_35864 .text:000357F8 MOV R8, R6 .text:000357FC ADD R7, R9, #8 .text:00035800 MOV R3, R5,LSL#2 .text:00035804 ADD R4, R3, #0x53 .text:00035808 B loc_35810 .text:0003580C ; --------------------------------------------------------------------------- .text:0003580C .text:0003580C loc_3580C ; CODE XREF: tdelete+148j .text:0003580C ADD R7, R0, #4 .text:00035810 .text:00035810 loc_35810 ; CODE XREF: tdelete+F4j .text:00035810 LDR R3, [R11,#var_34] .text:00035814 CMP R5, R3 .text:00035818 BNE loc_35840 .text:0003581C ADD R3, R5, #0x14 .text:00035820 STR R3, [R11,#var_34] .text:00035824 BIC R3, R4, #3 .text:00035828 RSB SP, R3, SP .text:0003582C MOV R0, SP .text:00035830 MOV R1, R10 .text:00035834 MOV R2, R5,LSL#2 .text:00035838 BL memcpy .text:0003583C MOV R10, R0 .text:00035840 .text:00035840 loc_35840 ; CODE XREF: tdelete+104j .text:00035840 STR R8, [R10,R5,LSL#2] .text:00035844 MOV R8, R7 .text:00035848 LDR R0, [R8] .text:0003584C ADD R4, R4, #4 .text:00035850 LDR R3, [R0,#4] .text:00035854 ADD R5, R5, #1 .text:00035858 CMP R3, #0 .text:0003585C BNE loc_3580C .text:00035860 MOV R7, R0 .text:00035864 .text:00035864 loc_35864 ; CODE XREF: tdelete+E0j .text:00035864 LDR R1, [R7,#4] .text:00035868 CMP R1, #0 .text:0003586C LDREQ R1, [R7,#8] .text:00035870 CMP R5, #0 .text:00035874 STREQ R1, [R6] .text:00035878 BEQ loc_35898 .text:0003587C ADD R3, R10, R5,LSL#2 .text:00035880 LDR R2, [R3,#-4] .text:00035884 LDR R12, [R2] .text:00035888 LDR R3, [R12,#8] .text:0003588C CMP R7, R3 .text:00035890 STREQ R1, [R12,#8] .text:00035894 STRNE R1, [R12,#4] .text:00035898 .text:00035898 loc_35898 ; CODE XREF: tdelete+164j .text:00035898 CMP R7, R9 .text:0003589C LDRNE R3, [R7] .text:000358A0 STRNE R3, [R9] .text:000358A4 LDRB R3, [R7,#0xC] .text:000358A8 TST R3, #1 .text:000358AC BNE loc_35B5C .text:000358B0 B loc_35B30 .text:000358B4 ; --------------------------------------------------------------------------- .text:000358B4 .text:000358B4 loc_358B4 ; CODE XREF: tdelete+428j .text:000358B4 ; tdelete+434j .text:000358B4 ADD R3, R10, R5,LSL#2 .text:000358B8 LDR R0, [R3,#-4] .text:000358BC LDR R4, [R0] .text:000358C0 LDR R3, [R4,#4] .text:000358C4 CMP R1, R3 .text:000358C8 BNE loc_359E8 .text:000358CC LDR R12, [R4,#8] .text:000358D0 CMP R12, #0 .text:000358D4 BEQ loc_35918 .text:000358D8 LDRB R3, [R12,#0xC] .text:000358DC TST R3, #1 .text:000358E0 BEQ loc_35918 .text:000358E4 AND R3, R3, #0xFE .text:000358E8 STRB R3, [R12,#0xC] .text:000358EC LDRB R2, [R4,#0xC] .text:000358F0 ORR R2, R2, #1 .text:000358F4 STRB R2, [R4,#0xC] .text:000358F8 LDR R3, [R12,#4] .text:000358FC STR R3, [R4,#8] .text:00035900 STR R4, [R12,#4] .text:00035904 STR R12, [R0] .text:00035908 ADD R0, R12, #4 .text:0003590C STR R0, [R10,R5,LSL#2] .text:00035910 ADD R5, R5, #1 .text:00035914 LDR R12, [R4,#8] .text:00035918 .text:00035918 loc_35918 ; CODE XREF: tdelete+1C0j .text:00035918 ; tdelete+1CCj .text:00035918 LDR R3, [R12,#4] .text:0003591C CMP R3, #0 .text:00035920 MOV R1, R3 .text:00035924 BEQ loc_35938 .text:00035928 LDRB R3, [R1,#0xC] .text:0003592C LDR LR, [R12,#8] .text:00035930 TST R3, #1 .text:00035934 BNE loc_35954 .text:00035938 .text:00035938 loc_35938 ; CODE XREF: tdelete+210j .text:00035938 LDR R3, [R12,#8] .text:0003593C CMP R3, #0 .text:00035940 MOV LR, R3 .text:00035944 BEQ loc_35A6C .text:00035948 LDRB R3, [LR,#0xC] .text:0003594C TST R3, #1 .text:00035950 BEQ loc_35A6C .text:00035954 .text:00035954 loc_35954 ; CODE XREF: tdelete+220j .text:00035954 CMP LR, #0 .text:00035958 BEQ loc_35968 .text:0003595C LDRB R3, [LR,#0xC] .text:00035960 TST R3, #1 .text:00035964 BNE loc_359A0 .text:00035968 .text:00035968 loc_35968 ; CODE XREF: tdelete+244j .text:00035968 LDRB R2, [R4,#0xC] .text:0003596C LDRB R3, [R1,#0xC] .text:00035970 AND R2, R2, #1 .text:00035974 CMP R2, #0 .text:00035978 ORRNE R3, R3, #1 .text:0003597C ANDEQ R3, R3, #0xFE .text:00035980 STRB R3, [R1,#0xC] .text:00035984 LDR R2, [R1,#4] .text:00035988 STR R2, [R4,#8] .text:0003598C LDR R3, [R1,#8] .text:00035990 STR R3, [R12,#4] .text:00035994 STMIB R1, {R4,R12} .text:00035998 STR R1, [R0] .text:0003599C B loc_35ACC .text:000359A0 ; --------------------------------------------------------------------------- .text:000359A0 .text:000359A0 loc_359A0 ; CODE XREF: tdelete+250j .text:000359A0 LDRB R3, [R4,#0xC] .text:000359A4 LDRB R2, [R12,#0xC] .text:000359A8 AND R3, R3, #1 .text:000359AC CMP R3, #0 .text:000359B0 ORRNE R2, R2, #1 .text:000359B4 ANDEQ R2, R2, #0xFE .text:000359B8 STRB R2, [R12,#0xC] .text:000359BC LDRB R3, [R4,#0xC] .text:000359C0 AND R3, R3, #0xFE .text:000359C4 STRB R3, [R4,#0xC] .text:000359C8 LDR R1, [R12,#8] .text:000359CC LDRB R3, [R1,#0xC] .text:000359D0 AND R3, R3, #0xFE .text:000359D4 STRB R3, [R1,#0xC] .text:000359D8 LDR R2, [R12,#4] .text:000359DC STR R2, [R4,#8] .text:000359E0 STR R4, [R12,#4] .text:000359E4 B loc_35B20 .text:000359E8 ; --------------------------------------------------------------------------- .text:000359E8 .text:000359E8 loc_359E8 ; CODE XREF: tdelete+1B4j .text:000359E8 SUBS R12, R3, #0 .text:000359EC BEQ loc_35A30 .text:000359F0 LDRB R3, [R12,#0xC] .text:000359F4 TST R3, #1 .text:000359F8 BEQ loc_35A30 .text:000359FC AND R3, R3, #0xFE .text:00035A00 STRB R3, [R12,#0xC] .text:00035A04 LDRB R2, [R4,#0xC] .text:00035A08 ORR R2, R2, #1 .text:00035A0C STRB R2, [R4,#0xC] .text:00035A10 LDR R3, [R12,#8] .text:00035A14 STR R3, [R4,#4] .text:00035A18 STR R4, [R12,#8] .text:00035A1C STR R12, [R0] .text:00035A20 ADD R0, R12, #8 .text:00035A24 STR R0, [R10,R5,LSL#2] .text:00035A28 ADD R5, R5, #1 .text:00035A2C LDR R12, [R4,#4] .text:00035A30 .text:00035A30 loc_35A30 ; CODE XREF: tdelete+2D8j .text:00035A30 ; tdelete+2E4j .text:00035A30 LDR R3, [R12,#8] .text:00035A34 CMP R3, #0 .text:00035A38 MOV LR, R3 .text:00035A3C BEQ loc_35A50 .text:00035A40 LDRB R3, [LR,#0xC] .text:00035A44 LDR R1, [R12,#4] .text:00035A48 TST R3, #1 .text:00035A4C BNE loc_35A80 .text:00035A50 .text:00035A50 loc_35A50 ; CODE XREF: tdelete+328j .text:00035A50 LDR R3, [R12,#4] .text:00035A54 CMP R3, #0 .text:00035A58 MOV R1, R3 .text:00035A5C BEQ loc_35A6C .text:00035A60 LDRB R3, [R1,#0xC] .text:00035A64 TST R3, #1 .text:00035A68 BNE loc_35A80 .text:00035A6C .text:00035A6C loc_35A6C ; CODE XREF: tdelete+230j .text:00035A6C ; tdelete+23Cj ... .text:00035A6C LDRB R3, [R12,#0xC] .text:00035A70 MOV R1, R4 .text:00035A74 ORR R3, R3, #1 .text:00035A78 STRB R3, [R12,#0xC] .text:00035A7C B loc_35B2C .text:00035A80 ; --------------------------------------------------------------------------- .text:00035A80 .text:00035A80 loc_35A80 ; CODE XREF: tdelete+338j .text:00035A80 ; tdelete+354j .text:00035A80 CMP R1, #0 .text:00035A84 BEQ loc_35A94 .text:00035A88 LDRB R3, [R1,#0xC] .text:00035A8C TST R3, #1 .text:00035A90 BNE loc_35ADC .text:00035A94 .text:00035A94 loc_35A94 ; CODE XREF: tdelete+370j .text:00035A94 LDRB R2, [R4,#0xC] .text:00035A98 LDRB R3, [LR,#0xC] .text:00035A9C AND R2, R2, #1 .text:00035AA0 CMP R2, #0 .text:00035AA4 ORRNE R3, R3, #1 .text:00035AA8 ANDEQ R3, R3, #0xFE .text:00035AAC STRB R3, [LR,#0xC] .text:00035AB0 LDR R2, [LR,#8] .text:00035AB4 STR R2, [R4,#4] .text:00035AB8 LDR R3, [LR,#4] .text:00035ABC STR R3, [R12,#8] .text:00035AC0 STR R12, [LR,#4] .text:00035AC4 STR R4, [LR,#8] .text:00035AC8 STR LR, [R0] .text:00035ACC .text:00035ACC loc_35ACC ; CODE XREF: tdelete+288j .text:00035ACC LDRB R3, [R4,#0xC] .text:00035AD0 AND R3, R3, #0xFE .text:00035AD4 STRB R3, [R4,#0xC] .text:00035AD8 B loc_35B24 .text:00035ADC ; --------------------------------------------------------------------------- .text:00035ADC .text:00035ADC loc_35ADC ; CODE XREF: tdelete+37Cj .text:00035ADC LDRB R3, [R4,#0xC] .text:00035AE0 LDRB R2, [R12,#0xC] .text:00035AE4 AND R3, R3, #1 .text:00035AE8 CMP R3, #0 .text:00035AEC ORRNE R2, R2, #1 .text:00035AF0 ANDEQ R2, R2, #0xFE .text:00035AF4 STRB R2, [R12,#0xC] .text:00035AF8 LDRB R3, [R4,#0xC] .text:00035AFC AND R3, R3, #0xFE .text:00035B00 STRB R3, [R4,#0xC] .text:00035B04 LDR R1, [R12,#4] .text:00035B08 LDRB R3, [R1,#0xC] .text:00035B0C AND R3, R3, #0xFE .text:00035B10 STRB R3, [R1,#0xC] .text:00035B14 LDR R2, [R12,#8] .text:00035B18 STR R2, [R4,#4] .text:00035B1C STR R4, [R12,#8] .text:00035B20 .text:00035B20 loc_35B20 ; CODE XREF: tdelete+2D0j .text:00035B20 STR R12, [R0] .text:00035B24 .text:00035B24 loc_35B24 ; CODE XREF: tdelete+3C4j .text:00035B24 MOV R5, #1 .text:00035B28 MOV R1, #0 .text:00035B2C .text:00035B2C loc_35B2C ; CODE XREF: tdelete+368j .text:00035B2C SUB R5, R5, #1 .text:00035B30 .text:00035B30 loc_35B30 ; CODE XREF: tdelete+19Cj .text:00035B30 CMP R5, #0 .text:00035B34 BLE loc_35B4C .text:00035B38 CMP R1, #0 .text:00035B3C BEQ loc_358B4 .text:00035B40 LDRB R3, [R1,#0xC] .text:00035B44 TST R3, #1 .text:00035B48 BEQ loc_358B4 .text:00035B4C .text:00035B4C loc_35B4C ; CODE XREF: tdelete+420j .text:00035B4C CMP R1, #0 .text:00035B50 LDRNEB R3, [R1,#0xC] .text:00035B54 ANDNE R3, R3, #0xFE .text:00035B58 STRNEB R3, [R1,#0xC] .text:00035B5C .text:00035B5C loc_35B5C ; CODE XREF: tdelete+198j .text:00035B5C MOV R0, R7 .text:00035B60 BL free .text:00035B64 LDR R0, [R11,#var_30] .text:00035B68 .text:00035B68 locret_35B68 ; CODE XREF: tdelete+44j .text:00035B68 ; tdelete+A4j .text:00035B68 LDMDB R11, {R4-R11,SP,PC} .text:00035B68 ; End of function tdelete .text:00035B68 .text:00035B6C .text:00035B6C ; =============== S U B R O U T I N E ======================================= .text:00035B6C .text:00035B6C ; Attributes: bp-based frame .text:00035B6C .text:00035B6C trecurse ; CODE XREF: trecurse+68p .text:00035B6C ; trecurse+94p ... .text:00035B6C MOV R12, SP .text:00035B70 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00035B74 SUB R11, R12, #4 .text:00035B78 MOV R4, R0 .text:00035B7C MOV R6, R1 .text:00035B80 LDR R3, [R4,#4] .text:00035B84 MOV R5, R2 .text:00035B88 CMP R3, #0 .text:00035B8C BNE loc_35BAC .text:00035B90 LDR R3, [R4,#8] .text:00035B94 CMP R3, #0 .text:00035B98 BNE loc_35BAC .text:00035B9C MOV R1, #3 .text:00035BA0 MOV LR, PC .text:00035BA4 MOV PC, R6 .text:00035BA8 LDMDB R11, {R4-R6,R11,SP,PC} .text:00035BAC ; --------------------------------------------------------------------------- .text:00035BAC .text:00035BAC loc_35BAC ; CODE XREF: trecurse+20j .text:00035BAC ; trecurse+2Cj .text:00035BAC MOV R0, R4 .text:00035BB0 MOV R1, #0 .text:00035BB4 MOV R2, R5 .text:00035BB8 MOV LR, PC .text:00035BBC MOV PC, R6 .text:00035BC0 LDR R0, [R4,#4] .text:00035BC4 CMP R0, #0 .text:00035BC8 BEQ loc_35BD8 .text:00035BCC MOV R1, R6 .text:00035BD0 ADD R2, R5, #1 .text:00035BD4 BL trecurse .text:00035BD8 .text:00035BD8 loc_35BD8 ; CODE XREF: trecurse+5Cj .text:00035BD8 MOV R0, R4 .text:00035BDC MOV R1, #1 .text:00035BE0 MOV R2, R5 .text:00035BE4 MOV LR, PC .text:00035BE8 MOV PC, R6 .text:00035BEC LDR R0, [R4,#8] .text:00035BF0 CMP R0, #0 .text:00035BF4 BEQ loc_35C04 .text:00035BF8 MOV R1, R6 .text:00035BFC ADD R2, R5, #1 .text:00035C00 BL trecurse .text:00035C04 .text:00035C04 loc_35C04 ; CODE XREF: trecurse+88j .text:00035C04 MOV R0, R4 .text:00035C08 MOV R1, #2 .text:00035C0C MOV R2, R5 .text:00035C10 MOV LR, PC .text:00035C14 MOV PC, R6 .text:00035C18 LDMDB R11, {R4-R6,R11,SP,PC} .text:00035C18 ; End of function trecurse .text:00035C18 .text:00035C1C .text:00035C1C ; =============== S U B R O U T I N E ======================================= .text:00035C1C .text:00035C1C ; Attributes: bp-based frame .text:00035C1C .text:00035C1C WEAK twalk .text:00035C1C twalk ; CODE XREF: __gconv_release_shlib+20p .text:00035C1C MOV R12, SP .text:00035C20 STMFD SP!, {R11,R12,LR,PC} .text:00035C24 SUB R11, R12, #4 .text:00035C28 CMP R0, #0 .text:00035C2C CMPNE R1, #0 .text:00035C30 LDMEQDB R11, {R11,SP,PC} .text:00035C34 MOV R2, #0 .text:00035C38 BL trecurse .text:00035C3C LDMDB R11, {R11,SP,PC} .text:00035C3C ; End of function twalk .text:00035C3C .text:00035C40 .text:00035C40 ; =============== S U B R O U T I N E ======================================= .text:00035C40 .text:00035C40 ; Attributes: bp-based frame .text:00035C40 .text:00035C40 tdestroy_recurse ; CODE XREF: tdestroy_recurse+20p .text:00035C40 ; tdestroy_recurse+34p ... .text:00035C40 MOV R12, SP .text:00035C44 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00035C48 SUB R11, R12, #4 .text:00035C4C MOV R5, R0 .text:00035C50 LDR R0, [R5,#4] .text:00035C54 MOV R4, R1 .text:00035C58 CMP R0, #0 .text:00035C5C BEQ loc_35C64 .text:00035C60 BL tdestroy_recurse .text:00035C64 .text:00035C64 loc_35C64 ; CODE XREF: tdestroy_recurse+1Cj .text:00035C64 LDR R0, [R5,#8] .text:00035C68 CMP R0, #0 .text:00035C6C BEQ loc_35C78 .text:00035C70 MOV R1, R4 .text:00035C74 BL tdestroy_recurse .text:00035C78 .text:00035C78 loc_35C78 ; CODE XREF: tdestroy_recurse+2Cj .text:00035C78 LDR R0, [R5] .text:00035C7C MOV LR, PC .text:00035C80 MOV PC, R4 .text:00035C84 MOV R0, R5 .text:00035C88 BL free .text:00035C8C LDMDB R11, {R4,R5,R11,SP,PC} .text:00035C8C ; End of function tdestroy_recurse .text:00035C8C .text:00035C90 .text:00035C90 ; =============== S U B R O U T I N E ======================================= .text:00035C90 .text:00035C90 ; Attributes: bp-based frame .text:00035C90 .text:00035C90 WEAK tdestroy .text:00035C90 tdestroy ; CODE XREF: free_mem+84p .text:00035C90 ; free_mem_2+1Cp ... .text:00035C90 MOV R12, SP .text:00035C94 STMFD SP!, {R11,R12,LR,PC} .text:00035C98 SUB R11, R12, #4 .text:00035C9C CMP R0, #0 .text:00035CA0 LDMEQDB R11, {R11,SP,PC} .text:00035CA4 BL tdestroy_recurse .text:00035CA8 LDMDB R11, {R11,SP,PC} .text:00035CA8 ; End of function tdestroy .text:00035CA8 .text:00035CAC .text:00035CAC ; =============== S U B R O U T I N E ======================================= .text:00035CAC .text:00035CAC ; Attributes: bp-based frame .text:00035CAC .text:00035CAC get_proc_path ; CODE XREF: get_nprocs_conf+24p .text:00035CAC ; phys_pages_info+3Cp .text:00035CAC .text:00035CAC var_38 = -0x38 .text:00035CAC var_34 = -0x34 .text:00035CAC var_30 = -0x30 .text:00035CAC .text:00035CAC MOV R12, SP .text:00035CB0 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00035CB4 SUB R11, R12, #4 .text:00035CB8 MOV R8, R0 .text:00035CBC MOV R6, #0 .text:00035CC0 LDR R4, =aR_0 ; "r" .text:00035CC4 MOV R7, R1 .text:00035CC8 LDR R0, =aEtcMtab ; "/etc/mtab" .text:00035CCC MOV R1, R4 .text:00035CD0 SUB SP, SP, #0x18 .text:00035CD4 BL setmntent .text:00035CD8 SUBS R5, R0, #0 .text:00035CDC BNE loc_35CF0 .text:00035CE0 LDR R0, =aEtcFstab ; "/etc/fstab" .text:00035CE4 MOV R1, R4 .text:00035CE8 BL setmntent .text:00035CEC MOV R5, R0 .text:00035CF0 .text:00035CF0 loc_35CF0 ; CODE XREF: get_proc_path+30j .text:00035CF0 CMP R5, #0 .text:00035CF4 BEQ loc_35D38 .text:00035CF8 SUB R4, R11, #-var_38 .text:00035CFC B loc_35D14 .text:00035D00 ; --------------------------------------------------------------------------- .text:00035D00 .text:00035D00 loc_35D00 ; CODE XREF: get_proc_path+80j .text:00035D00 LDR R0, [R11,#var_30] .text:00035D04 LDR R1, =aProc ; "proc" .text:00035D08 BL strcmp .text:00035D0C CMP R0, #0 .text:00035D10 BEQ loc_35D5C .text:00035D14 .text:00035D14 loc_35D14 ; CODE XREF: get_proc_path+50j .text:00035D14 MOV R0, R5 .text:00035D18 MOV R1, R4 .text:00035D1C MOV R2, R8 .text:00035D20 MOV R3, R7 .text:00035D24 BL getmntent_r .text:00035D28 CMP R0, #0 .text:00035D2C BNE loc_35D00 .text:00035D30 .text:00035D30 loc_35D30 ; CODE XREF: get_proc_path+B4j .text:00035D30 MOV R0, R5 .text:00035D34 BL endmntent .text:00035D38 .text:00035D38 loc_35D38 ; CODE XREF: get_proc_path+48j .text:00035D38 CMP R6, #0 .text:00035D3C LDR R0, =path_proc ; "/proc" .text:00035D40 BEQ loc_35DB4 .text:00035D44 MOV R0, R6 .text:00035D48 BL strdup .text:00035D4C CMP R0, #0 .text:00035D50 BNE loc_35D78 .text:00035D54 MOV R0, R6 .text:00035D58 B loc_35DB4 .text:00035D5C ; --------------------------------------------------------------------------- .text:00035D5C .text:00035D5C loc_35D5C ; CODE XREF: get_proc_path+64j .text:00035D5C LDR R6, [R11,#var_34] .text:00035D60 B loc_35D30 .text:00035D60 ; --------------------------------------------------------------------------- .text:00035D64 off_35D64 DCD aR_0 ; DATA XREF: get_proc_path+14r .text:00035D64 ; "r" .text:00035D68 off_35D68 DCD aEtcMtab ; DATA XREF: get_proc_path+1Cr .text:00035D68 ; "/etc/mtab" .text:00035D6C off_35D6C DCD aEtcFstab ; DATA XREF: get_proc_path+34r .text:00035D6C ; "/etc/fstab" .text:00035D70 off_35D70 DCD aProc ; DATA XREF: get_proc_path+58r .text:00035D70 ; "proc" .text:00035D74 off_35D74 DCD path_proc ; DATA XREF: get_proc_path+90r .text:00035D74 ; "/proc" .text:00035D78 ; --------------------------------------------------------------------------- .text:00035D78 .text:00035D78 loc_35D78 ; CODE XREF: get_proc_path+A4j .text:00035D78 MOV R3, #0 .text:00035D7C LDR R4, =mount_proc .text:00035D80 .text:00035D80 loc_35D80 ; CODE XREF: get_proc_path+F0j .text:00035D80 LDR R1, [R4] .text:00035D84 MOV R2, #0 .text:00035D88 CMP R1, R3 .text:00035D8C BNE loc_35DA4 .text:00035D90 SWP R2, R0, [R4] .text:00035D94 CMP R1, R2 .text:00035D98 SWPNE R1, R2, [R4] .text:00035D9C BNE loc_35D80 .text:00035DA0 MOV R2, #1 .text:00035DA4 .text:00035DA4 loc_35DA4 ; CODE XREF: get_proc_path+E0j .text:00035DA4 CMP R2, R3 .text:00035DA8 BNE loc_35DB0 .text:00035DAC BL free .text:00035DB0 .text:00035DB0 loc_35DB0 ; CODE XREF: get_proc_path+FCj .text:00035DB0 LDR R0, [R4] .text:00035DB4 .text:00035DB4 loc_35DB4 ; CODE XREF: get_proc_path+94j .text:00035DB4 ; get_proc_path+ACj .text:00035DB4 B locret_35DBC .text:00035DB4 ; --------------------------------------------------------------------------- .text:00035DB8 off_35DB8 DCD mount_proc ; DATA XREF: get_proc_path+D0r .text:00035DBC ; --------------------------------------------------------------------------- .text:00035DBC .text:00035DBC locret_35DBC ; CODE XREF: get_proc_path:loc_35DB4j .text:00035DBC LDMDB R11, {R4-R8,R11,SP,PC} .text:00035DBC ; End of function get_proc_path .text:00035DBC .text:00035DC0 .text:00035DC0 ; =============== S U B R O U T I N E ======================================= .text:00035DC0 .text:00035DC0 ; Attributes: bp-based frame .text:00035DC0 .text:00035DC0 WEAK get_nprocs_conf .text:00035DC0 get_nprocs_conf ; CODE XREF: sysconf:loc_346E4p .text:00035DC0 ; sysconf:loc_346ECp .text:00035DC0 .text:00035DC0 var_2000 = -0x2000 .text:00035DC0 .text:00035DC0 MOV R12, SP .text:00035DC4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00035DC8 SUB R11, R12, #4 .text:00035DCC MOV R5, #1 .text:00035DD0 SUB R4, R11, #-var_2000 .text:00035DD4 SUB R4, R4, #0x1C .text:00035DD8 MOV R0, R4 .text:00035DDC MOV R1, #0x2000 .text:00035DE0 SUB SP, SP, #0x2000 .text:00035DE4 BL get_proc_path .text:00035DE8 SUBS R6, R0, #0 .text:00035DEC MOV R7, R4 .text:00035DF0 BEQ loc_35E78 .text:00035DF4 MOV R0, R6 .text:00035DF8 BL strlen .text:00035DFC ADD R0, R0, #0xC .text:00035E00 BIC R0, R0, #3 .text:00035E04 RSB SP, R0, SP .text:00035E08 MOV R0, SP .text:00035E0C MOV R1, R6 .text:00035E10 BL stpcpy .text:00035E14 LDR R1, =aCpuinfo ; "/cpuinfo" .text:00035E18 BL stpcpy .text:00035E1C LDR R1, =aR_0 ; "r" .text:00035E20 MOV R0, SP .text:00035E24 BL fopen .text:00035E28 SUBS R4, R0, #0 .text:00035E2C BEQ loc_35E78 .text:00035E30 SUB R5, R5, #1 .text:00035E34 B loc_35E58 .text:00035E34 ; --------------------------------------------------------------------------- .text:00035E38 off_35E38 DCD aCpuinfo ; DATA XREF: get_nprocs_conf+54r .text:00035E38 ; "/cpuinfo" .text:00035E3C off_35E3C DCD aR_0 ; DATA XREF: get_nprocs_conf+5Cr .text:00035E3C ; "r" .text:00035E40 ; --------------------------------------------------------------------------- .text:00035E40 .text:00035E40 loc_35E40 ; CODE XREF: get_nprocs_conf+ACj .text:00035E40 MOV R0, R7 .text:00035E44 LDR R1, =aProcessor ; "processor" .text:00035E48 MOV R2, #9 .text:00035E4C BL strncmp .text:00035E50 CMP R0, #0 .text:00035E54 ADDEQ R5, R5, #1 .text:00035E58 .text:00035E58 loc_35E58 ; CODE XREF: get_nprocs_conf+74j .text:00035E58 MOV R0, R7 .text:00035E5C MOV R1, #0x2000 .text:00035E60 MOV R2, R4 .text:00035E64 BL fgets_unlocked .text:00035E68 CMP R0, #0 .text:00035E6C BNE loc_35E40 .text:00035E70 MOV R0, R4 .text:00035E74 BL fclose .text:00035E78 .text:00035E78 loc_35E78 ; CODE XREF: get_nprocs_conf+30j .text:00035E78 ; get_nprocs_conf+6Cj .text:00035E78 MOV R0, R5 .text:00035E7C B locret_35E84 .text:00035E7C ; --------------------------------------------------------------------------- .text:00035E80 off_35E80 DCD aProcessor ; DATA XREF: get_nprocs_conf+84r .text:00035E80 ; "processor" .text:00035E84 ; --------------------------------------------------------------------------- .text:00035E84 .text:00035E84 locret_35E84 ; CODE XREF: get_nprocs_conf+BCj .text:00035E84 LDMDB R11, {R4-R7,R11,SP,PC} .text:00035E84 ; End of function get_nprocs_conf .text:00035E84 .text:00035E88 .text:00035E88 ; =============== S U B R O U T I N E ======================================= .text:00035E88 .text:00035E88 ; Attributes: bp-based frame .text:00035E88 .text:00035E88 phys_pages_info ; CODE XREF: get_phys_pages+10p .text:00035E88 ; get_avphys_pages+10p .text:00035E88 .text:00035E88 var_2000 = -0x2000 .text:00035E88 var_24 = -0x24 .text:00035E88 .text:00035E88 MOV R12, SP .text:00035E8C STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00035E90 SUB R11, R12, #4 .text:00035E94 MOV R7, 0xFFFFDFFC .text:00035E9C MOV R3, 0xFFFFFFFF .text:00035EA0 SUB R2, R11, #-var_24 .text:00035EA4 MOV R10, R0 .text:00035EA8 SUB SP, SP, #0x2000 .text:00035EAC SUB SP, SP, #4 .text:00035EB0 STR R3, [R2,R7] .text:00035EB4 SUB R4, R11, #-var_2000 .text:00035EB8 SUB R4, R4, #0x24 .text:00035EBC MOV R0, R4 .text:00035EC0 MOV R1, #0x2000 .text:00035EC4 BL get_proc_path .text:00035EC8 SUB R5, R11, #-var_2000 .text:00035ECC SUB R5, R5, #0x24 .text:00035ED0 SUB R5, R5, #4 .text:00035ED4 SUBS R6, R0, #0 .text:00035ED8 MOV R8, R4 .text:00035EDC BEQ loc_35F84 .text:00035EE0 MOV R0, R6 .text:00035EE4 BL strlen .text:00035EE8 ADD R0, R0, #0xC .text:00035EEC BIC R0, R0, #3 .text:00035EF0 RSB SP, R0, SP .text:00035EF4 MOV R0, SP .text:00035EF8 MOV R1, R6 .text:00035EFC BL stpcpy .text:00035F00 LDR R1, =aMeminfo ; "/meminfo" .text:00035F04 BL stpcpy .text:00035F08 LDR R1, =aR_0 ; "r" .text:00035F0C MOV R0, SP .text:00035F10 BL fopen .text:00035F14 SUBS R4, R0, #0 .text:00035F18 BEQ loc_35F84 .text:00035F1C MOV R3, #0 .text:00035F20 SUB R2, R11, #-var_24 .text:00035F24 STR R3, [R2,R7] .text:00035F28 .text:00035F28 loc_35F28 ; CODE XREF: phys_pages_info+CCj .text:00035F28 MOV R0, R8 .text:00035F2C MOV R1, #0x2000 .text:00035F30 MOV R2, R4 .text:00035F34 BL fgets_unlocked .text:00035F38 CMP R0, #0 .text:00035F3C BEQ loc_35F7C .text:00035F40 MOV R0, R8 .text:00035F44 MOV R1, R10 .text:00035F48 MOV R2, R5 .text:00035F4C BL sscanf .text:00035F50 CMP R0, #1 .text:00035F54 BNE loc_35F28 .text:00035F58 BL getpagesize .text:00035F5C ADD R3, R0, #0x3FC .text:00035F60 ADD R3, R3, #3 .text:00035F64 CMP R0, #0 .text:00035F68 MOVGE R1, R0,ASR#10 .text:00035F6C MOVLT R1, R3,ASR#10 .text:00035F70 LDR R0, [R5] .text:00035F74 BL __divsi3 .text:00035F78 STR R0, [R5] .text:00035F7C .text:00035F7C loc_35F7C ; CODE XREF: phys_pages_info+B4j .text:00035F7C MOV R0, R4 .text:00035F80 BL fclose .text:00035F84 .text:00035F84 loc_35F84 ; CODE XREF: phys_pages_info+54j .text:00035F84 ; phys_pages_info+90j .text:00035F84 LDR R3, [R5] .text:00035F88 CMN R3, #1 .text:00035F8C BNE loc_35F9C .text:00035F90 BL __errno_location .text:00035F94 MOV R3, #0x26 .text:00035F98 STR R3, [R0] .text:00035F9C .text:00035F9C loc_35F9C ; CODE XREF: phys_pages_info+104j .text:00035F9C LDR R0, [R5] .text:00035FA0 B locret_35FAC .text:00035FA0 ; --------------------------------------------------------------------------- .text:00035FA4 off_35FA4 DCD aMeminfo ; DATA XREF: phys_pages_info+78r .text:00035FA4 ; "/meminfo" .text:00035FA8 off_35FA8 DCD aR_0 ; DATA XREF: phys_pages_info+80r .text:00035FA8 ; "r" .text:00035FAC ; --------------------------------------------------------------------------- .text:00035FAC .text:00035FAC locret_35FAC ; CODE XREF: phys_pages_info+118j .text:00035FAC LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00035FAC ; End of function phys_pages_info .text:00035FAC .text:00035FB0 .text:00035FB0 ; =============== S U B R O U T I N E ======================================= .text:00035FB0 .text:00035FB0 ; Attributes: bp-based frame .text:00035FB0 .text:00035FB0 WEAK get_phys_pages .text:00035FB0 get_phys_pages ; CODE XREF: sysconf:loc_346F4p .text:00035FB0 MOV R12, SP ; Alternative name is '__get_phys_pages' .text:00035FB4 STMFD SP!, {R11,R12,LR,PC} .text:00035FB8 LDR R0, =aMemtotalLdKb ; "MemTotal: %ld kB" .text:00035FBC SUB R11, R12, #4 .text:00035FC0 BL phys_pages_info .text:00035FC4 LDMDB R11, {R11,SP,PC} .text:00035FC4 ; End of function get_phys_pages .text:00035FC4 .text:00035FC4 ; --------------------------------------------------------------------------- .text:00035FC8 off_35FC8 DCD aMemtotalLdKb ; DATA XREF: get_phys_pages+8r .text:00035FC8 ; "MemTotal: %ld kB" .text:00035FCC .text:00035FCC ; =============== S U B R O U T I N E ======================================= .text:00035FCC .text:00035FCC ; Attributes: bp-based frame .text:00035FCC .text:00035FCC WEAK get_avphys_pages .text:00035FCC get_avphys_pages ; CODE XREF: sysconf:loc_346FCp .text:00035FCC MOV R12, SP ; Alternative name is '__get_avphys_pages' .text:00035FD0 STMFD SP!, {R11,R12,LR,PC} .text:00035FD4 LDR R0, =aMemfreeLdKb ; "MemFree: %ld kB" .text:00035FD8 SUB R11, R12, #4 .text:00035FDC BL phys_pages_info .text:00035FE0 LDMDB R11, {R11,SP,PC} .text:00035FE0 ; End of function get_avphys_pages .text:00035FE0 .text:00035FE0 ; --------------------------------------------------------------------------- .text:00035FE4 off_35FE4 DCD aMemfreeLdKb ; DATA XREF: get_avphys_pages+8r .text:00035FE4 ; "MemFree: %ld kB" .text:00035FE8 .text:00035FE8 ; =============== S U B R O U T I N E ======================================= .text:00035FE8 .text:00035FE8 ; Attributes: bp-based frame .text:00035FE8 .text:00035FE8 free_mem_3 .text:00035FE8 MOV R12, SP .text:00035FEC STMFD SP!, {R11,R12,LR,PC} .text:00035FF0 LDR R3, =mount_proc .text:00035FF4 LDR R0, [R3] .text:00035FF8 SUB R11, R12, #4 .text:00035FFC BL free .text:00036000 LDMDB R11, {R11,SP,PC} .text:00036000 ; End of function free_mem_3 .text:00036000 .text:00036000 ; --------------------------------------------------------------------------- .text:00036004 off_36004 DCD mount_proc ; DATA XREF: free_mem_3+8r .text:00036008 .text:00036008 ; =============== S U B R O U T I N E ======================================= .text:00036008 .text:00036008 ; Attributes: bp-based frame .text:00036008 .text:00036008 EXPORT __getclktck .text:00036008 __getclktck ; CODE XREF: sysconf:loc_34630p .text:00036008 MOV R12, SP .text:0003600C STMFD SP!, {R11,R12,LR,PC} .text:00036010 LDR R3, =_dl_clktck .text:00036014 LDR R0, [R3] .text:00036018 SUB R11, R12, #4 .text:0003601C CMP R0, #0 .text:00036020 MOVEQ R0, #0x64 .text:00036024 LDMDB R11, {R11,SP,PC} .text:00036024 ; End of function __getclktck .text:00036024 .text:00036024 ; --------------------------------------------------------------------------- .text:00036028 off_36028 DCD _dl_clktck ; DATA XREF: __getclktck+8r .text:0003602C .text:0003602C ; =============== S U B R O U T I N E ======================================= .text:0003602C .text:0003602C ; Attributes: bp-based frame .text:0003602C .text:0003602C __init_misc .text:0003602C MOV R12, SP .text:00036030 STMFD SP!, {R4,R11,R12,LR,PC} .text:00036034 SUB R11, R12, #4 .text:00036038 SUBS R4, R1, #0 .text:0003603C LDMEQDB R11, {R4,R11,SP,PC} .text:00036040 LDR R0, [R4] .text:00036044 CMP R0, #0 .text:00036048 LDMEQDB R11, {R4,R11,SP,PC} .text:0003604C MOV R1, #0x2F .text:00036050 BL strrchr .text:00036054 CMP R0, #0 .text:00036058 LDREQ R2, =program_invocation_short_name .text:0003605C LDREQ R3, [R4] .text:00036060 LDRNE R2, =program_invocation_short_name .text:00036064 ADDNE R3, R0, #1 .text:00036068 STR R3, [R2] .text:0003606C LDR R2, =program_invocation_name .text:00036070 LDR R3, [R4] .text:00036074 STR R3, [R2] .text:00036078 LDMDB R11, {R4,R11,SP,PC} .text:00036078 ; End of function __init_misc .text:00036078 .text:00036078 ; --------------------------------------------------------------------------- .text:0003607C off_3607C DCD program_invocation_short_name .text:0003607C ; DATA XREF: __init_misc+2Cr .text:0003607C ; __init_misc+34r .text:00036080 off_36080 DCD program_invocation_name ; DATA XREF: __init_misc+40r .text:00036084 .text:00036084 ; =============== S U B R O U T I N E ======================================= .text:00036084 .text:00036084 ; Attributes: bp-based frame .text:00036084 .text:00036084 WEAK lseek64 .text:00036084 lseek64 ; CODE XREF: _IO_file_seek+10p .text:00036084 ; __getdents+160p ... .text:00036084 .text:00036084 var_24 = -0x24 .text:00036084 var_20 = -0x20 .text:00036084 .text:00036084 MOV R12, SP ; Alternative name is '__libc_lseek64' .text:00036088 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0003608C SUB R11, R12, #4 .text:00036090 MOV R7, R2 .text:00036094 MOV R6, R1 .text:00036098 MOV R4, R7 .text:0003609C MOV R1, R4 .text:000360A0 MOV R4, R3 .text:000360A4 SUB R3, R11, #-var_24 .text:000360A8 MOV R2, R6 .text:000360AC SUB SP, SP, #8 .text:000360B0 SVC 0x90008C .text:000360B4 MOV R7, R0 .text:000360B8 CMN R7, #0x1000 .text:000360BC BLS loc_360D0 .text:000360C0 BL __errno_location .text:000360C4 RSB R3, R7, #0 .text:000360C8 MOV R7, 0xFFFFFFFF .text:000360CC STR R3, [R0] .text:000360D0 .text:000360D0 loc_360D0 ; CODE XREF: lseek64+38j .text:000360D0 SUB R3, R11, #-var_20 .text:000360D4 LDMDA R3, {R5,R6} .text:000360D8 SUBS R3, R7, #0 .text:000360DC MOVNE R3, #1 .text:000360E0 MOV R4, #0 .text:000360E4 RSBS R1, R3, #0 .text:000360E8 RSC R2, R4, #0 .text:000360EC AND R3, R1, R7 .text:000360F0 AND R4, R2, R7,ASR#31 .text:000360F4 BIC R5, R5, R1 .text:000360F8 BIC R6, R6, R2 .text:000360FC MOV R1, R4 .text:00036100 MOV R0, R3 .text:00036104 ORR R0, R0, R5 .text:00036108 ORR R1, R1, R6 .text:0003610C LDMDB R11, {R4-R7,R11,SP,PC} .text:0003610C ; End of function lseek64 .text:0003610C .text:00036110 .text:00036110 ; =============== S U B R O U T I N E ======================================= .text:00036110 .text:00036110 ; Attributes: bp-based frame .text:00036110 .text:00036110 EXPORT _dl_mcount_wrapper .text:00036110 _dl_mcount_wrapper .text:00036110 .text:00036110 var_4 = -4 .text:00036110 .text:00036110 MOV R12, SP .text:00036114 STMFD SP!, {R11,R12,LR,PC} .text:00036118 SUB R11, R12, #4 .text:0003611C MOV R1, R0 .text:00036120 LDR R0, [R11,#var_4] .text:00036124 BL _dl_mcount .text:00036128 LDMDB R11, {R11,SP,PC} .text:00036128 ; End of function _dl_mcount_wrapper .text:00036128 .text:0003612C .text:0003612C ; =============== S U B R O U T I N E ======================================= .text:0003612C .text:0003612C ; Attributes: bp-based frame .text:0003612C .text:0003612C EXPORT _dl_mcount_wrapper_check .text:0003612C _dl_mcount_wrapper_check ; CODE XREF: do_out+40p .text:0003612C ; do_unshift+2Cp ... .text:0003612C .text:0003612C var_4 = -4 .text:0003612C .text:0003612C MOV R12, SP .text:00036130 STMFD SP!, {R11,R12,LR,PC} .text:00036134 LDR R3, =_dl_profile_map .text:00036138 SUB R11, R12, #4 .text:0003613C LDR R2, [R3] .text:00036140 MOV R1, R0 .text:00036144 CMP R2, #0 .text:00036148 LDMEQDB R11, {R11,SP,PC} .text:0003614C LDR R0, [R11,#var_4] .text:00036150 BL _dl_mcount .text:00036154 LDMDB R11, {R11,SP,PC} .text:00036154 ; End of function _dl_mcount_wrapper_check .text:00036154 .text:00036154 ; --------------------------------------------------------------------------- .text:00036158 off_36158 DCD _dl_profile_map ; DATA XREF: _dl_mcount_wrapper_check+8r .text:0003615C .text:0003615C ; =============== S U B R O U T I N E ======================================= .text:0003615C .text:0003615C ; Attributes: bp-based frame .text:0003615C .text:0003615C EXPORT __gconv_open .text:0003615C __gconv_open ; CODE XREF: _nl_init_domain_conv+288p .text:0003615C .text:0003615C var_88 = -0x88 .text:0003615C var_84 = -0x84 .text:0003615C var_64 = -0x64 .text:0003615C var_60 = -0x60 .text:0003615C var_5C = -0x5C .text:0003615C var_58 = -0x58 .text:0003615C var_54 = -0x54 .text:0003615C var_50 = -0x50 .text:0003615C var_4C = -0x4C .text:0003615C var_48 = -0x48 .text:0003615C var_44 = -0x44 .text:0003615C var_40 = -0x40 .text:0003615C var_3C = -0x3C .text:0003615C var_38 = -0x38 .text:0003615C var_34 = -0x34 .text:0003615C var_30 = -0x30 .text:0003615C var_2C = -0x2C .text:0003615C .text:0003615C MOV R12, SP .text:00036160 STMFD SP!, {R4-R12,LR,PC} .text:00036164 SUB R11, R12, #4 .text:00036168 SUB SP, SP, #0x40 .text:0003616C STR R1, [R11,#var_3C] .text:00036170 MOV R9, R0 .text:00036174 MOV R0, #0 .text:00036178 STR R0, [R11,#var_48] .text:0003617C STR R0, [R11,#var_4C] .text:00036180 STR R0, [R11,#var_54] .text:00036184 STR R0, [R11,#var_58] .text:00036188 STR R2, [R11,#var_40] .text:0003618C STR R3, [R11,#var_44] .text:00036190 MOV R0, R9 .text:00036194 MOV R1, #0x2F .text:00036198 BL strchr .text:0003619C SUBS R4, R0, #0 .text:000361A0 BEQ loc_361B4 .text:000361A4 ADD R0, R4, #1 .text:000361A8 MOV R1, #0x2F .text:000361AC BL strchr .text:000361B0 MOV R4, R0 .text:000361B4 .text:000361B4 loc_361B4 ; CODE XREF: __gconv_open+44j .text:000361B4 CMP R4, #0 .text:000361B8 SUB R10, R11, #-var_30 .text:000361BC SUB R8, R11, #-var_34 .text:000361C0 BEQ loc_36428 .text:000361C4 LDRB R3, [R4,#1]! .text:000361C8 CMP R3, #0 .text:000361CC BEQ loc_36428 .text:000361D0 RSB R2, R9, R4 .text:000361D4 ADD R3, R2, #4 .text:000361D8 BIC R3, R3, #3 .text:000361DC RSB SP, R3, SP .text:000361E0 LDR R1, [R11,#var_48] .text:000361E4 ADD R0, SP, #0x68+var_64 .text:000361E8 STRB R1, [R0,R2] .text:000361EC MOV R1, R9 .text:000361F0 BL memcpy .text:000361F4 MOV R9, R0 .text:000361F8 MOV R0, R4 .text:000361FC BL strlen .text:00036200 MOV R2, R0 .text:00036204 ADD R3, R2, #4 .text:00036208 BIC R3, R3, #3 .text:0003620C RSB SP, R3, SP .text:00036210 ADD R0, SP, #0x68+var_64 .text:00036214 MOV R1, R4 .text:00036218 ADD R2, R2, #1 .text:0003621C BL memcpy .text:00036220 LDR R3, [R11,#var_2C] .text:00036224 CMP R0, #0 .text:00036228 MOVNE R1, R0 .text:0003622C MOVEQ R1, R3 .text:00036230 LDRB R2, [R1] .text:00036234 CMP R2, #0x2C .text:00036238 SUB R2, R11, #-var_2C .text:0003623C BNE loc_3624C .text:00036240 .text:00036240 loc_36240 ; CODE XREF: __gconv_open+ECj .text:00036240 LDRB R3, [R1,#1]! .text:00036244 CMP R3, #0x2C .text:00036248 BEQ loc_36240 .text:0003624C .text:0003624C loc_3624C ; CODE XREF: __gconv_open+E0j .text:0003624C LDRB R3, [R1] .text:00036250 MOV R0, #0 .text:00036254 CMP R3, R0 .text:00036258 BEQ loc_36294 .text:0003625C MOV R0, R1 .text:00036260 CMP R3, #0x2C .text:00036264 BEQ loc_36280 .text:00036268 .text:00036268 loc_36268 ; CODE XREF: __gconv_open+120j .text:00036268 LDRB R3, [R1,#1]! .text:0003626C AND R3, R3, #0xFF .text:00036270 CMP R3, #0 .text:00036274 BEQ loc_36280 .text:00036278 CMP R3, #0x2C .text:0003627C BNE loc_36268 .text:00036280 .text:00036280 loc_36280 ; CODE XREF: __gconv_open+108j .text:00036280 ; __gconv_open+118j .text:00036280 LDRB R3, [R1] .text:00036284 CMP R3, #0 .text:00036288 MOVNE R3, #0 .text:0003628C STRNEB R3, [R1],#1 .text:00036290 STR R1, [R2] .text:00036294 .text:00036294 loc_36294 ; CODE XREF: __gconv_open+FCj .text:00036294 SUBS R6, R0, #0 .text:00036298 BEQ loc_36428 .text:0003629C .text:0003629C loc_3629C ; CODE XREF: __gconv_open+2C8j .text:0003629C LDR R1, =aTranslit_1 ; "TRANSLIT" .text:000362A0 MOV R0, R6 .text:000362A4 BL strcasecmp .text:000362A8 CMP R0, #0 .text:000362AC BNE loc_36334 .text:000362B0 LDR R1, [R11,#var_58] .text:000362B4 MOV R5, R0 .text:000362B8 CMP R1, #0 .text:000362BC BEQ loc_362EC .text:000362C0 LDR R3, [R1,#0x10] .text:000362C4 LDR R2, =__gconv_transliterate .text:000362C8 CMP R3, R2 .text:000362CC BEQ loc_362EC .text:000362D0 .text:000362D0 loc_362D0 ; CODE XREF: __gconv_open+18Cj .text:000362D0 MOV R5, R1 .text:000362D4 LDR R1, [R5,#4] .text:000362D8 CMP R1, #0 .text:000362DC BEQ loc_362EC .text:000362E0 LDR R3, [R1,#0x10] .text:000362E4 CMP R3, R2 .text:000362E8 BNE loc_362D0 .text:000362EC .text:000362EC loc_362EC ; CODE XREF: __gconv_open+160j .text:000362EC ; __gconv_open+170j ... .text:000362EC CMP R1, #0 .text:000362F0 BNE loc_363BC .text:000362F4 SUB SP, SP, #0x20 .text:000362F8 ADD R4, SP, #0x88+var_84 .text:000362FC MOV R0, R4 .text:00036300 MOV R2, #0x20 .text:00036304 BL memset .text:00036308 MOV R3, #1 .text:0003630C STR R3, [R4,#0xC] .text:00036310 LDR R2, =internal_trans_names.84 .text:00036314 STR R2, [R4,#8] .text:00036318 LDR R3, =__gconv_transliterate .text:0003631C CMP R5, #0 .text:00036320 STR R3, [R4,#0x10] .text:00036324 STREQ R4, [R11,#var_58] .text:00036328 BEQ loc_363BC .text:0003632C STR R4, [R5,#4] .text:00036330 B loc_363BC .text:00036334 ; --------------------------------------------------------------------------- .text:00036334 .text:00036334 loc_36334 ; CODE XREF: __gconv_open+150j .text:00036334 LDR R1, =aIgnore ; "IGNORE" .text:00036338 MOV R0, R6 .text:0003633C BL strcasecmp .text:00036340 CMP R0, #0 .text:00036344 LDREQ R2, [R11,#var_54] .text:00036348 ORREQ R2, R2, #2 .text:0003634C STREQ R2, [R11,#var_54] .text:00036350 BEQ loc_363BC .text:00036354 LDR R4, [R11,#var_58] .text:00036358 MOV R7, #0 .text:0003635C B loc_36368 .text:00036360 ; --------------------------------------------------------------------------- .text:00036360 .text:00036360 loc_36360 ; CODE XREF: __gconv_open+21Cj .text:00036360 ; __gconv_open+22Cj .text:00036360 MOV R7, R4 .text:00036364 LDR R4, [R7,#4] .text:00036368 .text:00036368 loc_36368 ; CODE XREF: __gconv_open+200j .text:00036368 CMP R4, #0 .text:0003636C BEQ loc_3638C .text:00036370 LDR R1, [R4] .text:00036374 CMP R1, #0 .text:00036378 BEQ loc_36360 .text:0003637C MOV R0, R6 .text:00036380 BL strcasecmp .text:00036384 CMP R0, #0 .text:00036388 BNE loc_36360 .text:0003638C .text:0003638C loc_3638C ; CODE XREF: __gconv_open+210j .text:0003638C CMP R4, #0 .text:00036390 BNE loc_363BC .text:00036394 SUB SP, SP, #0x20 .text:00036398 ADD R5, SP, #0x88+var_84 .text:0003639C MOV R0, R5 .text:000363A0 MOV R1, R4 .text:000363A4 MOV R2, #0x20 .text:000363A8 BL memset .text:000363AC CMP R7, #0 .text:000363B0 STR R6, [SP,#0x88+var_84] .text:000363B4 STREQ R5, [R11,#var_58] .text:000363B8 STRNE R5, [R7,#4] .text:000363BC .text:000363BC loc_363BC ; CODE XREF: __gconv_open+194j .text:000363BC ; __gconv_open+1CCj ... .text:000363BC LDR R2, [R11,#var_2C] .text:000363C0 LDRB R3, [R2] .text:000363C4 CMP R3, #0x2C .text:000363C8 BNE loc_363D8 .text:000363CC .text:000363CC loc_363CC ; CODE XREF: __gconv_open+278j .text:000363CC LDRB R3, [R2,#1]! .text:000363D0 CMP R3, #0x2C .text:000363D4 BEQ loc_363CC .text:000363D8 .text:000363D8 loc_363D8 ; CODE XREF: __gconv_open+26Cj .text:000363D8 LDRB R3, [R2] .text:000363DC MOV R1, #0 .text:000363E0 CMP R3, R1 .text:000363E4 BEQ loc_36420 .text:000363E8 MOV R1, R2 .text:000363EC CMP R3, #0x2C .text:000363F0 BEQ loc_3640C .text:000363F4 .text:000363F4 loc_363F4 ; CODE XREF: __gconv_open+2ACj .text:000363F4 LDRB R3, [R2,#1]! .text:000363F8 AND R3, R3, #0xFF .text:000363FC CMP R3, #0 .text:00036400 BEQ loc_3640C .text:00036404 CMP R3, #0x2C .text:00036408 BNE loc_363F4 .text:0003640C .text:0003640C loc_3640C ; CODE XREF: __gconv_open+294j .text:0003640C ; __gconv_open+2A4j .text:0003640C LDRB R3, [R2] .text:00036410 CMP R3, #0 .text:00036414 MOVNE R3, #0 .text:00036418 STRNEB R3, [R2],#1 .text:0003641C STR R2, [R11,#var_2C] .text:00036420 .text:00036420 loc_36420 ; CODE XREF: __gconv_open+288j .text:00036420 SUBS R6, R1, #0 .text:00036424 BNE loc_3629C .text:00036428 .text:00036428 loc_36428 ; CODE XREF: __gconv_open+64j .text:00036428 ; __gconv_open+70j ... .text:00036428 LDR R0, [R11,#var_3C] .text:0003642C MOV R1, #0x2F .text:00036430 BL strchr .text:00036434 CMP R0, #0 .text:00036438 BEQ loc_36488 .text:0003643C ADD R0, R0, #1 .text:00036440 MOV R1, #0x2F .text:00036444 BL strchr .text:00036448 CMP R0, #0 .text:0003644C BEQ loc_36488 .text:00036450 LDRB R3, [R0,#1]! .text:00036454 CMP R3, #0 .text:00036458 BEQ loc_36488 .text:0003645C LDR R3, [R11,#var_3C] .text:00036460 RSB R2, R3, R0 .text:00036464 ADD R3, R2, #4 .text:00036468 BIC R3, R3, #3 .text:0003646C RSB SP, R3, SP .text:00036470 ADD R0, SP, #0x88+var_84 .text:00036474 MOV R3, #0 .text:00036478 STRB R3, [R0,R2] .text:0003647C LDR R1, [R11,#var_3C] .text:00036480 BL memcpy .text:00036484 STR R0, [R11,#var_3C] .text:00036488 .text:00036488 loc_36488 ; CODE XREF: __gconv_open+2DCj .text:00036488 ; __gconv_open+2F0j ... .text:00036488 LDR R0, [R11,#var_44] .text:0003648C STR R0, [SP,#0x88+var_88] .text:00036490 MOV R2, R10 .text:00036494 MOV R3, R8 .text:00036498 LDR R1, [R11,#var_3C] .text:0003649C MOV R0, R9 .text:000364A0 BL __gconv_find_transform .text:000364A4 CMP R0, #0 .text:000364A8 STR R0, [R11,#var_50] .text:000364AC BNE loc_36838 .text:000364B0 LDR R4, [R11,#var_58] .text:000364B4 MOV R5, R0 .text:000364B8 CMP R4, #0 .text:000364BC BEQ loc_36500 .text:000364C0 .text:000364C0 loc_364C0 ; CODE XREF: __gconv_open+3A0j .text:000364C0 LDR R3, [R4] .text:000364C4 CMP R3, #0 .text:000364C8 BEQ loc_364DC .text:000364CC MOV R0, R4 .text:000364D0 BL __gconv_translit_find .text:000364D4 CMP R0, #0 .text:000364D8 BNE loc_364E4 .text:000364DC .text:000364DC loc_364DC ; CODE XREF: __gconv_open+36Cj .text:000364DC MOV R5, R4 .text:000364E0 B loc_364F4 .text:000364E4 ; --------------------------------------------------------------------------- .text:000364E4 .text:000364E4 loc_364E4 ; CODE XREF: __gconv_open+37Cj .text:000364E4 CMP R5, #0 .text:000364E8 LDR R3, [R4,#4] .text:000364EC STRNE R3, [R5,#4] .text:000364F0 STREQ R3, [R11,#var_58] .text:000364F4 .text:000364F4 loc_364F4 ; CODE XREF: __gconv_open+384j .text:000364F4 LDR R4, [R4,#4] .text:000364F8 CMP R4, #0 .text:000364FC BNE loc_364C0 .text:00036500 .text:00036500 loc_36500 ; CODE XREF: __gconv_open+360j .text:00036500 LDR R0, [R11,#var_34] .text:00036504 ADD R0, R0, R0,LSL#3 .text:00036508 MOV R0, R0,LSL#2 .text:0003650C ADD R0, R0, #8 .text:00036510 BL malloc .text:00036514 CMP R0, #0 .text:00036518 STR R0, [R11,#var_48] .text:0003651C BNE loc_36554 .text:00036520 MOV R1, #3 .text:00036524 STR R1, [R11,#var_50] .text:00036528 B loc_36754 .text:0003652C ; --------------------------------------------------------------------------- .text:0003652C .text:0003652C loc_3652C ; CODE XREF: __gconv_open+4E8j .text:0003652C MOV R2, #3 .text:00036530 STR R2, [R11,#var_50] .text:00036534 B loc_36760 .text:00036538 ; --------------------------------------------------------------------------- .text:00036538 .text:00036538 loc_36538 ; CODE XREF: __gconv_open+5ACj .text:00036538 MOV R3, #3 .text:0003653C STR R3, [R11,#var_50] .text:00036540 B loc_36760 .text:00036540 ; --------------------------------------------------------------------------- .text:00036544 off_36544 DCD aTranslit_1 ; DATA XREF: __gconv_open:loc_3629Cr .text:00036544 ; "TRANSLIT" .text:00036548 off_36548 DCD __gconv_transliterate ; DATA XREF: __gconv_open+168r .text:00036548 ; __gconv_open+1BCr .text:0003654C off_3654C DCD internal_trans_names.84 ; DATA XREF: __gconv_open+1B4r .text:00036550 off_36550 DCD aIgnore ; DATA XREF: __gconv_open:loc_36334r .text:00036550 ; "IGNORE" .text:00036554 ; --------------------------------------------------------------------------- .text:00036554 .text:00036554 loc_36554 ; CODE XREF: __gconv_open+3C0j .text:00036554 LDR R3, [R11,#var_30] .text:00036558 LDR R0, [R11,#var_48] .text:0003655C STR R3, [R0,#4] .text:00036560 LDR R2, [R11,#var_34] .text:00036564 STR R2, [R0] .text:00036568 MOV R1, #0 .text:0003656C STR R1, [R11,#var_4C] .text:00036570 ADD R4, R0, #8 .text:00036574 LDR R2, [R11,#var_34] .text:00036578 MOV R0, R4 .text:0003657C ADD R2, R2, R2,LSL#3 .text:00036580 MOV R2, R2,LSL#2 .text:00036584 BL memset .text:00036588 LDR R3, [R11,#var_34] .text:0003658C LDR R1, [R11,#var_4C] .text:00036590 STR R4, [R11,#var_5C] .text:00036594 CMP R1, R3 .text:00036598 BCS loc_36754 .text:0003659C LDR R2, [R11,#var_48] .text:000365A0 MOV R9, R1 .text:000365A4 STR R1, [R11,#var_60] .text:000365A8 MOV R10, R4 .text:000365AC ADD R2, R2, #0x20 .text:000365B0 STR R2, [R11,#var_64] .text:000365B4 .text:000365B4 loc_365B4 ; CODE XREF: __gconv_open+5F4j .text:000365B4 LDR R4, [R11,#var_58] .text:000365B8 LDR R0, [R11,#var_48] .text:000365BC LDR R1, [R11,#var_64] .text:000365C0 CMP R4, #0 .text:000365C4 ADD R3, R0, #0x1C .text:000365C8 STR R1, [R3,R9] .text:000365CC BEQ loc_366B4 .text:000365D0 .text:000365D0 loc_365D0 ; CODE XREF: __gconv_open+554j .text:000365D0 LDR R3, [R4,#0xC] .text:000365D4 MOV R5, #0 .text:000365D8 CMP R5, R3 .text:000365DC BCS loc_366A8 .text:000365E0 MOV R8, R10 .text:000365E4 LDR R6, [R11,#var_60] .text:000365E8 .text:000365E8 loc_365E8 ; CODE XREF: __gconv_open+548j .text:000365E8 LDR R3, [R11,#var_30] .text:000365EC LDR R2, [R4,#8] .text:000365F0 ADD R3, R6, R3 .text:000365F4 LDR R0, [R3,#0xC] .text:000365F8 LDR R1, [R2,R5,LSL#2] .text:000365FC BL strcasecmp .text:00036600 SUBS R7, R0, #0 .text:00036604 BNE loc_36698 .text:00036608 LDR R2, [R4,#0x18] .text:0003660C STR R7, [R11,#var_38] .text:00036610 CMP R2, #0 .text:00036614 BEQ loc_36638 .text:00036618 LDR R3, [R11,#var_30] .text:0003661C ADD R3, R6, R3 .text:00036620 LDR R1, [R3,#0x10] .text:00036624 SUB R0, R11, #-var_38 .text:00036628 MOV LR, PC .text:0003662C MOV PC, R2 .text:00036630 CMP R0, #0 .text:00036634 BNE loc_366A8 .text:00036638 .text:00036638 loc_36638 ; CODE XREF: __gconv_open+4B8j .text:00036638 MOV R0, #0x14 .text:0003663C BL malloc .text:00036640 CMP R0, #0 .text:00036644 BEQ loc_3652C .text:00036648 LDR R3, [R4,#0x10] .text:0003664C STR R3, [R0] .text:00036650 LDR R2, [R4,#0x14] .text:00036654 STR R2, [R0,#4] .text:00036658 LDR R3, [R4,#0x1C] .text:0003665C STR R3, [R0,#8] .text:00036660 LDR R2, [R11,#var_38] .text:00036664 STR R7, [R0,#0x10] .text:00036668 STR R2, [R0,#0xC] .text:0003666C LDR R3, [R8,#0x20] .text:00036670 ADD R1, R8, #0x20 .text:00036674 CMP R3, #0 .text:00036678 BEQ loc_36690 .text:0003667C .text:0003667C loc_3667C ; CODE XREF: __gconv_open+530j .text:0003667C LDR R3, [R1] .text:00036680 LDR R2, [R3,#0x10] .text:00036684 ADD R1, R3, #0x10 .text:00036688 CMP R2, #0 .text:0003668C BNE loc_3667C .text:00036690 .text:00036690 loc_36690 ; CODE XREF: __gconv_open+51Cj .text:00036690 STR R0, [R1] .text:00036694 B loc_366A8 .text:00036698 ; --------------------------------------------------------------------------- .text:00036698 .text:00036698 loc_36698 ; CODE XREF: __gconv_open+4A8j .text:00036698 LDR R3, [R4,#0xC] .text:0003669C ADD R5, R5, #1 .text:000366A0 CMP R5, R3 .text:000366A4 BCC loc_365E8 .text:000366A8 .text:000366A8 loc_366A8 ; CODE XREF: __gconv_open+480j .text:000366A8 ; __gconv_open+4D8j ... .text:000366A8 LDR R4, [R4,#4] .text:000366AC CMP R4, #0 .text:000366B0 BNE loc_365D0 .text:000366B4 .text:000366B4 loc_366B4 ; CODE XREF: __gconv_open+470j .text:000366B4 LDR R3, [R11,#var_34] .text:000366B8 LDR R2, [R11,#var_4C] .text:000366BC SUB R3, R3, #1 .text:000366C0 CMP R2, R3 .text:000366C4 LDRCS R0, [R11,#var_54] .text:000366C8 ORRCS R3, R0, #1 .text:000366CC STRCS R3, [R10,#8] .text:000366D0 BCS loc_36754 .text:000366D4 LDR R1, [R11,#var_54] .text:000366D8 STR R1, [R10,#8] .text:000366DC LDR R2, [R11,#var_30] .text:000366E0 LDR R3, [R11,#var_60] .text:000366E4 ADD R2, R3, R2 .text:000366E8 LDR R3, [R2,#0x2C] .text:000366EC RSB R3, R3, R3,LSL#8 .text:000366F0 MOV R4, R3,LSL#5 .text:000366F4 MOV R0, R4 .text:000366F8 BL malloc .text:000366FC LDR R1, [R11,#var_5C] .text:00036700 CMP R0, #0 .text:00036704 STR R0, [R9,R1] .text:00036708 BEQ loc_36538 .text:0003670C LDR R2, [R11,#var_48] .text:00036710 ADD R3, R2, #0xC .text:00036714 ADD R2, R0, R4 .text:00036718 STR R2, [R3,R9] .text:0003671C SUB R0, R11, #-var_64 .text:00036720 LDMIA R0, {R0,R3} .text:00036724 ADD R3, R3, #0x38 .text:00036728 STR R3, [R11,#var_60] .text:0003672C ADD R0, R0, #0x24 .text:00036730 STR R0, [R11,#var_64] .text:00036734 ADD R10, R10, #0x24 .text:00036738 LDR R1, [R11,#var_4C] .text:0003673C ADD R9, R9, #0x24 .text:00036740 LDR R3, [R11,#var_34] .text:00036744 ADD R1, R1, #1 .text:00036748 STR R1, [R11,#var_4C] .text:0003674C CMP R1, R3 .text:00036750 BCC loc_365B4 .text:00036754 .text:00036754 loc_36754 ; CODE XREF: __gconv_open+3CCj .text:00036754 ; __gconv_open+43Cj ... .text:00036754 LDR R2, [R11,#var_50] .text:00036758 CMP R2, #0 .text:0003675C BEQ loc_36838 .text:00036760 .text:00036760 loc_36760 ; CODE XREF: __gconv_open+3D8j .text:00036760 ; __gconv_open+3E4j .text:00036760 BL __errno_location .text:00036764 LDR R3, [R11,#var_48] .text:00036768 LDR R8, [R0] .text:0003676C CMP R3, #0 .text:00036770 BEQ loc_36824 .text:00036774 LDR R3, [R11,#var_4C] .text:00036778 MOV R0, R3 .text:0003677C SUB R0, R0, #1 .text:00036780 CMP R3, #0 .text:00036784 STR R0, [R11,#var_4C] .text:00036788 BEQ loc_36814 .text:0003678C LDR R1, [R11,#var_48] .text:00036790 ADD R1, R1, #8 .text:00036794 STR R1, [R11,#var_5C] .text:00036798 .text:00036798 loc_36798 ; CODE XREF: __gconv_open+6B4j .text:00036798 LDR R2, [R11,#var_4C] .text:0003679C LDR R0, [R11,#var_48] .text:000367A0 MOV R1, R2,LSL#3 .text:000367A4 ADD R2, R1, R2 .text:000367A8 ADD R3, R0, #0x28 .text:000367AC LDR R5, [R3,R2,LSL#2] .text:000367B0 MOV R6, R1 .text:000367B4 LDR R1, [R11,#var_4C] .text:000367B8 CMP R5, #0 .text:000367BC SUB R7, R1, #1 .text:000367C0 BEQ loc_367F4 .text:000367C4 .text:000367C4 loc_367C4 ; CODE XREF: __gconv_open+694j .text:000367C4 MOV R4, R5 .text:000367C8 LDR R3, [R4,#8] .text:000367CC LDR R5, [R5,#0x10] .text:000367D0 CMP R3, #0 .text:000367D4 BEQ loc_367E4 .text:000367D8 LDR R0, [R4,#0xC] .text:000367DC MOV LR, PC .text:000367E0 MOV PC, R3 .text:000367E4 .text:000367E4 loc_367E4 ; CODE XREF: __gconv_open+678j .text:000367E4 MOV R0, R4 .text:000367E8 BL free .text:000367EC CMP R5, #0 .text:000367F0 BNE loc_367C4 .text:000367F4 .text:000367F4 loc_367F4 ; CODE XREF: __gconv_open+664j .text:000367F4 LDR R4, [R11,#var_4C] .text:000367F8 LDR R2, [R11,#var_5C] .text:000367FC ADD R3, R6, R4 .text:00036800 LDR R0, [R2,R3,LSL#2] .text:00036804 STR R7, [R11,#var_4C] .text:00036808 BL free .text:0003680C CMP R4, #0 .text:00036810 BNE loc_36798 .text:00036814 .text:00036814 loc_36814 ; CODE XREF: __gconv_open+62Cj .text:00036814 LDR R0, [R11,#var_48] .text:00036818 MOV R3, #0 .text:0003681C STR R3, [R11,#var_48] .text:00036820 BL free .text:00036824 .text:00036824 loc_36824 ; CODE XREF: __gconv_open+614j .text:00036824 LDR R0, [R11,#var_30] .text:00036828 LDR R1, [R11,#var_34] .text:0003682C BL __gconv_close_transform .text:00036830 BL __errno_location .text:00036834 STR R8, [R0] .text:00036838 .text:00036838 loc_36838 ; CODE XREF: __gconv_open+350j .text:00036838 ; __gconv_open+600j .text:00036838 LDR R2, [R11,#var_48] .text:0003683C LDR R1, [R11,#var_40] .text:00036840 LDR R0, [R11,#var_50] .text:00036844 STR R2, [R1] .text:00036848 LDMDB R11, {R4-R11,SP,PC} .text:00036848 ; End of function __gconv_open .text:00036848 .text:0003684C .text:0003684C ; =============== S U B R O U T I N E ======================================= .text:0003684C .text:0003684C ; Attributes: bp-based frame .text:0003684C .text:0003684C EXPORT __gconv .text:0003684C __gconv ; CODE XREF: _nl_find_msg+418p .text:0003684C .text:0003684C var_40 = -0x40 .text:0003684C var_3C = -0x3C .text:0003684C var_38 = -0x38 .text:0003684C var_34 = -0x34 .text:0003684C var_30 = -0x30 .text:0003684C var_2C = -0x2C .text:0003684C arg_0 = 4 .text:0003684C arg_4 = 8 .text:0003684C .text:0003684C MOV R12, SP .text:00036850 STMFD SP!, {R4-R12,LR,PC} .text:00036854 SUB R11, R12, #4 .text:00036858 MOV R4, R0 .text:0003685C CMN R4, #1 .text:00036860 MOV R7, R1 .text:00036864 MOV R9, R2 .text:00036868 MOV R6, R3 .text:0003686C SUB SP, SP, #0x18 .text:00036870 MOVEQ R0, #8 .text:00036874 BEQ locret_36A08 .text:00036878 LDR R1, [R11,#arg_4] .text:0003687C LDR R3, [R4] .text:00036880 CMP R1, #0 .text:00036884 SUB R3, R3, #1 .text:00036888 STR R3, [R11,#var_2C] .text:0003688C BNE loc_368A4 .text:00036890 LDR R0, =aIrreversibleVo ; "irreversible != ((void *)0)" .text:00036894 LDR R1, =aGconv_c ; "gconv.c" .text:00036898 LDR R3, =a__gconv ; "__gconv" .text:0003689C MOV R2, #0x2A .text:000368A0 BL __assert_fail .text:000368A4 ; --------------------------------------------------------------------------- .text:000368A4 .text:000368A4 loc_368A4 ; CODE XREF: __gconv+40j .text:000368A4 LDR R2, [R11,#arg_4] .text:000368A8 MOV R8, #0 .text:000368AC STR R8, [R2] .text:000368B0 CMP R6, #0 .text:000368B4 MOV R0, R8 .text:000368B8 LDR R3, [R11,#var_2C] .text:000368BC ADD R10, R4, #8 .text:000368C0 MOV R2, R3,LSL#3 .text:000368C4 ADD R3, R2, R3 .text:000368C8 MOV R1, R3,LSL#2 .text:000368CC STR R2, [R11,#var_30] .text:000368D0 LDRNE R0, [R6] .text:000368D4 STR R0, [R10,R1] .text:000368D8 CMP R7, #0 .text:000368DC LDR R3, [R11,#arg_0] .text:000368E0 ADD R2, R4, #0xC .text:000368E4 STR R3, [R2,R1] .text:000368E8 BEQ loc_368FC .text:000368EC LDR R3, [R7] .text:000368F0 CMP R3, #0 .text:000368F4 MOV R5, R3 .text:000368F8 BNE loc_36938 .text:000368FC .text:000368FC loc_368FC ; CODE XREF: __gconv+9Cj .text:000368FC LDR R3, [R4,#4] .text:00036900 LDR R0, [R3,#0x14] .text:00036904 BL _dl_mcount_wrapper_check .text:00036908 STR R8, [SP,#0x40+var_40] .text:0003690C LDR R1, [R11,#arg_4] .text:00036910 MOV R3, #1 .text:00036914 STMFA SP, {R1,R3,R8} .text:00036918 MOV R2, R8 .text:0003691C MOV R3, R2 .text:00036920 LDR R12, [R4,#4] .text:00036924 MOV R1, R10 .text:00036928 MOV R0, R12 .text:0003692C MOV LR, PC .text:00036930 LDR PC, [R12,#0x14] .text:00036934 B loc_369E0 .text:00036938 ; --------------------------------------------------------------------------- .text:00036938 .text:00036938 loc_36938 ; CODE XREF: __gconv+ACj .text:00036938 CMP R6, #0 .text:0003693C BEQ loc_3694C .text:00036940 LDR R3, [R6] .text:00036944 CMP R3, #0 .text:00036948 BNE loc_36960 .text:0003694C .text:0003694C loc_3694C ; CODE XREF: __gconv+F0j .text:0003694C LDR R0, =aOutbufVoid0Out ; "outbuf != ((void *)0) && *outbuf != ((v"... .text:00036950 LDR R1, =aGconv_c ; "gconv.c" .text:00036954 LDR R3, =a__gconv ; "__gconv" .text:00036958 MOV R2, #0x39 .text:0003695C BL __assert_fail .text:00036960 ; --------------------------------------------------------------------------- .text:00036960 .text:00036960 loc_36960 ; CODE XREF: __gconv+FCj .text:00036960 LDR R2, [R4,#4] .text:00036964 B loc_3698C .text:00036964 ; --------------------------------------------------------------------------- .text:00036968 off_36968 DCD aIrreversibleVo ; DATA XREF: __gconv+44r .text:00036968 ; "irreversible != ((void *)0)" .text:0003696C off_3696C DCD aGconv_c ; DATA XREF: __gconv+48r .text:0003696C ; __gconv+104r .text:0003696C ; "gconv.c" .text:00036970 off_36970 DCD a__gconv ; DATA XREF: __gconv+4Cr .text:00036970 ; __gconv+108r .text:00036970 ; "__gconv" .text:00036974 off_36974 DCD aOutbufVoid0Out ; DATA XREF: __gconv:loc_3694Cr .text:00036974 ; "outbuf != ((void *)0) && *outbuf != ((v"... .text:00036978 ; --------------------------------------------------------------------------- .text:00036978 .text:00036978 loc_36978 ; CODE XREF: __gconv+190j .text:00036978 LDR R2, [R4,#4] .text:0003697C LDR R3, [R2,#0x20] .text:00036980 ADD R3, R5, R3 .text:00036984 CMP R3, R9 .text:00036988 BHI loc_369E0 .text:0003698C .text:0003698C loc_3698C ; CODE XREF: __gconv+118j .text:0003698C LDR R0, [R2,#0x14] .text:00036990 BL _dl_mcount_wrapper_check .text:00036994 MOV R3, #0 .text:00036998 STR R3, [SP,#0x40+var_40] .text:0003699C LDR R2, [R11,#arg_4] .text:000369A0 STR R3, [SP,#0x40+var_38] .text:000369A4 STR R3, [SP,#0x40+var_34] .text:000369A8 STR R2, [SP,#0x40+var_3C] .text:000369AC MOV R1, R10 .text:000369B0 MOV R3, R9 .text:000369B4 LDR R12, [R4,#4] .text:000369B8 MOV R2, R7 .text:000369BC MOV R0, R12 .text:000369C0 MOV LR, PC .text:000369C4 LDR PC, [R12,#0x14] .text:000369C8 CMP R0, #4 .text:000369CC BNE loc_369E0 .text:000369D0 LDR R3, [R7] .text:000369D4 CMP R5, R3 .text:000369D8 MOV R5, R3 .text:000369DC BNE loc_36978 .text:000369E0 .text:000369E0 loc_369E0 ; CODE XREF: __gconv+E8j .text:000369E0 ; __gconv+13Cj ... .text:000369E0 CMP R6, #0 .text:000369E4 BEQ locret_36A08 .text:000369E8 LDR R3, [R6] .text:000369EC CMP R3, #0 .text:000369F0 BEQ locret_36A08 .text:000369F4 SUB R1, R11, #-var_30 .text:000369F8 LDMIA R1, {R1,R2} .text:000369FC ADD R3, R1, R2 .text:00036A00 LDR R2, [R10,R3,LSL#2] .text:00036A04 STR R2, [R6] .text:00036A08 .text:00036A08 locret_36A08 ; CODE XREF: __gconv+28j .text:00036A08 ; __gconv+198j ... .text:00036A08 LDMDB R11, {R4-R11,SP,PC} .text:00036A08 ; End of function __gconv .text:00036A08 .text:00036A0C .text:00036A0C ; =============== S U B R O U T I N E ======================================= .text:00036A0C .text:00036A0C ; Attributes: bp-based frame .text:00036A0C .text:00036A0C EXPORT __gconv_close .text:00036A0C __gconv_close ; CODE XREF: _nl_free_domain_conv+30p .text:00036A0C MOV R12, SP .text:00036A10 STMFD SP!, {R4-R12,LR,PC} .text:00036A14 SUB R11, R12, #4 .text:00036A18 MOV R8, R0 .text:00036A1C LDR R9, [R8,#4] .text:00036A20 ADD R6, R8, #8 .text:00036A24 LDR R10, [R8] .text:00036A28 .text:00036A28 loc_36A28 ; CODE XREF: __gconv_close+84j .text:00036A28 LDR R4, [R6,#0x20] .text:00036A2C ADD R7, R6, #0x24 .text:00036A30 CMP R4, #0 .text:00036A34 BEQ loc_36A68 .text:00036A38 .text:00036A38 loc_36A38 ; CODE XREF: __gconv_close+58j .text:00036A38 MOV R5, R4 .text:00036A3C LDR R3, [R5,#8] .text:00036A40 LDR R4, [R4,#0x10] .text:00036A44 CMP R3, #0 .text:00036A48 BEQ loc_36A58 .text:00036A4C LDR R0, [R5,#0xC] .text:00036A50 MOV LR, PC .text:00036A54 MOV PC, R3 .text:00036A58 .text:00036A58 loc_36A58 ; CODE XREF: __gconv_close+3Cj .text:00036A58 MOV R0, R5 .text:00036A5C BL free .text:00036A60 CMP R4, #0 .text:00036A64 BNE loc_36A38 .text:00036A68 .text:00036A68 loc_36A68 ; CODE XREF: __gconv_close+28j .text:00036A68 LDR R3, [R6,#8] .text:00036A6C TST R3, #1 .text:00036A70 BNE loc_36A84 .text:00036A74 LDR R0, [R6] .text:00036A78 CMP R0, #0 .text:00036A7C BEQ loc_36A84 .text:00036A80 BL free .text:00036A84 .text:00036A84 loc_36A84 ; CODE XREF: __gconv_close+64j .text:00036A84 ; __gconv_close+70j .text:00036A84 LDR R3, [R6,#8] .text:00036A88 MOV R6, R7 .text:00036A8C TST R3, #1 .text:00036A90 BEQ loc_36A28 .text:00036A94 MOV R0, R8 .text:00036A98 BL free .text:00036A9C MOV R0, R9 .text:00036AA0 MOV R1, R10 .text:00036AA4 BL __gconv_close_transform .text:00036AA8 LDMDB R11, {R4-R11,SP,PC} .text:00036AA8 ; End of function __gconv_close .text:00036AA8 .text:00036AAC .text:00036AAC ; =============== S U B R O U T I N E ======================================= .text:00036AAC .text:00036AAC ; Attributes: bp-based frame .text:00036AAC .text:00036AAC upstr .text:00036AAC MOV R12, SP .text:00036AB0 STMFD SP!, {R4,R11,R12,LR,PC} .text:00036AB4 SUB R11, R12, #4 .text:00036AB8 MOV LR, R1 .text:00036ABC MOV R12, R0 .text:00036AC0 LDR R4, =__ctype_toupper .text:00036AC4 .text:00036AC4 loc_36AC4 ; CODE XREF: upstr+2Cj .text:00036AC4 LDRB R3, [LR],#1 .text:00036AC8 LDR R2, [R4] .text:00036ACC LDR R1, [R2,R3,LSL#2] .text:00036AD0 TST R1, #0xFF .text:00036AD4 STRB R1, [R12],#1 .text:00036AD8 BNE loc_36AC4 .text:00036ADC LDMDB R11, {R4,R11,SP,PC} .text:00036ADC ; End of function upstr .text:00036ADC .text:00036ADC ; --------------------------------------------------------------------------- .text:00036AE0 off_36AE0 DCD __ctype_toupper ; DATA XREF: upstr+14r .text:00036AE4 .text:00036AE4 ; =============== S U B R O U T I N E ======================================= .text:00036AE4 .text:00036AE4 ; Attributes: bp-based frame .text:00036AE4 .text:00036AE4 EXPORT __gconv_alias_compare .text:00036AE4 __gconv_alias_compare ; DATA XREF: do_lookup_alias+18o .text:00036AE4 ; do_lookup_alias:off_3766Co ... .text:00036AE4 MOV R12, SP .text:00036AE8 STMFD SP!, {R11,R12,LR,PC} .text:00036AEC LDR R0, [R0] .text:00036AF0 LDR R1, [R1] .text:00036AF4 SUB R11, R12, #4 .text:00036AF8 BL strcmp .text:00036AFC LDMDB R11, {R11,SP,PC} .text:00036AFC ; End of function __gconv_alias_compare .text:00036AFC .text:00036B00 .text:00036B00 ; =============== S U B R O U T I N E ======================================= .text:00036B00 .text:00036B00 ; Attributes: bp-based frame .text:00036B00 .text:00036B00 derivation_compare ; DATA XREF: derivation_lookup+28o .text:00036B00 ; derivation_lookup:off_36B9Co ... .text:00036B00 MOV R12, SP .text:00036B04 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00036B08 MOV R5, R0 .text:00036B0C LDR R0, [R5] .text:00036B10 MOV R4, R1 .text:00036B14 LDR R1, [R4] .text:00036B18 SUB R11, R12, #4 .text:00036B1C BL strcmp .text:00036B20 CMP R0, #0 .text:00036B24 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:00036B28 LDR R0, [R5,#4] .text:00036B2C LDR R1, [R4,#4] .text:00036B30 BL strcmp .text:00036B34 LDMDB R11, {R4,R5,R11,SP,PC} .text:00036B34 ; End of function derivation_compare .text:00036B34 .text:00036B38 .text:00036B38 ; =============== S U B R O U T I N E ======================================= .text:00036B38 .text:00036B38 ; Attributes: bp-based frame .text:00036B38 .text:00036B38 derivation_lookup ; CODE XREF: find_derivation+54p .text:00036B38 .text:00036B38 var_28 = -0x28 .text:00036B38 var_24 = -0x24 .text:00036B38 var_20 = -0x20 .text:00036B38 var_1C = -0x1C .text:00036B38 .text:00036B38 MOV R12, SP .text:00036B3C STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00036B40 SUB R11, R12, #4 .text:00036B44 SUB SP, SP, #0x10 .text:00036B48 STR R0, [R11,#var_28] .text:00036B4C STR R1, [R11,#var_24] .text:00036B50 MOV R4, #0 .text:00036B54 STR R4, [R11,#var_20] .text:00036B58 STR R4, [R11,#var_1C] .text:00036B5C MOV R5, R2 .text:00036B60 LDR R2, =derivation_compare .text:00036B64 MOV R6, R3 .text:00036B68 LDR R1, =known_derivations .text:00036B6C SUB R0, R11, #-var_28 .text:00036B70 BL tfind .text:00036B74 CMP R0, #0 .text:00036B78 BEQ loc_36BA4 .text:00036B7C LDR R3, [R0] .text:00036B80 LDR R2, [R3,#8] .text:00036B84 STR R2, [R5] .text:00036B88 LDR R3, [R0] .text:00036B8C LDR R2, [R3,#0xC] .text:00036B90 MOV R0, R4 .text:00036B94 STR R2, [R6] .text:00036B98 B locret_36BA8 .text:00036B98 ; --------------------------------------------------------------------------- .text:00036B9C off_36B9C DCD derivation_compare ; DATA XREF: derivation_lookup+28r .text:00036BA0 off_36BA0 DCD known_derivations ; DATA XREF: derivation_lookup+30r .text:00036BA4 ; --------------------------------------------------------------------------- .text:00036BA4 .text:00036BA4 loc_36BA4 ; CODE XREF: derivation_lookup+40j .text:00036BA4 MOV R0, #1 .text:00036BA8 .text:00036BA8 locret_36BA8 ; CODE XREF: derivation_lookup+60j .text:00036BA8 LDMDB R11, {R4-R6,R11,SP,PC} .text:00036BA8 ; End of function derivation_lookup .text:00036BA8 .text:00036BAC .text:00036BAC ; =============== S U B R O U T I N E ======================================= .text:00036BAC .text:00036BAC ; Attributes: bp-based frame .text:00036BAC .text:00036BAC add_derivation ; CODE XREF: find_derivation+57Cp .text:00036BAC MOV R12, SP .text:00036BB0 STMFD SP!, {R4-R12,LR,PC} .text:00036BB4 SUB R11, R12, #4 .text:00036BB8 MOV R7, R0 .text:00036BBC MOV R8, R1 .text:00036BC0 MOV R10, R2 .text:00036BC4 MOV R9, R3 .text:00036BC8 BL strlen .text:00036BCC ADD R5, R0, #1 .text:00036BD0 MOV R0, R8 .text:00036BD4 BL strlen .text:00036BD8 MOV R3, R0 .text:00036BDC ADD R0, R3, #0x11 .text:00036BE0 ADD R0, R5, R0 .text:00036BE4 ADD R6, R3, #1 .text:00036BE8 BL malloc .text:00036BEC SUBS R4, R0, #0 .text:00036BF0 LDMEQDB R11, {R4-R11,SP,PC} .text:00036BF4 ADD R0, R4, #0x10 .text:00036BF8 STR R0, [R4] .text:00036BFC MOV R1, R7 .text:00036C00 MOV R2, R5 .text:00036C04 BL mempcpy .text:00036C08 MOV R1, R8 .text:00036C0C MOV R2, R6 .text:00036C10 BL memcpy .text:00036C14 STMIB R4, {R0,R10} .text:00036C18 STR R9, [R4,#0xC] .text:00036C1C LDR R1, =known_derivations .text:00036C20 LDR R2, =derivation_compare .text:00036C24 MOV R0, R4 .text:00036C28 BL tsearch .text:00036C2C CMP R0, #0 .text:00036C30 LDMNEDB R11, {R4-R11,SP,PC} .text:00036C34 MOV R0, R4 .text:00036C38 BL free .text:00036C3C LDMDB R11, {R4-R11,SP,PC} .text:00036C3C ; End of function add_derivation .text:00036C3C .text:00036C3C ; --------------------------------------------------------------------------- .text:00036C40 off_36C40 DCD known_derivations ; DATA XREF: add_derivation+70r .text:00036C44 off_36C44 DCD derivation_compare ; DATA XREF: add_derivation+74r .text:00036C48 .text:00036C48 ; =============== S U B R O U T I N E ======================================= .text:00036C48 .text:00036C48 ; Attributes: bp-based frame .text:00036C48 .text:00036C48 free_derivation ; DATA XREF: free_mem_4+48o .text:00036C48 ; .text:off_37A30o .text:00036C48 MOV R12, SP .text:00036C4C STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00036C50 SUB R11, R12, #4 .text:00036C54 MOV R4, R0 .text:00036C58 LDR R3, [R4,#0xC] .text:00036C5C MOV R6, #0 .text:00036C60 CMP R6, R3 .text:00036C64 BCS loc_36CB8 .text:00036C68 MOV R5, R6 .text:00036C6C .text:00036C6C loc_36C6C ; CODE XREF: free_derivation+6Cj .text:00036C6C LDR R3, [R4,#8] .text:00036C70 ADD R0, R5, R3 .text:00036C74 LDR R2, [R0,#8] .text:00036C78 CMP R2, #0 .text:00036C7C BLE loc_36CA4 .text:00036C80 LDR R0, [R0,#0x1C] .text:00036C84 CMP R0, #0 .text:00036C88 BEQ loc_36CA4 .text:00036C8C BL _dl_mcount_wrapper_check .text:00036C90 LDR R3, [R4,#8] .text:00036C94 ADD R3, R5, R3 .text:00036C98 MOV R0, R3 .text:00036C9C MOV LR, PC .text:00036CA0 LDR PC, [R3,#0x1C] .text:00036CA4 .text:00036CA4 loc_36CA4 ; CODE XREF: free_derivation+34j .text:00036CA4 ; free_derivation+40j .text:00036CA4 ADD R5, R5, #0x38 .text:00036CA8 LDR R3, [R4,#0xC] .text:00036CAC ADD R6, R6, #1 .text:00036CB0 CMP R6, R3 .text:00036CB4 BCC loc_36C6C .text:00036CB8 .text:00036CB8 loc_36CB8 ; CODE XREF: free_derivation+1Cj .text:00036CB8 LDR R3, [R4,#8] .text:00036CBC LDR R0, [R3,#0xC] .text:00036CC0 BL free .text:00036CC4 ADD R2, R4, #8 .text:00036CC8 LDMIA R2, {R2,R3} .text:00036CCC RSB R3, R3, R3,LSL#3 .text:00036CD0 ADD R2, R2, R3,LSL#3 .text:00036CD4 LDR R0, [R2,#-0x28] .text:00036CD8 BL free .text:00036CDC LDR R0, [R4,#8] .text:00036CE0 BL free .text:00036CE4 MOV R0, R4 .text:00036CE8 BL free .text:00036CEC LDMDB R11, {R4-R6,R11,SP,PC} .text:00036CEC ; End of function free_derivation .text:00036CEC .text:00036CF0 .text:00036CF0 ; =============== S U B R O U T I N E ======================================= .text:00036CF0 .text:00036CF0 ; Attributes: bp-based frame .text:00036CF0 .text:00036CF0 gen_steps ; CODE XREF: find_derivation+520p .text:00036CF0 .text:00036CF0 var_38 = -0x38 .text:00036CF0 var_34 = -0x34 .text:00036CF0 var_30 = -0x30 .text:00036CF0 var_2C = -0x2C .text:00036CF0 arg_0 = 4 .text:00036CF0 .text:00036CF0 MOV R12, SP .text:00036CF4 STMFD SP!, {R4-R12,LR,PC} .text:00036CF8 SUB R11, R12, #4 .text:00036CFC MOV R5, R0 .text:00036D00 MOV R6, R5 .text:00036D04 SUB SP, SP, #0x10 .text:00036D08 LDR R1, [R6,#0x14] .text:00036D0C MOV R0, #3 .text:00036D10 STR R0, [R11,#var_34] .text:00036D14 STR R2, [R11,#var_2C] .text:00036D18 LDR R9, [R11,#arg_0] .text:00036D1C MOV R7, #0 .text:00036D20 STR R3, [R11,#var_30] .text:00036D24 CMP R1, R7 .text:00036D28 BEQ loc_36D40 .text:00036D2C .text:00036D2C loc_36D2C ; CODE XREF: gen_steps+4Cj .text:00036D2C LDR R6, [R6,#0x14] .text:00036D30 LDR R3, [R6,#0x14] .text:00036D34 ADD R7, R7, #1 .text:00036D38 CMP R3, #0 .text:00036D3C BNE loc_36D2C .text:00036D40 .text:00036D40 loc_36D40 ; CODE XREF: gen_steps+38j .text:00036D40 RSB R0, R7, R7,LSL#3 .text:00036D44 MOV R0, R0,LSL#3 .text:00036D48 BL malloc .text:00036D4C MOV R4, R7 .text:00036D50 SUBS R10, R0, #0 .text:00036D54 BEQ loc_36F44 .text:00036D58 MOV R1, #0 .text:00036D5C STR R1, [R11,#var_34] .text:00036D60 STR R1, [R11,#var_38] .text:00036D64 MOV R6, R5 .text:00036D68 STR R7, [R9] .text:00036D6C SUB R7, R7, #1 .text:00036D70 CMP R4, R1 .text:00036D74 BEQ loc_36E68 .text:00036D78 RSB R3, R7, R7,LSL#3 .text:00036D7C ADD R4, R10, R3,LSL#3 .text:00036D80 .text:00036D80 loc_36D80 ; CODE XREF: gen_steps+174j .text:00036D80 CMP R7, #0 .text:00036D84 BNE loc_36D94 .text:00036D88 LDR R0, [R11,#var_2C] .text:00036D8C BL strdup .text:00036D90 B loc_36D9C .text:00036D94 ; --------------------------------------------------------------------------- .text:00036D94 .text:00036D94 loc_36D94 ; CODE XREF: gen_steps+94j .text:00036D94 LDR R3, [R6,#0x14] .text:00036D98 LDR R0, [R3] .text:00036D9C .text:00036D9C loc_36D9C ; CODE XREF: gen_steps+A0j .text:00036D9C STR R0, [R4,#0xC] .text:00036DA0 ADD R3, R7, #1 .text:00036DA4 LDR R2, [R9] .text:00036DA8 MOV R5, R4 .text:00036DAC CMP R3, R2 .text:00036DB0 BNE loc_36DC0 .text:00036DB4 LDR R0, [R6] .text:00036DB8 BL strdup .text:00036DBC B loc_36DC4 .text:00036DC0 ; --------------------------------------------------------------------------- .text:00036DC0 .text:00036DC0 loc_36DC0 ; CODE XREF: gen_steps+C0j .text:00036DC0 LDR R0, [R4,#0x44] .text:00036DC4 .text:00036DC4 loc_36DC4 ; CODE XREF: gen_steps+CCj .text:00036DC4 STR R0, [R5,#0x10] .text:00036DC8 LDR R3, [R6,#0x10] .text:00036DCC LDR R0, [R3,#0x10] .text:00036DD0 LDRB R2, [R0] .text:00036DD4 CMP R2, #0x2F .text:00036DD8 BNE loc_36E10 .text:00036DDC BL __gconv_find_shlib .text:00036DE0 CMP R0, #0 .text:00036DE4 BEQ loc_36F2C .text:00036DE8 STR R0, [R4] .text:00036DEC LDR R3, [R0] .text:00036DF0 STR R3, [R4,#4] .text:00036DF4 LDR R2, [R0,#0xC] .text:00036DF8 STR R2, [R4,#0x14] .text:00036DFC LDR R3, [R0,#0x10] .text:00036E00 STR R3, [R4,#0x18] .text:00036E04 LDR R2, [R0,#0x14] .text:00036E08 STR R2, [R4,#0x1C] .text:00036E0C B loc_36E18 .text:00036E10 ; --------------------------------------------------------------------------- .text:00036E10 .text:00036E10 loc_36E10 ; CODE XREF: gen_steps+E8j .text:00036E10 MOV R1, R4 .text:00036E14 BL __gconv_get_builtin_trans .text:00036E18 .text:00036E18 loc_36E18 ; CODE XREF: gen_steps+11Cj .text:00036E18 MOV R5, #1 .text:00036E1C STR R5, [R4,#8] .text:00036E20 LDR R0, [R4,#0x18] .text:00036E24 MOV R8, #0 .text:00036E28 STR R8, [R4,#0x34] .text:00036E2C CMP R0, R8 .text:00036E30 BEQ loc_36E50 .text:00036E34 BL _dl_mcount_wrapper_check .text:00036E38 MOV R0, R4 .text:00036E3C MOV LR, PC .text:00036E40 LDR PC, [R4,#0x18] .text:00036E44 CMP R0, #0 .text:00036E48 STR R0, [R11,#var_34] .text:00036E4C BNE loc_36F14 .text:00036E50 .text:00036E50 loc_36E50 ; CODE XREF: gen_steps+140j .text:00036E50 SUB R4, R4, #0x38 .text:00036E54 MOV R3, R7 .text:00036E58 SUB R7, R7, #1 .text:00036E5C CMP R3, #0 .text:00036E60 LDR R6, [R6,#0x14] .text:00036E64 BNE loc_36D80 .text:00036E68 .text:00036E68 loc_36E68 ; CODE XREF: gen_steps+84j .text:00036E68 ; gen_steps+238j ... .text:00036E68 LDR R2, [R11,#var_38] .text:00036E6C CMP R2, #0 .text:00036E70 BEQ loc_36F38 .text:00036E74 LDR R3, [R9] .text:00036E78 ADD R7, R7, #1 .text:00036E7C CMP R7, R3 .text:00036E80 BCS loc_36EE4 .text:00036E84 RSB R3, R7, R7,LSL#3 .text:00036E88 ADD R4, R10, R3,LSL#3 .text:00036E8C .text:00036E8C loc_36E8C ; CODE XREF: gen_steps+1F0j .text:00036E8C LDR R3, [R4,#8] .text:00036E90 SUB R5, R3, #1 .text:00036E94 CMP R5, #0 .text:00036E98 STR R5, [R4,#8] .text:00036E9C BNE loc_36ED0 .text:00036EA0 LDR R0, [R4,#0x1C] .text:00036EA4 CMP R0, #0 .text:00036EA8 BEQ loc_36EBC .text:00036EAC BL _dl_mcount_wrapper_check .text:00036EB0 MOV R0, R4 .text:00036EB4 MOV LR, PC .text:00036EB8 LDR PC, [R4,#0x1C] .text:00036EBC .text:00036EBC loc_36EBC ; CODE XREF: gen_steps+1B8j .text:00036EBC LDR R0, [R4] .text:00036EC0 CMP R0, #0 .text:00036EC4 BEQ loc_36ED0 .text:00036EC8 BL __gconv_release_shlib .text:00036ECC STR R5, [R4] .text:00036ED0 .text:00036ED0 loc_36ED0 ; CODE XREF: gen_steps+1ACj .text:00036ED0 ; gen_steps+1D4j .text:00036ED0 ADD R4, R4, #0x38 .text:00036ED4 LDR R3, [R9] .text:00036ED8 ADD R7, R7, #1 .text:00036EDC CMP R7, R3 .text:00036EE0 BCC loc_36E8C .text:00036EE4 .text:00036EE4 loc_36EE4 ; CODE XREF: gen_steps+190j .text:00036EE4 MOV R0, R10 .text:00036EE8 BL free .text:00036EEC MOV R3, #0 .text:00036EF0 STR R3, [R9] .text:00036EF4 LDR R0, [R11,#var_34] .text:00036EF8 MOV R1, R0 .text:00036EFC CMP R1, R3 .text:00036F00 MOVEQ R0, #1 .text:00036F04 STR R0, [R11,#var_34] .text:00036F08 LDR R2, [R11,#var_30] .text:00036F0C STR R3, [R2] .text:00036F10 B loc_36F50 .text:00036F14 ; --------------------------------------------------------------------------- .text:00036F14 .text:00036F14 loc_36F14 ; CODE XREF: gen_steps+15Cj .text:00036F14 SUB R7, R7, #1 .text:00036F18 STR R5, [R11,#var_38] .text:00036F1C RSB R3, R7, R7,LSL#3 .text:00036F20 ADD R3, R10, R3,LSL#3 .text:00036F24 STR R8, [R3,#0x1C] .text:00036F28 B loc_36E68 .text:00036F2C ; --------------------------------------------------------------------------- .text:00036F2C .text:00036F2C loc_36F2C ; CODE XREF: gen_steps+F4j .text:00036F2C MOV R3, #1 .text:00036F30 STR R3, [R11,#var_38] .text:00036F34 B loc_36E68 .text:00036F38 ; --------------------------------------------------------------------------- .text:00036F38 .text:00036F38 loc_36F38 ; CODE XREF: gen_steps+180j .text:00036F38 LDR R0, [R11,#var_30] .text:00036F3C STR R10, [R0] .text:00036F40 B loc_36F50 .text:00036F44 ; --------------------------------------------------------------------------- .text:00036F44 .text:00036F44 loc_36F44 ; CODE XREF: gen_steps+64j .text:00036F44 STR R10, [R9] .text:00036F48 LDR R1, [R11,#var_30] .text:00036F4C STR R10, [R1] .text:00036F50 .text:00036F50 loc_36F50 ; CODE XREF: gen_steps+220j .text:00036F50 ; gen_steps+250j .text:00036F50 LDR R0, [R11,#var_34] .text:00036F54 LDMDB R11, {R4-R11,SP,PC} .text:00036F54 ; End of function gen_steps .text:00036F54 .text:00036F58 .text:00036F58 ; =============== S U B R O U T I N E ======================================= .text:00036F58 .text:00036F58 ; Attributes: bp-based frame .text:00036F58 .text:00036F58 increment_counter ; CODE XREF: find_derivation+70p .text:00036F58 .text:00036F58 var_2C = -0x2C .text:00036F58 .text:00036F58 MOV R12, SP .text:00036F5C STMFD SP!, {R4-R12,LR,PC} .text:00036F60 SUB R11, R12, #4 .text:00036F64 MOV R6, R1 .text:00036F68 MOV R3, #0 .text:00036F6C MOV R9, R6 .text:00036F70 SUB R6, R6, #1 .text:00036F74 CMP R9, R3 .text:00036F78 MOV R10, R0 .text:00036F7C SUB SP, SP, #4 .text:00036F80 STR R3, [R11,#var_2C] .text:00036F84 BEQ loc_370A4 .text:00036F88 RSB R3, R6, R6,LSL#3 .text:00036F8C MOV R5, R3,LSL#3 .text:00036F90 ADD R4, R5, R10 .text:00036F94 MOV R8, R5 .text:00036F98 .text:00036F98 loc_36F98 ; CODE XREF: increment_counter+148j .text:00036F98 LDR R3, [R4,#8] .text:00036F9C MOV R7, R4 .text:00036FA0 ADD R3, R3, #1 .text:00036FA4 CMP R3, #1 .text:00036FA8 STR R3, [R4,#8] .text:00036FAC BNE loc_37088 .text:00036FB0 LDR R0, [R4,#4] .text:00036FB4 CMP R0, #0 .text:00036FB8 BEQ loc_3706C .text:00036FBC BL __gconv_find_shlib .text:00036FC0 CMP R0, #0 .text:00036FC4 STR R0, [R10,R5] .text:00036FC8 BNE loc_3704C .text:00036FCC ADD R8, R8, #0x38 .text:00036FD0 ADD R6, R6, #1 .text:00036FD4 LDR R3, [R4,#8] .text:00036FD8 CMP R6, R9 .text:00036FDC SUB R3, R3, #1 .text:00036FE0 STR R3, [R4,#8] .text:00036FE4 BCS loc_37040 .text:00036FE8 ADD R4, R8, R10 .text:00036FEC .text:00036FEC loc_36FEC ; CODE XREF: increment_counter+E4j .text:00036FEC LDR R3, [R4,#8] .text:00036FF0 SUB R5, R3, #1 .text:00036FF4 CMP R5, #0 .text:00036FF8 STR R5, [R4,#8] .text:00036FFC BNE loc_37030 .text:00037000 LDR R0, [R4,#0x1C] .text:00037004 CMP R0, #0 .text:00037008 BEQ loc_3701C .text:0003700C BL _dl_mcount_wrapper_check .text:00037010 MOV R0, R4 .text:00037014 MOV LR, PC .text:00037018 LDR PC, [R4,#0x1C] .text:0003701C .text:0003701C loc_3701C ; CODE XREF: increment_counter+B0j .text:0003701C LDR R0, [R4] .text:00037020 CMP R0, #0 .text:00037024 BEQ loc_37030 .text:00037028 BL __gconv_release_shlib .text:0003702C STR R5, [R4] .text:00037030 .text:00037030 loc_37030 ; CODE XREF: increment_counter+A4j .text:00037030 ; increment_counter+CCj .text:00037030 ADD R4, R4, #0x38 .text:00037034 ADD R6, R6, #1 .text:00037038 CMP R6, R9 .text:0003703C BCC loc_36FEC .text:00037040 .text:00037040 loc_37040 ; CODE XREF: increment_counter+8Cj .text:00037040 MOV R3, #1 .text:00037044 STR R3, [R11,#var_2C] .text:00037048 B loc_370A4 .text:0003704C ; --------------------------------------------------------------------------- .text:0003704C .text:0003704C loc_3704C ; CODE XREF: increment_counter+70j .text:0003704C LDR R3, [R0,#0xC] .text:00037050 STR R3, [R4,#0x14] .text:00037054 LDR R2, [R10,R5] .text:00037058 LDR R3, [R2,#0x10] .text:0003705C STR R3, [R4,#0x18] .text:00037060 LDR R2, [R10,R5] .text:00037064 LDR R3, [R2,#0x14] .text:00037068 STR R3, [R4,#0x1C] .text:0003706C .text:0003706C loc_3706C ; CODE XREF: increment_counter+60j .text:0003706C LDR R0, [R7,#0x18] .text:00037070 CMP R0, #0 .text:00037074 BEQ loc_37088 .text:00037078 BL _dl_mcount_wrapper_check .text:0003707C MOV R0, R7 .text:00037080 MOV LR, PC .text:00037084 LDR PC, [R7,#0x18] .text:00037088 .text:00037088 loc_37088 ; CODE XREF: increment_counter+54j .text:00037088 ; increment_counter+11Cj .text:00037088 SUB R5, R5, #0x38 .text:0003708C SUB R4, R4, #0x38 .text:00037090 SUB R8, R8, #0x38 .text:00037094 MOV R3, R6 .text:00037098 SUB R6, R6, #1 .text:0003709C CMP R3, #0 .text:000370A0 BNE loc_36F98 .text:000370A4 .text:000370A4 loc_370A4 ; CODE XREF: increment_counter+2Cj .text:000370A4 ; increment_counter+F0j .text:000370A4 LDR R0, [R11,#var_2C] .text:000370A8 LDMDB R11, {R4-R11,SP,PC} .text:000370A8 ; End of function increment_counter .text:000370A8 .text:000370AC .text:000370AC ; =============== S U B R O U T I N E ======================================= .text:000370AC .text:000370AC ; Attributes: bp-based frame .text:000370AC .text:000370AC find_derivation ; CODE XREF: __gconv_find_transform+184p .text:000370AC .text:000370AC var_84 = -0x84 .text:000370AC var_6C = -0x6C .text:000370AC var_68 = -0x68 .text:000370AC var_50 = -0x50 .text:000370AC var_4C = -0x4C .text:000370AC var_48 = -0x48 .text:000370AC var_44 = -0x44 .text:000370AC var_40 = -0x40 .text:000370AC var_3C = -0x3C .text:000370AC var_38 = -0x38 .text:000370AC var_34 = -0x34 .text:000370AC var_30 = -0x30 .text:000370AC var_2C = -0x2C .text:000370AC arg_0 = 4 .text:000370AC arg_4 = 8 .text:000370AC .text:000370AC MOV R12, SP .text:000370B0 STMFD SP!, {R4-R12,LR,PC} .text:000370B4 SUB R11, R12, #4 .text:000370B8 MOV R12, #0 .text:000370BC SUB SP, SP, #0x28 .text:000370C0 STR R12, [R11,#var_40] .text:000370C4 MOV LR, 0x7FFFFFFF .text:000370C8 STR LR, [R11,#var_48] .text:000370CC STR LR, [R11,#var_44] .text:000370D0 STR R0, [R11,#var_2C] .text:000370D4 STR R2, [R11,#var_34] .text:000370D8 STR R3, [R11,#var_38] .text:000370DC STR R1, [R11,#var_30] .text:000370E0 CMP R3, R12 .text:000370E4 MOV R0, R3 .text:000370E8 MOVEQ R0, R2 .text:000370EC LDR R2, [R11,#var_2C] .text:000370F0 CMP R1, R12 .text:000370F4 LDR R3, [R11,#arg_4] .text:000370F8 MOVEQ R1, R2 .text:000370FC LDR R2, [R11,#arg_0] .text:00037100 BL derivation_lookup .text:00037104 CMP R0, #0 .text:00037108 STR R0, [R11,#var_4C] .text:0003710C BNE loc_37124 .text:00037110 LDMIB R11, {R3,R12} .text:00037114 LDR R0, [R3] .text:00037118 LDR R1, [R12] .text:0003711C BL increment_counter .text:00037120 B locret_37630 .text:00037124 ; --------------------------------------------------------------------------- .text:00037124 .text:00037124 loc_37124 ; CODE XREF: find_derivation+60j .text:00037124 LDR LR, [R11,#var_38] .text:00037128 CMP LR, #0 .text:0003712C BEQ loc_371A8 .text:00037130 SUB SP, SP, #0x1C .text:00037134 STR LR, [SP,#0x6C+var_68] .text:00037138 MOV R0, LR .text:0003713C ADD R5, SP, #0x6C+var_68 .text:00037140 BL strlen .text:00037144 STR R0, [R5,#4] .text:00037148 LDR R0, [R11,#var_40] .text:0003714C STR R0, [R5,#0xC] .text:00037150 STR R0, [R5,#8] .text:00037154 STR R0, [R5,#0x10] .text:00037158 STR R0, [R5,#0x14] .text:0003715C STR R0, [R5,#0x18] .text:00037160 LDR R1, [R11,#var_34] .text:00037164 SUB SP, SP, #0x1C .text:00037168 STR R1, [SP,#0x88+var_84] .text:0003716C ADD R4, SP, #0x88+var_84 .text:00037170 MOV R0, R1 .text:00037174 BL strlen .text:00037178 STR R0, [R4,#4] .text:0003717C LDR R2, [R11,#var_40] .text:00037180 STR R2, [R4,#0xC] .text:00037184 STR R2, [R4,#8] .text:00037188 STR R2, [R4,#0x10] .text:0003718C STR R2, [R4,#0x14] .text:00037190 STR R2, [R4,#0x18] .text:00037194 ADD R3, SP, #0x88+var_6C .text:00037198 STR R3, [R11,#var_3C] .text:0003719C MOV R9, R5 .text:000371A0 STR R4, [R9,#0x18] .text:000371A4 B loc_371E8 .text:000371A8 ; --------------------------------------------------------------------------- .text:000371A8 .text:000371A8 loc_371A8 ; CODE XREF: find_derivation+80j .text:000371A8 LDR R12, [R11,#var_34] .text:000371AC SUB SP, SP, #0x1C .text:000371B0 STR R12, [SP,#0x6C+var_68] .text:000371B4 ADD R4, SP, #0x6C+var_68 .text:000371B8 MOV R0, R12 .text:000371BC BL strlen .text:000371C0 STR R0, [R4,#4] .text:000371C4 LDR LR, [R11,#var_38] .text:000371C8 STR LR, [R4,#0xC] .text:000371CC STR LR, [R4,#8] .text:000371D0 STR LR, [R4,#0x10] .text:000371D4 STR LR, [R4,#0x14] .text:000371D8 ADD R0, SP, #0x6C+var_50 .text:000371DC STR R0, [R11,#var_3C] .text:000371E0 MOV R9, R4 .text:000371E4 STR LR, [R4,#0x18] .text:000371E8 .text:000371E8 loc_371E8 ; CODE XREF: find_derivation+F8j .text:000371E8 SUBS R10, R9, #0 .text:000371EC BEQ loc_37550 .text:000371F0 .text:000371F0 loc_371F0 ; CODE XREF: find_derivation+4A0j .text:000371F0 LDR R3, [R10,#0xC] .text:000371F4 LDR R1, [R11,#var_44] .text:000371F8 CMP R3, R1 .text:000371FC BGT loc_37544 .text:00037200 BNE loc_37214 .text:00037204 LDR R3, [R10,#8] .text:00037208 LDR R2, [R11,#var_48] .text:0003720C CMP R3, R2 .text:00037210 BGE loc_37544 .text:00037214 .text:00037214 loc_37214 ; CODE XREF: find_derivation+154j .text:00037214 LDR R3, =__gconv_modules_db .text:00037218 LDR R4, [R3] .text:0003721C .text:0003721C loc_3721C ; CODE XREF: find_derivation+48Cj .text:0003721C ; find_derivation+494j .text:0003721C CMP R4, #0 .text:00037220 BEQ loc_37544 .text:00037224 LDR R0, [R10] .text:00037228 LDR R1, [R4] .text:0003722C BL strcmp .text:00037230 CMP R0, #0 .text:00037234 BNE loc_37534 .text:00037238 MOV R8, R4 .text:0003723C .text:0003723C loc_3723C ; CODE XREF: find_derivation+480j .text:0003723C LDR R0, [R8,#4] .text:00037240 LDRB R3, [R0] .text:00037244 MOV R12, #1 .text:00037248 SUB R2, R3, #0x2D .text:0003724C CMP R3, #0x2D .text:00037250 MOVNE R12, #0 .text:00037254 ANDEQ R12, R12, #1 .text:00037258 MOV R3, R12 .text:0003725C CMP R3, #0 .text:00037260 MOV R3, R0 .text:00037264 LDRNEB R2, [R3,#1] .text:00037268 CMP R2, #0 .text:0003726C BNE loc_37288 .text:00037270 SUB R4, R11, #-var_30 .text:00037274 LDMIA R4, {R4,LR} .text:00037278 MOV R0, R4 .text:0003727C CMP R0, #0 .text:00037280 MOVEQ R4, LR .text:00037284 B loc_3728C .text:00037288 ; --------------------------------------------------------------------------- .text:00037288 .text:00037288 loc_37288 ; CODE XREF: find_derivation+1C0j .text:00037288 MOV R4, R0 .text:0003728C .text:0003728C loc_3728C ; CODE XREF: find_derivation+1D8j .text:0003728C LDR LR, [R8,#8] .text:00037290 LDR R12, [R10,#0xC] .text:00037294 LDR R2, [R8,#0xC] .text:00037298 LDR R1, [R11,#var_2C] .text:0003729C MOV R0, R4 .text:000372A0 LDR R3, [R10,#8] .text:000372A4 ADD R6, LR, R12 .text:000372A8 ADD R7, R2, R3 .text:000372AC BL strcmp .text:000372B0 CMP R0, #0 .text:000372B4 BEQ loc_372D4 .text:000372B8 LDR R1, [R11,#var_30] .text:000372BC CMP R1, #0 .text:000372C0 BEQ loc_373A4 .text:000372C4 MOV R0, R4 .text:000372C8 BL strcmp .text:000372CC CMP R0, #0 .text:000372D0 BNE loc_373A4 .text:000372D4 .text:000372D4 loc_372D4 ; CODE XREF: find_derivation+208j .text:000372D4 LDR R5, [R11,#var_40] .text:000372D8 CMP R5, #0 .text:000372DC BEQ loc_37300 .text:000372E0 .text:000372E0 loc_372E0 ; CODE XREF: find_derivation+250j .text:000372E0 LDR R1, [R5] .text:000372E4 MOV R0, R4 .text:000372E8 BL strcmp .text:000372EC CMP R0, #0 .text:000372F0 BEQ loc_37300 .text:000372F4 LDR R5, [R5,#0x18] .text:000372F8 CMP R5, #0 .text:000372FC BNE loc_372E0 .text:00037300 .text:00037300 loc_37300 ; CODE XREF: find_derivation+230j .text:00037300 ; find_derivation+244j .text:00037300 CMP R5, #0 .text:00037304 BNE loc_37348 .text:00037308 SUB SP, SP, #0x1C .text:0003730C STR R4, [SP,#0x88+var_84] .text:00037310 MOV R0, R4 .text:00037314 ADD R4, SP, #0x88+var_84 .text:00037318 BL strlen .text:0003731C STR R0, [R4,#4] .text:00037320 STR R6, [R4,#0xC] .text:00037324 STR R7, [R4,#8] .text:00037328 STR R8, [R4,#0x10] .text:0003732C STR R10, [R4,#0x14] .text:00037330 STR R5, [R4,#0x18] .text:00037334 LDR R2, [R11,#var_40] .text:00037338 MOV R5, R4 .text:0003733C STR R2, [R5,#0x18] .text:00037340 STR R5, [R11,#var_40] .text:00037344 B loc_37374 .text:00037348 ; --------------------------------------------------------------------------- .text:00037348 .text:00037348 loc_37348 ; CODE XREF: find_derivation+258j .text:00037348 LDR R3, [R5,#0xC] .text:0003734C CMP R3, R6 .text:00037350 BGT loc_37364 .text:00037354 BNE loc_37374 .text:00037358 LDR R3, [R5,#8] .text:0003735C CMP R3, R7 .text:00037360 BLE loc_37374 .text:00037364 .text:00037364 loc_37364 ; CODE XREF: find_derivation+2A4j .text:00037364 STR R8, [R5,#0x10] .text:00037368 STR R10, [R5,#0x14] .text:0003736C STR R6, [R5,#0xC] .text:00037370 STR R7, [R5,#8] .text:00037374 .text:00037374 loc_37374 ; CODE XREF: find_derivation+298j .text:00037374 ; find_derivation+2A8j ... .text:00037374 LDR R3, [R11,#var_44] .text:00037378 CMP R6, R3 .text:0003737C BLT loc_37398 .text:00037380 LDR R12, [R11,#var_48] .text:00037384 MOVNE R3, #0 .text:00037388 MOVEQ R3, #1 .text:0003738C CMP R3, #0 .text:00037390 CMPNE R7, R12 .text:00037394 BGE loc_37524 .text:00037398 .text:00037398 loc_37398 ; CODE XREF: find_derivation+2D0j .text:00037398 STR R6, [R11,#var_44] .text:0003739C STR R7, [R11,#var_48] .text:000373A0 B loc_37524 .text:000373A4 ; --------------------------------------------------------------------------- .text:000373A4 .text:000373A4 loc_373A4 ; CODE XREF: find_derivation+214j .text:000373A4 ; find_derivation+224j .text:000373A4 LDR LR, [R11,#var_44] .text:000373A8 CMP R6, LR .text:000373AC BLT loc_373C8 .text:000373B0 LDR R0, [R11,#var_48] .text:000373B4 MOVNE R3, #0 .text:000373B8 MOVEQ R3, #1 .text:000373BC CMP R3, #0 .text:000373C0 CMPNE R7, R0 .text:000373C4 BGE loc_37524 .text:000373C8 .text:000373C8 loc_373C8 ; CODE XREF: find_derivation+300j .text:000373C8 SUBS R5, R9, #0 .text:000373CC BEQ loc_373F0 .text:000373D0 .text:000373D0 loc_373D0 ; CODE XREF: find_derivation+340j .text:000373D0 LDR R1, [R5] .text:000373D4 MOV R0, R4 .text:000373D8 BL strcmp .text:000373DC CMP R0, #0 .text:000373E0 BEQ loc_373F0 .text:000373E4 LDR R5, [R5,#0x18] .text:000373E8 CMP R5, #0 .text:000373EC BNE loc_373D0 .text:000373F0 .text:000373F0 loc_373F0 ; CODE XREF: find_derivation+320j .text:000373F0 ; find_derivation+334j .text:000373F0 CMP R5, #0 .text:000373F4 BNE loc_37438 .text:000373F8 SUB SP, SP, #0x1C .text:000373FC STR R4, [SP,#0x88+var_84] .text:00037400 MOV R0, R4 .text:00037404 ADD R4, SP, #0x88+var_84 .text:00037408 BL strlen .text:0003740C STR R0, [R4,#4] .text:00037410 STR R6, [R4,#0xC] .text:00037414 STR R7, [R4,#8] .text:00037418 STR R8, [R4,#0x10] .text:0003741C STR R10, [R4,#0x14] .text:00037420 STR R5, [R4,#0x18] .text:00037424 LDR R1, [R11,#var_3C] .text:00037428 STR R4, [R1] .text:0003742C ADD R2, SP, #0x88+var_6C .text:00037430 STR R2, [R11,#var_3C] .text:00037434 B loc_37524 .text:00037438 ; --------------------------------------------------------------------------- .text:00037438 .text:00037438 loc_37438 ; CODE XREF: find_derivation+348j .text:00037438 LDR R3, [R5,#0xC] .text:0003743C CMP R3, R6 .text:00037440 BGT loc_37454 .text:00037444 BNE loc_37524 .text:00037448 LDR R3, [R5,#8] .text:0003744C CMP R3, R7 .text:00037450 BLE loc_37524 .text:00037454 .text:00037454 loc_37454 ; CODE XREF: find_derivation+394j .text:00037454 STR R8, [R5,#0x10] .text:00037458 STR R10, [R5,#0x14] .text:0003745C SUBS R5, R9, #0 .text:00037460 BEQ loc_374C0 .text:00037464 .text:00037464 loc_37464 ; CODE XREF: find_derivation+410j .text:00037464 LDR R2, [R5,#0x10] .text:00037468 CMP R2, #0 .text:0003746C BEQ loc_374B4 .text:00037470 LDR R0, [R5,#0x14] .text:00037474 LDR LR, [R2,#8] .text:00037478 LDR R3, [R0,#0x10] .text:0003747C LDR R12, [R2,#0xC] .text:00037480 CMP R3, #0 .text:00037484 BEQ loc_374AC .text:00037488 .text:00037488 loc_37488 ; CODE XREF: find_derivation+3FCj .text:00037488 LDR R3, [R0,#0x10] .text:0003748C LDR R0, [R0,#0x14] .text:00037490 LDR R2, [R3,#8] .text:00037494 LDR R1, [R3,#0xC] .text:00037498 LDR R3, [R0,#0x10] .text:0003749C ADD LR, LR, R2 .text:000374A0 ADD R12, R12, R1 .text:000374A4 CMP R3, #0 .text:000374A8 BNE loc_37488 .text:000374AC .text:000374AC loc_374AC ; CODE XREF: find_derivation+3D8j .text:000374AC STR LR, [R5,#0xC] .text:000374B0 STR R12, [R5,#8] .text:000374B4 .text:000374B4 loc_374B4 ; CODE XREF: find_derivation+3C0j .text:000374B4 LDR R5, [R5,#0x18] .text:000374B8 CMP R5, #0 .text:000374BC BNE loc_37464 .text:000374C0 .text:000374C0 loc_374C0 ; CODE XREF: find_derivation+3B4j .text:000374C0 LDR R5, [R11,#var_40] .text:000374C4 CMP R5, #0 .text:000374C8 BEQ loc_37524 .text:000374CC .text:000374CC loc_374CC ; CODE XREF: find_derivation+474j .text:000374CC LDR R1, [R5,#0x10] .text:000374D0 LDR R0, [R5,#0x14] .text:000374D4 LDR R2, [R1,#8] .text:000374D8 LDR R3, [R0,#0xC] .text:000374DC ADD R12, R2, R3 .text:000374E0 STR R12, [R5,#0xC] .text:000374E4 LDR LR, [R11,#var_44] .text:000374E8 LDR R2, [R1,#0xC] .text:000374EC LDR R3, [R0,#8] .text:000374F0 CMP R12, LR .text:000374F4 ADD R2, R2, R3 .text:000374F8 STR R2, [R5,#8] .text:000374FC BLT loc_37510 .text:00037500 BNE loc_37518 .text:00037504 LDR R0, [R11,#var_48] .text:00037508 CMP R2, R0 .text:0003750C BGE loc_37518 .text:00037510 .text:00037510 loc_37510 ; CODE XREF: find_derivation+450j .text:00037510 STR R12, [R11,#var_44] .text:00037514 STR R2, [R11,#var_48] .text:00037518 .text:00037518 loc_37518 ; CODE XREF: find_derivation+454j .text:00037518 ; find_derivation+460j .text:00037518 LDR R5, [R5,#0x18] .text:0003751C CMP R5, #0 .text:00037520 BNE loc_374CC .text:00037524 .text:00037524 loc_37524 ; CODE XREF: find_derivation+2E8j .text:00037524 ; find_derivation+2F4j ... .text:00037524 LDR R8, [R8,#0x18] .text:00037528 CMP R8, #0 .text:0003752C BNE loc_3723C .text:00037530 B loc_37544 .text:00037534 ; --------------------------------------------------------------------------- .text:00037534 .text:00037534 loc_37534 ; CODE XREF: find_derivation+188j .text:00037534 LDRLT R4, [R4,#0x14] .text:00037538 BLT loc_3721C .text:0003753C LDR R4, [R4,#0x1C] .text:00037540 B loc_3721C .text:00037544 ; --------------------------------------------------------------------------- .text:00037544 .text:00037544 loc_37544 ; CODE XREF: find_derivation+150j .text:00037544 ; find_derivation+164j ... .text:00037544 LDR R10, [R10,#0x18] .text:00037548 CMP R10, #0 .text:0003754C BNE loc_371F0 .text:00037550 .text:00037550 loc_37550 ; CODE XREF: find_derivation+140j .text:00037550 LDR R1, [R11,#var_40] .text:00037554 CMP R1, #0 .text:00037558 BEQ loc_375DC .text:0003755C LDR R1, [R1,#0x18] .text:00037560 CMP R1, #0 .text:00037564 BEQ loc_37594 .text:00037568 LDR R12, [R11,#var_40] .text:0003756C LDR R2, [R1,#0xC] .text:00037570 LDR R3, [R12,#0xC] .text:00037574 CMP R2, R3 .text:00037578 BLT loc_37590 .text:0003757C BNE loc_37594 .text:00037580 LDR R2, [R1,#8] .text:00037584 LDR R3, [R12,#8] .text:00037588 CMP R2, R3 .text:0003758C BGE loc_37594 .text:00037590 .text:00037590 loc_37590 ; CODE XREF: find_derivation+4CCj .text:00037590 STR R1, [R11,#var_40] .text:00037594 .text:00037594 loc_37594 ; CODE XREF: find_derivation+4B8j .text:00037594 ; find_derivation+4D0j ... .text:00037594 LDR LR, [R11,#arg_4] .text:00037598 STR LR, [SP,#0x6C+var_6C] .text:0003759C LDR R0, [R11,#var_40] .text:000375A0 SUB R1, R11, #-var_30 .text:000375A4 LDMIA R1, {R1,R2} .text:000375A8 LDR R12, [R11,#var_34] .text:000375AC MOV R3, R1 .text:000375B0 CMP R3, #0 .text:000375B4 MOVEQ R1, R2 .text:000375B8 LDR R2, [R11,#var_38] .text:000375BC LDR R3, [R11,#arg_0] .text:000375C0 MOV LR, R2 .text:000375C4 CMP LR, #0 .text:000375C8 MOVEQ R2, R12 .text:000375CC BL gen_steps .text:000375D0 STR R0, [R11,#var_4C] .text:000375D4 B loc_375F0 .text:000375D4 ; --------------------------------------------------------------------------- .text:000375D8 off_375D8 DCD __gconv_modules_db ; DATA XREF: find_derivation:loc_37214r .text:000375DC ; --------------------------------------------------------------------------- .text:000375DC .text:000375DC loc_375DC ; CODE XREF: find_derivation+4ACj .text:000375DC LDR R1, [R11,#var_40] .text:000375E0 LDR R0, [R11,#arg_0] .text:000375E4 STR R1, [R0] .text:000375E8 LDR R2, [R11,#arg_4] .text:000375EC STR R1, [R2] .text:000375F0 .text:000375F0 loc_375F0 ; CODE XREF: find_derivation+528j .text:000375F0 LDR R3, [R11,#arg_0] .text:000375F4 SUB R0, R11, #-var_38 .text:000375F8 LDMIA R0, {R0,R12} .text:000375FC LDR R1, [R11,#arg_4] .text:00037600 LDR R2, [R3] .text:00037604 MOV LR, R0 .text:00037608 LDR R3, [R1] .text:0003760C CMP LR, #0 .text:00037610 LDR R1, [R11,#var_30] .text:00037614 MOVEQ R0, R12 .text:00037618 LDR R12, [R11,#var_2C] .text:0003761C MOV LR, R1 .text:00037620 CMP LR, #0 .text:00037624 MOVEQ R1, R12 .text:00037628 BL add_derivation .text:0003762C LDR R0, [R11,#var_4C] .text:00037630 .text:00037630 locret_37630 ; CODE XREF: find_derivation+74j .text:00037630 LDMDB R11, {R4-R11,SP,PC} .text:00037630 ; End of function find_derivation .text:00037630 .text:00037634 .text:00037634 ; =============== S U B R O U T I N E ======================================= .text:00037634 .text:00037634 ; Attributes: bp-based frame .text:00037634 .text:00037634 do_lookup_alias ; CODE XREF: __gconv_lookup_alias+50p .text:00037634 ; __gconv_find_transform+A4p ... .text:00037634 .text:00037634 var_14 = -0x14 .text:00037634 .text:00037634 MOV R12, SP .text:00037638 STMFD SP!, {R11,R12,LR,PC} .text:0003763C SUB R11, R12, #4 .text:00037640 SUB SP, SP, #8 .text:00037644 STR R0, [R11,#var_14] .text:00037648 LDR R1, =__gconv_alias_db .text:0003764C LDR R2, =__gconv_alias_compare .text:00037650 SUB R0, R11, #-var_14 .text:00037654 BL tfind .text:00037658 CMP R0, #0 .text:0003765C LDRNE R3, [R0] .text:00037660 LDRNE R0, [R3,#4] .text:00037664 B locret_37670 .text:00037664 ; --------------------------------------------------------------------------- .text:00037668 off_37668 DCD __gconv_alias_db ; DATA XREF: do_lookup_alias+14r .text:0003766C off_3766C DCD __gconv_alias_compare ; DATA XREF: do_lookup_alias+18r .text:00037670 ; --------------------------------------------------------------------------- .text:00037670 .text:00037670 locret_37670 ; CODE XREF: do_lookup_alias+30j .text:00037670 LDMDB R11, {R11,SP,PC} .text:00037670 ; End of function do_lookup_alias .text:00037670 .text:00037674 .text:00037674 ; =============== S U B R O U T I N E ======================================= .text:00037674 .text:00037674 ; Attributes: bp-based frame .text:00037674 .text:00037674 EXPORT __gconv_lookup_alias .text:00037674 __gconv_lookup_alias ; CODE XREF: _nl_find_locale+500p .text:00037674 ; _nl_find_locale+514p .text:00037674 MOV R12, SP .text:00037678 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0003767C SUB R11, R12, #4 .text:00037680 MOV R5, R0 .text:00037684 LDR R3, =0 .text:00037688 CMP R3, #0 .text:0003768C BEQ loc_376A4 .text:00037690 LDR R0, =once .text:00037694 LDR R1, =__gconv_read_conf .text:00037698 MOV LR, PC .text:0003769C MOV PC, R3 .text:000376A0 B loc_376C0 .text:000376A4 ; --------------------------------------------------------------------------- .text:000376A4 .text:000376A4 loc_376A4 ; CODE XREF: __gconv_lookup_alias+18j .text:000376A4 LDR R4, =once .text:000376A8 LDR R3, [R4] .text:000376AC CMP R3, #0 .text:000376B0 BNE loc_376C0 .text:000376B4 BL __gconv_read_conf .text:000376B8 MOV R3, #1 .text:000376BC STR R3, [R4] .text:000376C0 .text:000376C0 loc_376C0 ; CODE XREF: __gconv_lookup_alias+2Cj .text:000376C0 ; __gconv_lookup_alias+3Cj .text:000376C0 MOV R0, R5 .text:000376C4 BL do_lookup_alias .text:000376C8 CMP R0, #0 .text:000376CC MOVEQ R0, R5 .text:000376D0 LDMDB R11, {R4,R5,R11,SP,PC} .text:000376D0 ; End of function __gconv_lookup_alias .text:000376D0 .text:000376D0 ; --------------------------------------------------------------------------- .text:000376D4 off_376D4 DCD 0 ; DATA XREF: __gconv_lookup_alias+10r .text:000376D8 off_376D8 DCD once ; DATA XREF: __gconv_lookup_alias+1Cr .text:000376D8 ; __gconv_lookup_alias:loc_376A4r .text:000376DC off_376DC DCD __gconv_read_conf ; DATA XREF: __gconv_lookup_alias+20r .text:000376E0 .text:000376E0 ; =============== S U B R O U T I N E ======================================= .text:000376E0 .text:000376E0 ; Attributes: bp-based frame .text:000376E0 .text:000376E0 EXPORT __gconv_find_transform .text:000376E0 __gconv_find_transform ; CODE XREF: __wcsmbs_load_conv+180p .text:000376E0 ; __wcsmbs_load_conv+1FCp ... .text:000376E0 .text:000376E0 var_30 = -0x30 .text:000376E0 var_2C = -0x2C .text:000376E0 arg_0 = 4 .text:000376E0 .text:000376E0 MOV R12, SP .text:000376E4 STMFD SP!, {R4-R12,LR,PC} .text:000376E8 SUB R11, R12, #4 .text:000376EC MOV R8, #0 .text:000376F0 MOV R7, R8 .text:000376F4 MOV R5, R0 .text:000376F8 MOV R6, R1 .text:000376FC MOV R10, R2 .text:00037700 MOV R9, R3 .text:00037704 SUB SP, SP, #8 .text:00037708 LDR R3, =0 .text:0003770C CMP R3, R8 .text:00037710 BNE loc_3775C .text:00037714 LDR R4, =once .text:00037718 LDR R3, [R4] .text:0003771C CMP R3, R8 .text:00037720 BNE loc_37730 .text:00037724 BL __gconv_read_conf .text:00037728 MOV R3, #1 .text:0003772C STR R3, [R4] .text:00037730 .text:00037730 loc_37730 ; CODE XREF: __gconv_find_transform+40j .text:00037730 ; __gconv_find_transform+8Cj .text:00037730 LDR R3, =0 .text:00037734 CMP R3, #0 .text:00037738 BEQ loc_37748 .text:0003773C LDR R0, =lock_3 .text:00037740 MOV LR, PC .text:00037744 MOV PC, R3 .text:00037748 .text:00037748 loc_37748 ; CODE XREF: __gconv_find_transform+58j .text:00037748 LDR R3, =__gconv_modules_db .text:0003774C LDR R2, [R3] .text:00037750 CMP R2, #0 .text:00037754 BNE loc_37770 .text:00037758 B loc_3780C .text:0003775C ; --------------------------------------------------------------------------- .text:0003775C .text:0003775C loc_3775C ; CODE XREF: __gconv_find_transform+30j .text:0003775C LDR R0, =once .text:00037760 LDR R1, =__gconv_read_conf .text:00037764 MOV LR, PC .text:00037768 MOV PC, R3 .text:0003776C B loc_37730 .text:00037770 ; --------------------------------------------------------------------------- .text:00037770 .text:00037770 loc_37770 ; CODE XREF: __gconv_find_transform+74j .text:00037770 LDR R3, =__gconv_alias_db .text:00037774 LDR R2, [R3] .text:00037778 CMP R2, #0 .text:0003777C BEQ loc_37798 .text:00037780 MOV R0, R6 .text:00037784 BL do_lookup_alias .text:00037788 MOV R8, R0 .text:0003778C MOV R0, R5 .text:00037790 BL do_lookup_alias .text:00037794 MOV R7, R0 .text:00037798 .text:00037798 loc_37798 ; CODE XREF: __gconv_find_transform+9Cj .text:00037798 LDR R3, [R11,#arg_0] .text:0003779C TST R3, #1 .text:000377A0 BEQ loc_3784C .text:000377A4 MOV R0, R5 .text:000377A8 MOV R1, R6 .text:000377AC BL strcmp .text:000377B0 CMP R0, #0 .text:000377B4 BEQ loc_3780C .text:000377B8 CMP R7, #0 .text:000377BC BEQ loc_377D4 .text:000377C0 MOV R0, R7 .text:000377C4 MOV R1, R6 .text:000377C8 BL strcmp .text:000377CC CMP R0, #0 .text:000377D0 BEQ loc_3780C .text:000377D4 .text:000377D4 loc_377D4 ; CODE XREF: __gconv_find_transform+DCj .text:000377D4 CMP R8, #0 .text:000377D8 BEQ loc_3784C .text:000377DC MOV R0, R5 .text:000377E0 MOV R1, R8 .text:000377E4 BL strcmp .text:000377E8 CMP R0, #0 .text:000377EC BEQ loc_3780C .text:000377F0 CMP R7, #0 .text:000377F4 BEQ loc_3784C .text:000377F8 MOV R0, R7 .text:000377FC MOV R1, R8 .text:00037800 BL strcmp .text:00037804 CMP R0, #0 .text:00037808 BNE loc_3784C .text:0003780C .text:0003780C loc_3780C ; CODE XREF: __gconv_find_transform+78j .text:0003780C ; __gconv_find_transform+D4j ... .text:0003780C LDR R3, =0 .text:00037810 CMP R3, #0 .text:00037814 BEQ loc_37824 .text:00037818 LDR R0, =lock_3 .text:0003781C MOV LR, PC .text:00037820 MOV PC, R3 .text:00037824 .text:00037824 loc_37824 ; CODE XREF: __gconv_find_transform+134j .text:00037824 MOV R0, #1 .text:00037828 B loc_3789C .text:00037828 ; --------------------------------------------------------------------------- .text:0003782C off_3782C DCD 0 ; DATA XREF: __gconv_find_transform+28r .text:00037830 off_37830 DCD once ; DATA XREF: __gconv_find_transform+34r .text:00037830 ; __gconv_find_transform:loc_3775Cr .text:00037834 off_37834 DCD 0 ; DATA XREF: __gconv_find_transform:loc_37730r .text:00037838 off_37838 DCD lock_3 ; DATA XREF: __gconv_find_transform+5Cr .text:00037838 ; __gconv_find_transform+138r .text:0003783C off_3783C DCD __gconv_modules_db ; DATA XREF: __gconv_find_transform:loc_37748r .text:00037840 off_37840 DCD __gconv_read_conf ; DATA XREF: __gconv_find_transform+80r .text:00037844 off_37844 DCD __gconv_alias_db ; DATA XREF: __gconv_find_transform:loc_37770r .text:00037848 off_37848 DCD 0 ; DATA XREF: __gconv_find_transform:loc_3780Cr .text:0003784C ; --------------------------------------------------------------------------- .text:0003784C .text:0003784C loc_3784C ; CODE XREF: __gconv_find_transform+C0j .text:0003784C ; __gconv_find_transform+F8j ... .text:0003784C STR R10, [SP,#0x30+var_30] .text:00037850 STR R9, [SP,#0x30+var_2C] .text:00037854 MOV R0, R5 .text:00037858 MOV R1, R7 .text:0003785C MOV R2, R6 .text:00037860 MOV R3, R8 .text:00037864 BL find_derivation .text:00037868 LDR R3, =0 .text:0003786C MOV R4, R0 .text:00037870 CMP R3, #0 .text:00037874 BEQ loc_37884 .text:00037878 LDR R0, =lock_3 .text:0003787C MOV LR, PC .text:00037880 MOV PC, R3 .text:00037884 .text:00037884 loc_37884 ; CODE XREF: __gconv_find_transform+194j .text:00037884 SUBS R0, R4, #0 .text:00037888 BNE loc_3789C .text:0003788C LDR R3, [R10] .text:00037890 CMP R3, #0 .text:00037894 MOVNE R0, #0 .text:00037898 MOVEQ R0, #1 .text:0003789C .text:0003789C loc_3789C ; CODE XREF: __gconv_find_transform+148j .text:0003789C ; __gconv_find_transform+1A8j .text:0003789C B locret_378A8 .text:0003789C ; --------------------------------------------------------------------------- .text:000378A0 off_378A0 DCD 0 ; DATA XREF: __gconv_find_transform+188r .text:000378A4 off_378A4 DCD lock_3 ; DATA XREF: __gconv_find_transform+198r .text:000378A8 ; --------------------------------------------------------------------------- .text:000378A8 .text:000378A8 locret_378A8 ; CODE XREF: __gconv_find_transform:loc_3789Cj .text:000378A8 LDMDB R11, {R4-R11,SP,PC} .text:000378A8 ; End of function __gconv_find_transform .text:000378A8 .text:000378AC .text:000378AC ; =============== S U B R O U T I N E ======================================= .text:000378AC .text:000378AC ; Attributes: bp-based frame .text:000378AC .text:000378AC EXPORT __gconv_close_transform .text:000378AC __gconv_close_transform ; CODE XREF: fclose+F4p .text:000378AC ; fclose+11Cp ... .text:000378AC MOV R12, SP .text:000378B0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000378B4 SUB R11, R12, #4 .text:000378B8 MOV R6, R1 .text:000378BC LDR R3, =0 .text:000378C0 MOV R4, R0 .text:000378C4 CMP R3, #0 .text:000378C8 BEQ loc_378D8 .text:000378CC LDR R0, =lock_3 .text:000378D0 MOV LR, PC .text:000378D4 MOV PC, R3 .text:000378D8 .text:000378D8 loc_378D8 ; CODE XREF: __gconv_close_transform+1Cj .text:000378D8 MOV R3, R6 .text:000378DC SUB R6, R6, #1 .text:000378E0 CMP R3, #0 .text:000378E4 LDR R7, =0 .text:000378E8 BEQ loc_3794C .text:000378EC RSB R3, R6, R6,LSL#3 .text:000378F0 ADD R4, R4, R3,LSL#3 .text:000378F4 .text:000378F4 loc_378F4 ; CODE XREF: __gconv_close_transform+9Cj .text:000378F4 LDR R3, [R4,#8] .text:000378F8 SUB R5, R3, #1 .text:000378FC CMP R5, #0 .text:00037900 STR R5, [R4,#8] .text:00037904 BNE loc_37938 .text:00037908 LDR R0, [R4,#0x1C] .text:0003790C CMP R0, #0 .text:00037910 BEQ loc_37924 .text:00037914 BL _dl_mcount_wrapper_check .text:00037918 MOV R0, R4 .text:0003791C MOV LR, PC .text:00037920 LDR PC, [R4,#0x1C] .text:00037924 .text:00037924 loc_37924 ; CODE XREF: __gconv_close_transform+64j .text:00037924 LDR R0, [R4] .text:00037928 CMP R0, #0 .text:0003792C BEQ loc_37938 .text:00037930 BL __gconv_release_shlib .text:00037934 STR R5, [R4] .text:00037938 .text:00037938 loc_37938 ; CODE XREF: __gconv_close_transform+58j .text:00037938 ; __gconv_close_transform+80j .text:00037938 SUB R4, R4, #0x38 .text:0003793C MOV R3, R6 .text:00037940 SUB R6, R6, #1 .text:00037944 CMP R3, #0 .text:00037948 BNE loc_378F4 .text:0003794C .text:0003794C loc_3794C ; CODE XREF: __gconv_close_transform+3Cj .text:0003794C CMP R7, #0 .text:00037950 BEQ loc_37960 .text:00037954 LDR R0, =lock_3 .text:00037958 MOV LR, PC .text:0003795C MOV PC, R7 .text:00037960 .text:00037960 loc_37960 ; CODE XREF: __gconv_close_transform+A4j .text:00037960 MOV R0, #0 .text:00037964 LDMDB R11, {R4-R7,R11,SP,PC} .text:00037964 ; End of function __gconv_close_transform .text:00037964 .text:00037964 ; --------------------------------------------------------------------------- .text:00037968 off_37968 DCD 0 ; DATA XREF: __gconv_close_transform+10r .text:0003796C off_3796C DCD lock_3 ; DATA XREF: __gconv_close_transform+20r .text:0003796C ; __gconv_close_transform+A8r .text:00037970 dword_37970 DCD 0 ; DATA XREF: __gconv_close_transform+38r .text:00037974 .text:00037974 ; =============== S U B R O U T I N E ======================================= .text:00037974 .text:00037974 ; Attributes: bp-based frame .text:00037974 .text:00037974 free_modules_db ; CODE XREF: free_modules_db+1Cp .text:00037974 ; free_modules_db+2Cp ... .text:00037974 MOV R12, SP .text:00037978 STMFD SP!, {R4,R11,R12,LR,PC} .text:0003797C MOV R4, R0 .text:00037980 LDR R0, [R4,#0x14] .text:00037984 SUB R11, R12, #4 .text:00037988 CMP R0, #0 .text:0003798C BEQ loc_37994 .text:00037990 BL free_modules_db .text:00037994 .text:00037994 loc_37994 ; CODE XREF: free_modules_db+18j .text:00037994 LDR R0, [R4,#0x1C] .text:00037998 CMP R0, #0 .text:0003799C BEQ loc_379A4 .text:000379A0 BL free_modules_db .text:000379A4 .text:000379A4 loc_379A4 ; CODE XREF: free_modules_db+28j .text:000379A4 ; free_modules_db+50j .text:000379A4 MOV R0, R4 .text:000379A8 LDR R3, [R0,#0x10] .text:000379AC LDRB R2, [R3] .text:000379B0 LDR R4, [R4,#0x18] .text:000379B4 CMP R2, #0x2F .text:000379B8 BNE loc_379C0 .text:000379BC BL free .text:000379C0 .text:000379C0 loc_379C0 ; CODE XREF: free_modules_db+44j .text:000379C0 CMP R4, #0 .text:000379C4 BNE loc_379A4 .text:000379C8 LDMDB R11, {R4,R11,SP,PC} .text:000379C8 ; End of function free_modules_db .text:000379C8 .text:000379CC .text:000379CC ; =============== S U B R O U T I N E ======================================= .text:000379CC .text:000379CC ; Attributes: bp-based frame .text:000379CC .text:000379CC free_mem_4 .text:000379CC MOV R12, SP .text:000379D0 STMFD SP!, {R11,R12,LR,PC} .text:000379D4 LDR R3, =__gconv_alias_db .text:000379D8 LDR R0, [R3] .text:000379DC SUB R11, R12, #4 .text:000379E0 CMP R0, #0 .text:000379E4 BEQ loc_379F0 .text:000379E8 LDR R1, =free .text:000379EC BL tdestroy .text:000379F0 .text:000379F0 loc_379F0 ; CODE XREF: free_mem_4+18j .text:000379F0 LDR R3, =__gconv_modules_db .text:000379F4 LDR R0, [R3] .text:000379F8 CMP R0, #0 .text:000379FC BEQ loc_37A04 .text:00037A00 BL free_modules_db .text:00037A04 .text:00037A04 loc_37A04 ; CODE XREF: free_mem_4+30j .text:00037A04 LDR R3, =known_derivations .text:00037A08 LDR R0, [R3] .text:00037A0C CMP R0, #0 .text:00037A10 LDMEQDB R11, {R11,SP,PC} .text:00037A14 LDR R1, =free_derivation .text:00037A18 BL tdestroy .text:00037A1C LDMDB R11, {R11,SP,PC} .text:00037A1C ; End of function free_mem_4 .text:00037A1C .text:00037A1C ; --------------------------------------------------------------------------- .text:00037A20 off_37A20 DCD __gconv_alias_db ; DATA XREF: free_mem_4+8r .text:00037A24 off_37A24 DCD free ; DATA XREF: free_mem_4+1Cr .text:00037A28 off_37A28 DCD __gconv_modules_db ; DATA XREF: free_mem_4:loc_379F0r .text:00037A2C off_37A2C DCD known_derivations ; DATA XREF: free_mem_4:loc_37A04r .text:00037A30 off_37A30 DCD free_derivation ; DATA XREF: free_mem_4+48r .text:00037A34 .text:00037A34 ; =============== S U B R O U T I N E ======================================= .text:00037A34 .text:00037A34 ; Attributes: bp-based frame .text:00037A34 .text:00037A34 detect_conflict ; CODE XREF: read_conf_file+288p .text:00037A34 ; __gconv_read_conf+3ACp .text:00037A34 MOV R12, SP .text:00037A38 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00037A3C LDR R3, =__gconv_modules_db .text:00037A40 SUB R11, R12, #4 .text:00037A44 LDR R4, [R3] .text:00037A48 MOV R5, R0 .text:00037A4C .text:00037A4C loc_37A4C ; CODE XREF: detect_conflict+3Cj .text:00037A4C ; detect_conflict+44j .text:00037A4C CMP R4, #0 .text:00037A50 BEQ loc_37A7C .text:00037A54 LDR R1, [R4] .text:00037A58 MOV R0, R5 .text:00037A5C BL strcmp .text:00037A60 CMP R0, #0 .text:00037A64 MOVEQ R0, #1 .text:00037A68 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00037A6C LDRLT R4, [R4,#0x14] .text:00037A70 BLT loc_37A4C .text:00037A74 LDR R4, [R4,#0x1C] .text:00037A78 B loc_37A4C .text:00037A7C ; --------------------------------------------------------------------------- .text:00037A7C .text:00037A7C loc_37A7C ; CODE XREF: detect_conflict+1Cj .text:00037A7C SUBS R0, R4, #0 .text:00037A80 MOVNE R0, #1 .text:00037A84 LDMDB R11, {R4,R5,R11,SP,PC} .text:00037A84 ; End of function detect_conflict .text:00037A84 .text:00037A84 ; --------------------------------------------------------------------------- .text:00037A88 off_37A88 DCD __gconv_modules_db ; DATA XREF: detect_conflict+8r .text:00037A8C .text:00037A8C ; =============== S U B R O U T I N E ======================================= .text:00037A8C .text:00037A8C ; Attributes: bp-based frame .text:00037A8C .text:00037A8C add_module ; CODE XREF: read_conf_file+35Cp .text:00037A8C .text:00037A8C var_40 = -0x40 .text:00037A8C var_3C = -0x3C .text:00037A8C var_38 = -0x38 .text:00037A8C var_34 = -0x34 .text:00037A8C var_2C = -0x2C .text:00037A8C arg_4 = 8 .text:00037A8C .text:00037A8C MOV R12, SP .text:00037A90 STMFD SP!, {R4-R12,LR,PC} .text:00037A94 SUB R11, R12, #4 .text:00037A98 MOV R4, R0 .text:00037A9C LDR R3, =__ctype_b .text:00037AA0 SUB SP, SP, #0x18 .text:00037AA4 LDRB R0, [R4] .text:00037AA8 MOV R10, R2 .text:00037AAC LDR LR, [R3] .text:00037AB0 MOV R0, R0,LSL#1 .text:00037AB4 ADD R0, R0, LR .text:00037AB8 LDRB R12, [R0,#1] .text:00037ABC MOV R7, R3 .text:00037AC0 STR R1, [R11,#var_38] .text:00037AC4 TST R12, #0x20 .text:00037AC8 BEQ loc_37AE8 .text:00037ACC MOV R1, LR .text:00037AD0 .text:00037AD0 loc_37AD0 ; CODE XREF: add_module+58j .text:00037AD0 LDRB R3, [R4,#1]! .text:00037AD4 MOV R3, R3,LSL#1 .text:00037AD8 ADD R3, R3, R1 .text:00037ADC LDRB R2, [R3,#1] .text:00037AE0 TST R2, #0x20 .text:00037AE4 BNE loc_37AD0 .text:00037AE8 .text:00037AE8 loc_37AE8 ; CODE XREF: add_module+3Cj .text:00037AE8 MOV R6, R4 .text:00037AEC LDRB R3, [R6] .text:00037AF0 CMP R3, #0 .text:00037AF4 BEQ loc_37B4C .text:00037AF8 MOV R0, R3 .text:00037AFC LDR R2, [R7] .text:00037B00 MOV R3, R0,LSL#1 .text:00037B04 ADD R3, R3, R2 .text:00037B08 LDRB R1, [R3,#1] .text:00037B0C TST R1, #0x20 .text:00037B10 BNE loc_37B4C .text:00037B14 LDR R12, =__ctype_toupper .text:00037B18 .text:00037B18 loc_37B18 ; CODE XREF: add_module+BCj .text:00037B18 LDR R3, [R12] .text:00037B1C LDR R2, [R3,R0,LSL#2] .text:00037B20 STRB R2, [R4] .text:00037B24 LDRB R3, [R4,#1]! .text:00037B28 CMP R3, #0 .text:00037B2C BEQ loc_37B4C .text:00037B30 LDRB R0, [R4] .text:00037B34 LDR R2, [R7] .text:00037B38 MOV R3, R0,LSL#1 .text:00037B3C ADD R3, R3, R2 .text:00037B40 LDRB R1, [R3,#1] .text:00037B44 TST R1, #0x20 .text:00037B48 BEQ loc_37B18 .text:00037B4C .text:00037B4C loc_37B4C ; CODE XREF: add_module+68j .text:00037B4C ; add_module+84j ... .text:00037B4C LDRB R3, [R4] .text:00037B50 CMP R3, #0 .text:00037B54 BEQ locret_37ECC .text:00037B58 MOV R3, #0 .text:00037B5C STRB R3, [R4],#1 .text:00037B60 MOV R5, R4 .text:00037B64 MOV R9, R5 .text:00037B68 LDRB R3, [R9] .text:00037B6C LDR R1, [R7] .text:00037B70 B loc_37B78 .text:00037B74 ; --------------------------------------------------------------------------- .text:00037B74 .text:00037B74 loc_37B74 ; CODE XREF: add_module+FCj .text:00037B74 LDRB R3, [R4,#1]! .text:00037B78 .text:00037B78 loc_37B78 ; CODE XREF: add_module+E4j .text:00037B78 MOV R3, R3,LSL#1 .text:00037B7C ADD R3, R3, R1 .text:00037B80 LDRB R2, [R3,#1] .text:00037B84 TST R2, #0x20 .text:00037B88 BNE loc_37B74 .text:00037B8C LDRB R3, [R4] .text:00037B90 CMP R3, #0 .text:00037B94 BEQ loc_37BEC .text:00037B98 MOV R0, R3 .text:00037B9C LDR R3, [R7] .text:00037BA0 MOV R2, R0,LSL#1 .text:00037BA4 ADD R2, R2, R3 .text:00037BA8 LDRB R1, [R2,#1] .text:00037BAC TST R1, #0x20 .text:00037BB0 BNE loc_37BEC .text:00037BB4 LDR R12, =__ctype_toupper .text:00037BB8 .text:00037BB8 loc_37BB8 ; CODE XREF: add_module+15Cj .text:00037BB8 LDR R3, [R12] .text:00037BBC LDR R2, [R3,R0,LSL#2] .text:00037BC0 STRB R2, [R5],#1 .text:00037BC4 LDRB R3, [R4,#1]! .text:00037BC8 CMP R3, #0 .text:00037BCC BEQ loc_37BEC .text:00037BD0 LDRB R0, [R4] .text:00037BD4 LDR R3, [R7] .text:00037BD8 MOV R2, R0,LSL#1 .text:00037BDC ADD R2, R2, R3 .text:00037BE0 LDRB R1, [R2,#1] .text:00037BE4 TST R1, #0x20 .text:00037BE8 BEQ loc_37BB8 .text:00037BEC .text:00037BEC loc_37BEC ; CODE XREF: add_module+108j .text:00037BEC ; add_module+124j ... .text:00037BEC LDRB R3, [R4] .text:00037BF0 CMP R3, #0 .text:00037BF4 BEQ locret_37ECC .text:00037BF8 MOV R3, #0 .text:00037BFC STRB R3, [R5],#1 .text:00037C00 LDR R2, =__ctype_b .text:00037C04 LDR R12, [R2] .text:00037C08 .text:00037C08 loc_37C08 ; CODE XREF: add_module+190j .text:00037C08 LDRB R1, [R4,#1]! .text:00037C0C MOV R0, R1,LSL#1 .text:00037C10 ADD R3, R0, R12 .text:00037C14 LDRB R2, [R3,#1] .text:00037C18 TST R2, #0x20 .text:00037C1C BNE loc_37C08 .text:00037C20 MOV R12, R1 .text:00037C24 CMP R1, #0 .text:00037C28 MOV R8, R5 .text:00037C2C BEQ loc_37C68 .text:00037C30 LDR R3, [R7] .text:00037C34 ADD R3, R0, R3 .text:00037C38 B loc_37C5C .text:00037C3C ; --------------------------------------------------------------------------- .text:00037C3C .text:00037C3C loc_37C3C ; CODE XREF: add_module+1D8j .text:00037C3C STRB R12, [R5],#1 .text:00037C40 LDRB R12, [R4,#1]! .text:00037C44 CMP R12, #0 .text:00037C48 BEQ loc_37C68 .text:00037C4C LDRB R3, [R4] .text:00037C50 LDR R1, [R7] .text:00037C54 MOV R3, R3,LSL#1 .text:00037C58 ADD R3, R3, R1 .text:00037C5C .text:00037C5C loc_37C5C ; CODE XREF: add_module+1ACj .text:00037C5C LDRB R2, [R3,#1] .text:00037C60 TST R2, #0x20 .text:00037C64 BEQ loc_37C3C .text:00037C68 .text:00037C68 loc_37C68 ; CODE XREF: add_module+1A0j .text:00037C68 ; add_module+1BCj .text:00037C68 LDRB R3, [R4] .text:00037C6C CMP R3, #0 .text:00037C70 MOVEQ R2, #1 .text:00037C74 STREQ R2, [R11,#var_3C] .text:00037C78 STREQB R3, [R5],#1 .text:00037C7C BEQ loc_37CAC .text:00037C80 MOV R3, #0 .text:00037C84 STRB R3, [R5],#1 .text:00037C88 MOV R0, R4 .text:00037C8C SUB R1, R11, #-var_2C .text:00037C90 MOV R2, #0xA .text:00037C94 BL __strtol_internal .text:00037C98 LDR R3, [R11,#var_2C] .text:00037C9C CMP R4, R3 .text:00037CA0 CMPNE R0, #0 .text:00037CA4 MOVLE R0, #1 .text:00037CA8 STR R0, [R11,#var_3C] .text:00037CAC .text:00037CAC loc_37CAC ; CODE XREF: add_module+1F0j .text:00037CAC LDRB R3, [R8] .text:00037CB0 CMP R3, #0 .text:00037CB4 BEQ locret_37ECC .text:00037CB8 CMP R3, #0x2F .text:00037CBC MOVEQ R10, #0 .text:00037CC0 MOV R7, #0 .text:00037CC4 RSB R3, R8, R5 .text:00037CC8 CMP R3, #3 .text:00037CCC STR R3, [R11,#var_40] .text:00037CD0 BLE loc_37CEC .text:00037CD4 SUB R0, R5, #4 .text:00037CD8 LDR R1, =gconv_module_ext .text:00037CDC MOV R2, #4 .text:00037CE0 BL memcmp .text:00037CE4 CMP R0, R7 .text:00037CE8 BEQ loc_37CF0 .text:00037CEC .text:00037CEC loc_37CEC ; CODE XREF: add_module+244j .text:00037CEC MOV R7, #3 .text:00037CF0 .text:00037CF0 loc_37CF0 ; CODE XREF: add_module+25Cj .text:00037CF0 MOV R0, R6 .text:00037CF4 MOV R1, #0 .text:00037CF8 RSB R4, R6, R9 .text:00037CFC MOV R2, R4 .text:00037D00 BL memchr .text:00037D04 SUBS R2, R0, #0 .text:00037D08 SUBNE R2, R2, R6 .text:00037D0C MOVEQ R2, R4 .text:00037D10 ADD R3, R2, #4 .text:00037D14 BIC R3, R3, #3 .text:00037D18 RSB SP, R3, SP .text:00037D1C MOV R1, #0 .text:00037D20 STRB R1, [SP,R2] .text:00037D24 MOV R0, SP .text:00037D28 MOV R1, R6 .text:00037D2C BL memcpy .text:00037D30 STR R0, [R11,#var_34] .text:00037D34 LDR R1, =__gconv_alias_db .text:00037D38 LDR R2, =__gconv_alias_compare .text:00037D3C SUB R0, R11, #-var_34 .text:00037D40 BL tfind .text:00037D44 CMP R0, #0 .text:00037D48 BNE locret_37ECC .text:00037D4C MOV R0, #1 .text:00037D50 RSB R1, R6, R5 .text:00037D54 ADD R3, R10, #0x20 .text:00037D58 ADD R1, R1, R3 .text:00037D5C ADD R1, R1, R7 .text:00037D60 BL calloc .text:00037D64 SUBS R5, R0, #0 .text:00037D68 BEQ locret_37ECC .text:00037D6C ADD R0, R5, #0x20 .text:00037D70 STR R0, [R5] .text:00037D74 MOV R1, R6 .text:00037D78 MOV R2, R4 .text:00037D7C BL mempcpy .text:00037D80 STR R0, [R5,#4] .text:00037D84 MOV R1, R9 .text:00037D88 RSB R2, R1, R8 .text:00037D8C BL mempcpy .text:00037D90 LDR R3, [R11,#var_3C] .text:00037D94 STR R3, [R5,#8] .text:00037D98 LDR R3, [R11,#arg_4] .text:00037D9C STR R0, [R5,#0x10] .text:00037DA0 CMP R10, #0 .text:00037DA4 STR R3, [R5,#0xC] .text:00037DA8 BEQ loc_37DB8 .text:00037DAC LDR R1, [R11,#var_38] .text:00037DB0 MOV R2, R10 .text:00037DB4 BL mempcpy .text:00037DB8 .text:00037DB8 loc_37DB8 ; CODE XREF: add_module+31Cj .text:00037DB8 LDR R2, [R11,#var_40] .text:00037DBC MOV R1, R8 .text:00037DC0 BL mempcpy .text:00037DC4 CMP R7, #0 .text:00037DC8 BEQ loc_37DDC .text:00037DCC SUB R0, R0, #1 .text:00037DD0 LDR R1, =gconv_module_ext .text:00037DD4 MOV R2, #4 .text:00037DD8 BL memcpy .text:00037DDC .text:00037DDC loc_37DDC ; CODE XREF: add_module+33Cj .text:00037DDC LDR R6, =__gconv_modules_db .text:00037DE0 B loc_37EBC .text:00037DE4 ; --------------------------------------------------------------------------- .text:00037DE4 .text:00037DE4 loc_37DE4 ; CODE XREF: add_module+438j .text:00037DE4 LDR R4, [R6] .text:00037DE8 LDR R0, [R5] .text:00037DEC LDR R1, [R4] .text:00037DF0 BL strcmp .text:00037DF4 CMP R0, #0 .text:00037DF8 BNE loc_37EB0 .text:00037DFC B loc_37E28 .text:00037DFC ; --------------------------------------------------------------------------- .text:00037E00 off_37E00 DCD __ctype_b ; DATA XREF: add_module+10r .text:00037E00 ; add_module+174r .text:00037E04 off_37E04 DCD __ctype_toupper ; DATA XREF: add_module+88r .text:00037E04 ; add_module+128r .text:00037E08 off_37E08 DCD gconv_module_ext ; DATA XREF: add_module+24Cr .text:00037E08 ; add_module+344r .text:00037E0C off_37E0C DCD __gconv_alias_db ; DATA XREF: add_module+2A8r .text:00037E10 off_37E10 DCD __gconv_alias_compare ; DATA XREF: add_module+2ACr .text:00037E14 off_37E14 DCD __gconv_modules_db ; DATA XREF: add_module:loc_37DDCr .text:00037E18 ; --------------------------------------------------------------------------- .text:00037E18 .text:00037E18 loc_37E18 ; CODE XREF: add_module+3ACj .text:00037E18 ; add_module+3C0j .text:00037E18 ADD R6, R4, #0x18 .text:00037E1C LDR R4, [R4,#0x18] .text:00037E20 CMP R4, #0 .text:00037E24 BEQ loc_37E50 .text:00037E28 .text:00037E28 loc_37E28 ; CODE XREF: add_module+370j .text:00037E28 LDR R0, [R5] .text:00037E2C LDR R1, [R4] .text:00037E30 BL strcmp .text:00037E34 CMP R0, #0 .text:00037E38 BNE loc_37E18 .text:00037E3C LDR R0, [R5,#4] .text:00037E40 LDR R1, [R4,#4] .text:00037E44 BL strcmp .text:00037E48 CMP R0, #0 .text:00037E4C BNE loc_37E18 .text:00037E50 .text:00037E50 loc_37E50 ; CODE XREF: add_module+398j .text:00037E50 CMP R4, #0 .text:00037E54 BEQ loc_37EC8 .text:00037E58 LDR R2, [R5,#8] .text:00037E5C LDR R3, [R4,#8] .text:00037E60 CMP R2, R3 .text:00037E64 BLT loc_37E7C .text:00037E68 BNE loc_37EA4 .text:00037E6C LDR R2, [R5,#0xC] .text:00037E70 LDR R3, [R4,#0xC] .text:00037E74 CMP R2, R3 .text:00037E78 BGE loc_37EA4 .text:00037E7C .text:00037E7C loc_37E7C ; CODE XREF: add_module+3D8j .text:00037E7C LDR R3, [R4,#0x14] .text:00037E80 STR R3, [R5,#0x14] .text:00037E84 LDR R2, [R4,#0x1C] .text:00037E88 STR R2, [R5,#0x1C] .text:00037E8C LDR R3, [R4,#0x18] .text:00037E90 STR R3, [R5,#0x18] .text:00037E94 STR R5, [R6] .text:00037E98 MOV R0, R4 .text:00037E9C BL free .text:00037EA0 B locret_37ECC .text:00037EA4 ; --------------------------------------------------------------------------- .text:00037EA4 .text:00037EA4 loc_37EA4 ; CODE XREF: add_module+3DCj .text:00037EA4 ; add_module+3ECj .text:00037EA4 MOV R0, R5 .text:00037EA8 BL free .text:00037EAC B locret_37ECC .text:00037EB0 ; --------------------------------------------------------------------------- .text:00037EB0 .text:00037EB0 loc_37EB0 ; CODE XREF: add_module+36Cj .text:00037EB0 CMP R0, #0 .text:00037EB4 ADDGE R6, R4, #0x1C .text:00037EB8 ADDLT R6, R4, #0x14 .text:00037EBC .text:00037EBC loc_37EBC ; CODE XREF: add_module+354j .text:00037EBC LDR R3, [R6] .text:00037EC0 CMP R3, #0 .text:00037EC4 BNE loc_37DE4 .text:00037EC8 .text:00037EC8 loc_37EC8 ; CODE XREF: add_module+3C8j .text:00037EC8 STR R5, [R6] .text:00037ECC .text:00037ECC locret_37ECC ; CODE XREF: add_module+C8j .text:00037ECC ; add_module+168j ... .text:00037ECC LDMDB R11, {R4-R11,SP,PC} .text:00037ECC ; End of function add_module .text:00037ECC .text:00037ED0 .text:00037ED0 ; =============== S U B R O U T I N E ======================================= .text:00037ED0 .text:00037ED0 ; Attributes: bp-based frame .text:00037ED0 .text:00037ED0 read_conf_file ; CODE XREF: __gconv_read_conf+B8p .text:00037ED0 .text:00037ED0 var_44 = -0x44 .text:00037ED0 var_40 = -0x40 .text:00037ED0 var_3C = -0x3C .text:00037ED0 var_38 = -0x38 .text:00037ED0 var_34 = -0x34 .text:00037ED0 var_30 = -0x30 .text:00037ED0 var_2C = -0x2C .text:00037ED0 arg_0 = 4 .text:00037ED0 .text:00037ED0 MOV R12, SP .text:00037ED4 STMFD SP!, {R4-R12,LR,PC} .text:00037ED8 SUB R11, R12, #4 .text:00037EDC SUB SP, SP, #0x1C .text:00037EE0 STR R1, [R11,#var_34] .text:00037EE4 STR R2, [R11,#var_38] .text:00037EE8 STR R3, [R11,#var_3C] .text:00037EEC LDR R1, =aR_2 ; "r" .text:00037EF0 BL fopen .text:00037EF4 MOV R3, #0 .text:00037EF8 STR R3, [R11,#var_2C] .text:00037EFC SUBS R9, R0, #0 .text:00037F00 STR R3, [R11,#var_30] .text:00037F04 BEQ locret_38278 .text:00037F08 LDR R10, =__ctype_b .text:00037F0C B loc_38230 .text:00037F10 ; --------------------------------------------------------------------------- .text:00037F10 .text:00037F10 loc_37F10 ; CODE XREF: read_conf_file+388j .text:00037F10 LDR R5, [R11,#var_2C] .text:00037F14 MOV R1, #0x23 .text:00037F18 MOV R0, R5 .text:00037F1C BL strchr .text:00037F20 SUBS LR, R0, #0 .text:00037F24 STRNEB R4, [LR] .text:00037F28 BNE loc_37F3C .text:00037F2C ADD R0, R6, R5 .text:00037F30 LDRB R3, [R0,#-1] .text:00037F34 CMP R3, #0xA .text:00037F38 STREQB LR, [R0,#-1] .text:00037F3C .text:00037F3C loc_37F3C ; CODE XREF: read_conf_file+58j .text:00037F3C LDR R3, =__ctype_b .text:00037F40 LDRB R2, [R5] .text:00037F44 LDR R12, [R3] .text:00037F48 MOV R2, R2,LSL#1 .text:00037F4C ADD R2, R2, R12 .text:00037F50 LDRB R1, [R2,#1] .text:00037F54 MOV R8, R3 .text:00037F58 TST R1, #0x20 .text:00037F5C BEQ loc_37F7C .text:00037F60 MOV R1, R12 .text:00037F64 .text:00037F64 loc_37F64 ; CODE XREF: read_conf_file+A8j .text:00037F64 LDRB R3, [R5,#1]! .text:00037F68 MOV R3, R3,LSL#1 .text:00037F6C ADD R3, R3, R1 .text:00037F70 LDRB R2, [R3,#1] .text:00037F74 TST R2, #0x20 .text:00037F78 BNE loc_37F64 .text:00037F7C .text:00037F7C loc_37F7C ; CODE XREF: read_conf_file+8Cj .text:00037F7C CMP R5, LR .text:00037F80 BEQ loc_38230 .text:00037F84 LDRB R3, [R5] .text:00037F88 MOV R6, R5 .text:00037F8C CMP R3, #0 .text:00037F90 BEQ loc_37FC4 .text:00037F94 LDR R1, [R10] .text:00037F98 B loc_37FB0 .text:00037F9C ; --------------------------------------------------------------------------- .text:00037F9C .text:00037F9C loc_37F9C ; CODE XREF: read_conf_file+F0j .text:00037F9C LDRB R3, [R5,#1]! .text:00037FA0 CMP R3, #0 .text:00037FA4 BEQ loc_37FC4 .text:00037FA8 LDRB R3, [R5] .text:00037FAC LDR R1, [R8] .text:00037FB0 .text:00037FB0 loc_37FB0 ; CODE XREF: read_conf_file+C8j .text:00037FB0 MOV R3, R3,LSL#1 .text:00037FB4 ADD R3, R3, R1 .text:00037FB8 LDRB R2, [R3,#1] .text:00037FBC TST R2, #0x20 .text:00037FC0 BEQ loc_37F9C .text:00037FC4 .text:00037FC4 loc_37FC4 ; CODE XREF: read_conf_file+C0j .text:00037FC4 ; read_conf_file+D4j .text:00037FC4 RSB R3, R6, R5 .text:00037FC8 CMP R3, #5 .text:00037FCC MOV R4, R3 .text:00037FD0 BNE loc_381E0 .text:00037FD4 MOV R0, R6 .text:00037FD8 LDR R1, =aAlias ; "alias" .text:00037FDC MOV R2, R4 .text:00037FE0 BL memcmp .text:00037FE4 CMP R0, #0 .text:00037FE8 BNE loc_381E0 .text:00037FEC MOV R12, R5 .text:00037FF0 LDRB R3, [R12] .text:00037FF4 LDR R1, [R10] .text:00037FF8 MOV R3, R3,LSL#1 .text:00037FFC ADD R3, R3, R1 .text:00038000 LDRB R2, [R3,#1] .text:00038004 TST R2, #0x20 .text:00038008 BEQ loc_38028 .text:0003800C LDR R1, [R8] .text:00038010 .text:00038010 loc_38010 ; CODE XREF: read_conf_file+154j .text:00038010 LDRB R3, [R12,#1]! .text:00038014 MOV R3, R3,LSL#1 .text:00038018 ADD R3, R3, R1 .text:0003801C LDRB R2, [R3,#1] .text:00038020 TST R2, #0x20 .text:00038024 BNE loc_38010 .text:00038028 .text:00038028 loc_38028 ; CODE XREF: read_conf_file+138j .text:00038028 MOV R6, R12 .text:0003802C LDRB R3, [R6] .text:00038030 MOV R4, R6 .text:00038034 CMP R3, #0 .text:00038038 BEQ loc_38090 .text:0003803C MOV R0, R3 .text:00038040 LDR R2, [R10] .text:00038044 MOV R3, R0,LSL#1 .text:00038048 ADD R3, R3, R2 .text:0003804C LDRB R1, [R3,#1] .text:00038050 TST R1, #0x20 .text:00038054 BNE loc_38090 .text:00038058 LDR LR, =__ctype_toupper .text:0003805C .text:0003805C loc_3805C ; CODE XREF: read_conf_file+1BCj .text:0003805C LDR R3, [LR] .text:00038060 LDR R2, [R3,R0,LSL#2] .text:00038064 STRB R2, [R4],#1 .text:00038068 LDRB R3, [R12,#1]! .text:0003806C CMP R3, #0 .text:00038070 BEQ loc_38090 .text:00038074 LDRB R0, [R12] .text:00038078 LDR R2, [R8] .text:0003807C MOV R3, R0,LSL#1 .text:00038080 ADD R3, R3, R2 .text:00038084 LDRB R1, [R3,#1] .text:00038088 TST R1, #0x20 .text:0003808C BEQ loc_3805C .text:00038090 .text:00038090 loc_38090 ; CODE XREF: read_conf_file+168j .text:00038090 ; read_conf_file+184j ... .text:00038090 LDRB R3, [R12] .text:00038094 CMP R3, #0 .text:00038098 BEQ loc_38230 .text:0003809C MOV R3, #0 .text:000380A0 STRB R3, [R4],#1 .text:000380A4 ADD R7, R12, #1 .text:000380A8 LDRB R3, [R7] .text:000380AC LDR R2, [R10] .text:000380B0 MOV R3, R3,LSL#1 .text:000380B4 ADD R3, R3, R2 .text:000380B8 LDRB R1, [R3,#1] .text:000380BC MOV R12, R7 .text:000380C0 TST R1, #0x20 .text:000380C4 BEQ loc_380E4 .text:000380C8 LDR R1, [R8] .text:000380CC .text:000380CC loc_380CC ; CODE XREF: read_conf_file+210j .text:000380CC LDRB R3, [R12,#1]! .text:000380D0 MOV R3, R3,LSL#1 .text:000380D4 ADD R3, R3, R1 .text:000380D8 LDRB R2, [R3,#1] .text:000380DC TST R2, #0x20 .text:000380E0 BNE loc_380CC .text:000380E4 .text:000380E4 loc_380E4 ; CODE XREF: read_conf_file+1F4j .text:000380E4 LDRB R3, [R12] .text:000380E8 CMP R3, #0 .text:000380EC BEQ loc_38144 .text:000380F0 MOV R0, R3 .text:000380F4 LDR R3, [R10] .text:000380F8 MOV R2, R0,LSL#1 .text:000380FC ADD R2, R2, R3 .text:00038100 LDRB R1, [R2,#1] .text:00038104 TST R1, #0x20 .text:00038108 BNE loc_38144 .text:0003810C LDR LR, =__ctype_toupper .text:00038110 .text:00038110 loc_38110 ; CODE XREF: read_conf_file+270j .text:00038110 LDR R3, [LR] .text:00038114 LDR R2, [R3,R0,LSL#2] .text:00038118 STRB R2, [R4],#1 .text:0003811C LDRB R3, [R12,#1]! .text:00038120 CMP R3, #0 .text:00038124 BEQ loc_38144 .text:00038128 LDRB R0, [R12] .text:0003812C LDR R3, [R8] .text:00038130 MOV R2, R0,LSL#1 .text:00038134 ADD R2, R2, R3 .text:00038138 LDRB R1, [R2,#1] .text:0003813C TST R1, #0x20 .text:00038140 BEQ loc_38110 .text:00038144 .text:00038144 loc_38144 ; CODE XREF: read_conf_file+21Cj .text:00038144 ; read_conf_file+238j ... .text:00038144 CMP R7, R4 .text:00038148 BEQ loc_38230 .text:0003814C MOV R3, #0 .text:00038150 STRB R3, [R4],#1 .text:00038154 MOV R0, R6 .text:00038158 BL detect_conflict .text:0003815C CMP R0, #0 .text:00038160 BNE loc_38230 .text:00038164 RSB R5, R6, R4 .text:00038168 ADD R0, R5, #8 .text:0003816C BL malloc .text:00038170 SUBS R4, R0, #0 .text:00038174 BEQ loc_38230 .text:00038178 ADD R0, R4, #8 .text:0003817C MOV R1, R6 .text:00038180 MOV R2, R5 .text:00038184 BL memcpy .text:00038188 STR R0, [R4] .text:0003818C RSB R3, R6, R7 .text:00038190 ADD R0, R0, R3 .text:00038194 STR R0, [R4,#4] .text:00038198 LDR R1, =__gconv_alias_db .text:0003819C LDR R2, =__gconv_alias_compare .text:000381A0 MOV R0, R4 .text:000381A4 BL tsearch .text:000381A8 CMP R0, #0 .text:000381AC BEQ loc_381BC .text:000381B0 LDR R3, [R0] .text:000381B4 CMP R3, R4 .text:000381B8 BEQ loc_38230 .text:000381BC .text:000381BC loc_381BC ; CODE XREF: read_conf_file+2DCj .text:000381BC MOV R0, R4 .text:000381C0 BL free .text:000381C4 B loc_38230 .text:000381C4 ; --------------------------------------------------------------------------- .text:000381C8 off_381C8 DCD aR_2 ; DATA XREF: read_conf_file+1Cr .text:000381C8 ; "r" .text:000381CC off_381CC DCD __ctype_b ; DATA XREF: read_conf_file+38r .text:000381CC ; read_conf_file:loc_37F3Cr .text:000381D0 off_381D0 DCD aAlias ; DATA XREF: read_conf_file+108r .text:000381D0 ; "alias" .text:000381D4 off_381D4 DCD __ctype_toupper ; DATA XREF: read_conf_file+188r .text:000381D4 ; read_conf_file+23Cr .text:000381D8 off_381D8 DCD __gconv_alias_db ; DATA XREF: read_conf_file+2C8r .text:000381DC off_381DC DCD __gconv_alias_compare ; DATA XREF: read_conf_file+2CCr .text:000381E0 ; --------------------------------------------------------------------------- .text:000381E0 .text:000381E0 loc_381E0 ; CODE XREF: read_conf_file+100j .text:000381E0 ; read_conf_file+118j .text:000381E0 CMP R4, #6 .text:000381E4 BNE loc_38230 .text:000381E8 MOV R0, R6 .text:000381EC LDR R1, =aModule ; "module" .text:000381F0 MOV R2, R4 .text:000381F4 BL memcmp .text:000381F8 CMP R0, #0 .text:000381FC BNE loc_38230 .text:00038200 LDR R3, [R11,#arg_0] .text:00038204 STR R3, [SP,#0x44+var_44] .text:00038208 LDR R2, =modcounter.168 .text:0003820C LDR R3, [R2] .text:00038210 STR R3, [SP,#0x44+var_40] .text:00038214 ADD R3, R3, #1 .text:00038218 STR R3, [R2] .text:0003821C LDR R1, [R11,#var_34] .text:00038220 LDR R2, [R11,#var_38] .text:00038224 LDR R3, [R11,#var_3C] .text:00038228 MOV R0, R5 .text:0003822C BL add_module .text:00038230 .text:00038230 loc_38230 ; CODE XREF: read_conf_file+3Cj .text:00038230 ; read_conf_file+B0j ... .text:00038230 LDR R3, [R9] .text:00038234 MOV R4, R3,LSR#4 .text:00038238 ANDS R4, R4, #1 .text:0003823C BNE loc_3825C .text:00038240 SUB R0, R11, #-var_2C .text:00038244 SUB R1, R11, #-var_30 .text:00038248 MOV R2, #0xA .text:0003824C MOV R3, R9 .text:00038250 BL getdelim .text:00038254 SUBS R6, R0, #0 .text:00038258 BGE loc_37F10 .text:0003825C .text:0003825C loc_3825C ; CODE XREF: read_conf_file+36Cj .text:0003825C LDR R0, [R11,#var_2C] .text:00038260 BL free .text:00038264 MOV R0, R9 .text:00038268 BL fclose .text:0003826C B locret_38278 .text:0003826C ; --------------------------------------------------------------------------- .text:00038270 off_38270 DCD aModule ; DATA XREF: read_conf_file+31Cr .text:00038270 ; "module" .text:00038274 off_38274 DCD modcounter.168 ; DATA XREF: read_conf_file+338r .text:00038278 ; --------------------------------------------------------------------------- .text:00038278 .text:00038278 locret_38278 ; CODE XREF: read_conf_file+34j .text:00038278 ; read_conf_file+39Cj .text:00038278 LDMDB R11, {R4-R11,SP,PC} .text:00038278 ; End of function read_conf_file .text:00038278 .text:0003827C .text:0003827C ; =============== S U B R O U T I N E ======================================= .text:0003827C .text:0003827C ; Attributes: bp-based frame .text:0003827C .text:0003827C EXPORT __gconv_get_path .text:0003827C __gconv_get_path ; CODE XREF: __gconv_read_conf+38p .text:0003827C ; __gconv_translit_find+F0p .text:0003827C .text:0003827C var_30 = -0x30 .text:0003827C var_2C = -0x2C .text:0003827C .text:0003827C MOV R12, SP .text:00038280 STMFD SP!, {R4-R12,LR,PC} .text:00038284 LDR R3, =0 .text:00038288 SUB R11, R12, #4 .text:0003828C CMP R3, #0 .text:00038290 SUB SP, SP, #8 .text:00038294 BEQ loc_382A4 .text:00038298 LDR R0, =lock.172 .text:0003829C MOV LR, PC .text:000382A0 MOV PC, R3 .text:000382A4 .text:000382A4 loc_382A4 ; CODE XREF: __gconv_get_path+18j .text:000382A4 LDR R3, =__gconv_path_elem .text:000382A8 LDR R6, [R3] .text:000382AC CMP R6, #0 .text:000382B0 BNE loc_385C0 .text:000382B4 LDR R0, =aGconv_path ; "GCONV_PATH" .text:000382B8 BL getenv .text:000382BC SUBS R4, R0, #0 .text:000382C0 BNE loc_38304 .text:000382C4 MOV R8, R6 .text:000382C8 STR R8, [R11,#var_30] .text:000382CC LDR R4, =default_gconv_path ; "/usr/local/arm/2.95.3/arm-linux/lib/gco"... .text:000382D0 MOV R7, #0x2A .text:000382D4 MOV R0, R4 .text:000382D8 BL strlen .text:000382DC MOV R2, R0 .text:000382E0 ADD R3, R2, #4 .text:000382E4 BIC R3, R3, #3 .text:000382E8 RSB SP, R3, SP .text:000382EC MOV R0, SP .text:000382F0 MOV R1, R4 .text:000382F4 ADD R2, R2, #1 .text:000382F8 BL memcpy .text:000382FC STR R0, [R11,#var_2C] .text:00038300 B loc_38360 .text:00038304 ; --------------------------------------------------------------------------- .text:00038304 .text:00038304 loc_38304 ; CODE XREF: __gconv_get_path+44j .text:00038304 MOV R0, R4 .text:00038308 BL strlen .text:0003830C MOV R2, R0 .text:00038310 ADD R3, R2, #0x2E .text:00038314 BIC R3, R3, #3 .text:00038318 RSB SP, R3, SP .text:0003831C STR SP, [R11,#var_2C] .text:00038320 ADD R7, R2, #0x2B .text:00038324 MOV R0, SP .text:00038328 MOV R1, R4 .text:0003832C BL mempcpy .text:00038330 LDR R1, =asc_59510 ; ":" .text:00038334 MOV R2, #1 .text:00038338 BL mempcpy .text:0003833C LDR R1, =default_gconv_path ; "/usr/local/arm/2.95.3/arm-linux/lib/gco"... .text:00038340 MOV R2, #0x2A .text:00038344 BL mempcpy .text:00038348 MOV R0, R6 .text:0003834C MOV R1, R0 .text:00038350 BL getcwd .text:00038354 MOV R8, R0 .text:00038358 BL strlen .text:0003835C STR R0, [R11,#var_30] .text:00038360 .text:00038360 loc_38360 ; CODE XREF: __gconv_get_path+84j .text:00038360 MOV R5, #0 .text:00038364 MOV R1, #0x3A .text:00038368 LDR R0, [R11,#var_2C] .text:0003836C MOV R4, #1 .text:00038370 BL strchr .text:00038374 LDR R2, [R11,#var_30] .text:00038378 CMP R0, #0 .text:0003837C ADD R6, R2, R4 .text:00038380 BEQ loc_383A8 .text:00038384 .text:00038384 loc_38384 ; CODE XREF: __gconv_get_path+128j .text:00038384 ADD R3, R5, #1 .text:00038388 CMP R0, R3 .text:0003838C ADDNE R4, R4, #1 .text:00038390 MOV R5, R0 .text:00038394 ADD R0, R5, #1 .text:00038398 MOV R1, #0x3A .text:0003839C BL strchr .text:000383A0 CMP R0, #0 .text:000383A4 BNE loc_38384 .text:000383A8 .text:000383A8 loc_383A8 ; CODE XREF: __gconv_get_path+104j .text:000383A8 ADD R3, R4, #1 .text:000383AC ADD R3, R7, R3,LSL#3 .text:000383B0 ADD R3, R3, R4 .text:000383B4 SUB R2, R4, #1 .text:000383B8 MLA R0, R6, R2, R3 .text:000383BC BL malloc .text:000383C0 SUBS R6, R0, #0 .text:000383C4 BEQ loc_3859C .text:000383C8 MOV R7, #0 .text:000383CC LDR R12, [R11,#var_2C] .text:000383D0 LDR R3, =__gconv_max_path_elem_len .text:000383D4 MOV R2, R4,LSL#3 .text:000383D8 STR R7, [R3] .text:000383DC ADD R2, R2, #8 .text:000383E0 ADD R0, R6, R2 .text:000383E4 CMP R12, R7 .text:000383E8 MOVEQ R12, R7 .text:000383EC LDRB R1, [R12] .text:000383F0 SUB R2, R11, #-var_2C .text:000383F4 CMP R1, #0x3A .text:000383F8 BNE loc_38408 .text:000383FC .text:000383FC loc_383FC ; CODE XREF: __gconv_get_path+188j .text:000383FC LDRB R3, [R12,#1]! .text:00038400 CMP R3, #0x3A .text:00038404 BEQ loc_383FC .text:00038408 .text:00038408 loc_38408 ; CODE XREF: __gconv_get_path+17Cj .text:00038408 LDRB R3, [R12] .text:0003840C MOV R1, #0 .text:00038410 CMP R3, R1 .text:00038414 BEQ loc_38450 .text:00038418 MOV R1, R12 .text:0003841C CMP R3, #0x3A .text:00038420 BEQ loc_3843C .text:00038424 .text:00038424 loc_38424 ; CODE XREF: __gconv_get_path+1BCj .text:00038424 LDRB R3, [R12,#1]! .text:00038428 AND R3, R3, #0xFF .text:0003842C CMP R3, #0 .text:00038430 BEQ loc_3843C .text:00038434 CMP R3, #0x3A .text:00038438 BNE loc_38424 .text:0003843C .text:0003843C loc_3843C ; CODE XREF: __gconv_get_path+1A4j .text:0003843C ; __gconv_get_path+1B4j .text:0003843C LDRB R3, [R12] .text:00038440 CMP R3, #0 .text:00038444 MOVNE R3, #0 .text:00038448 STRNEB R3, [R12],#1 .text:0003844C STR R12, [R2] .text:00038450 .text:00038450 loc_38450 ; CODE XREF: __gconv_get_path+198j .text:00038450 SUBS R4, R1, #0 .text:00038454 BNE loc_38470 .text:00038458 LDR R0, =aElemVoid0 ; "elem != ((void *)0)" .text:0003845C LDR R1, =aGconv_conf_c ; "gconv_conf.c" .text:00038460 MOV R2, #0x1E0 .text:00038464 LDR R3, =a__gconv_get_pa ; "__gconv_get_path" .text:00038468 ADD R2, R2, #2 .text:0003846C BL __assert_fail .text:00038470 ; --------------------------------------------------------------------------- .text:00038470 .text:00038470 loc_38470 ; CODE XREF: __gconv_get_path+1D8j .text:00038470 MOV R9, #0 .text:00038474 MOV R5, R7,LSL#3 .text:00038478 MOV R10, #0x2F .text:0003847C .text:0003847C loc_3847C ; CODE XREF: __gconv_get_path+310j .text:0003847C STR R0, [R5,R6] .text:00038480 LDRB R3, [R4] .text:00038484 CMP R3, #0x2F .text:00038488 BEQ loc_384E4 .text:0003848C CMP R8, #0 .text:00038490 BNE loc_384D4 .text:00038494 LDR R0, =aCwdVoid0 ; "cwd != ((void *)0)" .text:00038498 LDR R1, =aGconv_conf_c ; "gconv_conf.c" .text:0003849C LDR R3, =a__gconv_get_pa ; "__gconv_get_path" .text:000384A0 MOV R2, #0x1E8 .text:000384A4 BL __assert_fail .text:000384A4 ; --------------------------------------------------------------------------- .text:000384A8 off_384A8 DCD 0 ; DATA XREF: __gconv_get_path+8r .text:000384AC off_384AC DCD lock.172 ; DATA XREF: __gconv_get_path+1Cr .text:000384B0 off_384B0 DCD __gconv_path_elem ; DATA XREF: __gconv_get_path:loc_382A4r .text:000384B4 off_384B4 DCD aGconv_path ; DATA XREF: __gconv_get_path+38r .text:000384B4 ; "GCONV_PATH" .text:000384B8 off_384B8 DCD default_gconv_path ; DATA XREF: __gconv_get_path+50r .text:000384B8 ; __gconv_get_path+C0r .text:000384B8 ; "/usr/local/arm/2.95.3/arm-linux/lib/gco"... .text:000384BC off_384BC DCD asc_59510 ; DATA XREF: __gconv_get_path+B4r .text:000384BC ; ":" .text:000384C0 off_384C0 DCD __gconv_max_path_elem_len .text:000384C0 ; DATA XREF: __gconv_get_path+154r .text:000384C4 off_384C4 DCD aElemVoid0 ; DATA XREF: __gconv_get_path+1DCr .text:000384C4 ; "elem != ((void *)0)" .text:000384C8 off_384C8 DCD aGconv_conf_c ; DATA XREF: __gconv_get_path+1E0r .text:000384C8 ; __gconv_get_path+21Cr .text:000384C8 ; "gconv_conf.c" .text:000384CC off_384CC DCD a__gconv_get_pa ; DATA XREF: __gconv_get_path+1E8r .text:000384CC ; __gconv_get_path+220r .text:000384CC ; "__gconv_get_path" .text:000384D0 off_384D0 DCD aCwdVoid0 ; DATA XREF: __gconv_get_path+218r .text:000384D0 ; "cwd != ((void *)0)" .text:000384D4 ; --------------------------------------------------------------------------- .text:000384D4 .text:000384D4 loc_384D4 ; CODE XREF: __gconv_get_path+214j .text:000384D4 LDR R2, [R11,#var_30] .text:000384D8 MOV R1, R8 .text:000384DC BL mempcpy .text:000384E0 STRB R10, [R0],#1 .text:000384E4 .text:000384E4 loc_384E4 ; CODE XREF: __gconv_get_path+20Cj .text:000384E4 MOV R1, R4 .text:000384E8 BL stpcpy .text:000384EC LDRB R3, [R0,#-1] .text:000384F0 CMP R3, #0x2F .text:000384F4 STRNEB R10, [R0],#1 .text:000384F8 LDR R3, [R5,R6] .text:000384FC ADD R2, R5, R6 .text:00038500 RSB R1, R3, R0 .text:00038504 STR R1, [R2,#4] .text:00038508 LDR R2, =__gconv_max_path_elem_len .text:0003850C LDR R3, [R2] .text:00038510 CMP R1, R3 .text:00038514 STRHI R1, [R2] .text:00038518 STRB R9, [R0],#1 .text:0003851C LDR R2, [R11,#var_2C] .text:00038520 ADD R5, R5, #8 .text:00038524 LDRB R3, [R2] .text:00038528 ADD R7, R7, #1 .text:0003852C CMP R3, #0x3A .text:00038530 BNE loc_38540 .text:00038534 .text:00038534 loc_38534 ; CODE XREF: __gconv_get_path+2C0j .text:00038534 LDRB R3, [R2,#1]! .text:00038538 CMP R3, #0x3A .text:0003853C BEQ loc_38534 .text:00038540 .text:00038540 loc_38540 ; CODE XREF: __gconv_get_path+2B4j .text:00038540 MOV R1, #0 .text:00038544 LDRB R3, [R2] .text:00038548 MOV R12, R7,LSL#3 .text:0003854C CMP R3, R1 .text:00038550 BEQ loc_38588 .text:00038554 MOV R1, R2 .text:00038558 CMP R3, #0x3A .text:0003855C BEQ loc_38578 .text:00038560 .text:00038560 loc_38560 ; CODE XREF: __gconv_get_path+2F8j .text:00038560 LDRB R3, [R2,#1]! .text:00038564 AND R3, R3, #0xFF .text:00038568 CMP R3, #0 .text:0003856C BEQ loc_38578 .text:00038570 CMP R3, #0x3A .text:00038574 BNE loc_38560 .text:00038578 .text:00038578 loc_38578 ; CODE XREF: __gconv_get_path+2E0j .text:00038578 ; __gconv_get_path+2F0j .text:00038578 LDRB R3, [R2] .text:0003857C CMP R3, #0 .text:00038580 STRNEB R9, [R2],#1 .text:00038584 STR R2, [R11,#var_2C] .text:00038588 .text:00038588 loc_38588 ; CODE XREF: __gconv_get_path+2D4j .text:00038588 SUBS R4, R1, #0 .text:0003858C BNE loc_3847C .text:00038590 STR R4, [R12,R6] .text:00038594 ADD R3, R12, R6 .text:00038598 STR R4, [R3,#4] .text:0003859C .text:0003859C loc_3859C ; CODE XREF: __gconv_get_path+148j .text:0003859C LDR R3, =empty_path_elem .text:000385A0 CMP R6, #0 .text:000385A4 LDR R2, =__gconv_path_elem .text:000385A8 MOVNE R3, R6 .text:000385AC CMP R8, #0 .text:000385B0 STR R3, [R2] .text:000385B4 BEQ loc_385C0 .text:000385B8 MOV R0, R8 .text:000385BC BL free .text:000385C0 .text:000385C0 loc_385C0 ; CODE XREF: __gconv_get_path+34j .text:000385C0 ; __gconv_get_path+338j .text:000385C0 LDR R3, =0 .text:000385C4 CMP R3, #0 .text:000385C8 BEQ locret_385F0 .text:000385CC LDR R0, =lock.172 .text:000385D0 MOV LR, PC .text:000385D4 MOV PC, R3 .text:000385D8 B locret_385F0 .text:000385D8 ; --------------------------------------------------------------------------- .text:000385DC off_385DC DCD __gconv_max_path_elem_len .text:000385DC ; DATA XREF: __gconv_get_path+28Cr .text:000385E0 off_385E0 DCD empty_path_elem ; DATA XREF: __gconv_get_path:loc_3859Cr .text:000385E4 off_385E4 DCD __gconv_path_elem ; DATA XREF: __gconv_get_path+328r .text:000385E8 off_385E8 DCD 0 ; DATA XREF: __gconv_get_path:loc_385C0r .text:000385EC off_385EC DCD lock.172 ; DATA XREF: __gconv_get_path+350r .text:000385F0 ; --------------------------------------------------------------------------- .text:000385F0 .text:000385F0 locret_385F0 ; CODE XREF: __gconv_get_path+34Cj .text:000385F0 ; __gconv_get_path+35Cj .text:000385F0 LDMDB R11, {R4-R11,SP,PC} .text:000385F0 ; End of function __gconv_get_path .text:000385F0 .text:000385F4 .text:000385F4 ; =============== S U B R O U T I N E ======================================= .text:000385F4 .text:000385F4 ; Attributes: bp-based frame .text:000385F4 .text:000385F4 EXPORT __gconv_read_conf .text:000385F4 __gconv_read_conf ; CODE XREF: __gconv_lookup_alias+40p .text:000385F4 ; __gconv_find_transform+44p .text:000385F4 ; DATA XREF: ... .text:000385F4 .text:000385F4 var_44 = -0x44 .text:000385F4 var_40 = -0x40 .text:000385F4 var_3C = -0x3C .text:000385F4 var_38 = -0x38 .text:000385F4 var_30 = -0x30 .text:000385F4 var_2C = -0x2C .text:000385F4 .text:000385F4 MOV R12, SP .text:000385F8 STMFD SP!, {R4-R12,LR,PC} .text:000385FC SUB R11, R12, #4 .text:00038600 MOV R4, #0 .text:00038604 SUB SP, SP, #0x1C .text:00038608 STR R4, [R11,#var_2C] .text:0003860C STR R4, [R11,#var_30] .text:00038610 LDR R5, =__gconv_path_elem .text:00038614 BL __errno_location .text:00038618 LDR R3, [R5] .text:0003861C LDR R0, [R0] .text:00038620 CMP R3, R4 .text:00038624 STR R0, [R11,#var_3C] .text:00038628 BNE loc_38630 .text:0003862C BL __gconv_get_path .text:00038630 .text:00038630 loc_38630 ; CODE XREF: __gconv_read_conf+34j .text:00038630 LDR R3, [R5] .text:00038634 LDR R2, [R3] .text:00038638 MOV R10, R4 .text:0003863C LDR R9, =__ctype_b .text:00038640 CMP R2, #0 .text:00038644 SUB R2, R11, #-var_38 .text:00038648 STR R2, [R11,#var_40] .text:0003864C BEQ loc_386C4 .text:00038650 MOV R8, R5 .text:00038654 MOV R7, R10 .text:00038658 .text:00038658 loc_38658 ; CODE XREF: __gconv_read_conf+CCj .text:00038658 LDR R1, [R8] .text:0003865C ADD R2, R7, R1 .text:00038660 LDR R4, [R2,#4] .text:00038664 LDR R6, [R7,R1] .text:00038668 ADD R3, R4, #0x11 .text:0003866C BIC R3, R3, #3 .text:00038670 RSB SP, R3, SP .text:00038674 ADD R5, SP, #0x44+var_40 .text:00038678 MOV R0, R5 .text:0003867C MOV R1, R6 .text:00038680 MOV R2, R4 .text:00038684 BL mempcpy .text:00038688 LDR R1, =gconv_conf_filename ; "gconv-modules" .text:0003868C MOV R2, #0xE .text:00038690 BL mempcpy .text:00038694 SUB R3, R11, #-var_30 .text:00038698 STR R3, [SP,#0x44+var_44] .text:0003869C MOV R0, R5 .text:000386A0 MOV R1, R6 .text:000386A4 MOV R2, R4 .text:000386A8 SUB R3, R11, #-var_2C .text:000386AC BL read_conf_file .text:000386B0 LDR R2, [R8] .text:000386B4 ADD R7, R7, #8 .text:000386B8 LDR R3, [R7,R2] .text:000386BC CMP R3, #0 .text:000386C0 BNE loc_38658 .text:000386C4 .text:000386C4 loc_386C4 ; CODE XREF: __gconv_read_conf+58j .text:000386C4 MOV R10, #0 .text:000386C8 .text:000386C8 loc_386C8 ; CODE XREF: __gconv_read_conf+200j .text:000386C8 LDR R2, =builtin_modules .text:000386CC MOV R4, R10,LSL#5 .text:000386D0 LDR R3, [R2,R4] .text:000386D4 STR R3, [R11,#var_38] .text:000386D8 LDR R0, [R11,#var_40] .text:000386DC LDR R1, =__gconv_alias_db .text:000386E0 LDR R2, =__gconv_alias_compare .text:000386E4 BL tfind .text:000386E8 CMP R0, #0 .text:000386EC ADD R7, R10, #1 .text:000386F0 BNE loc_387EC .text:000386F4 LDR R6, =__gconv_modules_db .text:000386F8 LDR R3, [R6] .text:000386FC CMP R3, #0 .text:00038700 LDR R3, =builtin_modules .text:00038704 ADD R5, R4, R3 .text:00038708 BEQ loc_387E8 .text:0003870C .text:0003870C loc_3870C ; CODE XREF: __gconv_read_conf+1F0j .text:0003870C LDR R4, [R6] .text:00038710 LDR R0, [R5] .text:00038714 LDR R1, [R4] .text:00038718 BL strcmp .text:0003871C CMP R0, #0 .text:00038720 BNE loc_387D0 .text:00038724 B loc_38738 .text:00038728 ; --------------------------------------------------------------------------- .text:00038728 .text:00038728 loc_38728 ; CODE XREF: __gconv_read_conf+154j .text:00038728 ; __gconv_read_conf+168j .text:00038728 ADD R6, R4, #0x18 .text:0003872C LDR R4, [R4,#0x18] .text:00038730 CMP R4, #0 .text:00038734 BEQ loc_38760 .text:00038738 .text:00038738 loc_38738 ; CODE XREF: __gconv_read_conf+130j .text:00038738 LDR R0, [R5] .text:0003873C LDR R1, [R4] .text:00038740 BL strcmp .text:00038744 CMP R0, #0 .text:00038748 BNE loc_38728 .text:0003874C LDR R0, [R5,#4] .text:00038750 LDR R1, [R4,#4] .text:00038754 BL strcmp .text:00038758 CMP R0, #0 .text:0003875C BNE loc_38728 .text:00038760 .text:00038760 loc_38760 ; CODE XREF: __gconv_read_conf+140j .text:00038760 CMP R4, #0 .text:00038764 BEQ loc_387E8 .text:00038768 LDR R2, [R5,#8] .text:0003876C LDR R3, [R4,#8] .text:00038770 CMP R2, R3 .text:00038774 BLT loc_3878C .text:00038778 BNE loc_387EC .text:0003877C LDR R2, [R5,#0xC] .text:00038780 LDR R3, [R4,#0xC] .text:00038784 CMP R2, R3 .text:00038788 BGE loc_387EC .text:0003878C .text:0003878C loc_3878C ; CODE XREF: __gconv_read_conf+180j .text:0003878C LDR R3, [R4,#0x14] .text:00038790 STR R3, [R5,#0x14] .text:00038794 LDR R2, [R4,#0x1C] .text:00038798 STR R2, [R5,#0x1C] .text:0003879C LDR R3, [R4,#0x18] .text:000387A0 STR R3, [R5,#0x18] .text:000387A4 STR R5, [R6] .text:000387A8 MOV R0, R4 .text:000387AC BL free .text:000387B0 B loc_387EC .text:000387B0 ; --------------------------------------------------------------------------- .text:000387B4 off_387B4 DCD __gconv_path_elem ; DATA XREF: __gconv_read_conf+1Cr .text:000387B8 off_387B8 DCD __ctype_b ; DATA XREF: __gconv_read_conf+48r .text:000387BC off_387BC DCD gconv_conf_filename ; DATA XREF: __gconv_read_conf+94r .text:000387BC ; "gconv-modules" .text:000387C0 off_387C0 DCD builtin_modules ; DATA XREF: __gconv_read_conf:loc_386C8r .text:000387C0 ; __gconv_read_conf+10Cr .text:000387C4 off_387C4 DCD __gconv_alias_db ; DATA XREF: __gconv_read_conf+E8r .text:000387C8 off_387C8 DCD __gconv_alias_compare ; DATA XREF: __gconv_read_conf+ECr .text:000387CC off_387CC DCD __gconv_modules_db ; DATA XREF: __gconv_read_conf+100r .text:000387D0 ; --------------------------------------------------------------------------- .text:000387D0 .text:000387D0 loc_387D0 ; CODE XREF: __gconv_read_conf+12Cj .text:000387D0 CMP R0, #0 .text:000387D4 ADDGE R6, R4, #0x1C .text:000387D8 ADDLT R6, R4, #0x14 .text:000387DC LDR R3, [R6] .text:000387E0 CMP R3, #0 .text:000387E4 BNE loc_3870C .text:000387E8 .text:000387E8 loc_387E8 ; CODE XREF: __gconv_read_conf+114j .text:000387E8 ; __gconv_read_conf+170j .text:000387E8 STR R5, [R6] .text:000387EC .text:000387EC loc_387EC ; CODE XREF: __gconv_read_conf+FCj .text:000387EC ; __gconv_read_conf+184j ... .text:000387EC MOV R10, R7 .text:000387F0 CMP R10, #0xC .text:000387F4 BLS loc_386C8 .text:000387F8 MOV R10, #0x23 .text:000387FC LDR R8, =__ctype_b .text:00038800 .text:00038800 loc_38800 ; CODE XREF: __gconv_read_conf+41Cj .text:00038800 LDR R2, =builtin_aliases .text:00038804 SUB R10, R10, #1 .text:00038808 LDR R4, [R2,R10,LSL#2] .text:0003880C MOV R0, R4 .text:00038810 BL strlen .text:00038814 MOV R2, R0 .text:00038818 ADD R3, R2, #4 .text:0003881C BIC R3, R3, #3 .text:00038820 RSB SP, R3, SP .text:00038824 ADD R0, SP, #0x44+var_40 .text:00038828 MOV R1, R4 .text:0003882C ADD R2, R2, #1 .text:00038830 BL memcpy .text:00038834 MOV R12, R0 .text:00038838 LDRB R3, [R12] .text:0003883C LDR R1, [R8] .text:00038840 MOV R3, R3,LSL#1 .text:00038844 ADD R3, R3, R1 .text:00038848 LDRB R2, [R3,#1] .text:0003884C TST R2, #0x20 .text:00038850 BEQ loc_38870 .text:00038854 LDR R1, [R9] .text:00038858 .text:00038858 loc_38858 ; CODE XREF: __gconv_read_conf+278j .text:00038858 LDRB R3, [R12,#1]! .text:0003885C MOV R3, R3,LSL#1 .text:00038860 ADD R3, R3, R1 .text:00038864 LDRB R2, [R3,#1] .text:00038868 TST R2, #0x20 .text:0003886C BNE loc_38858 .text:00038870 .text:00038870 loc_38870 ; CODE XREF: __gconv_read_conf+25Cj .text:00038870 MOV R6, R12 .text:00038874 LDRB R3, [R6] .text:00038878 MOV R4, R6 .text:0003887C CMP R3, #0 .text:00038880 BEQ loc_388D8 .text:00038884 MOV R0, R3 .text:00038888 LDR R2, [R8] .text:0003888C MOV R3, R0,LSL#1 .text:00038890 ADD R3, R3, R2 .text:00038894 LDRB R1, [R3,#1] .text:00038898 TST R1, #0x20 .text:0003889C BNE loc_388D8 .text:000388A0 LDR LR, =__ctype_toupper .text:000388A4 .text:000388A4 loc_388A4 ; CODE XREF: __gconv_read_conf+2E0j .text:000388A4 LDR R3, [LR] .text:000388A8 LDR R2, [R3,R0,LSL#2] .text:000388AC STRB R2, [R4],#1 .text:000388B0 LDRB R3, [R12,#1]! .text:000388B4 CMP R3, #0 .text:000388B8 BEQ loc_388D8 .text:000388BC LDRB R0, [R12] .text:000388C0 LDR R2, [R9] .text:000388C4 MOV R3, R0,LSL#1 .text:000388C8 ADD R3, R3, R2 .text:000388CC LDRB R1, [R3,#1] .text:000388D0 TST R1, #0x20 .text:000388D4 BEQ loc_388A4 .text:000388D8 .text:000388D8 loc_388D8 ; CODE XREF: __gconv_read_conf+28Cj .text:000388D8 ; __gconv_read_conf+2A8j ... .text:000388D8 LDRB R3, [R12] .text:000388DC CMP R3, #0 .text:000388E0 BEQ loc_38A0C .text:000388E4 MOV R3, #0 .text:000388E8 STRB R3, [R4],#1 .text:000388EC ADD R7, R12, #1 .text:000388F0 LDRB R3, [R7] .text:000388F4 LDR R2, [R8] .text:000388F8 MOV R3, R3,LSL#1 .text:000388FC ADD R3, R3, R2 .text:00038900 LDRB R1, [R3,#1] .text:00038904 MOV R12, R7 .text:00038908 TST R1, #0x20 .text:0003890C BEQ loc_3892C .text:00038910 LDR R1, [R9] .text:00038914 .text:00038914 loc_38914 ; CODE XREF: __gconv_read_conf+334j .text:00038914 LDRB R3, [R12,#1]! .text:00038918 MOV R3, R3,LSL#1 .text:0003891C ADD R3, R3, R1 .text:00038920 LDRB R2, [R3,#1] .text:00038924 TST R2, #0x20 .text:00038928 BNE loc_38914 .text:0003892C .text:0003892C loc_3892C ; CODE XREF: __gconv_read_conf+318j .text:0003892C LDRB R3, [R12] .text:00038930 CMP R3, #0 .text:00038934 BEQ loc_3898C .text:00038938 MOV R0, R3 .text:0003893C LDR R3, [R8] .text:00038940 MOV R2, R0,LSL#1 .text:00038944 ADD R2, R2, R3 .text:00038948 LDRB R1, [R2,#1] .text:0003894C TST R1, #0x20 .text:00038950 BNE loc_3898C .text:00038954 LDR LR, =__ctype_toupper .text:00038958 .text:00038958 loc_38958 ; CODE XREF: __gconv_read_conf+394j .text:00038958 LDR R3, [LR] .text:0003895C LDR R2, [R3,R0,LSL#2] .text:00038960 STRB R2, [R4],#1 .text:00038964 LDRB R3, [R12,#1]! .text:00038968 CMP R3, #0 .text:0003896C BEQ loc_3898C .text:00038970 LDRB R0, [R12] .text:00038974 LDR R3, [R9] .text:00038978 MOV R2, R0,LSL#1 .text:0003897C ADD R2, R2, R3 .text:00038980 LDRB R1, [R2,#1] .text:00038984 TST R1, #0x20 .text:00038988 BEQ loc_38958 .text:0003898C .text:0003898C loc_3898C ; CODE XREF: __gconv_read_conf+340j .text:0003898C ; __gconv_read_conf+35Cj ... .text:0003898C CMP R7, R4 .text:00038990 BEQ loc_38A0C .text:00038994 MOV R3, #0 .text:00038998 STRB R3, [R4],#1 .text:0003899C MOV R0, R6 .text:000389A0 BL detect_conflict .text:000389A4 CMP R0, #0 .text:000389A8 BNE loc_38A0C .text:000389AC RSB R5, R6, R4 .text:000389B0 ADD R0, R5, #8 .text:000389B4 BL malloc .text:000389B8 SUBS R4, R0, #0 .text:000389BC BEQ loc_38A0C .text:000389C0 ADD R0, R4, #8 .text:000389C4 MOV R1, R6 .text:000389C8 MOV R2, R5 .text:000389CC BL memcpy .text:000389D0 STR R0, [R4] .text:000389D4 RSB R3, R6, R7 .text:000389D8 ADD R0, R0, R3 .text:000389DC STR R0, [R4,#4] .text:000389E0 LDR R1, =__gconv_alias_db .text:000389E4 LDR R2, =__gconv_alias_compare .text:000389E8 MOV R0, R4 .text:000389EC BL tsearch .text:000389F0 CMP R0, #0 .text:000389F4 BEQ loc_38A04 .text:000389F8 LDR R3, [R0] .text:000389FC CMP R3, R4 .text:00038A00 BEQ loc_38A0C .text:00038A04 .text:00038A04 loc_38A04 ; CODE XREF: __gconv_read_conf+400j .text:00038A04 MOV R0, R4 .text:00038A08 BL free .text:00038A0C .text:00038A0C loc_38A0C ; CODE XREF: __gconv_read_conf+2ECj .text:00038A0C ; __gconv_read_conf+39Cj ... .text:00038A0C CMP R10, #0 .text:00038A10 BNE loc_38800 .text:00038A14 BL __errno_location .text:00038A18 LDR R3, [R11,#var_3C] .text:00038A1C STR R3, [R0] .text:00038A20 B locret_38A38 .text:00038A20 ; --------------------------------------------------------------------------- .text:00038A24 off_38A24 DCD __ctype_b ; DATA XREF: __gconv_read_conf+208r .text:00038A28 off_38A28 DCD builtin_aliases ; DATA XREF: __gconv_read_conf:loc_38800r .text:00038A2C off_38A2C DCD __ctype_toupper ; DATA XREF: __gconv_read_conf+2ACr .text:00038A2C ; __gconv_read_conf+360r .text:00038A30 off_38A30 DCD __gconv_alias_db ; DATA XREF: __gconv_read_conf+3ECr .text:00038A34 off_38A34 DCD __gconv_alias_compare ; DATA XREF: __gconv_read_conf+3F0r .text:00038A38 ; --------------------------------------------------------------------------- .text:00038A38 .text:00038A38 locret_38A38 ; CODE XREF: __gconv_read_conf+42Cj .text:00038A38 LDMDB R11, {R4-R11,SP,PC} .text:00038A38 ; End of function __gconv_read_conf .text:00038A38 .text:00038A3C .text:00038A3C ; =============== S U B R O U T I N E ======================================= .text:00038A3C .text:00038A3C ; Attributes: bp-based frame .text:00038A3C .text:00038A3C free_mem_5 .text:00038A3C MOV R12, SP .text:00038A40 STMFD SP!, {R11,R12,LR,PC} .text:00038A44 LDR R3, =__gconv_path_elem .text:00038A48 LDR R0, [R3] .text:00038A4C SUB R11, R12, #4 .text:00038A50 CMP R0, #0 .text:00038A54 LDMEQDB R11, {R11,SP,PC} .text:00038A58 LDR R3, =empty_path_elem .text:00038A5C CMP R0, R3 .text:00038A60 LDMEQDB R11, {R11,SP,PC} .text:00038A64 BL free .text:00038A68 LDMDB R11, {R11,SP,PC} .text:00038A68 ; End of function free_mem_5 .text:00038A68 .text:00038A68 ; --------------------------------------------------------------------------- .text:00038A6C off_38A6C DCD __gconv_path_elem ; DATA XREF: free_mem_5+8r .text:00038A70 off_38A70 DCD empty_path_elem ; DATA XREF: free_mem_5+1Cr .text:00038A74 .text:00038A74 ; =============== S U B R O U T I N E ======================================= .text:00038A74 .text:00038A74 ; Attributes: bp-based frame .text:00038A74 .text:00038A74 EXPORT __gconv_get_builtin_trans .text:00038A74 __gconv_get_builtin_trans ; CODE XREF: gen_steps+124p .text:00038A74 MOV R12, SP .text:00038A78 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00038A7C SUB R11, R12, #4 .text:00038A80 MOV R7, R0 .text:00038A84 MOV R5, R1 .text:00038A88 MOV R4, #0 .text:00038A8C LDR R6, =map .text:00038A90 .text:00038A90 loc_38A90 ; CODE XREF: __gconv_get_builtin_trans+38j .text:00038A90 LDR R1, [R6,R4,LSL#5] .text:00038A94 MOV R0, R7 .text:00038A98 BL strcmp .text:00038A9C CMP R0, #0 .text:00038AA0 BEQ loc_38AB0 .text:00038AA4 ADD R4, R4, #1 .text:00038AA8 CMP R4, #0xC .text:00038AAC BLS loc_38A90 .text:00038AB0 .text:00038AB0 loc_38AB0 ; CODE XREF: __gconv_get_builtin_trans+2Cj .text:00038AB0 CMP R4, #0xC .text:00038AB4 BLS loc_38ACC .text:00038AB8 LDR R0, =aCntSizeofMapSi ; "cnt < sizeof (map) / sizeof (map[0])" .text:00038ABC LDR R1, =aGconv_builtin_ ; "gconv_builtin.c" .text:00038AC0 LDR R3, =a__gconv_get_bu ; "__gconv_get_builtin_trans" .text:00038AC4 MOV R2, #0x49 .text:00038AC8 BL __assert_fail .text:00038ACC ; --------------------------------------------------------------------------- .text:00038ACC .text:00038ACC loc_38ACC ; CODE XREF: __gconv_get_builtin_trans+40j .text:00038ACC MOV R1, R4,LSL#5 .text:00038AD0 ADD R3, R6, #4 .text:00038AD4 LDR R2, [R3,R1] .text:00038AD8 STR R2, [R5,#0x14] .text:00038ADC ADD R3, R6, #8 .text:00038AE0 LDR R2, [R3,R1] .text:00038AE4 STR R2, [R5,#0x18] .text:00038AE8 ADD R3, R6, #0xC .text:00038AEC LDR R2, [R3,R1] .text:00038AF0 MOV R0, #0 .text:00038AF4 STR R0, [R5] .text:00038AF8 STR R0, [R5,#4] .text:00038AFC STR R2, [R5,#0x1C] .text:00038B00 ADD R3, R6, #0x10 .text:00038B04 LDR R2, [R3,R1] .text:00038B08 STR R2, [R5,#0x20] .text:00038B0C ADD R3, R6, #0x14 .text:00038B10 LDR R2, [R3,R1] .text:00038B14 STR R2, [R5,#0x24] .text:00038B18 ADD R3, R6, #0x18 .text:00038B1C LDR R2, [R3,R1] .text:00038B20 STR R2, [R5,#0x28] .text:00038B24 ADD R3, R6, #0x1C .text:00038B28 LDR R2, [R3,R1] .text:00038B2C STR R0, [R5,#0x30] .text:00038B30 STR R2, [R5,#0x2C] .text:00038B34 LDMDB R11, {R4-R7,R11,SP,PC} .text:00038B34 ; End of function __gconv_get_builtin_trans .text:00038B34 .text:00038B34 ; --------------------------------------------------------------------------- .text:00038B38 off_38B38 DCD map ; DATA XREF: __gconv_get_builtin_trans+18r .text:00038B3C off_38B3C DCD aCntSizeofMapSi ; DATA XREF: __gconv_get_builtin_trans+44r .text:00038B3C ; "cnt < sizeof (map) / sizeof (map[0])" .text:00038B40 off_38B40 DCD aGconv_builtin_ ; DATA XREF: __gconv_get_builtin_trans+48r .text:00038B40 ; "gconv_builtin.c" .text:00038B44 off_38B44 DCD a__gconv_get_bu ; DATA XREF: __gconv_get_builtin_trans+4Cr .text:00038B44 ; "__gconv_get_builtin_trans" .text:00038B48 .text:00038B48 ; =============== S U B R O U T I N E ======================================= .text:00038B48 .text:00038B48 ; Attributes: bp-based frame .text:00038B48 .text:00038B48 EXPORT __gconv_transform_internal_ucs4 .text:00038B48 __gconv_transform_internal_ucs4 .text:00038B48 .text:00038B48 var_58 = -0x58 .text:00038B48 var_4C = -0x4C .text:00038B48 var_48 = -0x48 .text:00038B48 var_44 = -0x44 .text:00038B48 var_40 = -0x40 .text:00038B48 var_3C = -0x3C .text:00038B48 var_38 = -0x38 .text:00038B48 var_34 = -0x34 .text:00038B48 var_30 = -0x30 .text:00038B48 var_2C = -0x2C .text:00038B48 arg_0 = 4 .text:00038B48 arg_4 = 8 .text:00038B48 arg_8 = 0xC .text:00038B48 arg_C = 0x10 .text:00038B48 .text:00038B48 MOV R12, SP .text:00038B4C STMFD SP!, {R4-R12,LR,PC} .text:00038B50 SUB R11, R12, #4 .text:00038B54 MOV R7, R1 .text:00038B58 SUB SP, SP, #0x30 .text:00038B5C LDR R1, [R7,#8] .text:00038B60 MOV R12, #0 .text:00038B64 STR R12, [R11,#var_3C] .text:00038B68 MOV R6, R2 .text:00038B6C ADD R0, R0, #0x38 .text:00038B70 STR R0, [R11,#var_34] .text:00038B74 MOV R9, R3 .text:00038B78 ADD R2, R7, #0x24 .text:00038B7C STR R2, [R11,#var_38] .text:00038B80 TST R1, #1 .text:00038B84 LDREQ R3, [R0,#0x14] .text:00038B88 STREQ R3, [R11,#var_3C] .text:00038B8C LDR R3, [R11,#arg_8] .text:00038B90 CMP R3, #0 .text:00038B94 BEQ loc_38C1C .text:00038B98 LDR R12, [R11,#arg_0] .text:00038B9C MOV R8, #0 .text:00038BA0 CMP R12, R8 .text:00038BA4 BEQ loc_38BBC .text:00038BA8 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00038BAC LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00038BB0 LDR R3, =a__gconv_transf ; "__gconv_transform_internal_ucs4" .text:00038BB4 MOV R2, #0x130 .text:00038BB8 BL __assert_fail .text:00038BBC ; --------------------------------------------------------------------------- .text:00038BBC .text:00038BBC loc_38BBC ; CODE XREF: __gconv_transform_internal_ucs4+5Cj .text:00038BBC MOV R1, R8 .text:00038BC0 LDR R0, [R7,#0x14] .text:00038BC4 MOV R2, #8 .text:00038BC8 BL memset .text:00038BCC LDR R3, [R7,#8] .text:00038BD0 TST R3, #1 .text:00038BD4 BNE loc_39074 .text:00038BD8 LDR R0, [R11,#var_3C] .text:00038BDC BL _dl_mcount_wrapper_check .text:00038BE0 STR R8, [SP,#0x58+var_58] .text:00038BE4 LDR R2, [R11,#arg_4] .text:00038BE8 MOV R3, #1 .text:00038BEC STMFA SP, {R2,R3} .text:00038BF0 LDR R3, [R11,#arg_C] .text:00038BF4 STR R3, [SP,#0x58+var_4C] .text:00038BF8 LDR R0, [R11,#var_34] .text:00038BFC LDR R1, [R11,#var_38] .text:00038C00 MOV R2, R8 .text:00038C04 LDR R12, [R11,#var_3C] .text:00038C08 MOV R3, R2 .text:00038C0C MOV LR, PC .text:00038C10 MOV PC, R12 .text:00038C14 MOV R8, R0 .text:00038C18 B loc_39074 .text:00038C1C ; --------------------------------------------------------------------------- .text:00038C1C .text:00038C1C loc_38C1C ; CODE XREF: __gconv_transform_internal_ucs4+4Cj .text:00038C1C LDR R2, [R11,#arg_0] .text:00038C20 LDR R10, [R6] .text:00038C24 CMP R2, #0 .text:00038C28 LDREQ R3, [R7] .text:00038C2C LDRNE R12, [R11,#arg_0] .text:00038C30 LDRNE R3, [R12] .text:00038C34 STR R3, [R11,#var_2C] .text:00038C38 SUB R3, R11, #-var_2C .text:00038C3C STR R3, [R11,#var_48] .text:00038C40 LDR R2, [R11,#arg_C] .text:00038C44 LDR R12, [R7,#4] .text:00038C48 CMP R2, #0 .text:00038C4C STR R12, [R11,#var_40] .text:00038C50 BEQ loc_38D48 .text:00038C54 LDR LR, [R7,#0x14] .text:00038C58 LDR R3, [LR] .text:00038C5C ANDS R3, R3, #7 .text:00038C60 BEQ loc_38D48 .text:00038C64 LDR R2, [R11,#arg_0] .text:00038C68 CMP R2, #0 .text:00038C6C BEQ loc_38C88 .text:00038C70 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00038C74 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00038C78 MOV R2, #0x168 .text:00038C7C LDR R3, =a__gconv_transf ; "__gconv_transform_internal_ucs4" .text:00038C80 ADD R2, R2, #2 .text:00038C84 BL __assert_fail .text:00038C88 ; --------------------------------------------------------------------------- .text:00038C88 .text:00038C88 loc_38C88 ; CODE XREF: __gconv_transform_internal_ucs4+124j .text:00038C88 LDR R0, [R6] .text:00038C8C MOV R12, R3 .text:00038C90 LDR R4, [R11,#var_48] .text:00038C94 CMP R12, #3 .text:00038C98 CMPLS R0, R9 .text:00038C9C BCS loc_38CC4 .text:00038CA0 .text:00038CA0 loc_38CA0 ; CODE XREF: __gconv_transform_internal_ucs4+178j .text:00038CA0 ADD R3, LR, R12 .text:00038CA4 LDRB R2, [R0],#1 .text:00038CA8 ADD R12, R12, #1 .text:00038CAC MOV R1, R0 .text:00038CB0 STRB R2, [R3,#4] .text:00038CB4 CMP R12, #3 .text:00038CB8 CMPLS R0, R9 .text:00038CBC STR R1, [R6] .text:00038CC0 BCC loc_38CA0 .text:00038CC4 .text:00038CC4 loc_38CC4 ; CODE XREF: __gconv_transform_internal_ucs4+154j .text:00038CC4 CMP R12, #3 .text:00038CC8 BHI loc_38CE4 .text:00038CCC LDR R3, [LR] .text:00038CD0 MOV R8, #7 .text:00038CD4 BIC R3, R3, #7 .text:00038CD8 ORR R3, R3, R12 .text:00038CDC STR R3, [LR] .text:00038CE0 B loc_38D30 .text:00038CE4 ; --------------------------------------------------------------------------- .text:00038CE4 .text:00038CE4 loc_38CE4 ; CODE XREF: __gconv_transform_internal_ucs4+180j .text:00038CE4 LDR R2, [R4] .text:00038CE8 LDRB R3, [LR,#7] .text:00038CEC STRB R3, [R2] .text:00038CF0 LDR R1, [R4] .text:00038CF4 LDRB R3, [LR,#6] .text:00038CF8 STRB R3, [R1,#1] .text:00038CFC LDR R2, [R4] .text:00038D00 LDRB R3, [LR,#5] .text:00038D04 STRB R3, [R2,#2] .text:00038D08 LDR R1, [R4] .text:00038D0C LDRB R2, [LR,#4] .text:00038D10 STRB R2, [R1,#3] .text:00038D14 LDR R3, [R4] .text:00038D18 ADD R3, R3, #4 .text:00038D1C STR R3, [R4] .text:00038D20 LDR R2, [LR] .text:00038D24 MOV R8, #0 .text:00038D28 BIC R2, R2, #7 .text:00038D2C STR R2, [LR] .text:00038D30 .text:00038D30 loc_38D30 ; CODE XREF: __gconv_transform_internal_ucs4+198j .text:00038D30 CMP R8, #0 .text:00038D34 BEQ loc_38D48 .text:00038D38 B loc_39074 .text:00038D3C ; --------------------------------------------------------------------------- .text:00038D3C .text:00038D3C loc_38D3C ; CODE XREF: __gconv_transform_internal_ucs4+3D8j .text:00038D3C LDR R3, [R11,#var_2C] .text:00038D40 STR R3, [R7] .text:00038D44 B loc_38FBC .text:00038D48 ; --------------------------------------------------------------------------- .text:00038D48 .text:00038D48 loc_38D48 ; CODE XREF: __gconv_transform_internal_ucs4+108j .text:00038D48 ; __gconv_transform_internal_ucs4+118j ... .text:00038D48 MOV R12, #0 .text:00038D4C TST R10, #3 .text:00038D50 STR R12, [R11,#var_44] .text:00038D54 BNE loc_38D70 .text:00038D58 LDR R3, [R7,#8] .text:00038D5C TST R3, #1 .text:00038D60 BEQ loc_38D78 .text:00038D64 LDR R3, [R11,#var_2C] .text:00038D68 TST R3, #3 .text:00038D6C BEQ loc_38D78 .text:00038D70 .text:00038D70 loc_38D70 ; CODE XREF: __gconv_transform_internal_ucs4+20Cj .text:00038D70 MOV R2, #1 .text:00038D74 STR R2, [R11,#var_44] .text:00038D78 .text:00038D78 loc_38D78 ; CODE XREF: __gconv_transform_internal_ucs4+218j .text:00038D78 ; __gconv_transform_internal_ucs4+224j ... .text:00038D78 LDR R10, [R6] .text:00038D7C LDR R3, [R11,#var_44] .text:00038D80 LDR R5, [R11,#var_2C] .text:00038D84 CMP R3, #0 .text:00038D88 BNE loc_38E10 .text:00038D8C MOV R4, R10 .text:00038D90 LDR R2, [R11,#var_40] .text:00038D94 MOV R12, R5 .text:00038D98 LDR R0, [R11,#var_44] .text:00038D9C RSB R3, R5, R2 .text:00038DA0 RSB R2, R10, R9 .text:00038DA4 CMP R3, R2 .text:00038DA8 MOVGE R3, R2 .text:00038DAC CMP R3, #0 .text:00038DB0 ADDLT R3, R3, #3 .text:00038DB4 MOV LR, R3,ASR#2 .text:00038DB8 CMP R0, LR .text:00038DBC BCS loc_38DEC .text:00038DC0 .text:00038DC0 loc_38DC0 ; CODE XREF: __gconv_transform_internal_ucs4+2A0j .text:00038DC0 ADD R0, R0, #1 .text:00038DC4 LDR R3, [R4],#4 .text:00038DC8 CMP R0, LR .text:00038DCC AND R2, R3, #0xFF0000 .text:00038DD0 MOV R2, R2,LSR#8 .text:00038DD4 ORR R2, R2, R3,LSR#24 .text:00038DD8 AND R1, R3, #0xFF00 .text:00038DDC ORR R2, R2, R1,LSL#8 .text:00038DE0 ORR R2, R2, R3,LSL#24 .text:00038DE4 STR R2, [R12],#4 .text:00038DE8 BCC loc_38DC0 .text:00038DEC .text:00038DEC loc_38DEC ; CODE XREF: __gconv_transform_internal_ucs4+274j .text:00038DEC STR R4, [R6] .text:00038DF0 LDR R3, [R11,#var_48] .text:00038DF4 STR R12, [R3] .text:00038DF8 LDR R3, [R6] .text:00038DFC CMP R3, R9 .text:00038E00 BEQ loc_38E8C .text:00038E04 ADD R3, R12, #4 .text:00038E08 LDR R12, [R11,#var_40] .text:00038E0C B loc_38EA8 .text:00038E10 ; --------------------------------------------------------------------------- .text:00038E10 .text:00038E10 loc_38E10 ; CODE XREF: __gconv_transform_internal_ucs4+240j .text:00038E10 MOV R1, R10 .text:00038E14 MOV R0, R5 .text:00038E18 LDR R2, [R11,#var_40] .text:00038E1C MOV R12, #0 .text:00038E20 RSB R3, R5, R2 .text:00038E24 RSB R2, R10, R9 .text:00038E28 CMP R3, R2 .text:00038E2C MOVGE R3, R2 .text:00038E30 CMP R3, R12 .text:00038E34 ADDLT R3, R3, #3 .text:00038E38 MOV LR, R3,ASR#2 .text:00038E3C CMP R12, LR .text:00038E40 BCS loc_38E74 .text:00038E44 .text:00038E44 loc_38E44 ; CODE XREF: __gconv_transform_internal_ucs4+328j .text:00038E44 LDRB R3, [R1,#3] .text:00038E48 STRB R3, [R0] .text:00038E4C LDRB R2, [R1,#2] .text:00038E50 STRB R2, [R0,#1] .text:00038E54 LDRB R3, [R1,#1] .text:00038E58 STRB R3, [R0,#2] .text:00038E5C ADD R12, R12, #1 .text:00038E60 CMP R12, LR .text:00038E64 LDRB R3, [R1],#4 .text:00038E68 STRB R3, [R0,#3] .text:00038E6C ADD R0, R0, #4 .text:00038E70 BCC loc_38E44 .text:00038E74 .text:00038E74 loc_38E74 ; CODE XREF: __gconv_transform_internal_ucs4+2F8j .text:00038E74 STR R1, [R6] .text:00038E78 LDR R3, [R11,#var_48] .text:00038E7C STR R0, [R3] .text:00038E80 LDR R3, [R6] .text:00038E84 CMP R3, R9 .text:00038E88 BNE loc_38EA0 .text:00038E8C .text:00038E8C loc_38E8C ; CODE XREF: __gconv_transform_internal_ucs4+2B8j .text:00038E8C MOV R0, #4 .text:00038E90 B loc_38EB4 .text:00038E90 ; --------------------------------------------------------------------------- .text:00038E94 off_38E94 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ucs4+60r .text:00038E94 ; __gconv_transform_internal_ucs4+128r .text:00038E94 ; "outbufstart == ((void *)0)" .text:00038E98 off_38E98 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs4+64r .text:00038E98 ; __gconv_transform_internal_ucs4+12Cr .text:00038E98 ; "../iconv/skeleton.c" .text:00038E9C off_38E9C DCD a__gconv_transf ; DATA XREF: __gconv_transform_internal_ucs4+68r .text:00038E9C ; __gconv_transform_internal_ucs4+134r .text:00038E9C ; "__gconv_transform_internal_ucs4" .text:00038EA0 ; --------------------------------------------------------------------------- .text:00038EA0 .text:00038EA0 loc_38EA0 ; CODE XREF: __gconv_transform_internal_ucs4+340j .text:00038EA0 LDR R12, [R11,#var_40] .text:00038EA4 ADD R3, R0, #4 .text:00038EA8 .text:00038EA8 loc_38EA8 ; CODE XREF: __gconv_transform_internal_ucs4+2C4j .text:00038EA8 CMP R3, R12 .text:00038EAC MOVLS R0, #7 .text:00038EB0 MOVHI R0, #5 .text:00038EB4 .text:00038EB4 loc_38EB4 ; CODE XREF: __gconv_transform_internal_ucs4+348j .text:00038EB4 MOV R8, R0 .text:00038EB8 LDR R2, [R11,#arg_0] .text:00038EBC CMP R2, #0 .text:00038EC0 BNE loc_39004 .text:00038EC4 LDR R4, [R7,#0x20] .text:00038EC8 CMP R4, #0 .text:00038ECC BEQ loc_38F0C .text:00038ED0 .text:00038ED0 loc_38ED0 ; CODE XREF: __gconv_transform_internal_ucs4+3C0j .text:00038ED0 LDR R0, [R4,#4] .text:00038ED4 CMP R0, #0 .text:00038ED8 BEQ loc_38F00 .text:00038EDC BL _dl_mcount_wrapper_check .text:00038EE0 LDR R3, [R11,#var_2C] .text:00038EE4 LDR R0, [R4,#0xC] .text:00038EE8 STR R3, [SP,#0x58+var_58] .text:00038EEC MOV R1, R10 .text:00038EF0 LDR R2, [R6] .text:00038EF4 MOV R3, R5 .text:00038EF8 MOV LR, PC .text:00038EFC LDR PC, [R4,#4] .text:00038F00 .text:00038F00 loc_38F00 ; CODE XREF: __gconv_transform_internal_ucs4+390j .text:00038F00 LDR R4, [R4,#0x10] .text:00038F04 CMP R4, #0 .text:00038F08 BNE loc_38ED0 .text:00038F0C .text:00038F0C loc_38F0C ; CODE XREF: __gconv_transform_internal_ucs4+384j .text:00038F0C ADD R2, R7, #8 .text:00038F10 LDMIA R2, {R2,R3} .text:00038F14 ADD R3, R3, #1 .text:00038F18 ANDS R4, R2, #1 .text:00038F1C STR R3, [R7,#0xC] .text:00038F20 BNE loc_38D3C .text:00038F24 LDR R3, [R11,#var_2C] .text:00038F28 CMP R3, R5 .text:00038F2C BLS loc_38FAC .text:00038F30 LDR R3, [R7] .text:00038F34 STR R3, [R11,#var_30] .text:00038F38 LDR R0, [R11,#var_3C] .text:00038F3C BL _dl_mcount_wrapper_check .text:00038F40 STR R4, [SP,#0x58+var_58] .text:00038F44 LDR R3, [R11,#arg_4] .text:00038F48 STMFA SP, {R3,R4} .text:00038F4C LDR R12, [R11,#arg_C] .text:00038F50 STR R12, [SP,#0x58+var_4C] .text:00038F54 LDR R0, [R11,#var_34] .text:00038F58 LDR R1, [R11,#var_38] .text:00038F5C LDR R3, [R11,#var_2C] .text:00038F60 LDR R12, [R11,#var_3C] .text:00038F64 SUB R2, R11, #-var_30 .text:00038F68 MOV LR, PC .text:00038F6C MOV PC, R12 .text:00038F70 CMP R0, #4 .text:00038F74 BEQ loc_38F9C .text:00038F78 SUB R1, R11, #-var_30 .text:00038F7C LDMIA R1, {R1,R2} .text:00038F80 CMP R1, R2 .text:00038F84 LDRNE R3, [R6] .text:00038F88 RSBNE R2, R1, R2 .text:00038F8C RSBNE R3, R2, R3 .text:00038F90 STRNE R3, [R6] .text:00038F94 MOV R8, R0 .text:00038F98 B loc_38FAC .text:00038F9C ; --------------------------------------------------------------------------- .text:00038F9C .text:00038F9C loc_38F9C ; CODE XREF: __gconv_transform_internal_ucs4+42Cj .text:00038F9C CMP R8, #5 .text:00038FA0 LDREQ R3, [R7] .text:00038FA4 MOVEQ R8, R4 .text:00038FA8 STREQ R3, [R11,#var_2C] .text:00038FAC .text:00038FAC loc_38FAC ; CODE XREF: __gconv_transform_internal_ucs4+3E4j .text:00038FAC ; __gconv_transform_internal_ucs4+450j .text:00038FAC CMP R8, #0 .text:00038FB0 LDREQ R3, [R7] .text:00038FB4 STREQ R3, [R11,#var_2C] .text:00038FB8 BEQ loc_38D78 .text:00038FBC .text:00038FBC loc_38FBC ; CODE XREF: __gconv_transform_internal_ucs4+1FCj .text:00038FBC LDR R2, [R11,#arg_C] .text:00038FC0 CMP R8, #7 .text:00038FC4 MOVNE R3, #0 .text:00038FC8 MOVEQ R3, #1 .text:00038FCC CMP R2, #0 .text:00038FD0 MOVEQ R3, #0 .text:00038FD4 CMP R3, #0 .text:00038FD8 BEQ loc_39074 .text:00038FDC LDR R2, [R6] .text:00038FE0 RSB R3, R2, R9 .text:00038FE4 CMP R3, #3 .text:00038FE8 BLE loc_39024 .text:00038FEC LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:00038FF0 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00038FF4 MOV R2, #0x254 .text:00038FF8 LDR R3, =a__gconv_transf ; "__gconv_transform_internal_ucs4" .text:00038FFC ADD R2, R2, #3 .text:00039000 BL __assert_fail .text:00039004 ; --------------------------------------------------------------------------- .text:00039004 .text:00039004 loc_39004 ; CODE XREF: __gconv_transform_internal_ucs4+378j .text:00039004 LDR R3, [R11,#var_2C] .text:00039008 LDR R12, [R11,#arg_0] .text:0003900C MOV R0, R8 .text:00039010 STR R3, [R12] .text:00039014 B locret_39078 .text:00039014 ; --------------------------------------------------------------------------- .text:00039018 off_39018 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ucs4+4A4r .text:00039018 ; "inend - *inptrp < 4" .text:0003901C off_3901C DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs4+4A8r .text:0003901C ; "../iconv/skeleton.c" .text:00039020 off_39020 DCD a__gconv_transf ; DATA XREF: __gconv_transform_internal_ucs4+4B0r .text:00039020 ; "__gconv_transform_internal_ucs4" .text:00039024 ; --------------------------------------------------------------------------- .text:00039024 .text:00039024 loc_39024 ; CODE XREF: __gconv_transform_internal_ucs4+4A0j .text:00039024 MOV R0, #0 .text:00039028 CMP R2, R9 .text:0003902C BCS loc_39054 .text:00039030 .text:00039030 loc_39030 ; CODE XREF: __gconv_transform_internal_ucs4+508j .text:00039030 LDR R3, [R6] .text:00039034 LDR R2, [R7,#0x14] .text:00039038 LDRB R1, [R3],#1 .text:0003903C ADD R2, R2, R0 .text:00039040 STRB R1, [R2,#4] .text:00039044 ADD R0, R0, #1 .text:00039048 CMP R3, R9 .text:0003904C STR R3, [R6] .text:00039050 BCC loc_39030 .text:00039054 .text:00039054 loc_39054 ; CODE XREF: __gconv_transform_internal_ucs4+4E4j .text:00039054 LDR R2, [R7,#0x14] .text:00039058 LDR R3, [R2] .text:0003905C BIC R3, R3, #7 .text:00039060 STR R3, [R2] .text:00039064 LDR R1, [R7,#0x14] .text:00039068 LDR R3, [R1] .text:0003906C ORR R3, R3, R0 .text:00039070 STR R3, [R1] .text:00039074 .text:00039074 loc_39074 ; CODE XREF: __gconv_transform_internal_ucs4+8Cj .text:00039074 ; __gconv_transform_internal_ucs4+D0j ... .text:00039074 MOV R0, R8 .text:00039078 .text:00039078 locret_39078 ; CODE XREF: __gconv_transform_internal_ucs4+4CCj .text:00039078 LDMDB R11, {R4-R11,SP,PC} .text:00039078 ; End of function __gconv_transform_internal_ucs4 .text:00039078 .text:0003907C .text:0003907C ; =============== S U B R O U T I N E ======================================= .text:0003907C .text:0003907C ; Attributes: bp-based frame .text:0003907C .text:0003907C EXPORT __gconv_transform_ucs4_internal .text:0003907C __gconv_transform_ucs4_internal .text:0003907C .text:0003907C var_60 = -0x60 .text:0003907C var_5C = -0x5C .text:0003907C var_58 = -0x58 .text:0003907C var_54 = -0x54 .text:0003907C var_50 = -0x50 .text:0003907C var_4C = -0x4C .text:0003907C var_48 = -0x48 .text:0003907C var_44 = -0x44 .text:0003907C var_40 = -0x40 .text:0003907C var_3C = -0x3C .text:0003907C var_38 = -0x38 .text:0003907C var_34 = -0x34 .text:0003907C var_30 = -0x30 .text:0003907C var_2C = -0x2C .text:0003907C arg_0 = 4 .text:0003907C arg_4 = 8 .text:0003907C arg_8 = 0xC .text:0003907C arg_C = 0x10 .text:0003907C .text:0003907C MOV R12, SP .text:00039080 STMFD SP!, {R4-R12,LR,PC} .text:00039084 SUB R11, R12, #4 .text:00039088 MOV R7, R1 .text:0003908C SUB SP, SP, #0x38 .text:00039090 LDR R1, [R7,#8] .text:00039094 MOV R12, #0 .text:00039098 STR R12, [R11,#var_44] .text:0003909C STR R3, [R11,#var_38] .text:000390A0 ADD R0, R0, #0x38 .text:000390A4 STR R0, [R11,#var_3C] .text:000390A8 MOV R6, R2 .text:000390AC ADD LR, R7, #0x24 .text:000390B0 STR LR, [R11,#var_40] .text:000390B4 TST R1, #1 .text:000390B8 LDREQ R1, [R0,#0x14] .text:000390BC STREQ R1, [R11,#var_44] .text:000390C0 LDR R3, [R11,#arg_8] .text:000390C4 CMP R3, #0 .text:000390C8 BEQ loc_39154 .text:000390CC LDR R2, [R11,#arg_0] .text:000390D0 MOV R5, #0 .text:000390D4 CMP R2, R5 .text:000390D8 BEQ loc_390F0 .text:000390DC LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:000390E0 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:000390E4 LDR R3, =a__gconv_tran_0 ; "__gconv_transform_ucs4_internal" .text:000390E8 MOV R2, #0x130 .text:000390EC BL __assert_fail .text:000390F0 ; --------------------------------------------------------------------------- .text:000390F0 .text:000390F0 loc_390F0 ; CODE XREF: __gconv_transform_ucs4_internal+5Cj .text:000390F0 MOV R1, R5 .text:000390F4 LDR R0, [R7,#0x14] .text:000390F8 MOV R2, #8 .text:000390FC BL memset .text:00039100 LDR R3, [R7,#8] .text:00039104 TST R3, #1 .text:00039108 BNE loc_396B4 .text:0003910C LDR R0, [R11,#var_44] .text:00039110 BL _dl_mcount_wrapper_check .text:00039114 STR R5, [SP,#0x60+var_60] .text:00039118 LDR R3, [R11,#arg_4] .text:0003911C STR R3, [SP,#0x60+var_5C] .text:00039120 MOV R3, #1 .text:00039124 STR R3, [SP,#0x60+var_58] .text:00039128 LDR R12, [R11,#arg_C] .text:0003912C STR R12, [SP,#0x60+var_54] .text:00039130 LDR R0, [R11,#var_3C] .text:00039134 LDR R1, [R11,#var_40] .text:00039138 MOV R2, R5 .text:0003913C LDR R12, [R11,#var_44] .text:00039140 MOV R3, R2 .text:00039144 MOV LR, PC .text:00039148 MOV PC, R12 .text:0003914C MOV R5, R0 .text:00039150 B loc_396B4 .text:00039154 ; --------------------------------------------------------------------------- .text:00039154 .text:00039154 loc_39154 ; CODE XREF: __gconv_transform_ucs4_internal+4Cj .text:00039154 LDR LR, [R11,#arg_0] .text:00039158 LDR R1, [R6] .text:0003915C CMP LR, #0 .text:00039160 STR R1, [R11,#var_48] .text:00039164 LDREQ R3, [R7] .text:00039168 LDRNE R2, [R11,#arg_0] .text:0003916C LDRNE R3, [R2] .text:00039170 STR R3, [R11,#var_30] .text:00039174 MOV R3, #0 .text:00039178 STR R3, [R11,#var_2C] .text:0003917C LDR R3, [R11,#arg_4] .text:00039180 SUB R9, R11, #-var_30 .text:00039184 LDR R12, [R11,#arg_C] .text:00039188 CMP R3, #0 .text:0003918C SUBNE R10, R11, #-var_2C .text:00039190 MOVEQ R10, #0 .text:00039194 LDR LR, [R7,#4] .text:00039198 CMP R12, #0 .text:0003919C STR LR, [R11,#var_4C] .text:000391A0 BEQ loc_392E8 .text:000391A4 LDR LR, [R7,#0x14] .text:000391A8 LDR R3, [LR] .text:000391AC ANDS R2, R3, #7 .text:000391B0 BEQ loc_392E8 .text:000391B4 LDR R1, [R11,#arg_0] .text:000391B8 CMP R1, #0 .text:000391BC BEQ loc_391D8 .text:000391C0 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:000391C4 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:000391C8 MOV R2, #0x168 .text:000391CC LDR R3, =a__gconv_tran_0 ; "__gconv_transform_ucs4_internal" .text:000391D0 ADD R2, R2, #2 .text:000391D4 BL __assert_fail .text:000391D8 ; --------------------------------------------------------------------------- .text:000391D8 .text:000391D8 loc_391D8 ; CODE XREF: __gconv_transform_ucs4_internal+140j .text:000391D8 LDR R0, [R6] .text:000391DC MOV R12, R2 .text:000391E0 LDR R2, [R11,#var_38] .text:000391E4 MOV R4, R9 .text:000391E8 LDR R5, [R7,#8] .text:000391EC CMP R12, #3 .text:000391F0 CMPLS R0, R2 .text:000391F4 BCS loc_39220 .text:000391F8 .text:000391F8 loc_391F8 ; CODE XREF: __gconv_transform_ucs4_internal+1A0j .text:000391F8 LDRB R2, [R0],#1 .text:000391FC ADD R3, LR, R12 .text:00039200 STRB R2, [R3,#4] .text:00039204 ADD R12, R12, #1 .text:00039208 MOV R1, R0 .text:0003920C LDR R3, [R11,#var_38] .text:00039210 STR R1, [R6] .text:00039214 CMP R12, #3 .text:00039218 CMPLS R0, R3 .text:0003921C BCC loc_391F8 .text:00039220 .text:00039220 loc_39220 ; CODE XREF: __gconv_transform_ucs4_internal+178j .text:00039220 CMP R12, #3 .text:00039224 BHI loc_3923C .text:00039228 LDR R3, [LR] .text:0003922C MOV R5, #7 .text:00039230 BIC R3, R3, #7 .text:00039234 ORR R3, R3, R12 .text:00039238 B loc_392B8 .text:0003923C ; --------------------------------------------------------------------------- .text:0003923C .text:0003923C loc_3923C ; CODE XREF: __gconv_transform_ucs4_internal+1A8j .text:0003923C LDRB R3, [LR,#4] .text:00039240 CMP R3, #0x80 .text:00039244 BLS loc_39270 .text:00039248 TST R5, #2 .text:0003924C BNE loc_392AC .text:00039250 LDR R2, [LR] .text:00039254 MOV R5, #6 .text:00039258 LDR R3, [R6] .text:0003925C AND R2, R2, #7 .text:00039260 RSB R2, R2, R12 .text:00039264 RSB R3, R2, R3 .text:00039268 STR R3, [R6] .text:0003926C B loc_392BC .text:00039270 ; --------------------------------------------------------------------------- .text:00039270 .text:00039270 loc_39270 ; CODE XREF: __gconv_transform_ucs4_internal+1C8j .text:00039270 LDR R2, [R4] .text:00039274 LDRB R3, [LR,#7] .text:00039278 STRB R3, [R2] .text:0003927C LDR R1, [R4] .text:00039280 LDRB R3, [LR,#6] .text:00039284 STRB R3, [R1,#1] .text:00039288 LDR R2, [R4] .text:0003928C LDRB R3, [LR,#5] .text:00039290 STRB R3, [R2,#2] .text:00039294 LDR R1, [R4] .text:00039298 LDRB R2, [LR,#4] .text:0003929C STRB R2, [R1,#3] .text:000392A0 LDR R3, [R4] .text:000392A4 ADD R3, R3, #4 .text:000392A8 STR R3, [R4] .text:000392AC .text:000392AC loc_392AC ; CODE XREF: __gconv_transform_ucs4_internal+1D0j .text:000392AC LDR R3, [LR] .text:000392B0 MOV R5, #0 .text:000392B4 BIC R3, R3, #7 .text:000392B8 .text:000392B8 loc_392B8 ; CODE XREF: __gconv_transform_ucs4_internal+1BCj .text:000392B8 STR R3, [LR] .text:000392BC .text:000392BC loc_392BC ; CODE XREF: __gconv_transform_ucs4_internal+1F0j .text:000392BC CMP R5, #0 .text:000392C0 BEQ loc_392E8 .text:000392C4 B loc_396B4 .text:000392C8 ; --------------------------------------------------------------------------- .text:000392C8 .text:000392C8 loc_392C8 ; CODE XREF: __gconv_transform_ucs4_internal+4D8j .text:000392C8 LDR R3, [R11,#var_30] .text:000392CC STR R3, [R7] .text:000392D0 LDR R12, [R11,#arg_4] .text:000392D4 LDR R3, [R11,#var_2C] .text:000392D8 LDR R2, [R12] .text:000392DC ADD R2, R2, R3 .text:000392E0 STR R2, [R12] .text:000392E4 B loc_395F0 .text:000392E8 ; --------------------------------------------------------------------------- .text:000392E8 .text:000392E8 loc_392E8 ; CODE XREF: __gconv_transform_ucs4_internal+124j .text:000392E8 ; __gconv_transform_ucs4_internal+134j ... .text:000392E8 LDR R1, [R11,#var_48] .text:000392EC MOV LR, #0 .text:000392F0 STR LR, [R11,#var_50] .text:000392F4 TST R1, #3 .text:000392F8 BNE loc_39314 .text:000392FC LDR R3, [R7,#8] .text:00039300 TST R3, #1 .text:00039304 BEQ loc_3931C .text:00039308 LDR R3, [R11,#var_30] .text:0003930C TST R3, #3 .text:00039310 BEQ loc_3931C .text:00039314 .text:00039314 loc_39314 ; CODE XREF: __gconv_transform_ucs4_internal+27Cj .text:00039314 MOV R2, #1 .text:00039318 STR R2, [R11,#var_50] .text:0003931C .text:0003931C loc_3931C ; CODE XREF: __gconv_transform_ucs4_internal+288j .text:0003931C ; __gconv_transform_ucs4_internal+294j ... .text:0003931C LDR R3, [R6] .text:00039320 LDR R12, [R11,#var_50] .text:00039324 LDR R8, [R11,#var_30] .text:00039328 CMP R12, #0 .text:0003932C STR R3, [R11,#var_48] .text:00039330 BNE loc_393FC .text:00039334 MOV R0, R3 .text:00039338 LDR LR, [R11,#var_4C] .text:0003933C MOV R12, R8 .text:00039340 LDR R1, [R11,#var_38] .text:00039344 RSB R3, R8, LR .text:00039348 RSB R2, R0, R1 .text:0003934C CMP R3, R2 .text:00039350 MOVGE R3, R2 .text:00039354 CMP R3, #0 .text:00039358 ADDLT R3, R3, #3 .text:0003935C LDR LR, [R11,#var_50] .text:00039360 MOV R4, R3,ASR#2 .text:00039364 LDR R3, [R7,#8] .text:00039368 CMP LR, R4 .text:0003936C BCS loc_393D4 .text:00039370 AND R5, R3, #2 .text:00039374 .text:00039374 loc_39374 ; CODE XREF: __gconv_transform_ucs4_internal+354j .text:00039374 LDR R3, [R0] .text:00039378 AND R2, R3, #0xFF0000 .text:0003937C MOV R2, R2,LSR#8 .text:00039380 ORR R2, R2, R3,LSR#24 .text:00039384 AND R1, R3, #0xFF00 .text:00039388 ORR R2, R2, R1,LSL#8 .text:0003938C ORRS R3, R2, R3,LSL#24 .text:00039390 BPL loc_393C0 .text:00039394 CMP R10, #0 .text:00039398 BEQ loc_394CC .text:0003939C CMP R5, #0 .text:000393A0 LDRNE R3, [R10] .text:000393A4 ADDNE R3, R3, #1 .text:000393A8 STRNE R3, [R10] .text:000393AC BNE loc_393C4 .text:000393B0 STR R0, [R6] .text:000393B4 MOV R5, #6 .text:000393B8 STR R12, [R9] .text:000393BC B loc_394EC .text:000393C0 ; --------------------------------------------------------------------------- .text:000393C0 .text:000393C0 loc_393C0 ; CODE XREF: __gconv_transform_ucs4_internal+314j .text:000393C0 STR R3, [R12],#4 .text:000393C4 .text:000393C4 loc_393C4 ; CODE XREF: __gconv_transform_ucs4_internal+330j .text:000393C4 ADD LR, LR, #1 .text:000393C8 ADD R0, R0, #4 .text:000393CC CMP LR, R4 .text:000393D0 BCC loc_39374 .text:000393D4 .text:000393D4 loc_393D4 ; CODE XREF: __gconv_transform_ucs4_internal+2F0j .text:000393D4 STR R0, [R6] .text:000393D8 STR R12, [R9] .text:000393DC LDR R2, [R11,#var_38] .text:000393E0 LDR R3, [R6] .text:000393E4 CMP R3, R2 .text:000393E8 BEQ loc_394C4 .text:000393EC ADD R3, R12, #4 .text:000393F0 LDR R12, [R11,#var_4C] .text:000393F4 CMP R3, R12 .text:000393F8 B loc_394E0 .text:000393FC ; --------------------------------------------------------------------------- .text:000393FC .text:000393FC loc_393FC ; CODE XREF: __gconv_transform_ucs4_internal+2B4j .text:000393FC LDR R1, [R11,#var_48] .text:00039400 LDR LR, [R11,#var_4C] .text:00039404 MOV R0, R8 .text:00039408 LDR R12, [R11,#var_38] .text:0003940C RSB R3, R8, LR .text:00039410 RSB R2, R1, R12 .text:00039414 CMP R3, R2 .text:00039418 MOVGE R3, R2 .text:0003941C MOV R12, #0 .text:00039420 CMP R3, R12 .text:00039424 ADDLT R3, R3, #3 .text:00039428 MOV LR, R3,ASR#2 .text:0003942C CMP R12, LR .text:00039430 LDR R3, [R7,#8] .text:00039434 BCS loc_394AC .text:00039438 AND R4, R3, #2 .text:0003943C .text:0003943C loc_3943C ; CODE XREF: __gconv_transform_ucs4_internal+42Cj .text:0003943C LDRB R3, [R1] .text:00039440 CMP R3, #0x80 .text:00039444 BLS loc_39480 .text:00039448 CMP R10, #0 .text:0003944C BEQ loc_394CC .text:00039450 CMP R4, #0 .text:00039454 LDRNE R3, [R10] .text:00039458 ADDNE R3, R3, #1 .text:0003945C STRNE R3, [R10] .text:00039460 BNE loc_3949C .text:00039464 STR R1, [R6] .text:00039468 MOV R5, #6 .text:0003946C STR R0, [R9] .text:00039470 B loc_394EC .text:00039470 ; --------------------------------------------------------------------------- .text:00039474 off_39474 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ucs4_internal+60r .text:00039474 ; __gconv_transform_ucs4_internal+144r .text:00039474 ; "outbufstart == ((void *)0)" .text:00039478 off_39478 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs4_internal+64r .text:00039478 ; __gconv_transform_ucs4_internal+148r .text:00039478 ; "../iconv/skeleton.c" .text:0003947C off_3947C DCD a__gconv_tran_0 ; DATA XREF: __gconv_transform_ucs4_internal+68r .text:0003947C ; __gconv_transform_ucs4_internal+150r .text:0003947C ; "__gconv_transform_ucs4_internal" .text:00039480 ; --------------------------------------------------------------------------- .text:00039480 .text:00039480 loc_39480 ; CODE XREF: __gconv_transform_ucs4_internal+3C8j .text:00039480 STRB R3, [R0,#3] .text:00039484 LDRB R3, [R1,#1] .text:00039488 STRB R3, [R0,#2] .text:0003948C LDRB R2, [R1,#2] .text:00039490 STRB R2, [R0,#1] .text:00039494 LDRB R3, [R1,#3] .text:00039498 STRB R3, [R0],#4 .text:0003949C .text:0003949C loc_3949C ; CODE XREF: __gconv_transform_ucs4_internal+3E4j .text:0003949C ADD R12, R12, #1 .text:000394A0 ADD R1, R1, #4 .text:000394A4 CMP R12, LR .text:000394A8 BCC loc_3943C .text:000394AC .text:000394AC loc_394AC ; CODE XREF: __gconv_transform_ucs4_internal+3B8j .text:000394AC STR R1, [R6] .text:000394B0 STR R0, [R9] .text:000394B4 LDR LR, [R11,#var_38] .text:000394B8 LDR R3, [R6] .text:000394BC CMP R3, LR .text:000394C0 BNE loc_394D4 .text:000394C4 .text:000394C4 loc_394C4 ; CODE XREF: __gconv_transform_ucs4_internal+36Cj .text:000394C4 MOV R0, #4 .text:000394C8 B loc_394E8 .text:000394CC ; --------------------------------------------------------------------------- .text:000394CC .text:000394CC loc_394CC ; CODE XREF: __gconv_transform_ucs4_internal+31Cj .text:000394CC ; __gconv_transform_ucs4_internal+3D0j .text:000394CC MOV R5, #6 .text:000394D0 B loc_394EC .text:000394D4 ; --------------------------------------------------------------------------- .text:000394D4 .text:000394D4 loc_394D4 ; CODE XREF: __gconv_transform_ucs4_internal+444j .text:000394D4 LDR R1, [R11,#var_4C] .text:000394D8 ADD R3, R0, #4 .text:000394DC CMP R3, R1 .text:000394E0 .text:000394E0 loc_394E0 ; CODE XREF: __gconv_transform_ucs4_internal+37Cj .text:000394E0 MOVLS R0, #7 .text:000394E4 MOVHI R0, #5 .text:000394E8 .text:000394E8 loc_394E8 ; CODE XREF: __gconv_transform_ucs4_internal+44Cj .text:000394E8 MOV R5, R0 .text:000394EC .text:000394EC loc_394EC ; CODE XREF: __gconv_transform_ucs4_internal+340j .text:000394EC ; __gconv_transform_ucs4_internal+3F4j ... .text:000394EC LDR R2, [R11,#arg_0] .text:000394F0 CMP R2, #0 .text:000394F4 BNE loc_3963C .text:000394F8 LDR R4, [R7,#0x20] .text:000394FC CMP R4, #0 .text:00039500 BEQ loc_39540 .text:00039504 .text:00039504 loc_39504 ; CODE XREF: __gconv_transform_ucs4_internal+4C0j .text:00039504 LDR R0, [R4,#4] .text:00039508 CMP R0, #0 .text:0003950C BEQ loc_39534 .text:00039510 BL _dl_mcount_wrapper_check .text:00039514 LDR R3, [R11,#var_30] .text:00039518 LDR R0, [R4,#0xC] .text:0003951C STR R3, [SP,#0x60+var_60] .text:00039520 LDR R1, [R11,#var_48] .text:00039524 LDR R2, [R6] .text:00039528 MOV R3, R8 .text:0003952C MOV LR, PC .text:00039530 LDR PC, [R4,#4] .text:00039534 .text:00039534 loc_39534 ; CODE XREF: __gconv_transform_ucs4_internal+490j .text:00039534 LDR R4, [R4,#0x10] .text:00039538 CMP R4, #0 .text:0003953C BNE loc_39504 .text:00039540 .text:00039540 loc_39540 ; CODE XREF: __gconv_transform_ucs4_internal+484j .text:00039540 ADD R2, R7, #8 .text:00039544 LDMIA R2, {R2,R3} .text:00039548 ADD R3, R3, #1 .text:0003954C ANDS R4, R2, #1 .text:00039550 STR R3, [R7,#0xC] .text:00039554 BNE loc_392C8 .text:00039558 LDR R3, [R11,#var_30] .text:0003955C CMP R3, R8 .text:00039560 BLS loc_395E0 .text:00039564 LDR R3, [R7] .text:00039568 STR R3, [R11,#var_34] .text:0003956C LDR R0, [R11,#var_44] .text:00039570 BL _dl_mcount_wrapper_check .text:00039574 STR R4, [SP,#0x60+var_60] .text:00039578 LDR R3, [R11,#arg_4] .text:0003957C STMFA SP, {R3,R4} .text:00039580 LDR R12, [R11,#arg_C] .text:00039584 STR R12, [SP,#0x60+var_54] .text:00039588 LDR R0, [R11,#var_3C] .text:0003958C LDR R1, [R11,#var_40] .text:00039590 LDR R3, [R11,#var_30] .text:00039594 LDR R12, [R11,#var_44] .text:00039598 SUB R2, R11, #-var_34 .text:0003959C MOV LR, PC .text:000395A0 MOV PC, R12 .text:000395A4 CMP R0, #4 .text:000395A8 BEQ loc_395D0 .text:000395AC SUB R1, R11, #-var_34 .text:000395B0 LDMIA R1, {R1,R2} .text:000395B4 CMP R1, R2 .text:000395B8 LDRNE R3, [R6] .text:000395BC RSBNE R2, R1, R2 .text:000395C0 RSBNE R3, R2, R3 .text:000395C4 STRNE R3, [R6] .text:000395C8 MOV R5, R0 .text:000395CC B loc_395E0 .text:000395D0 ; --------------------------------------------------------------------------- .text:000395D0 .text:000395D0 loc_395D0 ; CODE XREF: __gconv_transform_ucs4_internal+52Cj .text:000395D0 CMP R5, #5 .text:000395D4 LDREQ R3, [R7] .text:000395D8 MOVEQ R5, R4 .text:000395DC STREQ R3, [R11,#var_30] .text:000395E0 .text:000395E0 loc_395E0 ; CODE XREF: __gconv_transform_ucs4_internal+4E4j .text:000395E0 ; __gconv_transform_ucs4_internal+550j .text:000395E0 CMP R5, #0 .text:000395E4 LDREQ R3, [R7] .text:000395E8 STREQ R3, [R11,#var_30] .text:000395EC BEQ loc_3931C .text:000395F0 .text:000395F0 loc_395F0 ; CODE XREF: __gconv_transform_ucs4_internal+268j .text:000395F0 LDR LR, [R11,#arg_C] .text:000395F4 CMP R5, #7 .text:000395F8 MOVNE R3, #0 .text:000395FC MOVEQ R3, #1 .text:00039600 CMP LR, #0 .text:00039604 MOVEQ R3, #0 .text:00039608 CMP R3, #0 .text:0003960C BEQ loc_396B4 .text:00039610 LDR R2, [R6] .text:00039614 LDR R1, [R11,#var_38] .text:00039618 RSB R3, R2, R1 .text:0003961C CMP R3, #3 .text:00039620 BLE loc_3965C .text:00039624 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:00039628 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003962C MOV R2, #0x254 .text:00039630 LDR R3, =a__gconv_tran_0 ; "__gconv_transform_ucs4_internal" .text:00039634 ADD R2, R2, #3 .text:00039638 BL __assert_fail .text:0003963C ; --------------------------------------------------------------------------- .text:0003963C .text:0003963C loc_3963C ; CODE XREF: __gconv_transform_ucs4_internal+478j .text:0003963C LDR R3, [R11,#var_30] .text:00039640 LDR R2, [R11,#arg_0] .text:00039644 MOV R0, R5 .text:00039648 STR R3, [R2] .text:0003964C B locret_396B8 .text:0003964C ; --------------------------------------------------------------------------- .text:00039650 off_39650 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_ucs4_internal+5A8r .text:00039650 ; "inend - *inptrp < 4" .text:00039654 off_39654 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs4_internal+5ACr .text:00039654 ; "../iconv/skeleton.c" .text:00039658 off_39658 DCD a__gconv_tran_0 ; DATA XREF: __gconv_transform_ucs4_internal+5B4r .text:00039658 ; "__gconv_transform_ucs4_internal" .text:0003965C ; --------------------------------------------------------------------------- .text:0003965C .text:0003965C loc_3965C ; CODE XREF: __gconv_transform_ucs4_internal+5A4j .text:0003965C LDR R3, [R11,#var_38] .text:00039660 MOV R0, #0 .text:00039664 CMP R2, R3 .text:00039668 BCS loc_39694 .text:0003966C .text:0003966C loc_3966C ; CODE XREF: __gconv_transform_ucs4_internal+614j .text:0003966C LDR R3, [R6] .text:00039670 LDR R2, [R7,#0x14] .text:00039674 LDRB R1, [R3],#1 .text:00039678 ADD R2, R2, R0 .text:0003967C STRB R1, [R2,#4] .text:00039680 LDR R12, [R11,#var_38] .text:00039684 ADD R0, R0, #1 .text:00039688 STR R3, [R6] .text:0003968C CMP R3, R12 .text:00039690 BCC loc_3966C .text:00039694 .text:00039694 loc_39694 ; CODE XREF: __gconv_transform_ucs4_internal+5ECj .text:00039694 LDR R2, [R7,#0x14] .text:00039698 LDR R3, [R2] .text:0003969C BIC R3, R3, #7 .text:000396A0 STR R3, [R2] .text:000396A4 LDR R1, [R7,#0x14] .text:000396A8 LDR R3, [R1] .text:000396AC ORR R3, R3, R0 .text:000396B0 STR R3, [R1] .text:000396B4 .text:000396B4 loc_396B4 ; CODE XREF: __gconv_transform_ucs4_internal+8Cj .text:000396B4 ; __gconv_transform_ucs4_internal+D4j ... .text:000396B4 MOV R0, R5 .text:000396B8 .text:000396B8 locret_396B8 ; CODE XREF: __gconv_transform_ucs4_internal+5D0j .text:000396B8 LDMDB R11, {R4-R11,SP,PC} .text:000396B8 ; End of function __gconv_transform_ucs4_internal .text:000396B8 .text:000396BC .text:000396BC ; =============== S U B R O U T I N E ======================================= .text:000396BC .text:000396BC ; Attributes: bp-based frame .text:000396BC .text:000396BC EXPORT __gconv_transform_internal_ucs4le .text:000396BC __gconv_transform_internal_ucs4le .text:000396BC .text:000396BC var_54 = -0x54 .text:000396BC var_48 = -0x48 .text:000396BC var_44 = -0x44 .text:000396BC var_40 = -0x40 .text:000396BC var_3C = -0x3C .text:000396BC var_38 = -0x38 .text:000396BC var_34 = -0x34 .text:000396BC var_30 = -0x30 .text:000396BC var_2C = -0x2C .text:000396BC arg_0 = 4 .text:000396BC arg_4 = 8 .text:000396BC arg_8 = 0xC .text:000396BC arg_C = 0x10 .text:000396BC .text:000396BC MOV R12, SP .text:000396C0 STMFD SP!, {R4-R12,LR,PC} .text:000396C4 SUB R11, R12, #4 .text:000396C8 MOV R8, R1 .text:000396CC SUB SP, SP, #0x2C .text:000396D0 LDR R1, [R8,#8] .text:000396D4 MOV R12, #0 .text:000396D8 STR R12, [R11,#var_3C] .text:000396DC MOV R7, R2 .text:000396E0 ADD R0, R0, #0x38 .text:000396E4 STR R0, [R11,#var_34] .text:000396E8 MOV R9, R3 .text:000396EC ADD R2, R8, #0x24 .text:000396F0 STR R2, [R11,#var_38] .text:000396F4 TST R1, #1 .text:000396F8 LDREQ R3, [R0,#0x14] .text:000396FC STREQ R3, [R11,#var_3C] .text:00039700 LDR R3, [R11,#arg_8] .text:00039704 CMP R3, #0 .text:00039708 BEQ loc_39790 .text:0003970C LDR R12, [R11,#arg_0] .text:00039710 MOV R10, #0 .text:00039714 CMP R12, R10 .text:00039718 BEQ loc_39730 .text:0003971C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00039720 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00039724 LDR R3, =a__gconv_tran_1 ; "__gconv_transform_internal_ucs4le" .text:00039728 MOV R2, #0x130 .text:0003972C BL __assert_fail .text:00039730 ; --------------------------------------------------------------------------- .text:00039730 .text:00039730 loc_39730 ; CODE XREF: __gconv_transform_internal_ucs4le+5Cj .text:00039730 MOV R1, R10 .text:00039734 LDR R0, [R8,#0x14] .text:00039738 MOV R2, #8 .text:0003973C BL memset .text:00039740 LDR R3, [R8,#8] .text:00039744 TST R3, #1 .text:00039748 BNE loc_39B40 .text:0003974C LDR R0, [R11,#var_3C] .text:00039750 BL _dl_mcount_wrapper_check .text:00039754 STR R10, [SP,#0x54+var_54] .text:00039758 LDR R2, [R11,#arg_4] .text:0003975C MOV R3, #1 .text:00039760 STMFA SP, {R2,R3} .text:00039764 LDR R3, [R11,#arg_C] .text:00039768 STR R3, [SP,#0x54+var_48] .text:0003976C LDR R0, [R11,#var_34] .text:00039770 LDR R1, [R11,#var_38] .text:00039774 MOV R2, R10 .text:00039778 LDR R12, [R11,#var_3C] .text:0003977C MOV R3, R2 .text:00039780 MOV LR, PC .text:00039784 MOV PC, R12 .text:00039788 MOV R10, R0 .text:0003978C B loc_39B40 .text:00039790 ; --------------------------------------------------------------------------- .text:00039790 .text:00039790 loc_39790 ; CODE XREF: __gconv_transform_internal_ucs4le+4Cj .text:00039790 LDR R2, [R11,#arg_0] .text:00039794 LDR R5, [R7] .text:00039798 CMP R2, #0 .text:0003979C LDREQ R3, [R8] .text:000397A0 LDRNE R12, [R11,#arg_0] .text:000397A4 LDRNE R3, [R12] .text:000397A8 STR R3, [R11,#var_2C] .text:000397AC LDR R2, [R11,#arg_C] .text:000397B0 LDR R3, [R8,#4] .text:000397B4 CMP R2, #0 .text:000397B8 STR R3, [R11,#var_40] .text:000397BC BEQ loc_39880 .text:000397C0 LDR LR, [R8,#0x14] .text:000397C4 LDR R3, [LR] .text:000397C8 ANDS R3, R3, #7 .text:000397CC BEQ loc_39880 .text:000397D0 LDR R12, [R11,#arg_0] .text:000397D4 CMP R12, #0 .text:000397D8 BEQ loc_397F4 .text:000397DC LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:000397E0 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:000397E4 MOV R2, #0x168 .text:000397E8 LDR R3, =a__gconv_tran_1 ; "__gconv_transform_internal_ucs4le" .text:000397EC ADD R2, R2, #2 .text:000397F0 BL __assert_fail .text:000397F4 ; --------------------------------------------------------------------------- .text:000397F4 .text:000397F4 loc_397F4 ; CODE XREF: __gconv_transform_internal_ucs4le+11Cj .text:000397F4 MOV R12, R3 .text:000397F8 LDR R0, [R7] .text:000397FC SUB R4, R11, #-var_2C .text:00039800 CMP R12, #3 .text:00039804 CMPLS R0, R9 .text:00039808 BCS loc_39830 .text:0003980C .text:0003980C loc_3980C ; CODE XREF: __gconv_transform_internal_ucs4le+170j .text:0003980C ADD R3, LR, R12 .text:00039810 LDRB R2, [R0],#1 .text:00039814 ADD R12, R12, #1 .text:00039818 MOV R1, R0 .text:0003981C STRB R2, [R3,#4] .text:00039820 CMP R12, #3 .text:00039824 CMPLS R0, R9 .text:00039828 STR R1, [R7] .text:0003982C BCC loc_3980C .text:00039830 .text:00039830 loc_39830 ; CODE XREF: __gconv_transform_internal_ucs4le+14Cj .text:00039830 CMP R12, #3 .text:00039834 BHI loc_3984C .text:00039838 LDR R3, [LR] .text:0003983C MOV R10, #7 .text:00039840 BIC R3, R3, #7 .text:00039844 ORR R3, R3, R12 .text:00039848 B loc_39864 .text:0003984C ; --------------------------------------------------------------------------- .text:0003984C .text:0003984C loc_3984C ; CODE XREF: __gconv_transform_internal_ucs4le+178j .text:0003984C LDR R1, [R4] .text:00039850 LDR R2, [LR,#4] .text:00039854 STR R2, [R1] .text:00039858 LDR R3, [LR] .text:0003985C MOV R10, #0 .text:00039860 BIC R3, R3, #7 .text:00039864 .text:00039864 loc_39864 ; CODE XREF: __gconv_transform_internal_ucs4le+18Cj .text:00039864 STR R3, [LR] .text:00039868 CMP R10, #0 .text:0003986C BEQ loc_39880 .text:00039870 B loc_39B40 .text:00039874 ; --------------------------------------------------------------------------- .text:00039874 .text:00039874 loc_39874 ; CODE XREF: __gconv_transform_internal_ucs4le+32Cj .text:00039874 LDR R3, [R11,#var_2C] .text:00039878 STR R3, [R8] .text:0003987C B loc_39A84 .text:00039880 ; --------------------------------------------------------------------------- .text:00039880 .text:00039880 loc_39880 ; CODE XREF: __gconv_transform_internal_ucs4le+100j .text:00039880 ; __gconv_transform_internal_ucs4le+110j ... .text:00039880 MOV R12, #0 .text:00039884 TST R5, #3 .text:00039888 STR R12, [R11,#var_44] .text:0003988C BNE loc_398A8 .text:00039890 LDR R3, [R8,#8] .text:00039894 TST R3, #1 .text:00039898 BEQ loc_398B0 .text:0003989C LDR R3, [R11,#var_2C] .text:000398A0 TST R3, #3 .text:000398A4 BEQ loc_398B0 .text:000398A8 .text:000398A8 loc_398A8 ; CODE XREF: __gconv_transform_internal_ucs4le+1D0j .text:000398A8 MOV R2, #1 .text:000398AC STR R2, [R11,#var_44] .text:000398B0 .text:000398B0 loc_398B0 ; CODE XREF: __gconv_transform_internal_ucs4le+1DCj .text:000398B0 ; __gconv_transform_internal_ucs4le+1E8j ... .text:000398B0 LDR R5, [R7] .text:000398B4 LDR R3, [R11,#var_44] .text:000398B8 LDR R6, [R11,#var_2C] .text:000398BC CMP R3, #0 .text:000398C0 BNE loc_39918 .text:000398C4 LDR R12, [R11,#var_40] .text:000398C8 RSB R3, R5, R9 .text:000398CC RSB R2, R6, R12 .text:000398D0 CMP R2, R3 .text:000398D4 MOVGE R2, R3 .text:000398D8 CMP R2, #0 .text:000398DC ADDLT R2, R2, #3 .text:000398E0 BIC R2, R2, #3 .text:000398E4 ADD R3, R5, R2 .text:000398E8 STR R3, [R7] .text:000398EC MOV R0, R6 .text:000398F0 MOV R1, R5 .text:000398F4 BL mempcpy .text:000398F8 LDR R3, [R7] .text:000398FC STR R0, [R11,#var_2C] .text:00039900 CMP R3, R9 .text:00039904 BEQ loc_39960 .text:00039908 LDR R2, [R11,#var_40] .text:0003990C ADD R3, R0, #4 .text:00039910 CMP R3, R2 .text:00039914 B loc_39974 .text:00039918 ; --------------------------------------------------------------------------- .text:00039918 .text:00039918 loc_39918 ; CODE XREF: __gconv_transform_internal_ucs4le+204j .text:00039918 LDR R3, [R11,#var_40] .text:0003991C RSB R2, R6, R3 .text:00039920 RSB R3, R5, R9 .text:00039924 CMP R2, R3 .text:00039928 MOVGE R2, R3 .text:0003992C CMP R2, #0 .text:00039930 ADDLT R2, R2, #3 .text:00039934 BIC R2, R2, #3 .text:00039938 ADD R3, R5, R2 .text:0003993C STR R3, [R7] .text:00039940 MOV R0, R6 .text:00039944 MOV R1, R5 .text:00039948 BL mempcpy .text:0003994C LDR R3, [R7] .text:00039950 STR R0, [R11,#var_2C] .text:00039954 ADD R3, R3, #4 .text:00039958 CMP R3, R9 .text:0003995C BLS loc_39968 .text:00039960 .text:00039960 loc_39960 ; CODE XREF: __gconv_transform_internal_ucs4le+248j .text:00039960 MOV R0, #4 .text:00039964 B loc_3997C .text:00039968 ; --------------------------------------------------------------------------- .text:00039968 .text:00039968 loc_39968 ; CODE XREF: __gconv_transform_internal_ucs4le+2A0j .text:00039968 LDR R12, [R11,#var_40] .text:0003996C ADD R3, R0, #4 .text:00039970 CMP R3, R12 .text:00039974 .text:00039974 loc_39974 ; CODE XREF: __gconv_transform_internal_ucs4le+258j .text:00039974 MOVLS R0, #7 .text:00039978 MOVHI R0, #5 .text:0003997C .text:0003997C loc_3997C ; CODE XREF: __gconv_transform_internal_ucs4le+2A8j .text:0003997C MOV R10, R0 .text:00039980 LDR R2, [R11,#arg_0] .text:00039984 CMP R2, #0 .text:00039988 BNE loc_39ADC .text:0003998C LDR R4, [R8,#0x20] .text:00039990 CMP R4, #0 .text:00039994 BEQ loc_399D4 .text:00039998 .text:00039998 loc_39998 ; CODE XREF: __gconv_transform_internal_ucs4le+314j .text:00039998 LDR R0, [R4,#4] .text:0003999C CMP R0, #0 .text:000399A0 BEQ loc_399C8 .text:000399A4 BL _dl_mcount_wrapper_check .text:000399A8 LDR R3, [R11,#var_2C] .text:000399AC LDR R0, [R4,#0xC] .text:000399B0 STR R3, [SP,#0x54+var_54] .text:000399B4 MOV R1, R5 .text:000399B8 LDR R2, [R7] .text:000399BC MOV R3, R6 .text:000399C0 MOV LR, PC .text:000399C4 LDR PC, [R4,#4] .text:000399C8 .text:000399C8 loc_399C8 ; CODE XREF: __gconv_transform_internal_ucs4le+2E4j .text:000399C8 LDR R4, [R4,#0x10] .text:000399CC CMP R4, #0 .text:000399D0 BNE loc_39998 .text:000399D4 .text:000399D4 loc_399D4 ; CODE XREF: __gconv_transform_internal_ucs4le+2D8j .text:000399D4 ADD R2, R8, #8 .text:000399D8 LDMIA R2, {R2,R3} .text:000399DC ADD R3, R3, #1 .text:000399E0 ANDS R4, R2, #1 .text:000399E4 STR R3, [R8,#0xC] .text:000399E8 BNE loc_39874 .text:000399EC LDR R3, [R11,#var_2C] .text:000399F0 CMP R3, R6 .text:000399F4 BLS loc_39A74 .text:000399F8 LDR R3, [R8] .text:000399FC STR R3, [R11,#var_30] .text:00039A00 LDR R0, [R11,#var_3C] .text:00039A04 BL _dl_mcount_wrapper_check .text:00039A08 STR R4, [SP,#0x54+var_54] .text:00039A0C LDR R3, [R11,#arg_4] .text:00039A10 STMFA SP, {R3,R4} .text:00039A14 LDR R12, [R11,#arg_C] .text:00039A18 STR R12, [SP,#0x54+var_48] .text:00039A1C LDR R0, [R11,#var_34] .text:00039A20 LDR R1, [R11,#var_38] .text:00039A24 LDR R3, [R11,#var_2C] .text:00039A28 LDR R12, [R11,#var_3C] .text:00039A2C SUB R2, R11, #-var_30 .text:00039A30 MOV LR, PC .text:00039A34 MOV PC, R12 .text:00039A38 CMP R0, #4 .text:00039A3C BEQ loc_39A64 .text:00039A40 SUB R1, R11, #-var_30 .text:00039A44 LDMIA R1, {R1,R2} .text:00039A48 CMP R1, R2 .text:00039A4C LDRNE R3, [R7] .text:00039A50 RSBNE R2, R1, R2 .text:00039A54 RSBNE R3, R2, R3 .text:00039A58 STRNE R3, [R7] .text:00039A5C MOV R10, R0 .text:00039A60 B loc_39A74 .text:00039A64 ; --------------------------------------------------------------------------- .text:00039A64 .text:00039A64 loc_39A64 ; CODE XREF: __gconv_transform_internal_ucs4le+380j .text:00039A64 CMP R10, #5 .text:00039A68 LDREQ R3, [R8] .text:00039A6C MOVEQ R10, R4 .text:00039A70 STREQ R3, [R11,#var_2C] .text:00039A74 .text:00039A74 loc_39A74 ; CODE XREF: __gconv_transform_internal_ucs4le+338j .text:00039A74 ; __gconv_transform_internal_ucs4le+3A4j .text:00039A74 CMP R10, #0 .text:00039A78 LDREQ R3, [R8] .text:00039A7C STREQ R3, [R11,#var_2C] .text:00039A80 BEQ loc_398B0 .text:00039A84 .text:00039A84 loc_39A84 ; CODE XREF: __gconv_transform_internal_ucs4le+1C0j .text:00039A84 LDR R2, [R11,#arg_C] .text:00039A88 CMP R10, #7 .text:00039A8C MOVNE R3, #0 .text:00039A90 MOVEQ R3, #1 .text:00039A94 CMP R2, #0 .text:00039A98 MOVEQ R3, #0 .text:00039A9C CMP R3, #0 .text:00039AA0 BEQ loc_39B40 .text:00039AA4 LDR R2, [R7] .text:00039AA8 RSB R3, R2, R9 .text:00039AAC CMP R3, #3 .text:00039AB0 BLE loc_39AF0 .text:00039AB4 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:00039AB8 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00039ABC MOV R2, #0x254 .text:00039AC0 LDR R3, =a__gconv_tran_1 ; "__gconv_transform_internal_ucs4le" .text:00039AC4 ADD R2, R2, #3 .text:00039AC8 BL __assert_fail .text:00039AC8 ; --------------------------------------------------------------------------- .text:00039ACC off_39ACC DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ucs4le+60r .text:00039ACC ; __gconv_transform_internal_ucs4le+120r .text:00039ACC ; "outbufstart == ((void *)0)" .text:00039AD0 off_39AD0 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs4le+64r .text:00039AD0 ; __gconv_transform_internal_ucs4le+124r ... .text:00039AD0 ; "../iconv/skeleton.c" .text:00039AD4 off_39AD4 DCD a__gconv_tran_1 ; DATA XREF: __gconv_transform_internal_ucs4le+68r .text:00039AD4 ; __gconv_transform_internal_ucs4le+12Cr ... .text:00039AD4 ; "__gconv_transform_internal_ucs4le" .text:00039AD8 off_39AD8 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ucs4le+3F8r .text:00039AD8 ; "inend - *inptrp < 4" .text:00039ADC ; --------------------------------------------------------------------------- .text:00039ADC .text:00039ADC loc_39ADC ; CODE XREF: __gconv_transform_internal_ucs4le+2CCj .text:00039ADC LDR R3, [R11,#var_2C] .text:00039AE0 LDR R12, [R11,#arg_0] .text:00039AE4 MOV R0, R10 .text:00039AE8 STR R3, [R12] .text:00039AEC B locret_39B44 .text:00039AF0 ; --------------------------------------------------------------------------- .text:00039AF0 .text:00039AF0 loc_39AF0 ; CODE XREF: __gconv_transform_internal_ucs4le+3F4j .text:00039AF0 MOV R0, #0 .text:00039AF4 CMP R2, R9 .text:00039AF8 BCS loc_39B20 .text:00039AFC .text:00039AFC loc_39AFC ; CODE XREF: __gconv_transform_internal_ucs4le+460j .text:00039AFC LDR R3, [R7] .text:00039B00 LDR R2, [R8,#0x14] .text:00039B04 LDRB R1, [R3],#1 .text:00039B08 ADD R2, R2, R0 .text:00039B0C STRB R1, [R2,#4] .text:00039B10 ADD R0, R0, #1 .text:00039B14 CMP R3, R9 .text:00039B18 STR R3, [R7] .text:00039B1C BCC loc_39AFC .text:00039B20 .text:00039B20 loc_39B20 ; CODE XREF: __gconv_transform_internal_ucs4le+43Cj .text:00039B20 LDR R2, [R8,#0x14] .text:00039B24 LDR R3, [R2] .text:00039B28 BIC R3, R3, #7 .text:00039B2C STR R3, [R2] .text:00039B30 LDR R1, [R8,#0x14] .text:00039B34 LDR R3, [R1] .text:00039B38 ORR R3, R3, R0 .text:00039B3C STR R3, [R1] .text:00039B40 .text:00039B40 loc_39B40 ; CODE XREF: __gconv_transform_internal_ucs4le+8Cj .text:00039B40 ; __gconv_transform_internal_ucs4le+D0j ... .text:00039B40 MOV R0, R10 .text:00039B44 .text:00039B44 locret_39B44 ; CODE XREF: __gconv_transform_internal_ucs4le+430j .text:00039B44 LDMDB R11, {R4-R11,SP,PC} .text:00039B44 ; End of function __gconv_transform_internal_ucs4le .text:00039B44 .text:00039B48 .text:00039B48 ; =============== S U B R O U T I N E ======================================= .text:00039B48 .text:00039B48 ; Attributes: bp-based frame .text:00039B48 .text:00039B48 EXPORT __gconv_transform_ucs4le_internal .text:00039B48 __gconv_transform_ucs4le_internal .text:00039B48 .text:00039B48 var_60 = -0x60 .text:00039B48 var_5C = -0x5C .text:00039B48 var_58 = -0x58 .text:00039B48 var_54 = -0x54 .text:00039B48 var_50 = -0x50 .text:00039B48 var_4C = -0x4C .text:00039B48 var_48 = -0x48 .text:00039B48 var_44 = -0x44 .text:00039B48 var_40 = -0x40 .text:00039B48 var_3C = -0x3C .text:00039B48 var_38 = -0x38 .text:00039B48 var_34 = -0x34 .text:00039B48 var_30 = -0x30 .text:00039B48 var_2C = -0x2C .text:00039B48 arg_0 = 4 .text:00039B48 arg_4 = 8 .text:00039B48 arg_8 = 0xC .text:00039B48 arg_C = 0x10 .text:00039B48 .text:00039B48 MOV R12, SP .text:00039B4C STMFD SP!, {R4-R12,LR,PC} .text:00039B50 SUB R11, R12, #4 .text:00039B54 MOV R6, R1 .text:00039B58 SUB SP, SP, #0x38 .text:00039B5C LDR R1, [R6,#8] .text:00039B60 MOV R12, #0 .text:00039B64 STR R12, [R11,#var_44] .text:00039B68 STR R3, [R11,#var_38] .text:00039B6C MOV R7, R2 .text:00039B70 ADD R0, R0, #0x38 .text:00039B74 STR R0, [R11,#var_3C] .text:00039B78 TST R1, #1 .text:00039B7C ADD R1, R6, #0x24 .text:00039B80 STR R1, [R11,#var_40] .text:00039B84 LDREQ R2, [R0,#0x14] .text:00039B88 STREQ R2, [R11,#var_44] .text:00039B8C LDR R3, [R11,#arg_8] .text:00039B90 CMP R3, #0 .text:00039B94 BEQ loc_39C20 .text:00039B98 LDR R3, [R11,#arg_0] .text:00039B9C MOV R5, #0 .text:00039BA0 CMP R3, R5 .text:00039BA4 BEQ loc_39BBC .text:00039BA8 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00039BAC LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00039BB0 LDR R3, =a__gconv_tran_2 ; "__gconv_transform_ucs4le_internal" .text:00039BB4 MOV R2, #0x130 .text:00039BB8 BL __assert_fail .text:00039BBC ; --------------------------------------------------------------------------- .text:00039BBC .text:00039BBC loc_39BBC ; CODE XREF: __gconv_transform_ucs4le_internal+5Cj .text:00039BBC MOV R1, R5 .text:00039BC0 LDR R0, [R6,#0x14] .text:00039BC4 MOV R2, #8 .text:00039BC8 BL memset .text:00039BCC LDR R3, [R6,#8] .text:00039BD0 TST R3, #1 .text:00039BD4 BNE loc_3A128 .text:00039BD8 LDR R0, [R11,#var_44] .text:00039BDC BL _dl_mcount_wrapper_check .text:00039BE0 STR R5, [SP,#0x60+var_60] .text:00039BE4 LDR R12, [R11,#arg_4] .text:00039BE8 MOV R3, #1 .text:00039BEC STR R3, [SP,#0x60+var_58] .text:00039BF0 STR R12, [SP,#0x60+var_5C] .text:00039BF4 LDR R1, [R11,#arg_C] .text:00039BF8 STR R1, [SP,#0x60+var_54] .text:00039BFC LDR R0, [R11,#var_3C] .text:00039C00 LDR R1, [R11,#var_40] .text:00039C04 MOV R2, R5 .text:00039C08 LDR R12, [R11,#var_44] .text:00039C0C MOV R3, R2 .text:00039C10 MOV LR, PC .text:00039C14 MOV PC, R12 .text:00039C18 MOV R5, R0 .text:00039C1C B loc_3A128 .text:00039C20 ; --------------------------------------------------------------------------- .text:00039C20 .text:00039C20 loc_39C20 ; CODE XREF: __gconv_transform_ucs4le_internal+4Cj .text:00039C20 LDR R1, [R11,#arg_0] .text:00039C24 LDR R9, [R7] .text:00039C28 CMP R1, #0 .text:00039C2C LDREQ R3, [R6] .text:00039C30 LDRNE R2, [R11,#arg_0] .text:00039C34 LDRNE R3, [R2] .text:00039C38 STR R3, [R11,#var_30] .text:00039C3C MOV R3, #0 .text:00039C40 STR R3, [R11,#var_2C] .text:00039C44 SUB R1, R11, #-var_30 .text:00039C48 STR R1, [R11,#var_50] .text:00039C4C LDR R3, [R11,#arg_4] .text:00039C50 LDR R12, [R11,#arg_C] .text:00039C54 CMP R3, #0 .text:00039C58 SUBNE R10, R11, #-var_2C .text:00039C5C MOVEQ R10, #0 .text:00039C60 LDR R2, [R6,#4] .text:00039C64 CMP R12, #0 .text:00039C68 STR R2, [R11,#var_48] .text:00039C6C BEQ loc_39D70 .text:00039C70 LDR LR, [R6,#0x14] .text:00039C74 LDR R3, [LR] .text:00039C78 ANDS R3, R3, #7 .text:00039C7C BEQ loc_39D70 .text:00039C80 LDR R12, [R11,#arg_0] .text:00039C84 CMP R12, #0 .text:00039C88 BEQ loc_39CA4 .text:00039C8C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00039C90 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00039C94 MOV R2, #0x168 .text:00039C98 LDR R3, =a__gconv_tran_2 ; "__gconv_transform_ucs4le_internal" .text:00039C9C ADD R2, R2, #2 .text:00039CA0 BL __assert_fail .text:00039CA4 ; --------------------------------------------------------------------------- .text:00039CA4 .text:00039CA4 loc_39CA4 ; CODE XREF: __gconv_transform_ucs4le_internal+140j .text:00039CA4 LDR R0, [R7] .text:00039CA8 LDR R5, [R11,#var_50] .text:00039CAC LDR R1, [R11,#var_38] .text:00039CB0 MOV R12, R3 .text:00039CB4 LDR R4, [R6,#8] .text:00039CB8 CMP R12, #3 .text:00039CBC CMPLS R0, R1 .text:00039CC0 BCS loc_39CEC .text:00039CC4 .text:00039CC4 loc_39CC4 ; CODE XREF: __gconv_transform_ucs4le_internal+1A0j .text:00039CC4 LDRB R2, [R0],#1 .text:00039CC8 ADD R3, LR, R12 .text:00039CCC STRB R2, [R3,#4] .text:00039CD0 ADD R12, R12, #1 .text:00039CD4 MOV R1, R0 .text:00039CD8 LDR R2, [R11,#var_38] .text:00039CDC STR R1, [R7] .text:00039CE0 CMP R12, #3 .text:00039CE4 CMPLS R0, R2 .text:00039CE8 BCC loc_39CC4 .text:00039CEC .text:00039CEC loc_39CEC ; CODE XREF: __gconv_transform_ucs4le_internal+178j .text:00039CEC CMP R12, #3 .text:00039CF0 BHI loc_39D08 .text:00039CF4 LDR R3, [LR] .text:00039CF8 MOV R5, #7 .text:00039CFC BIC R3, R3, #7 .text:00039D00 ORR R3, R3, R12 .text:00039D04 B loc_39D3C .text:00039D08 ; --------------------------------------------------------------------------- .text:00039D08 .text:00039D08 loc_39D08 ; CODE XREF: __gconv_transform_ucs4le_internal+1A8j .text:00039D08 LDRB R3, [LR,#7] .text:00039D0C CMP R3, #0x80 .text:00039D10 BLS loc_39D24 .text:00039D14 TST R4, #2 .text:00039D18 BNE loc_39D30 .text:00039D1C MOV R5, #6 .text:00039D20 B loc_39D40 .text:00039D24 ; --------------------------------------------------------------------------- .text:00039D24 .text:00039D24 loc_39D24 ; CODE XREF: __gconv_transform_ucs4le_internal+1C8j .text:00039D24 LDR R3, [R5] .text:00039D28 ADD R3, R3, #4 .text:00039D2C STR R3, [R5] .text:00039D30 .text:00039D30 loc_39D30 ; CODE XREF: __gconv_transform_ucs4le_internal+1D0j .text:00039D30 LDR R3, [LR] .text:00039D34 MOV R5, #0 .text:00039D38 BIC R3, R3, #7 .text:00039D3C .text:00039D3C loc_39D3C ; CODE XREF: __gconv_transform_ucs4le_internal+1BCj .text:00039D3C STR R3, [LR] .text:00039D40 .text:00039D40 loc_39D40 ; CODE XREF: __gconv_transform_ucs4le_internal+1D8j .text:00039D40 CMP R5, #0 .text:00039D44 BEQ loc_39D70 .text:00039D48 B loc_3A128 .text:00039D4C ; --------------------------------------------------------------------------- .text:00039D4C .text:00039D4C loc_39D4C ; CODE XREF: __gconv_transform_ucs4le_internal+480j .text:00039D4C LDR R3, [R11,#var_30] .text:00039D50 STR R3, [R6] .text:00039D54 LDR R3, [R11,#arg_4] .text:00039D58 LDR R2, [R3] .text:00039D5C LDR R3, [R11,#var_2C] .text:00039D60 LDR R12, [R11,#arg_4] .text:00039D64 ADD R2, R2, R3 .text:00039D68 STR R2, [R12] .text:00039D6C B loc_3A064 .text:00039D70 ; --------------------------------------------------------------------------- .text:00039D70 .text:00039D70 loc_39D70 ; CODE XREF: __gconv_transform_ucs4le_internal+124j .text:00039D70 ; __gconv_transform_ucs4le_internal+134j ... .text:00039D70 MOV R1, #0 .text:00039D74 TST R9, #3 .text:00039D78 STR R1, [R11,#var_4C] .text:00039D7C BNE loc_39D98 .text:00039D80 LDR R3, [R6,#8] .text:00039D84 TST R3, #1 .text:00039D88 BEQ loc_39DA0 .text:00039D8C LDR R3, [R11,#var_30] .text:00039D90 TST R3, #3 .text:00039D94 BEQ loc_39DA0 .text:00039D98 .text:00039D98 loc_39D98 ; CODE XREF: __gconv_transform_ucs4le_internal+234j .text:00039D98 MOV R2, #1 .text:00039D9C STR R2, [R11,#var_4C] .text:00039DA0 .text:00039DA0 loc_39DA0 ; CODE XREF: __gconv_transform_ucs4le_internal+240j .text:00039DA0 ; __gconv_transform_ucs4le_internal+24Cj ... .text:00039DA0 LDR R9, [R7] .text:00039DA4 LDR R3, [R11,#var_4C] .text:00039DA8 LDR R8, [R11,#var_30] .text:00039DAC CMP R3, #0 .text:00039DB0 BNE loc_39E60 .text:00039DB4 LDR R12, [R11,#var_48] .text:00039DB8 MOV R1, R9 .text:00039DBC RSB R3, R8, R12 .text:00039DC0 LDR R12, [R11,#var_38] .text:00039DC4 MOV R0, R8 .text:00039DC8 RSB R2, R9, R12 .text:00039DCC CMP R3, R2 .text:00039DD0 MOVGE R3, R2 .text:00039DD4 CMP R3, #0 .text:00039DD8 ADDLT R3, R3, #3 .text:00039DDC LDR R2, [R11,#var_4C] .text:00039DE0 MOV R12, R3,ASR#2 .text:00039DE4 LDR R3, [R6,#8] .text:00039DE8 CMP R2, R12 .text:00039DEC BCS loc_39E34 .text:00039DF0 AND LR, R3, #2 .text:00039DF4 .text:00039DF4 loc_39DF4 ; CODE XREF: __gconv_transform_ucs4le_internal+2E8j .text:00039DF4 LDR R3, [R1] .text:00039DF8 CMP R3, #0 .text:00039DFC BGE loc_39E20 .text:00039E00 CMP R10, #0 .text:00039E04 BEQ loc_39F34 .text:00039E08 CMP LR, #0 .text:00039E0C BEQ loc_39F34 .text:00039E10 LDR R3, [R10] .text:00039E14 ADD R3, R3, #1 .text:00039E18 STR R3, [R10] .text:00039E1C B loc_39E24 .text:00039E20 ; --------------------------------------------------------------------------- .text:00039E20 .text:00039E20 loc_39E20 ; CODE XREF: __gconv_transform_ucs4le_internal+2B4j .text:00039E20 STR R3, [R0],#4 .text:00039E24 .text:00039E24 loc_39E24 ; CODE XREF: __gconv_transform_ucs4le_internal+2D4j .text:00039E24 ADD R2, R2, #1 .text:00039E28 ADD R1, R1, #4 .text:00039E2C CMP R2, R12 .text:00039E30 BCC loc_39DF4 .text:00039E34 .text:00039E34 loc_39E34 ; CODE XREF: __gconv_transform_ucs4le_internal+2A4j .text:00039E34 STR R1, [R7] .text:00039E38 LDR R1, [R11,#var_50] .text:00039E3C STR R0, [R1] .text:00039E40 LDR R2, [R11,#var_38] .text:00039E44 LDR R3, [R7] .text:00039E48 CMP R3, R2 .text:00039E4C BEQ loc_39F2C .text:00039E50 LDR R12, [R11,#var_48] .text:00039E54 ADD R3, R0, #4 .text:00039E58 CMP R3, R12 .text:00039E5C B loc_39F54 .text:00039E60 ; --------------------------------------------------------------------------- .text:00039E60 .text:00039E60 loc_39E60 ; CODE XREF: __gconv_transform_ucs4le_internal+268j .text:00039E60 MOV R1, R9 .text:00039E64 LDR R2, [R11,#var_48] .text:00039E68 MOV R0, R8 .text:00039E6C LDR R12, [R11,#var_38] .text:00039E70 RSB R3, R8, R2 .text:00039E74 RSB R2, R9, R12 .text:00039E78 CMP R3, R2 .text:00039E7C MOVGE R3, R2 .text:00039E80 MOV R12, #0 .text:00039E84 CMP R3, R12 .text:00039E88 ADDLT R3, R3, #3 .text:00039E8C MOV LR, R3,ASR#2 .text:00039E90 CMP R12, LR .text:00039E94 LDR R3, [R6,#8] .text:00039E98 BCS loc_39F10 .text:00039E9C AND R4, R3, #2 .text:00039EA0 .text:00039EA0 loc_39EA0 ; CODE XREF: __gconv_transform_ucs4le_internal+3C4j .text:00039EA0 LDRB R3, [R1,#3] .text:00039EA4 CMP R3, #0x80 .text:00039EA8 BLS loc_39EDC .text:00039EAC CMP R10, #0 .text:00039EB0 BEQ loc_39F34 .text:00039EB4 CMP R4, #0 .text:00039EB8 LDRNE R3, [R10] .text:00039EBC ADDNE R3, R3, #1 .text:00039EC0 STRNE R3, [R10] .text:00039EC4 BNE loc_39F00 .text:00039EC8 STR R1, [R7] .text:00039ECC LDR R1, [R11,#var_50] .text:00039ED0 MOV R5, #6 .text:00039ED4 STR R0, [R1] .text:00039ED8 B loc_39F60 .text:00039EDC ; --------------------------------------------------------------------------- .text:00039EDC .text:00039EDC loc_39EDC ; CODE XREF: __gconv_transform_ucs4le_internal+360j .text:00039EDC LDRB R3, [R1] .text:00039EE0 STRB R3, [R0] .text:00039EE4 LDRB R2, [R1,#1] .text:00039EE8 STRB R2, [R0,#1] .text:00039EEC LDRB R3, [R1,#2] .text:00039EF0 STRB R3, [R0,#2] .text:00039EF4 LDRB R2, [R1,#3] .text:00039EF8 STRB R2, [R0,#3] .text:00039EFC ADD R0, R0, #4 .text:00039F00 .text:00039F00 loc_39F00 ; CODE XREF: __gconv_transform_ucs4le_internal+37Cj .text:00039F00 ADD R12, R12, #1 .text:00039F04 ADD R1, R1, #4 .text:00039F08 CMP R12, LR .text:00039F0C BCC loc_39EA0 .text:00039F10 .text:00039F10 loc_39F10 ; CODE XREF: __gconv_transform_ucs4le_internal+350j .text:00039F10 STR R1, [R7] .text:00039F14 LDR R2, [R11,#var_50] .text:00039F18 STR R0, [R2] .text:00039F1C LDR R12, [R11,#var_38] .text:00039F20 LDR R3, [R7] .text:00039F24 CMP R3, R12 .text:00039F28 BNE loc_39F48 .text:00039F2C .text:00039F2C loc_39F2C ; CODE XREF: __gconv_transform_ucs4le_internal+304j .text:00039F2C MOV R0, #4 .text:00039F30 B loc_39F5C .text:00039F34 ; --------------------------------------------------------------------------- .text:00039F34 .text:00039F34 loc_39F34 ; CODE XREF: __gconv_transform_ucs4le_internal+2BCj .text:00039F34 ; __gconv_transform_ucs4le_internal+2C4j ... .text:00039F34 MOV R5, #6 .text:00039F38 B loc_39F60 .text:00039F38 ; --------------------------------------------------------------------------- .text:00039F3C off_39F3C DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ucs4le_internal+60r .text:00039F3C ; __gconv_transform_ucs4le_internal+144r .text:00039F3C ; "outbufstart == ((void *)0)" .text:00039F40 off_39F40 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs4le_internal+64r .text:00039F40 ; __gconv_transform_ucs4le_internal+148r .text:00039F40 ; "../iconv/skeleton.c" .text:00039F44 off_39F44 DCD a__gconv_tran_2 ; DATA XREF: __gconv_transform_ucs4le_internal+68r .text:00039F44 ; __gconv_transform_ucs4le_internal+150r .text:00039F44 ; "__gconv_transform_ucs4le_internal" .text:00039F48 ; --------------------------------------------------------------------------- .text:00039F48 .text:00039F48 loc_39F48 ; CODE XREF: __gconv_transform_ucs4le_internal+3E0j .text:00039F48 LDR R1, [R11,#var_48] .text:00039F4C ADD R3, R0, #4 .text:00039F50 CMP R3, R1 .text:00039F54 .text:00039F54 loc_39F54 ; CODE XREF: __gconv_transform_ucs4le_internal+314j .text:00039F54 MOVLS R0, #7 .text:00039F58 MOVHI R0, #5 .text:00039F5C .text:00039F5C loc_39F5C ; CODE XREF: __gconv_transform_ucs4le_internal+3E8j .text:00039F5C MOV R5, R0 .text:00039F60 .text:00039F60 loc_39F60 ; CODE XREF: __gconv_transform_ucs4le_internal+390j .text:00039F60 ; __gconv_transform_ucs4le_internal+3F0j .text:00039F60 LDR R2, [R11,#arg_0] .text:00039F64 CMP R2, #0 .text:00039F68 BNE loc_3A0B0 .text:00039F6C LDR R4, [R6,#0x20] .text:00039F70 CMP R4, #0 .text:00039F74 BEQ loc_39FB4 .text:00039F78 .text:00039F78 loc_39F78 ; CODE XREF: __gconv_transform_ucs4le_internal+468j .text:00039F78 LDR R0, [R4,#4] .text:00039F7C CMP R0, #0 .text:00039F80 BEQ loc_39FA8 .text:00039F84 BL _dl_mcount_wrapper_check .text:00039F88 LDR R3, [R11,#var_30] .text:00039F8C LDR R0, [R4,#0xC] .text:00039F90 STR R3, [SP,#0x60+var_60] .text:00039F94 MOV R1, R9 .text:00039F98 LDR R2, [R7] .text:00039F9C MOV R3, R8 .text:00039FA0 MOV LR, PC .text:00039FA4 LDR PC, [R4,#4] .text:00039FA8 .text:00039FA8 loc_39FA8 ; CODE XREF: __gconv_transform_ucs4le_internal+438j .text:00039FA8 LDR R4, [R4,#0x10] .text:00039FAC CMP R4, #0 .text:00039FB0 BNE loc_39F78 .text:00039FB4 .text:00039FB4 loc_39FB4 ; CODE XREF: __gconv_transform_ucs4le_internal+42Cj .text:00039FB4 ADD R2, R6, #8 .text:00039FB8 LDMIA R2, {R2,R3} .text:00039FBC ADD R3, R3, #1 .text:00039FC0 ANDS R4, R2, #1 .text:00039FC4 STR R3, [R6,#0xC] .text:00039FC8 BNE loc_39D4C .text:00039FCC LDR R3, [R11,#var_30] .text:00039FD0 CMP R3, R8 .text:00039FD4 BLS loc_3A054 .text:00039FD8 LDR R3, [R6] .text:00039FDC STR R3, [R11,#var_34] .text:00039FE0 LDR R0, [R11,#var_44] .text:00039FE4 BL _dl_mcount_wrapper_check .text:00039FE8 STR R4, [SP,#0x60+var_60] .text:00039FEC LDR R3, [R11,#arg_4] .text:00039FF0 STMFA SP, {R3,R4} .text:00039FF4 LDR R12, [R11,#arg_C] .text:00039FF8 STR R12, [SP,#0x60+var_54] .text:00039FFC LDR R0, [R11,#var_3C] .text:0003A000 LDR R1, [R11,#var_40] .text:0003A004 LDR R3, [R11,#var_30] .text:0003A008 LDR R12, [R11,#var_44] .text:0003A00C SUB R2, R11, #-var_34 .text:0003A010 MOV LR, PC .text:0003A014 MOV PC, R12 .text:0003A018 CMP R0, #4 .text:0003A01C BEQ loc_3A044 .text:0003A020 SUB R1, R11, #-var_34 .text:0003A024 LDMIA R1, {R1,R2} .text:0003A028 CMP R1, R2 .text:0003A02C LDRNE R3, [R7] .text:0003A030 RSBNE R2, R1, R2 .text:0003A034 RSBNE R3, R2, R3 .text:0003A038 STRNE R3, [R7] .text:0003A03C MOV R5, R0 .text:0003A040 B loc_3A054 .text:0003A044 ; --------------------------------------------------------------------------- .text:0003A044 .text:0003A044 loc_3A044 ; CODE XREF: __gconv_transform_ucs4le_internal+4D4j .text:0003A044 CMP R5, #5 .text:0003A048 LDREQ R3, [R6] .text:0003A04C MOVEQ R5, R4 .text:0003A050 STREQ R3, [R11,#var_30] .text:0003A054 .text:0003A054 loc_3A054 ; CODE XREF: __gconv_transform_ucs4le_internal+48Cj .text:0003A054 ; __gconv_transform_ucs4le_internal+4F8j .text:0003A054 CMP R5, #0 .text:0003A058 LDREQ R3, [R6] .text:0003A05C STREQ R3, [R11,#var_30] .text:0003A060 BEQ loc_39DA0 .text:0003A064 .text:0003A064 loc_3A064 ; CODE XREF: __gconv_transform_ucs4le_internal+224j .text:0003A064 LDR R1, [R11,#arg_C] .text:0003A068 CMP R5, #7 .text:0003A06C MOVNE R3, #0 .text:0003A070 MOVEQ R3, #1 .text:0003A074 CMP R1, #0 .text:0003A078 MOVEQ R3, #0 .text:0003A07C CMP R3, #0 .text:0003A080 BEQ loc_3A128 .text:0003A084 LDR R2, [R7] .text:0003A088 LDR R12, [R11,#var_38] .text:0003A08C RSB R3, R2, R12 .text:0003A090 CMP R3, #3 .text:0003A094 BLE loc_3A0D0 .text:0003A098 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003A09C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003A0A0 MOV R2, #0x254 .text:0003A0A4 LDR R3, =a__gconv_tran_2 ; "__gconv_transform_ucs4le_internal" .text:0003A0A8 ADD R2, R2, #3 .text:0003A0AC BL __assert_fail .text:0003A0B0 ; --------------------------------------------------------------------------- .text:0003A0B0 .text:0003A0B0 loc_3A0B0 ; CODE XREF: __gconv_transform_ucs4le_internal+420j .text:0003A0B0 LDR R3, [R11,#var_30] .text:0003A0B4 LDR R1, [R11,#arg_0] .text:0003A0B8 MOV R0, R5 .text:0003A0BC STR R3, [R1] .text:0003A0C0 B locret_3A12C .text:0003A0C0 ; --------------------------------------------------------------------------- .text:0003A0C4 off_3A0C4 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_ucs4le_internal+550r .text:0003A0C4 ; "inend - *inptrp < 4" .text:0003A0C8 off_3A0C8 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs4le_internal+554r .text:0003A0C8 ; "../iconv/skeleton.c" .text:0003A0CC off_3A0CC DCD a__gconv_tran_2 ; DATA XREF: __gconv_transform_ucs4le_internal+55Cr .text:0003A0CC ; "__gconv_transform_ucs4le_internal" .text:0003A0D0 ; --------------------------------------------------------------------------- .text:0003A0D0 .text:0003A0D0 loc_3A0D0 ; CODE XREF: __gconv_transform_ucs4le_internal+54Cj .text:0003A0D0 LDR R3, [R11,#var_38] .text:0003A0D4 MOV R0, #0 .text:0003A0D8 CMP R2, R3 .text:0003A0DC BCS loc_3A108 .text:0003A0E0 .text:0003A0E0 loc_3A0E0 ; CODE XREF: __gconv_transform_ucs4le_internal+5BCj .text:0003A0E0 LDR R3, [R7] .text:0003A0E4 LDR R2, [R6,#0x14] .text:0003A0E8 LDRB R1, [R3],#1 .text:0003A0EC ADD R2, R2, R0 .text:0003A0F0 STRB R1, [R2,#4] .text:0003A0F4 LDR R12, [R11,#var_38] .text:0003A0F8 ADD R0, R0, #1 .text:0003A0FC STR R3, [R7] .text:0003A100 CMP R3, R12 .text:0003A104 BCC loc_3A0E0 .text:0003A108 .text:0003A108 loc_3A108 ; CODE XREF: __gconv_transform_ucs4le_internal+594j .text:0003A108 LDR R2, [R6,#0x14] .text:0003A10C LDR R3, [R2] .text:0003A110 BIC R3, R3, #7 .text:0003A114 STR R3, [R2] .text:0003A118 LDR R1, [R6,#0x14] .text:0003A11C LDR R3, [R1] .text:0003A120 ORR R3, R3, R0 .text:0003A124 STR R3, [R1] .text:0003A128 .text:0003A128 loc_3A128 ; CODE XREF: __gconv_transform_ucs4le_internal+8Cj .text:0003A128 ; __gconv_transform_ucs4le_internal+D4j ... .text:0003A128 MOV R0, R5 .text:0003A12C .text:0003A12C locret_3A12C ; CODE XREF: __gconv_transform_ucs4le_internal+578j .text:0003A12C LDMDB R11, {R4-R11,SP,PC} .text:0003A12C ; End of function __gconv_transform_ucs4le_internal .text:0003A12C .text:0003A130 .text:0003A130 ; =============== S U B R O U T I N E ======================================= .text:0003A130 .text:0003A130 ; Attributes: bp-based frame .text:0003A130 .text:0003A130 EXPORT __gconv_transform_ascii_internal .text:0003A130 __gconv_transform_ascii_internal .text:0003A130 .text:0003A130 var_60 = -0x60 .text:0003A130 var_54 = -0x54 .text:0003A130 var_50 = -0x50 .text:0003A130 var_4C = -0x4C .text:0003A130 var_48 = -0x48 .text:0003A130 var_44 = -0x44 .text:0003A130 var_40 = -0x40 .text:0003A130 var_3C = -0x3C .text:0003A130 var_38 = -0x38 .text:0003A130 var_34 = -0x34 .text:0003A130 var_30 = -0x30 .text:0003A130 var_2C = -0x2C .text:0003A130 arg_0 = 4 .text:0003A130 arg_4 = 8 .text:0003A130 arg_8 = 0xC .text:0003A130 arg_C = 0x10 .text:0003A130 .text:0003A130 MOV R12, SP .text:0003A134 STMFD SP!, {R4-R12,LR,PC} .text:0003A138 SUB R11, R12, #4 .text:0003A13C MOV R5, R1 .text:0003A140 SUB SP, SP, #0x38 .text:0003A144 LDR R1, [R5,#8] .text:0003A148 MOV R12, #0 .text:0003A14C STR R12, [R11,#var_44] .text:0003A150 STR R3, [R11,#var_38] .text:0003A154 ADD R0, R0, #0x38 .text:0003A158 STR R0, [R11,#var_3C] .text:0003A15C MOV R8, R2 .text:0003A160 ADD R2, R5, #0x24 .text:0003A164 STR R2, [R11,#var_40] .text:0003A168 TST R1, #1 .text:0003A16C LDREQ R3, [R0,#0x14] .text:0003A170 STREQ R3, [R11,#var_44] .text:0003A174 LDR R3, [R11,#arg_8] .text:0003A178 CMP R3, #0 .text:0003A17C BEQ loc_3A204 .text:0003A180 LDR R12, [R11,#arg_0] .text:0003A184 MOV R7, #0 .text:0003A188 CMP R12, R7 .text:0003A18C BEQ loc_3A1A4 .text:0003A190 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003A194 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003A198 LDR R3, =a__gconv_tran_3 ; "__gconv_transform_ascii_internal" .text:0003A19C MOV R2, #0x130 .text:0003A1A0 BL __assert_fail .text:0003A1A4 ; --------------------------------------------------------------------------- .text:0003A1A4 .text:0003A1A4 loc_3A1A4 ; CODE XREF: __gconv_transform_ascii_internal+5Cj .text:0003A1A4 MOV R1, R7 .text:0003A1A8 LDR R0, [R5,#0x14] .text:0003A1AC MOV R2, #8 .text:0003A1B0 BL memset .text:0003A1B4 LDR R3, [R5,#8] .text:0003A1B8 TST R3, #1 .text:0003A1BC BNE loc_3A448 .text:0003A1C0 LDR R0, [R11,#var_44] .text:0003A1C4 BL _dl_mcount_wrapper_check .text:0003A1C8 STR R7, [SP,#0x60+var_60] .text:0003A1CC LDR R2, [R11,#arg_4] .text:0003A1D0 MOV R3, #1 .text:0003A1D4 STMFA SP, {R2,R3} .text:0003A1D8 LDR R3, [R11,#arg_C] .text:0003A1DC STR R3, [SP,#0x60+var_54] .text:0003A1E0 LDR R0, [R11,#var_3C] .text:0003A1E4 LDR R1, [R11,#var_40] .text:0003A1E8 MOV R2, R7 .text:0003A1EC LDR R12, [R11,#var_44] .text:0003A1F0 MOV R3, R2 .text:0003A1F4 MOV LR, PC .text:0003A1F8 MOV PC, R12 .text:0003A1FC MOV R7, R0 .text:0003A200 B loc_3A448 .text:0003A204 ; --------------------------------------------------------------------------- .text:0003A204 .text:0003A204 loc_3A204 ; CODE XREF: __gconv_transform_ascii_internal+4Cj .text:0003A204 LDR R2, [R11,#arg_0] .text:0003A208 CMP R2, #0 .text:0003A20C BNE loc_3A23C .text:0003A210 LDR R3, [R5] .text:0003A214 B loc_3A244 .text:0003A218 ; --------------------------------------------------------------------------- .text:0003A218 .text:0003A218 loc_3A218 ; CODE XREF: __gconv_transform_ascii_internal+25Cj .text:0003A218 LDR R3, [R11,#var_30] .text:0003A21C STR R3, [R5] .text:0003A220 LDR R3, [R11,#arg_4] .text:0003A224 LDR R2, [R3] .text:0003A228 LDR R3, [R11,#var_2C] .text:0003A22C LDR R12, [R11,#arg_4] .text:0003A230 ADD R2, R2, R3 .text:0003A234 STR R2, [R12] .text:0003A238 B loc_3A448 .text:0003A23C ; --------------------------------------------------------------------------- .text:0003A23C .text:0003A23C loc_3A23C ; CODE XREF: __gconv_transform_ascii_internal+DCj .text:0003A23C LDR R2, [R11,#arg_0] .text:0003A240 LDR R3, [R2] .text:0003A244 .text:0003A244 loc_3A244 ; CODE XREF: __gconv_transform_ascii_internal+E4j .text:0003A244 STR R3, [R11,#var_30] .text:0003A248 SUB R12, R11, #-var_30 .text:0003A24C STR R12, [R11,#var_50] .text:0003A250 LDR R3, [R11,#arg_4] .text:0003A254 CMP R3, #0 .text:0003A258 LDR R2, [R5,#4] .text:0003A25C MOV R3, #0 .text:0003A260 STR R3, [R11,#var_2C] .text:0003A264 SUBNE R10, R11, #-var_2C .text:0003A268 MOVEQ R10, #0 .text:0003A26C STR R2, [R11,#var_48] .text:0003A270 .text:0003A270 loc_3A270 ; CODE XREF: __gconv_transform_ascii_internal+308j .text:0003A270 LDR R9, [R8] .text:0003A274 MOV R3, #4 .text:0003A278 STR R3, [R11,#var_4C] .text:0003A27C LDR R6, [R11,#var_30] .text:0003A280 LDR R3, [R5,#8] .text:0003A284 MOV R1, R9 .text:0003A288 MOV R0, R6 .text:0003A28C AND R12, R3, #2 .text:0003A290 B loc_3A2B4 .text:0003A294 ; --------------------------------------------------------------------------- .text:0003A294 .text:0003A294 loc_3A294 ; CODE XREF: __gconv_transform_ascii_internal+1B8j .text:0003A294 LDR R3, [R10] .text:0003A298 ADD R1, R1, #1 .text:0003A29C ADD R3, R3, #1 .text:0003A2A0 STR R3, [R10] .text:0003A2A4 B loc_3A2B4 .text:0003A2A8 ; --------------------------------------------------------------------------- .text:0003A2A8 .text:0003A2A8 loc_3A2A8 ; CODE XREF: __gconv_transform_ascii_internal+1A8j .text:0003A2A8 LDRB R3, [R1],#1 .text:0003A2AC STR R3, [R0] .text:0003A2B0 MOV R0, R2 .text:0003A2B4 .text:0003A2B4 loc_3A2B4 ; CODE XREF: __gconv_transform_ascii_internal+160j .text:0003A2B4 ; __gconv_transform_ascii_internal+174j .text:0003A2B4 LDR R2, [R11,#var_38] .text:0003A2B8 CMP R1, R2 .text:0003A2BC BEQ loc_3A2F4 .text:0003A2C0 LDR R3, [R11,#var_48] .text:0003A2C4 ADD R2, R0, #4 .text:0003A2C8 CMP R2, R3 .text:0003A2CC BHI loc_3A324 .text:0003A2D0 LDRB R3, [R1] .text:0003A2D4 TST R3, #0x80 .text:0003A2D8 BEQ loc_3A2A8 .text:0003A2DC CMP R10, #0 .text:0003A2E0 BEQ loc_3A2EC .text:0003A2E4 CMP R12, #0 .text:0003A2E8 BNE loc_3A294 .text:0003A2EC .text:0003A2EC loc_3A2EC ; CODE XREF: __gconv_transform_ascii_internal+1B0j .text:0003A2EC MOV R12, #6 .text:0003A2F0 STR R12, [R11,#var_4C] .text:0003A2F4 .text:0003A2F4 loc_3A2F4 ; CODE XREF: __gconv_transform_ascii_internal+18Cj .text:0003A2F4 ; __gconv_transform_ascii_internal+1FCj .text:0003A2F4 STR R1, [R8] .text:0003A2F8 SUB R2, R11, #-var_50 .text:0003A2FC LDMIA R2, {R2,R7} .text:0003A300 STR R0, [R2] .text:0003A304 LDR R3, [R11,#arg_0] .text:0003A308 CMP R3, #0 .text:0003A30C BEQ loc_3A330 .text:0003A310 LDR R3, [R11,#var_30] .text:0003A314 LDR R12, [R11,#arg_0] .text:0003A318 MOV R0, R7 .text:0003A31C STR R3, [R12] .text:0003A320 B locret_3A44C .text:0003A324 ; --------------------------------------------------------------------------- .text:0003A324 .text:0003A324 loc_3A324 ; CODE XREF: __gconv_transform_ascii_internal+19Cj .text:0003A324 MOV R2, #5 .text:0003A328 STR R2, [R11,#var_4C] .text:0003A32C B loc_3A2F4 .text:0003A330 ; --------------------------------------------------------------------------- .text:0003A330 .text:0003A330 loc_3A330 ; CODE XREF: __gconv_transform_ascii_internal+1DCj .text:0003A330 LDR R4, [R5,#0x20] .text:0003A334 CMP R4, #0 .text:0003A338 BEQ loc_3A378 .text:0003A33C .text:0003A33C loc_3A33C ; CODE XREF: __gconv_transform_ascii_internal+244j .text:0003A33C LDR R0, [R4,#4] .text:0003A340 CMP R0, #0 .text:0003A344 BEQ loc_3A36C .text:0003A348 BL _dl_mcount_wrapper_check .text:0003A34C LDR R3, [R11,#var_30] .text:0003A350 LDR R0, [R4,#0xC] .text:0003A354 STR R3, [SP,#0x60+var_60] .text:0003A358 MOV R1, R9 .text:0003A35C LDR R2, [R8] .text:0003A360 MOV R3, R6 .text:0003A364 MOV LR, PC .text:0003A368 LDR PC, [R4,#4] .text:0003A36C .text:0003A36C loc_3A36C ; CODE XREF: __gconv_transform_ascii_internal+214j .text:0003A36C LDR R4, [R4,#0x10] .text:0003A370 CMP R4, #0 .text:0003A374 BNE loc_3A33C .text:0003A378 .text:0003A378 loc_3A378 ; CODE XREF: __gconv_transform_ascii_internal+208j .text:0003A378 ADD R2, R5, #8 .text:0003A37C LDMIA R2, {R2,R3} .text:0003A380 ADD R3, R3, #1 .text:0003A384 ANDS R4, R2, #1 .text:0003A388 STR R3, [R5,#0xC] .text:0003A38C BNE loc_3A218 .text:0003A390 LDR R3, [R11,#var_30] .text:0003A394 CMP R3, R6 .text:0003A398 BLS loc_3A428 .text:0003A39C LDR R3, [R5] .text:0003A3A0 STR R3, [R11,#var_34] .text:0003A3A4 LDR R0, [R11,#var_44] .text:0003A3A8 BL _dl_mcount_wrapper_check .text:0003A3AC STR R4, [SP,#0x60+var_60] .text:0003A3B0 LDR R3, [R11,#arg_4] .text:0003A3B4 STMFA SP, {R3,R4} .text:0003A3B8 LDR R12, [R11,#arg_C] .text:0003A3BC STR R12, [SP,#0x60+var_54] .text:0003A3C0 LDR R0, [R11,#var_3C] .text:0003A3C4 LDR R1, [R11,#var_40] .text:0003A3C8 LDR R3, [R11,#var_30] .text:0003A3CC LDR R12, [R11,#var_44] .text:0003A3D0 SUB R2, R11, #-var_34 .text:0003A3D4 MOV LR, PC .text:0003A3D8 MOV PC, R12 .text:0003A3DC CMP R0, #4 .text:0003A3E0 BEQ loc_3A414 .text:0003A3E4 SUB R2, R11, #-var_34 .text:0003A3E8 LDMIA R2, {R2,R3} .text:0003A3EC CMP R2, R3 .text:0003A3F0 BEQ loc_3A40C .text:0003A3F4 RSB R3, R2, R3 .text:0003A3F8 CMP R3, #0 .text:0003A3FC LDR R2, [R8] .text:0003A400 ADDLT R3, R3, #3 .text:0003A404 SUB R2, R2, R3,ASR#2 .text:0003A408 STR R2, [R8] .text:0003A40C .text:0003A40C loc_3A40C ; CODE XREF: __gconv_transform_ascii_internal+2C0j .text:0003A40C MOV R7, R0 .text:0003A410 B loc_3A428 .text:0003A414 ; --------------------------------------------------------------------------- .text:0003A414 .text:0003A414 loc_3A414 ; CODE XREF: __gconv_transform_ascii_internal+2B0j .text:0003A414 LDR R2, [R11,#var_4C] .text:0003A418 CMP R2, #5 .text:0003A41C LDREQ R3, [R5] .text:0003A420 MOVEQ R7, R4 .text:0003A424 STREQ R3, [R11,#var_30] .text:0003A428 .text:0003A428 loc_3A428 ; CODE XREF: __gconv_transform_ascii_internal+268j .text:0003A428 ; __gconv_transform_ascii_internal+2E0j .text:0003A428 CMP R7, #0 .text:0003A42C BNE loc_3A448 .text:0003A430 LDR R3, [R5] .text:0003A434 STR R3, [R11,#var_30] .text:0003A438 B loc_3A270 .text:0003A438 ; --------------------------------------------------------------------------- .text:0003A43C off_3A43C DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ascii_internal+60r .text:0003A43C ; "outbufstart == ((void *)0)" .text:0003A440 off_3A440 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ascii_internal+64r .text:0003A440 ; "../iconv/skeleton.c" .text:0003A444 off_3A444 DCD a__gconv_tran_3 ; DATA XREF: __gconv_transform_ascii_internal+68r .text:0003A444 ; "__gconv_transform_ascii_internal" .text:0003A448 ; --------------------------------------------------------------------------- .text:0003A448 .text:0003A448 loc_3A448 ; CODE XREF: __gconv_transform_ascii_internal+8Cj .text:0003A448 ; __gconv_transform_ascii_internal+D0j ... .text:0003A448 MOV R0, R7 .text:0003A44C .text:0003A44C locret_3A44C ; CODE XREF: __gconv_transform_ascii_internal+1F0j .text:0003A44C LDMDB R11, {R4-R11,SP,PC} .text:0003A44C ; End of function __gconv_transform_ascii_internal .text:0003A44C .text:0003A450 .text:0003A450 ; =============== S U B R O U T I N E ======================================= .text:0003A450 .text:0003A450 ; Attributes: bp-based frame .text:0003A450 .text:0003A450 EXPORT __gconv_transform_internal_ascii .text:0003A450 __gconv_transform_internal_ascii .text:0003A450 .text:0003A450 var_84 = -0x84 .text:0003A450 var_80 = -0x80 .text:0003A450 var_7C = -0x7C .text:0003A450 var_78 = -0x78 .text:0003A450 var_74 = -0x74 .text:0003A450 var_70 = -0x70 .text:0003A450 var_6C = -0x6C .text:0003A450 var_68 = -0x68 .text:0003A450 var_64 = -0x64 .text:0003A450 var_60 = -0x60 .text:0003A450 var_5C = -0x5C .text:0003A450 var_58 = -0x58 .text:0003A450 var_54 = -0x54 .text:0003A450 var_50 = -0x50 .text:0003A450 var_44 = -0x44 .text:0003A450 var_40 = -0x40 .text:0003A450 var_3C = -0x3C .text:0003A450 var_38 = -0x38 .text:0003A450 var_34 = -0x34 .text:0003A450 var_30 = -0x30 .text:0003A450 var_2C = -0x2C .text:0003A450 var_28 = -0x28 .text:0003A450 arg_0 = 4 .text:0003A450 arg_4 = 8 .text:0003A450 arg_8 = 0xC .text:0003A450 arg_C = 0x10 .text:0003A450 .text:0003A450 MOV R12, SP .text:0003A454 STMFD SP!, {R4-R12,LR,PC} .text:0003A458 SUB R11, R12, #4 .text:0003A45C MOV R6, R1 .text:0003A460 SUB SP, SP, #0x5C .text:0003A464 LDR R1, [R6,#8] .text:0003A468 MOV R12, #0 .text:0003A46C STR R12, [R11,#var_68] .text:0003A470 STR R0, [R11,#var_54] .text:0003A474 STR R2, [R11,#var_58] .text:0003A478 STR R3, [R11,#var_5C] .text:0003A47C ADD LR, R0, #0x38 .text:0003A480 STR LR, [R11,#var_60] .text:0003A484 TST R1, #1 .text:0003A488 ADD R0, R6, #0x24 .text:0003A48C STR R0, [R11,#var_64] .text:0003A490 LDREQ R1, [LR,#0x14] .text:0003A494 STREQ R1, [R11,#var_68] .text:0003A498 LDR R3, [R11,#arg_8] .text:0003A49C CMP R3, #0 .text:0003A4A0 BEQ loc_3A52C .text:0003A4A4 LDR R2, [R11,#arg_0] .text:0003A4A8 MOV R8, #0 .text:0003A4AC CMP R2, R8 .text:0003A4B0 BEQ loc_3A4C8 .text:0003A4B4 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003A4B8 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003A4BC LDR R3, =a__gconv_tran_4 ; "__gconv_transform_internal_ascii" .text:0003A4C0 MOV R2, #0x130 .text:0003A4C4 BL __assert_fail .text:0003A4C8 ; --------------------------------------------------------------------------- .text:0003A4C8 .text:0003A4C8 loc_3A4C8 ; CODE XREF: __gconv_transform_internal_ascii+60j .text:0003A4C8 MOV R1, R8 .text:0003A4CC LDR R0, [R6,#0x14] .text:0003A4D0 MOV R2, #8 .text:0003A4D4 BL memset .text:0003A4D8 LDR R3, [R6,#8] .text:0003A4DC TST R3, #1 .text:0003A4E0 BNE loc_3ABCC .text:0003A4E4 LDR R0, [R11,#var_68] .text:0003A4E8 BL _dl_mcount_wrapper_check .text:0003A4EC STR R8, [SP,#0x84+var_84] .text:0003A4F0 LDR R3, [R11,#arg_4] .text:0003A4F4 STR R3, [SP,#0x84+var_80] .text:0003A4F8 MOV R3, #1 .text:0003A4FC STR R3, [SP,#0x84+var_7C] .text:0003A500 LDR R12, [R11,#arg_C] .text:0003A504 STR R12, [SP,#0x84+var_78] .text:0003A508 LDR R0, [R11,#var_60] .text:0003A50C LDR R1, [R11,#var_64] .text:0003A510 MOV R2, R8 .text:0003A514 LDR R12, [R11,#var_68] .text:0003A518 MOV R3, R2 .text:0003A51C MOV LR, PC .text:0003A520 MOV PC, R12 .text:0003A524 MOV R8, R0 .text:0003A528 B loc_3ABCC .text:0003A52C ; --------------------------------------------------------------------------- .text:0003A52C .text:0003A52C loc_3A52C ; CODE XREF: __gconv_transform_internal_ascii+50j .text:0003A52C LDR LR, [R11,#arg_0] .text:0003A530 CMP LR, #0 .text:0003A534 LDREQ R3, [R6] .text:0003A538 LDRNE R0, [R11,#arg_0] .text:0003A53C LDRNE R3, [R0] .text:0003A540 STR R3, [R11,#var_34] .text:0003A544 LDR R1, [R11,#arg_4] .text:0003A548 MOV R3, #0 .text:0003A54C LDR R2, [R11,#arg_C] .text:0003A550 STR R3, [R11,#var_30] .text:0003A554 CMP R1, R3 .text:0003A558 SUBNE R10, R11, #-var_30 .text:0003A55C MOVEQ R10, #0 .text:0003A560 CMP R2, R3 .text:0003A564 SUB R3, R11, #-var_34 .text:0003A568 STR R3, [R11,#var_74] .text:0003A56C LDR R12, [R6,#4] .text:0003A570 STR R12, [R11,#var_6C] .text:0003A574 BEQ loc_3A88C .text:0003A578 LDR R9, [R6,#0x14] .text:0003A57C LDR R3, [R9] .text:0003A580 ANDS R1, R3, #7 .text:0003A584 BEQ loc_3A88C .text:0003A588 LDR LR, [R11,#arg_0] .text:0003A58C CMP LR, #0 .text:0003A590 BEQ loc_3A5AC .text:0003A594 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003A598 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003A59C MOV R2, #0x168 .text:0003A5A0 LDR R3, =a__gconv_tran_4 ; "__gconv_transform_internal_ascii" .text:0003A5A4 ADD R2, R2, #2 .text:0003A5A8 BL __assert_fail .text:0003A5AC ; --------------------------------------------------------------------------- .text:0003A5AC .text:0003A5AC loc_3A5AC ; CODE XREF: __gconv_transform_internal_ascii+140j .text:0003A5AC LDR R0, [R11,#var_58] .text:0003A5B0 LDR R2, [R11,#var_34] .text:0003A5B4 LDR R3, [R0] .text:0003A5B8 STR R2, [R11,#var_3C] .text:0003A5BC STR R3, [R11,#var_38] .text:0003A5C0 LDR R0, [R11,#arg_0] .text:0003A5C4 MOV R5, R0 .text:0003A5C8 CMP R5, R1 .text:0003A5CC LDR R1, [R6,#8] .text:0003A5D0 STR R1, [R11,#var_70] .text:0003A5D4 BCS loc_3A5FC .text:0003A5D8 SUB R1, R11, #-var_2C .text:0003A5DC .text:0003A5DC loc_3A5DC ; CODE XREF: __gconv_transform_internal_ascii+1A8j .text:0003A5DC ADD R3, R9, R5 .text:0003A5E0 LDRB R2, [R3,#4] .text:0003A5E4 STRB R2, [R1,R5] .text:0003A5E8 LDR R3, [R9] .text:0003A5EC ADD R5, R5, #1 .text:0003A5F0 AND R3, R3, #7 .text:0003A5F4 CMP R5, R3 .text:0003A5F8 BCC loc_3A5DC .text:0003A5FC .text:0003A5FC loc_3A5FC ; CODE XREF: __gconv_transform_internal_ascii+184j .text:0003A5FC LDR R1, [R11,#var_38] .text:0003A600 LDR R2, [R11,#var_5C] .text:0003A604 ADD R3, R1, #4 .text:0003A608 RSB R3, R5, R3 .text:0003A60C CMP R3, R2 .text:0003A610 BLS loc_3A65C .text:0003A614 MOV R3, R1 .text:0003A618 LDR R12, [R11,#var_58] .text:0003A61C CMP R3, R2 .text:0003A620 STR R2, [R12] .text:0003A624 BCS loc_3A654 .text:0003A628 .text:0003A628 loc_3A628 ; CODE XREF: __gconv_transform_internal_ascii+200j .text:0003A628 LDRB R3, [R3] .text:0003A62C ADD R2, R9, R5 .text:0003A630 STRB R3, [R2,#4] .text:0003A634 LDR R1, [R11,#var_38] .text:0003A638 ADD R5, R5, #1 .text:0003A63C LDR LR, [R11,#var_5C] .text:0003A640 ADD R1, R1, #1 .text:0003A644 MOV R3, R1 .text:0003A648 CMP R3, LR .text:0003A64C STR R1, [R11,#var_38] .text:0003A650 BCC loc_3A628 .text:0003A654 .text:0003A654 loc_3A654 ; CODE XREF: __gconv_transform_internal_ascii+1D4j .text:0003A654 MOV R8, #7 .text:0003A658 B loc_3A844 .text:0003A65C ; --------------------------------------------------------------------------- .text:0003A65C .text:0003A65C loc_3A65C ; CODE XREF: __gconv_transform_internal_ascii+1C0j .text:0003A65C LDR R3, [R11,#var_3C] .text:0003A660 LDR R1, [R11,#var_6C] .text:0003A664 CMP R3, R1 .text:0003A668 MOVCS R8, #5 .text:0003A66C BCS loc_3A844 .text:0003A670 SUB R7, R11, #-var_2C .text:0003A674 MOV R1, R7 .text:0003A678 .text:0003A678 loc_3A678 ; CODE XREF: __gconv_transform_internal_ascii+250j .text:0003A678 LDR R3, [R11,#var_38] .text:0003A67C LDRB R2, [R3] .text:0003A680 STRB R2, [R1,R5] .text:0003A684 LDR R3, [R11,#var_38] .text:0003A688 ADD R5, R5, #1 .text:0003A68C LDR R2, [R11,#var_5C] .text:0003A690 ADD R3, R3, #1 .text:0003A694 CMP R5, #3 .text:0003A698 CMPLS R3, R2 .text:0003A69C STR R3, [R11,#var_38] .text:0003A6A0 BCC loc_3A678 .text:0003A6A4 STR R7, [R11,#var_38] .text:0003A6A8 LDR R3, [R7] .text:0003A6AC ADD R8, R7, R5 .text:0003A6B0 CMP R3, #0x7F .text:0003A6B4 BLS loc_3A750 .text:0003A6B8 MOV R0, #6 .text:0003A6BC CMP R10, #0 .text:0003A6C0 BEQ loc_3A768 .text:0003A6C4 LDR R4, [R6,#0x20] .text:0003A6C8 B loc_3A6D0 .text:0003A6CC ; --------------------------------------------------------------------------- .text:0003A6CC .text:0003A6CC loc_3A6CC ; CODE XREF: __gconv_transform_internal_ascii+2C4j .text:0003A6CC LDR R4, [R4,#0x10] .text:0003A6D0 .text:0003A6D0 loc_3A6D0 ; CODE XREF: __gconv_transform_internal_ascii+278j .text:0003A6D0 CMP R4, #0 .text:0003A6D4 BEQ loc_3A718 .text:0003A6D8 LDR R0, [R4] .text:0003A6DC BL _dl_mcount_wrapper_check .text:0003A6E0 LDR R2, [R4,#0xC] .text:0003A6E4 SUB R3, R11, #-var_38 .text:0003A6E8 STMEA SP, {R3,R8} .text:0003A6EC SUB R3, R11, #-var_3C .text:0003A6F0 STR R3, [SP,#0x84+var_7C] .text:0003A6F4 STR R10, [SP,#0x84+var_78] .text:0003A6F8 LDR R12, [R11,#var_58] .text:0003A6FC LDR R0, [R11,#var_54] .text:0003A700 LDR R3, [R12] .text:0003A704 MOV R1, R6 .text:0003A708 MOV LR, PC .text:0003A70C LDR PC, [R4] .text:0003A710 CMP R0, #6 .text:0003A714 BEQ loc_3A6CC .text:0003A718 .text:0003A718 loc_3A718 ; CODE XREF: __gconv_transform_internal_ascii+284j .text:0003A718 CMP R0, #6 .text:0003A71C BNE loc_3A768 .text:0003A720 CMP R10, #0 .text:0003A724 BEQ loc_3A768 .text:0003A728 LDR LR, [R11,#var_70] .text:0003A72C TST LR, #2 .text:0003A730 BEQ loc_3A768 .text:0003A734 LDR R3, [R10] .text:0003A738 ADD R3, R3, #1 .text:0003A73C STR R3, [R10] .text:0003A740 LDR R2, [R11,#var_38] .text:0003A744 ADD R2, R2, #4 .text:0003A748 STR R2, [R11,#var_38] .text:0003A74C B loc_3A768 .text:0003A750 ; --------------------------------------------------------------------------- .text:0003A750 .text:0003A750 loc_3A750 ; CODE XREF: __gconv_transform_internal_ascii+264j .text:0003A750 LDR R3, [R11,#var_3C] .text:0003A754 LDRB R2, [R7] .text:0003A758 STRB R2, [R3],#1 .text:0003A75C ADD R1, R7, #4 .text:0003A760 STR R1, [R11,#var_38] .text:0003A764 STR R3, [R11,#var_3C] .text:0003A768 .text:0003A768 loc_3A768 ; CODE XREF: __gconv_transform_internal_ascii+270j .text:0003A768 ; __gconv_transform_internal_ascii+2CCj ... .text:0003A768 LDR R2, [R11,#var_38] .text:0003A76C CMP R2, R7 .text:0003A770 BEQ loc_3A7CC .text:0003A774 LDR R3, [R9] .text:0003A778 RSB R2, R7, R2 .text:0003A77C AND R1, R3, #7 .text:0003A780 CMP R2, R1 .text:0003A784 BGT loc_3A79C .text:0003A788 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003A78C LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003A790 LDR R3, =aInternal_ascii ; "internal_ascii_loop_single" .text:0003A794 MOV R2, #0x17C .text:0003A798 BL __assert_fail .text:0003A79C ; --------------------------------------------------------------------------- .text:0003A79C .text:0003A79C loc_3A79C ; CODE XREF: __gconv_transform_internal_ascii+334j .text:0003A79C LDR R0, [R11,#var_58] .text:0003A7A0 LDR R3, [R0] .text:0003A7A4 RSB R2, R1, R2 .text:0003A7A8 ADD R3, R3, R2 .text:0003A7AC STR R3, [R0] .text:0003A7B0 LDR R2, [R11,#var_3C] .text:0003A7B4 STR R2, [R11,#var_34] .text:0003A7B8 LDR R3, [R9] .text:0003A7BC MOV R0, #0 .text:0003A7C0 BIC R3, R3, #7 .text:0003A7C4 STR R3, [R9] .text:0003A7C8 B loc_3A840 .text:0003A7CC ; --------------------------------------------------------------------------- .text:0003A7CC .text:0003A7CC loc_3A7CC ; CODE XREF: __gconv_transform_internal_ascii+320j .text:0003A7CC CMP R0, #7 .text:0003A7D0 BNE loc_3A840 .text:0003A7D4 SUB R1, R11, #-var_28 .text:0003A7D8 CMP R8, R1 .text:0003A7DC BNE loc_3A7F8 .text:0003A7E0 LDR R0, =aInendBytebuf4 ; "inend != &bytebuf[4]" .text:0003A7E4 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003A7E8 MOV R2, #0x188 .text:0003A7EC LDR R3, =aInternal_ascii ; "internal_ascii_loop_single" .text:0003A7F0 ADD R2, R2, #2 .text:0003A7F4 BL __assert_fail .text:0003A7F8 ; --------------------------------------------------------------------------- .text:0003A7F8 .text:0003A7F8 loc_3A7F8 ; CODE XREF: __gconv_transform_internal_ascii+38Cj .text:0003A7F8 MOV R12, R2 .text:0003A7FC CMP R12, R8 .text:0003A800 LDR R3, [R9] .text:0003A804 RSB R1, R2, R8 .text:0003A808 LDR LR, [R11,#var_58] .text:0003A80C AND R3, R3, #7 .text:0003A810 LDR R2, [LR] .text:0003A814 RSB R1, R3, R1 .text:0003A818 ADD R2, R2, R1 .text:0003A81C STR R2, [LR] .text:0003A820 BCS loc_3A840 .text:0003A824 .text:0003A824 loc_3A824 ; CODE XREF: __gconv_transform_internal_ascii+3ECj .text:0003A824 LDRB R2, [R12],#1 .text:0003A828 ADD R3, R9, R5 .text:0003A82C STRB R2, [R3,#4] .text:0003A830 ADD R5, R5, #1 .text:0003A834 CMP R12, R8 .text:0003A838 STR R12, [R11,#var_38] .text:0003A83C BCC loc_3A824 .text:0003A840 .text:0003A840 loc_3A840 ; CODE XREF: __gconv_transform_internal_ascii+378j .text:0003A840 ; __gconv_transform_internal_ascii+380j ... .text:0003A840 MOV R8, R0 .text:0003A844 .text:0003A844 loc_3A844 ; CODE XREF: __gconv_transform_internal_ascii+208j .text:0003A844 ; __gconv_transform_internal_ascii+21Cj .text:0003A844 CMP R8, #0 .text:0003A848 BEQ loc_3A88C .text:0003A84C B loc_3ABCC .text:0003A850 ; --------------------------------------------------------------------------- .text:0003A850 .text:0003A850 loc_3A850 ; CODE XREF: __gconv_transform_internal_ascii+61Cj .text:0003A850 LDR R3, [R11,#var_34] .text:0003A854 STR R3, [R6] .text:0003A858 LDR R0, [R11,#arg_4] .text:0003A85C LDR R3, [R11,#var_30] .text:0003A860 LDR R2, [R0] .text:0003A864 ADD R2, R2, R3 .text:0003A868 STR R2, [R0] .text:0003A86C B loc_3AB10 .text:0003A86C ; --------------------------------------------------------------------------- .text:0003A870 off_3A870 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ascii+64r .text:0003A870 ; __gconv_transform_internal_ascii+144r .text:0003A870 ; "outbufstart == ((void *)0)" .text:0003A874 off_3A874 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ascii+68r .text:0003A874 ; __gconv_transform_internal_ascii+148r .text:0003A874 ; "../iconv/skeleton.c" .text:0003A878 off_3A878 DCD a__gconv_tran_4 ; DATA XREF: __gconv_transform_internal_ascii+6Cr .text:0003A878 ; __gconv_transform_internal_ascii+150r .text:0003A878 ; "__gconv_transform_internal_ascii" .text:0003A87C off_3A87C DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_internal_ascii+338r .text:0003A87C ; "inptr - bytebuf > (state->__count & 7)" .text:0003A880 off_3A880 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_ascii+33Cr .text:0003A880 ; __gconv_transform_internal_ascii+394r .text:0003A880 ; "../iconv/loop.c" .text:0003A884 off_3A884 DCD aInternal_ascii ; DATA XREF: __gconv_transform_internal_ascii+340r .text:0003A884 ; __gconv_transform_internal_ascii+39Cr .text:0003A884 ; "internal_ascii_loop_single" .text:0003A888 off_3A888 DCD aInendBytebuf4 ; DATA XREF: __gconv_transform_internal_ascii+390r .text:0003A888 ; "inend != &bytebuf[4]" .text:0003A88C ; --------------------------------------------------------------------------- .text:0003A88C .text:0003A88C loc_3A88C ; CODE XREF: __gconv_transform_internal_ascii+124j .text:0003A88C ; __gconv_transform_internal_ascii+134j ... .text:0003A88C LDR R1, [R11,#var_58] .text:0003A890 LDR R9, [R11,#var_34] .text:0003A894 LDR R7, [R1] .text:0003A898 STR R9, [R11,#var_44] .text:0003A89C STR R7, [R11,#var_40] .text:0003A8A0 MOV R5, #4 .text:0003A8A4 LDR R3, [R11,#var_5C] .text:0003A8A8 MOV R2, R7 .text:0003A8AC CMP R7, R3 .text:0003A8B0 LDR R8, [R6,#8] .text:0003A8B4 BEQ loc_3A9C4 .text:0003A8B8 LDR R12, [R11,#var_6C] .text:0003A8BC MOV R0, R9 .text:0003A8C0 CMP R9, R12 .text:0003A8C4 BCS loc_3AA04 .text:0003A8C8 ADD R1, R7, R5 .text:0003A8CC CMP R1, R3 .text:0003A8D0 BHI loc_3A9FC .text:0003A8D4 LDR R3, [R7] .text:0003A8D8 B loc_3A9B0 .text:0003A8DC ; --------------------------------------------------------------------------- .text:0003A8DC .text:0003A8DC loc_3A8DC ; CODE XREF: __gconv_transform_internal_ascii+570j .text:0003A8DC LDR R4, [R6,#0x20] .text:0003A8E0 B loc_3A8E8 .text:0003A8E4 ; --------------------------------------------------------------------------- .text:0003A8E4 .text:0003A8E4 loc_3A8E4 ; CODE XREF: __gconv_transform_internal_ascii+4E8j .text:0003A8E4 LDR R4, [R4,#0x10] .text:0003A8E8 .text:0003A8E8 loc_3A8E8 ; CODE XREF: __gconv_transform_internal_ascii+490j .text:0003A8E8 CMP R4, #0 .text:0003A8EC BEQ loc_3A93C .text:0003A8F0 LDR R0, [R4] .text:0003A8F4 BL _dl_mcount_wrapper_check .text:0003A8F8 LDR R2, [R4,#0xC] .text:0003A8FC SUB R3, R11, #-var_40 .text:0003A900 STR R3, [SP,#0x84+var_84] .text:0003A904 LDR LR, [R11,#var_5C] .text:0003A908 SUB R3, R11, #-var_44 .text:0003A90C STR R3, [SP,#0x84+var_7C] .text:0003A910 STR R10, [SP,#0x84+var_78] .text:0003A914 STR LR, [SP,#0x84+var_80] .text:0003A918 LDR R12, [R11,#var_58] .text:0003A91C LDR R0, [R11,#var_54] .text:0003A920 LDR R3, [R12] .text:0003A924 MOV R1, R6 .text:0003A928 MOV LR, PC .text:0003A92C LDR PC, [R4] .text:0003A930 MOV R5, R0 .text:0003A934 CMP R5, #6 .text:0003A938 BEQ loc_3A8E4 .text:0003A93C .text:0003A93C loc_3A93C ; CODE XREF: __gconv_transform_internal_ascii+49Cj .text:0003A93C CMP R5, #6 .text:0003A940 BNE loc_3A980 .text:0003A944 CMP R10, #0 .text:0003A948 BEQ loc_3A9C4 .text:0003A94C TST R8, #2 .text:0003A950 BEQ loc_3A9C4 .text:0003A954 LDR R3, [R10] .text:0003A958 ADD R3, R3, #1 .text:0003A95C STR R3, [R10] .text:0003A960 LDR R2, [R11,#var_40] .text:0003A964 ADD R2, R2, #4 .text:0003A968 STR R2, [R11,#var_40] .text:0003A96C B loc_3A980 .text:0003A970 ; --------------------------------------------------------------------------- .text:0003A970 .text:0003A970 loc_3A970 ; CODE XREF: __gconv_transform_internal_ascii+564j .text:0003A970 LDRB R3, [R2] .text:0003A974 STRB R3, [R0],#1 .text:0003A978 STR R1, [R11,#var_40] .text:0003A97C STR R0, [R11,#var_44] .text:0003A980 .text:0003A980 loc_3A980 ; CODE XREF: __gconv_transform_internal_ascii+4F0j .text:0003A980 ; __gconv_transform_internal_ascii+51Cj .text:0003A980 LDR R2, [R11,#var_40] .text:0003A984 LDR LR, [R11,#var_5C] .text:0003A988 CMP R2, LR .text:0003A98C BEQ loc_3A9C4 .text:0003A990 LDR R0, [R11,#var_44] .text:0003A994 LDR R1, [R11,#var_6C] .text:0003A998 CMP R0, R1 .text:0003A99C BCS loc_3AA04 .text:0003A9A0 ADD R1, R2, #4 .text:0003A9A4 CMP R1, LR .text:0003A9A8 BHI loc_3A9FC .text:0003A9AC LDR R3, [R2] .text:0003A9B0 .text:0003A9B0 loc_3A9B0 ; CODE XREF: __gconv_transform_internal_ascii+488j .text:0003A9B0 CMP R3, #0x7F .text:0003A9B4 BLS loc_3A970 .text:0003A9B8 MOV R5, #6 .text:0003A9BC CMP R10, #0 .text:0003A9C0 BNE loc_3A8DC .text:0003A9C4 .text:0003A9C4 loc_3A9C4 ; CODE XREF: __gconv_transform_internal_ascii+464j .text:0003A9C4 ; __gconv_transform_internal_ascii+4F8j ... .text:0003A9C4 LDR R3, [R11,#var_40] .text:0003A9C8 LDR R2, [R11,#var_58] .text:0003A9CC STR R3, [R2] .text:0003A9D0 LDR R2, [R11,#var_44] .text:0003A9D4 LDR R3, [R11,#var_74] .text:0003A9D8 STR R2, [R3] .text:0003A9DC MOV R8, R5 .text:0003A9E0 LDR R12, [R11,#arg_0] .text:0003A9E4 CMP R12, #0 .text:0003A9E8 BEQ loc_3AA0C .text:0003A9EC LDR R3, [R11,#var_34] .text:0003A9F0 MOV R0, R8 .text:0003A9F4 STR R3, [R12] .text:0003A9F8 B locret_3ABD0 .text:0003A9FC ; --------------------------------------------------------------------------- .text:0003A9FC .text:0003A9FC loc_3A9FC ; CODE XREF: __gconv_transform_internal_ascii+480j .text:0003A9FC ; __gconv_transform_internal_ascii+558j .text:0003A9FC MOV R5, #7 .text:0003AA00 B loc_3A9C4 .text:0003AA04 ; --------------------------------------------------------------------------- .text:0003AA04 .text:0003AA04 loc_3AA04 ; CODE XREF: __gconv_transform_internal_ascii+474j .text:0003AA04 ; __gconv_transform_internal_ascii+54Cj .text:0003AA04 MOV R5, #5 .text:0003AA08 B loc_3A9C4 .text:0003AA0C ; --------------------------------------------------------------------------- .text:0003AA0C .text:0003AA0C loc_3AA0C ; CODE XREF: __gconv_transform_internal_ascii+598j .text:0003AA0C LDR R4, [R6,#0x20] .text:0003AA10 CMP R4, #0 .text:0003AA14 BEQ loc_3AA58 .text:0003AA18 .text:0003AA18 loc_3AA18 ; CODE XREF: __gconv_transform_internal_ascii+604j .text:0003AA18 LDR R0, [R4,#4] .text:0003AA1C CMP R0, #0 .text:0003AA20 BEQ loc_3AA4C .text:0003AA24 BL _dl_mcount_wrapper_check .text:0003AA28 LDR R3, [R11,#var_34] .text:0003AA2C LDR R0, [R4,#0xC] .text:0003AA30 STR R3, [SP,#0x84+var_84] .text:0003AA34 LDR LR, [R11,#var_58] .text:0003AA38 MOV R1, R7 .text:0003AA3C LDR R2, [LR] .text:0003AA40 MOV R3, R9 .text:0003AA44 MOV LR, PC .text:0003AA48 LDR PC, [R4,#4] .text:0003AA4C .text:0003AA4C loc_3AA4C ; CODE XREF: __gconv_transform_internal_ascii+5D0j .text:0003AA4C LDR R4, [R4,#0x10] .text:0003AA50 CMP R4, #0 .text:0003AA54 BNE loc_3AA18 .text:0003AA58 .text:0003AA58 loc_3AA58 ; CODE XREF: __gconv_transform_internal_ascii+5C4j .text:0003AA58 ADD R2, R6, #8 .text:0003AA5C LDMIA R2, {R2,R3} .text:0003AA60 ADD R3, R3, #1 .text:0003AA64 ANDS R4, R2, #1 .text:0003AA68 STR R3, [R6,#0xC] .text:0003AA6C BNE loc_3A850 .text:0003AA70 LDR R3, [R11,#var_34] .text:0003AA74 CMP R3, R9 .text:0003AA78 BLS loc_3AB00 .text:0003AA7C LDR R3, [R6] .text:0003AA80 STR R3, [R11,#var_50] .text:0003AA84 LDR R0, [R11,#var_68] .text:0003AA88 BL _dl_mcount_wrapper_check .text:0003AA8C STR R4, [SP,#0x84+var_84] .text:0003AA90 LDR R0, [R11,#arg_4] .text:0003AA94 STMFA SP, {R0,R4} .text:0003AA98 LDR R1, [R11,#arg_C] .text:0003AA9C STR R1, [SP,#0x84+var_78] .text:0003AAA0 LDR R0, [R11,#var_60] .text:0003AAA4 LDR R1, [R11,#var_64] .text:0003AAA8 LDR R3, [R11,#var_34] .text:0003AAAC LDR R12, [R11,#var_68] .text:0003AAB0 SUB R2, R11, #-var_50 .text:0003AAB4 MOV LR, PC .text:0003AAB8 MOV PC, R12 .text:0003AABC CMP R0, #4 .text:0003AAC0 BEQ loc_3AAF0 .text:0003AAC4 LDR R1, [R11,#var_50] .text:0003AAC8 LDR R2, [R11,#var_34] .text:0003AACC CMP R1, R2 .text:0003AAD0 BEQ loc_3AAE8 .text:0003AAD4 LDR LR, [R11,#var_58] .text:0003AAD8 LDR R3, [LR] .text:0003AADC RSB R2, R1, R2 .text:0003AAE0 SUB R3, R3, R2,LSL#2 .text:0003AAE4 STR R3, [LR] .text:0003AAE8 .text:0003AAE8 loc_3AAE8 ; CODE XREF: __gconv_transform_internal_ascii+680j .text:0003AAE8 MOV R8, R0 .text:0003AAEC B loc_3AB00 .text:0003AAF0 ; --------------------------------------------------------------------------- .text:0003AAF0 .text:0003AAF0 loc_3AAF0 ; CODE XREF: __gconv_transform_internal_ascii+670j .text:0003AAF0 CMP R5, #5 .text:0003AAF4 LDREQ R3, [R6] .text:0003AAF8 MOVEQ R8, R4 .text:0003AAFC STREQ R3, [R11,#var_34] .text:0003AB00 .text:0003AB00 loc_3AB00 ; CODE XREF: __gconv_transform_internal_ascii+628j .text:0003AB00 ; __gconv_transform_internal_ascii+69Cj .text:0003AB00 CMP R8, #0 .text:0003AB04 LDREQ R3, [R6] .text:0003AB08 STREQ R3, [R11,#var_34] .text:0003AB0C BEQ loc_3A88C .text:0003AB10 .text:0003AB10 loc_3AB10 ; CODE XREF: __gconv_transform_internal_ascii+41Cj .text:0003AB10 LDR R0, [R11,#arg_C] .text:0003AB14 CMP R8, #7 .text:0003AB18 MOVNE R3, #0 .text:0003AB1C MOVEQ R3, #1 .text:0003AB20 CMP R0, #0 .text:0003AB24 MOVEQ R3, #0 .text:0003AB28 CMP R3, #0 .text:0003AB2C BEQ loc_3ABCC .text:0003AB30 LDR R1, [R11,#var_58] .text:0003AB34 LDR R12, [R11,#var_5C] .text:0003AB38 LDR R2, [R1] .text:0003AB3C RSB R3, R2, R12 .text:0003AB40 CMP R3, #3 .text:0003AB44 BLE loc_3AB6C .text:0003AB48 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003AB4C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003AB50 MOV R2, #0x254 .text:0003AB54 LDR R3, =a__gconv_tran_4 ; "__gconv_transform_internal_ascii" .text:0003AB58 ADD R2, R2, #3 .text:0003AB5C BL __assert_fail .text:0003AB5C ; --------------------------------------------------------------------------- .text:0003AB60 off_3AB60 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ascii+6F8r .text:0003AB60 ; "inend - *inptrp < 4" .text:0003AB64 off_3AB64 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ascii+6FCr .text:0003AB64 ; "../iconv/skeleton.c" .text:0003AB68 off_3AB68 DCD a__gconv_tran_4 ; DATA XREF: __gconv_transform_internal_ascii+704r .text:0003AB68 ; "__gconv_transform_internal_ascii" .text:0003AB6C ; --------------------------------------------------------------------------- .text:0003AB6C .text:0003AB6C loc_3AB6C ; CODE XREF: __gconv_transform_internal_ascii+6F4j .text:0003AB6C LDR LR, [R11,#var_5C] .text:0003AB70 MOV R0, #0 .text:0003AB74 CMP R2, LR .text:0003AB78 BCS loc_3ABAC .text:0003AB7C .text:0003AB7C loc_3AB7C ; CODE XREF: __gconv_transform_internal_ascii+758j .text:0003AB7C LDR R1, [R11,#var_58] .text:0003AB80 LDR R2, [R6,#0x14] .text:0003AB84 LDR R3, [R1] .text:0003AB88 LDRB R1, [R3],#1 .text:0003AB8C ADD R2, R2, R0 .text:0003AB90 STRB R1, [R2,#4] .text:0003AB94 LDR R2, [R11,#var_5C] .text:0003AB98 ADD R0, R0, #1 .text:0003AB9C LDR R12, [R11,#var_58] .text:0003ABA0 CMP R3, R2 .text:0003ABA4 STR R3, [R12] .text:0003ABA8 BCC loc_3AB7C .text:0003ABAC .text:0003ABAC loc_3ABAC ; CODE XREF: __gconv_transform_internal_ascii+728j .text:0003ABAC LDR R2, [R6,#0x14] .text:0003ABB0 LDR R3, [R2] .text:0003ABB4 BIC R3, R3, #7 .text:0003ABB8 STR R3, [R2] .text:0003ABBC LDR R1, [R6,#0x14] .text:0003ABC0 LDR R3, [R1] .text:0003ABC4 ORR R3, R3, R0 .text:0003ABC8 STR R3, [R1] .text:0003ABCC .text:0003ABCC loc_3ABCC ; CODE XREF: __gconv_transform_internal_ascii+90j .text:0003ABCC ; __gconv_transform_internal_ascii+D8j ... .text:0003ABCC MOV R0, R8 .text:0003ABD0 .text:0003ABD0 locret_3ABD0 ; CODE XREF: __gconv_transform_internal_ascii+5A8j .text:0003ABD0 LDMDB R11, {R4-R11,SP,PC} .text:0003ABD0 ; End of function __gconv_transform_internal_ascii .text:0003ABD0 .text:0003ABD4 .text:0003ABD4 ; =============== S U B R O U T I N E ======================================= .text:0003ABD4 .text:0003ABD4 ; Attributes: bp-based frame .text:0003ABD4 .text:0003ABD4 EXPORT __gconv_transform_internal_utf8 .text:0003ABD4 __gconv_transform_internal_utf8 .text:0003ABD4 .text:0003ABD4 var_70 = -0x70 .text:0003ABD4 var_6C = -0x6C .text:0003ABD4 var_68 = -0x68 .text:0003ABD4 var_64 = -0x64 .text:0003ABD4 var_60 = -0x60 .text:0003ABD4 var_5C = -0x5C .text:0003ABD4 var_58 = -0x58 .text:0003ABD4 var_54 = -0x54 .text:0003ABD4 var_50 = -0x50 .text:0003ABD4 var_4C = -0x4C .text:0003ABD4 var_48 = -0x48 .text:0003ABD4 var_44 = -0x44 .text:0003ABD4 var_40 = -0x40 .text:0003ABD4 var_3C = -0x3C .text:0003ABD4 var_38 = -0x38 .text:0003ABD4 var_34 = -0x34 .text:0003ABD4 var_30 = -0x30 .text:0003ABD4 var_2C = -0x2C .text:0003ABD4 var_28 = -0x28 .text:0003ABD4 arg_0 = 4 .text:0003ABD4 arg_4 = 8 .text:0003ABD4 arg_8 = 0xC .text:0003ABD4 arg_C = 0x10 .text:0003ABD4 .text:0003ABD4 MOV R12, SP .text:0003ABD8 STMFD SP!, {R4-R12,LR,PC} .text:0003ABDC SUB R11, R12, #4 .text:0003ABE0 MOV R10, R1 .text:0003ABE4 SUB SP, SP, #0x48 .text:0003ABE8 LDR R1, [R10,#8] .text:0003ABEC MOV R4, #0 .text:0003ABF0 STR R4, [R11,#var_40] .text:0003ABF4 MOV R9, R2 .text:0003ABF8 ADD R0, R0, #0x38 .text:0003ABFC STR R0, [R11,#var_38] .text:0003AC00 MOV R7, R3 .text:0003AC04 ADD R5, R10, #0x24 .text:0003AC08 STR R5, [R11,#var_3C] .text:0003AC0C TST R1, #1 .text:0003AC10 LDREQ R6, [R0,#0x14] .text:0003AC14 STREQ R6, [R11,#var_40] .text:0003AC18 LDR R3, [R11,#arg_8] .text:0003AC1C CMP R3, #0 .text:0003AC20 BEQ loc_3ACAC .text:0003AC24 LDR R12, [R11,#arg_0] .text:0003AC28 MOV R6, #0 .text:0003AC2C CMP R12, R6 .text:0003AC30 BEQ loc_3AC48 .text:0003AC34 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003AC38 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003AC3C LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003AC40 MOV R2, #0x130 .text:0003AC44 BL __assert_fail .text:0003AC48 ; --------------------------------------------------------------------------- .text:0003AC48 .text:0003AC48 loc_3AC48 ; CODE XREF: __gconv_transform_internal_utf8+5Cj .text:0003AC48 MOV R1, R6 .text:0003AC4C LDR R0, [R10,#0x14] .text:0003AC50 MOV R2, #8 .text:0003AC54 BL memset .text:0003AC58 LDR R3, [R10,#8] .text:0003AC5C TST R3, #1 .text:0003AC60 BNE loc_3B460 .text:0003AC64 LDR R0, [R11,#var_40] .text:0003AC68 BL _dl_mcount_wrapper_check .text:0003AC6C STR R6, [SP,#0x70+var_70] .text:0003AC70 LDR LR, [R11,#arg_4] .text:0003AC74 MOV R3, #1 .text:0003AC78 STR R3, [SP,#0x70+var_68] .text:0003AC7C STR LR, [SP,#0x70+var_6C] .text:0003AC80 LDR R1, [R11,#arg_C] .text:0003AC84 STR R1, [SP,#0x70+var_64] .text:0003AC88 LDR R0, [R11,#var_38] .text:0003AC8C LDR R1, [R11,#var_3C] .text:0003AC90 MOV R2, R6 .text:0003AC94 LDR R4, [R11,#var_40] .text:0003AC98 MOV R3, R2 .text:0003AC9C MOV LR, PC .text:0003ACA0 MOV PC, R4 .text:0003ACA4 MOV R6, R0 .text:0003ACA8 B loc_3B460 .text:0003ACAC ; --------------------------------------------------------------------------- .text:0003ACAC .text:0003ACAC loc_3ACAC ; CODE XREF: __gconv_transform_internal_utf8+4Cj .text:0003ACAC LDR R5, [R11,#arg_0] .text:0003ACB0 CMP R5, #0 .text:0003ACB4 LDREQ R3, [R10] .text:0003ACB8 LDRNE R6, [R11,#arg_0] .text:0003ACBC LDRNE R3, [R6] .text:0003ACC0 STR R3, [R11,#var_30] .text:0003ACC4 SUB LR, R11, #-var_30 .text:0003ACC8 STR LR, [R11,#var_60] .text:0003ACCC LDR R12, [R11,#arg_C] .text:0003ACD0 LDR R1, [R10,#4] .text:0003ACD4 CMP R12, #0 .text:0003ACD8 STR R1, [R11,#var_44] .text:0003ACDC BEQ loc_3AF84 .text:0003ACE0 LDR R8, [R10,#0x14] .text:0003ACE4 LDR R3, [R8] .text:0003ACE8 ANDS R3, R3, #7 .text:0003ACEC BEQ loc_3AF84 .text:0003ACF0 LDR R2, [R11,#arg_0] .text:0003ACF4 CMP R2, #0 .text:0003ACF8 BEQ loc_3AD14 .text:0003ACFC LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003AD00 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003AD04 MOV R2, #0x168 .text:0003AD08 LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003AD0C ADD R2, R2, #2 .text:0003AD10 BL __assert_fail .text:0003AD14 ; --------------------------------------------------------------------------- .text:0003AD14 .text:0003AD14 loc_3AD14 ; CODE XREF: __gconv_transform_internal_utf8+124j .text:0003AD14 LDR R4, [R11,#arg_0] .text:0003AD18 STR R4, [R11,#var_4C] .text:0003AD1C LDR R6, [R11,#var_30] .text:0003AD20 MOV R0, R4 .text:0003AD24 CMP R0, R3 .text:0003AD28 LDR R4, [R9] .text:0003AD2C BCS loc_3AD54 .text:0003AD30 SUB R1, R11, #-var_2C .text:0003AD34 .text:0003AD34 loc_3AD34 ; CODE XREF: __gconv_transform_internal_utf8+17Cj .text:0003AD34 ADD R3, R8, R0 .text:0003AD38 LDRB R2, [R3,#4] .text:0003AD3C STRB R2, [R1,R0] .text:0003AD40 LDR R3, [R8] .text:0003AD44 ADD R0, R0, #1 .text:0003AD48 AND R3, R3, #7 .text:0003AD4C CMP R0, R3 .text:0003AD50 BCC loc_3AD34 .text:0003AD54 .text:0003AD54 loc_3AD54 ; CODE XREF: __gconv_transform_internal_utf8+158j .text:0003AD54 ADD R3, R4, #4 .text:0003AD58 RSB R3, R0, R3 .text:0003AD5C CMP R3, R7 .text:0003AD60 BLS loc_3AD90 .text:0003AD64 CMP R4, R7 .text:0003AD68 STR R7, [R9] .text:0003AD6C BCS loc_3AD88 .text:0003AD70 .text:0003AD70 loc_3AD70 ; CODE XREF: __gconv_transform_internal_utf8+1B0j .text:0003AD70 ADD R2, R8, R0 .text:0003AD74 LDRB R3, [R4],#1 .text:0003AD78 ADD R0, R0, #1 .text:0003AD7C CMP R4, R7 .text:0003AD80 STRB R3, [R2,#4] .text:0003AD84 BCC loc_3AD70 .text:0003AD88 .text:0003AD88 loc_3AD88 ; CODE XREF: __gconv_transform_internal_utf8+198j .text:0003AD88 MOV R6, #7 .text:0003AD8C B loc_3AF6C .text:0003AD90 ; --------------------------------------------------------------------------- .text:0003AD90 .text:0003AD90 loc_3AD90 ; CODE XREF: __gconv_transform_internal_utf8+18Cj .text:0003AD90 LDR R5, [R11,#var_44] .text:0003AD94 CMP R6, R5 .text:0003AD98 BCC loc_3ADB0 .text:0003AD9C MOV R6, #5 .text:0003ADA0 B loc_3AF6C .text:0003ADA4 ; --------------------------------------------------------------------------- .text:0003ADA4 .text:0003ADA4 loc_3ADA4 ; CODE XREF: __gconv_transform_internal_utf8+27Cj .text:0003ADA4 MOV R12, #5 .text:0003ADA8 STR R12, [R11,#var_4C] .text:0003ADAC B loc_3AE94 .text:0003ADB0 ; --------------------------------------------------------------------------- .text:0003ADB0 .text:0003ADB0 loc_3ADB0 ; CODE XREF: __gconv_transform_internal_utf8+1C4j .text:0003ADB0 SUB R2, R11, #-var_2C .text:0003ADB4 MOV R1, R2 .text:0003ADB8 .text:0003ADB8 loc_3ADB8 ; CODE XREF: __gconv_transform_internal_utf8+1F8j .text:0003ADB8 LDRB R3, [R4],#1 .text:0003ADBC STRB R3, [R1,R0] .text:0003ADC0 ADD R0, R0, #1 .text:0003ADC4 CMP R0, #3 .text:0003ADC8 CMPLS R4, R7 .text:0003ADCC BCC loc_3ADB8 .text:0003ADD0 MOV R4, R2 .text:0003ADD4 ADD LR, R4, R0 .text:0003ADD8 STR LR, [R11,#var_48] .text:0003ADDC LDR R12, [R11,#var_2C] .text:0003ADE0 CMP R12, #0 .text:0003ADE4 BGE loc_3AE00 .text:0003ADE8 LDR R0, =aWc0x7fffffff ; "wc <= 0x7fffffff" .text:0003ADEC LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003ADF0 MOV R2, #0x170 .text:0003ADF4 LDR R3, =aInternal_utf8_ ; "internal_utf8_loop_single" .text:0003ADF8 ADD R2, R2, #1 .text:0003ADFC BL __assert_fail .text:0003AE00 ; --------------------------------------------------------------------------- .text:0003AE00 .text:0003AE00 loc_3AE00 ; CODE XREF: __gconv_transform_internal_utf8+210j .text:0003AE00 CMP R12, #0x7F .text:0003AE04 ADDLS R4, R4, #4 .text:0003AE08 STRLSB R12, [R6],#1 .text:0003AE0C BLS loc_3AE94 .text:0003AE10 MOV R1, #2 .text:0003AE14 MOV LR, #0xB .text:0003AE18 MOV R3, 0xFFFFFFFF .text:0003AE1C ANDS R5, R12, R3,LSL LR .text:0003AE20 BEQ loc_3AE44 .text:0003AE24 MOV R5, R3 .text:0003AE28 .text:0003AE28 loc_3AE28 ; CODE XREF: __gconv_transform_internal_utf8+26Cj .text:0003AE28 ADD LR, LR, #5 .text:0003AE2C ADD R1, R1, #1 .text:0003AE30 CMP R1, #5 .text:0003AE34 BHI loc_3AE44 .text:0003AE38 MOV R3, R5,LSL LR .text:0003AE3C TST R12, R3 .text:0003AE40 BNE loc_3AE28 .text:0003AE44 .text:0003AE44 loc_3AE44 ; CODE XREF: __gconv_transform_internal_utf8+24Cj .text:0003AE44 ; __gconv_transform_internal_utf8+260j .text:0003AE44 LDR LR, [R11,#var_44] .text:0003AE48 ADD R3, R6, R1 .text:0003AE4C CMP R3, LR .text:0003AE50 BHI loc_3ADA4 .text:0003AE54 MOV LR, R6 .text:0003AE58 MOV R6, R3 .text:0003AE5C MOV R3, 0xFFFFFF00 .text:0003AE60 MOV R3, R3,ASR R1 .text:0003AE64 SUB R1, R1, #1 .text:0003AE68 ADD R4, R2, #4 .text:0003AE6C STRB R3, [LR] .text:0003AE70 .text:0003AE70 loc_3AE70 ; CODE XREF: __gconv_transform_internal_utf8+2B0j .text:0003AE70 AND R3, R12, #0x3F .text:0003AE74 MOV R12, R12,LSR#6 .text:0003AE78 ORR R3, R3, #0x80 .text:0003AE7C STRB R3, [LR,R1] .text:0003AE80 SUBS R1, R1, #1 .text:0003AE84 BNE loc_3AE70 .text:0003AE88 LDRB R3, [LR] .text:0003AE8C ORR R3, R3, R12 .text:0003AE90 STRB R3, [LR] .text:0003AE94 .text:0003AE94 loc_3AE94 ; CODE XREF: __gconv_transform_internal_utf8+1D8j .text:0003AE94 ; __gconv_transform_internal_utf8+238j .text:0003AE94 CMP R4, R2 .text:0003AE98 BEQ loc_3AEF0 .text:0003AE9C LDR R3, [R8] .text:0003AEA0 RSB R1, R2, R4 .text:0003AEA4 AND R2, R3, #7 .text:0003AEA8 CMP R1, R2 .text:0003AEAC BGT loc_3AEC4 .text:0003AEB0 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003AEB4 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003AEB8 LDR R3, =aInternal_utf8_ ; "internal_utf8_loop_single" .text:0003AEBC MOV R2, #0x17C .text:0003AEC0 BL __assert_fail .text:0003AEC4 ; --------------------------------------------------------------------------- .text:0003AEC4 .text:0003AEC4 loc_3AEC4 ; CODE XREF: __gconv_transform_internal_utf8+2D8j .text:0003AEC4 STR R6, [R11,#var_30] .text:0003AEC8 LDR R3, [R9] .text:0003AECC RSB R2, R2, R1 .text:0003AED0 ADD R3, R3, R2 .text:0003AED4 STR R3, [R9] .text:0003AED8 LDR R2, [R8] .text:0003AEDC MOV R1, #0 .text:0003AEE0 STR R1, [R11,#var_4C] .text:0003AEE4 BIC R2, R2, #7 .text:0003AEE8 STR R2, [R8] .text:0003AEEC B loc_3AF68 .text:0003AEF0 ; --------------------------------------------------------------------------- .text:0003AEF0 .text:0003AEF0 loc_3AEF0 ; CODE XREF: __gconv_transform_internal_utf8+2C4j .text:0003AEF0 LDR R2, [R11,#var_4C] .text:0003AEF4 CMP R2, #7 .text:0003AEF8 BNE loc_3AF68 .text:0003AEFC LDR R3, [R11,#var_48] .text:0003AF00 SUB R5, R11, #-var_28 .text:0003AF04 CMP R3, R5 .text:0003AF08 BNE loc_3AF24 .text:0003AF0C LDR R0, =aInendBytebuf4 ; "inend != &bytebuf[4]" .text:0003AF10 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003AF14 MOV R2, #0x188 .text:0003AF18 LDR R3, =aInternal_utf8_ ; "internal_utf8_loop_single" .text:0003AF1C ADD R2, R2, #2 .text:0003AF20 BL __assert_fail .text:0003AF24 ; --------------------------------------------------------------------------- .text:0003AF24 .text:0003AF24 loc_3AF24 ; CODE XREF: __gconv_transform_internal_utf8+334j .text:0003AF24 LDR R6, [R11,#var_48] .text:0003AF28 LDR R3, [R8] .text:0003AF2C LDR R2, [R9] .text:0003AF30 CMP R4, R6 .text:0003AF34 RSB R1, R4, R6 .text:0003AF38 AND R3, R3, #7 .text:0003AF3C RSB R1, R3, R1 .text:0003AF40 ADD R2, R2, R1 .text:0003AF44 STR R2, [R9] .text:0003AF48 BCS loc_3AF68 .text:0003AF4C .text:0003AF4C loc_3AF4C ; CODE XREF: __gconv_transform_internal_utf8+390j .text:0003AF4C LDRB R3, [R4],#1 .text:0003AF50 ADD R2, R8, R0 .text:0003AF54 LDR R12, [R11,#var_48] .text:0003AF58 ADD R0, R0, #1 .text:0003AF5C CMP R4, R12 .text:0003AF60 STRB R3, [R2,#4] .text:0003AF64 BCC loc_3AF4C .text:0003AF68 .text:0003AF68 loc_3AF68 ; CODE XREF: __gconv_transform_internal_utf8+318j .text:0003AF68 ; __gconv_transform_internal_utf8+324j ... .text:0003AF68 LDR R6, [R11,#var_4C] .text:0003AF6C .text:0003AF6C loc_3AF6C ; CODE XREF: __gconv_transform_internal_utf8+1B8j .text:0003AF6C ; __gconv_transform_internal_utf8+1CCj .text:0003AF6C CMP R6, #0 .text:0003AF70 BEQ loc_3AF84 .text:0003AF74 B loc_3B460 .text:0003AF78 ; --------------------------------------------------------------------------- .text:0003AF78 .text:0003AF78 loc_3AF78 ; CODE XREF: __gconv_transform_internal_utf8+5B8j .text:0003AF78 LDR R3, [R11,#var_30] .text:0003AF7C STR R3, [R10] .text:0003AF80 B loc_3B3A8 .text:0003AF84 ; --------------------------------------------------------------------------- .text:0003AF84 .text:0003AF84 loc_3AF84 ; CODE XREF: __gconv_transform_internal_utf8+108j .text:0003AF84 ; __gconv_transform_internal_utf8+118j ... .text:0003AF84 MOV R1, #0x80000000 .text:0003AF88 MOV R1, R1,ASR#20 .text:0003AF8C STR R1, [R11,#var_5C] .text:0003AF90 .text:0003AF90 loc_3AF90 ; CODE XREF: __gconv_transform_internal_utf8+7D0j .text:0003AF90 LDR R5, [R9] .text:0003AF94 MOV R2, #4 .text:0003AF98 STR R2, [R11,#var_50] .text:0003AF9C LDR R8, [R11,#var_30] .text:0003AFA0 MOV R1, R5 .text:0003AFA4 MOV R12, R8 .text:0003AFA8 CMP R5, R7 .text:0003AFAC BEQ loc_3B0D4 .text:0003AFB0 LDR R3, [R11,#var_44] .text:0003AFB4 CMP R8, R3 .text:0003AFB8 BCS loc_3B100 .text:0003AFBC ADD R3, R5, R2 .text:0003AFC0 CMP R3, R7 .text:0003AFC4 MOV R4, R3 .text:0003AFC8 MOVHI R4, #7 .text:0003AFCC STRHI R4, [R11,#var_50] .text:0003AFD0 BHI loc_3B0D4 .text:0003AFD4 .text:0003AFD4 loc_3AFD4 ; CODE XREF: __gconv_transform_internal_utf8+4F4j .text:0003AFD4 LDR R2, [R1] .text:0003AFD8 CMP R2, #0 .text:0003AFDC BGE loc_3B01C .text:0003AFE0 LDR R0, =aWc0x7fffffff ; "wc <= 0x7fffffff" .text:0003AFE4 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003AFE8 MOV R2, #0x108 .text:0003AFEC LDR R3, =aInternal_utf_0 ; "internal_utf8_loop" .text:0003AFF0 ADD R2, R2, #3 .text:0003AFF4 BL __assert_fail .text:0003AFF4 ; --------------------------------------------------------------------------- .text:0003AFF8 off_3AFF8 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_utf8+60r .text:0003AFF8 ; __gconv_transform_internal_utf8+128r .text:0003AFF8 ; "outbufstart == ((void *)0)" .text:0003AFFC off_3AFFC DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_utf8+64r .text:0003AFFC ; __gconv_transform_internal_utf8+12Cr .text:0003AFFC ; "../iconv/skeleton.c" .text:0003B000 off_3B000 DCD a__gconv_tran_5 ; DATA XREF: __gconv_transform_internal_utf8+68r .text:0003B000 ; __gconv_transform_internal_utf8+134r .text:0003B000 ; "__gconv_transform_internal_utf8" .text:0003B004 off_3B004 DCD aWc0x7fffffff ; DATA XREF: __gconv_transform_internal_utf8+214r .text:0003B004 ; __gconv_transform_internal_utf8+40Cr .text:0003B004 ; "wc <= 0x7fffffff" .text:0003B008 off_3B008 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_utf8+218r .text:0003B008 ; __gconv_transform_internal_utf8+2E0r ... .text:0003B008 ; "../iconv/loop.c" .text:0003B00C off_3B00C DCD aInternal_utf8_ ; DATA XREF: __gconv_transform_internal_utf8+220r .text:0003B00C ; __gconv_transform_internal_utf8+2E4r ... .text:0003B00C ; "internal_utf8_loop_single" .text:0003B010 off_3B010 DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_internal_utf8+2DCr .text:0003B010 ; "inptr - bytebuf > (state->__count & 7)" .text:0003B014 off_3B014 DCD aInendBytebuf4 ; DATA XREF: __gconv_transform_internal_utf8+338r .text:0003B014 ; "inend != &bytebuf[4]" .text:0003B018 off_3B018 DCD aInternal_utf_0 ; DATA XREF: __gconv_transform_internal_utf8+418r .text:0003B018 ; "internal_utf8_loop" .text:0003B01C ; --------------------------------------------------------------------------- .text:0003B01C .text:0003B01C loc_3B01C ; CODE XREF: __gconv_transform_internal_utf8+408j .text:0003B01C CMP R2, #0x7F .text:0003B020 STRLSB R2, [R12],#1 .text:0003B024 BLS loc_3B0A4 .text:0003B028 LDR R6, [R11,#var_5C] .text:0003B02C MOV R0, #2 .text:0003B030 TST R2, R6 .text:0003B034 BEQ loc_3B058 .text:0003B038 MOV LR, 0xFFFFFFFF .text:0003B03C MOV R3, #0xB .text:0003B040 .text:0003B040 loc_3B040 ; CODE XREF: __gconv_transform_internal_utf8+480j .text:0003B040 ADD R3, R3, #5 .text:0003B044 ADD R0, R0, #1 .text:0003B048 CMP R0, #5 .text:0003B04C BHI loc_3B058 .text:0003B050 ANDS R6, R2, LR,LSL R3 .text:0003B054 BNE loc_3B040 .text:0003B058 .text:0003B058 loc_3B058 ; CODE XREF: __gconv_transform_internal_utf8+460j .text:0003B058 ; __gconv_transform_internal_utf8+478j .text:0003B058 LDR LR, [R11,#var_44] .text:0003B05C ADD R3, R12, R0 .text:0003B060 CMP R3, LR .text:0003B064 BHI loc_3B10C .text:0003B068 MOV R1, R12 .text:0003B06C MOV R12, R3 .text:0003B070 MOV R3, 0xFFFFFF00 .text:0003B074 MOV R3, R3,ASR R0 .text:0003B078 SUB R0, R0, #1 .text:0003B07C STRB R3, [R1] .text:0003B080 .text:0003B080 loc_3B080 ; CODE XREF: __gconv_transform_internal_utf8+4C0j .text:0003B080 AND R3, R2, #0x3F .text:0003B084 MOV R2, R2,LSR#6 .text:0003B088 ORR R3, R3, #0x80 .text:0003B08C STRB R3, [R1,R0] .text:0003B090 SUBS R0, R0, #1 .text:0003B094 BNE loc_3B080 .text:0003B098 LDRB R3, [R1] .text:0003B09C ORR R3, R3, R2 .text:0003B0A0 STRB R3, [R1] .text:0003B0A4 .text:0003B0A4 loc_3B0A4 ; CODE XREF: __gconv_transform_internal_utf8+450j .text:0003B0A4 MOV R1, R4 .text:0003B0A8 CMP R1, R7 .text:0003B0AC BEQ loc_3B0D4 .text:0003B0B0 LDR R2, [R11,#var_44] .text:0003B0B4 CMP R12, R2 .text:0003B0B8 BCS loc_3B100 .text:0003B0BC ADD R3, R1, #4 .text:0003B0C0 CMP R3, R7 .text:0003B0C4 MOV R4, R3 .text:0003B0C8 BLS loc_3AFD4 .text:0003B0CC MOV R3, #7 .text:0003B0D0 STR R3, [R11,#var_50] .text:0003B0D4 .text:0003B0D4 loc_3B0D4 ; CODE XREF: __gconv_transform_internal_utf8+3D8j .text:0003B0D4 ; __gconv_transform_internal_utf8+3FCj ... .text:0003B0D4 STR R1, [R9] .text:0003B0D8 LDR R4, [R11,#var_60] .text:0003B0DC LDR R6, [R11,#var_50] .text:0003B0E0 STR R12, [R4] .text:0003B0E4 LDR R12, [R11,#arg_0] .text:0003B0E8 CMP R12, #0 .text:0003B0EC BEQ loc_3B130 .text:0003B0F0 LDR R3, [R11,#var_30] .text:0003B0F4 MOV R0, R6 .text:0003B0F8 STR R3, [R12] .text:0003B0FC B locret_3B464 .text:0003B100 ; --------------------------------------------------------------------------- .text:0003B100 .text:0003B100 loc_3B100 ; CODE XREF: __gconv_transform_internal_utf8+3E4j .text:0003B100 ; __gconv_transform_internal_utf8+4E4j .text:0003B100 MOV LR, #5 .text:0003B104 STR LR, [R11,#var_50] .text:0003B108 B loc_3B0D4 .text:0003B10C ; --------------------------------------------------------------------------- .text:0003B10C .text:0003B10C loc_3B10C ; CODE XREF: __gconv_transform_internal_utf8+490j .text:0003B10C MOV R2, #5 .text:0003B110 STR R2, [R11,#var_50] .text:0003B114 B loc_3B0D4 .text:0003B118 ; --------------------------------------------------------------------------- .text:0003B118 .text:0003B118 loc_3B118 ; CODE XREF: __gconv_transform_internal_utf8+6D8j .text:0003B118 MOV R3, #5 .text:0003B11C STR R3, [R11,#var_58] .text:0003B120 B loc_3B318 .text:0003B124 ; --------------------------------------------------------------------------- .text:0003B124 .text:0003B124 loc_3B124 ; CODE XREF: __gconv_transform_internal_utf8+658j .text:0003B124 ; __gconv_transform_internal_utf8+728j .text:0003B124 MOV R4, #5 .text:0003B128 STR R4, [R11,#var_58] .text:0003B12C B loc_3B318 .text:0003B130 ; --------------------------------------------------------------------------- .text:0003B130 .text:0003B130 loc_3B130 ; CODE XREF: __gconv_transform_internal_utf8+518j .text:0003B130 LDR R4, [R10,#0x20] .text:0003B134 CMP R4, #0 .text:0003B138 BEQ loc_3B178 .text:0003B13C .text:0003B13C loc_3B13C ; CODE XREF: __gconv_transform_internal_utf8+5A0j .text:0003B13C LDR R0, [R4,#4] .text:0003B140 CMP R0, #0 .text:0003B144 BEQ loc_3B16C .text:0003B148 BL _dl_mcount_wrapper_check .text:0003B14C LDR R3, [R11,#var_30] .text:0003B150 LDR R0, [R4,#0xC] .text:0003B154 STR R3, [SP,#0x70+var_70] .text:0003B158 MOV R1, R5 .text:0003B15C LDR R2, [R9] .text:0003B160 MOV R3, R8 .text:0003B164 MOV LR, PC .text:0003B168 LDR PC, [R4,#4] .text:0003B16C .text:0003B16C loc_3B16C ; CODE XREF: __gconv_transform_internal_utf8+570j .text:0003B16C LDR R4, [R4,#0x10] .text:0003B170 CMP R4, #0 .text:0003B174 BNE loc_3B13C .text:0003B178 .text:0003B178 loc_3B178 ; CODE XREF: __gconv_transform_internal_utf8+564j .text:0003B178 ADD R2, R10, #8 .text:0003B17C LDMIA R2, {R2,R3} .text:0003B180 ADD R3, R3, #1 .text:0003B184 ANDS R4, R2, #1 .text:0003B188 STR R3, [R10,#0xC] .text:0003B18C BNE loc_3AF78 .text:0003B190 LDR R3, [R11,#var_30] .text:0003B194 CMP R3, R8 .text:0003B198 BLS loc_3B398 .text:0003B19C LDR R3, [R10] .text:0003B1A0 STR R3, [R11,#var_34] .text:0003B1A4 LDR R0, [R11,#var_40] .text:0003B1A8 BL _dl_mcount_wrapper_check .text:0003B1AC STR R4, [SP,#0x70+var_70] .text:0003B1B0 LDR R12, [R11,#arg_4] .text:0003B1B4 STR R4, [SP,#0x70+var_68] .text:0003B1B8 STR R12, [SP,#0x70+var_6C] .text:0003B1BC LDR LR, [R11,#arg_C] .text:0003B1C0 STR LR, [SP,#0x70+var_64] .text:0003B1C4 LDR R0, [R11,#var_38] .text:0003B1C8 LDR R1, [R11,#var_3C] .text:0003B1CC LDR R3, [R11,#var_30] .text:0003B1D0 LDR R12, [R11,#var_40] .text:0003B1D4 SUB R2, R11, #-var_34 .text:0003B1D8 MOV LR, PC .text:0003B1DC MOV PC, R12 .text:0003B1E0 STR R0, [R11,#var_54] .text:0003B1E4 CMP R0, #4 .text:0003B1E8 BEQ loc_3B384 .text:0003B1EC SUB R2, R11, #-var_34 .text:0003B1F0 LDMIA R2, {R2,R3} .text:0003B1F4 CMP R2, R3 .text:0003B1F8 BEQ loc_3B37C .text:0003B1FC MOV LR, #4 .text:0003B200 MOV R1, R5 .text:0003B204 STR LR, [R11,#var_58] .text:0003B208 MOV LR, R8 .text:0003B20C MOV R6, #0x80000000 .text:0003B210 MOV R6, R6,ASR#20 .text:0003B214 STR R5, [R9] .text:0003B218 CMP R1, R7 .text:0003B21C MOV R5, R2 .text:0003B220 STR R8, [R11,#var_30] .text:0003B224 BEQ loc_3B318 .text:0003B228 CMP R8, R5 .text:0003B22C BCS loc_3B124 .text:0003B230 ADD R3, R1, #4 .text:0003B234 CMP R3, R7 .text:0003B238 MOV R0, R3 .text:0003B23C MOVHI R2, #7 .text:0003B240 STRHI R2, [R11,#var_58] .text:0003B244 BHI loc_3B318 .text:0003B248 .text:0003B248 loc_3B248 ; CODE XREF: __gconv_transform_internal_utf8+738j .text:0003B248 LDR R2, [R1] .text:0003B24C CMP R2, #0 .text:0003B250 BGE loc_3B26C .text:0003B254 LDR R0, =aWc0x7fffffff ; "wc <= 0x7fffffff" .text:0003B258 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003B25C MOV R2, #0x108 .text:0003B260 LDR R3, =aInternal_utf_0 ; "internal_utf8_loop" .text:0003B264 ADD R2, R2, #3 .text:0003B268 BL __assert_fail .text:0003B26C ; --------------------------------------------------------------------------- .text:0003B26C .text:0003B26C loc_3B26C ; CODE XREF: __gconv_transform_internal_utf8+67Cj .text:0003B26C CMP R2, #0x7F .text:0003B270 STRLSB R2, [LR],#1 .text:0003B274 BLS loc_3B2EC .text:0003B278 MOV R12, #2 .text:0003B27C TST R2, R6 .text:0003B280 BEQ loc_3B2A4 .text:0003B284 MOV R3, #0xB .text:0003B288 .text:0003B288 loc_3B288 ; CODE XREF: __gconv_transform_internal_utf8+6CCj .text:0003B288 ADD R3, R3, #5 .text:0003B28C ADD R12, R12, #1 .text:0003B290 CMP R12, #5 .text:0003B294 BHI loc_3B2A4 .text:0003B298 MOV R4, 0xFFFFFFFF .text:0003B29C ANDS R4, R2, R4,LSL R3 .text:0003B2A0 BNE loc_3B288 .text:0003B2A4 .text:0003B2A4 loc_3B2A4 ; CODE XREF: __gconv_transform_internal_utf8+6ACj .text:0003B2A4 ; __gconv_transform_internal_utf8+6C0j .text:0003B2A4 ADD R3, LR, R12 .text:0003B2A8 CMP R3, R5 .text:0003B2AC BHI loc_3B118 .text:0003B2B0 MOV R1, LR .text:0003B2B4 MOV LR, R3 .text:0003B2B8 MOV R3, 0xFFFFFF00 .text:0003B2BC MOV R3, R3,ASR R12 .text:0003B2C0 SUB R12, R12, #1 .text:0003B2C4 STRB R3, [R1] .text:0003B2C8 .text:0003B2C8 loc_3B2C8 ; CODE XREF: __gconv_transform_internal_utf8+708j .text:0003B2C8 AND R3, R2, #0x3F .text:0003B2CC MOV R2, R2,LSR#6 .text:0003B2D0 ORR R3, R3, #0x80 .text:0003B2D4 STRB R3, [R1,R12] .text:0003B2D8 SUBS R12, R12, #1 .text:0003B2DC BNE loc_3B2C8 .text:0003B2E0 LDRB R3, [R1] .text:0003B2E4 ORR R3, R3, R2 .text:0003B2E8 STRB R3, [R1] .text:0003B2EC .text:0003B2EC loc_3B2EC ; CODE XREF: __gconv_transform_internal_utf8+6A0j .text:0003B2EC MOV R1, R0 .text:0003B2F0 CMP R1, R7 .text:0003B2F4 BEQ loc_3B318 .text:0003B2F8 CMP LR, R5 .text:0003B2FC BCS loc_3B124 .text:0003B300 ADD R3, R1, #4 .text:0003B304 CMP R3, R7 .text:0003B308 MOV R0, R3 .text:0003B30C BLS loc_3B248 .text:0003B310 MOV R5, #7 .text:0003B314 STR R5, [R11,#var_58] .text:0003B318 .text:0003B318 loc_3B318 ; CODE XREF: __gconv_transform_internal_utf8+54Cj .text:0003B318 ; __gconv_transform_internal_utf8+558j ... .text:0003B318 STR R1, [R9] .text:0003B31C LDR R6, [R11,#var_60] .text:0003B320 STR LR, [R6] .text:0003B324 LDR R2, [R11,#var_30] .text:0003B328 LDR R3, [R11,#var_34] .text:0003B32C CMP R2, R3 .text:0003B330 BEQ loc_3B34C .text:0003B334 LDR R0, =aOutbufOuterr ; "outbuf == outerr" .text:0003B338 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003B33C MOV R2, #0x220 .text:0003B340 LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003B344 ADD R2, R2, #3 .text:0003B348 BL __assert_fail .text:0003B34C ; --------------------------------------------------------------------------- .text:0003B34C .text:0003B34C loc_3B34C ; CODE XREF: __gconv_transform_internal_utf8+75Cj .text:0003B34C LDR R12, [R11,#var_58] .text:0003B350 CMP R12, #5 .text:0003B354 BEQ loc_3B36C .text:0003B358 LDR R0, =aNstatus__gconv ; "nstatus == __GCONV_FULL_OUTPUT" .text:0003B35C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003B360 LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003B364 MOV R2, #0x224 .text:0003B368 BL __assert_fail .text:0003B36C ; --------------------------------------------------------------------------- .text:0003B36C .text:0003B36C loc_3B36C ; CODE XREF: __gconv_transform_internal_utf8+780j .text:0003B36C CMP R2, R8 .text:0003B370 LDREQ R3, [R10,#0xC] .text:0003B374 SUBEQ R3, R3, #1 .text:0003B378 STREQ R3, [R10,#0xC] .text:0003B37C .text:0003B37C loc_3B37C ; CODE XREF: __gconv_transform_internal_utf8+624j .text:0003B37C LDR R6, [R11,#var_54] .text:0003B380 B loc_3B398 .text:0003B384 ; --------------------------------------------------------------------------- .text:0003B384 .text:0003B384 loc_3B384 ; CODE XREF: __gconv_transform_internal_utf8+614j .text:0003B384 LDR LR, [R11,#var_50] .text:0003B388 CMP LR, #5 .text:0003B38C LDREQ R3, [R10] .text:0003B390 MOVEQ R6, R4 .text:0003B394 STREQ R3, [R11,#var_30] .text:0003B398 .text:0003B398 loc_3B398 ; CODE XREF: __gconv_transform_internal_utf8+5C4j .text:0003B398 ; __gconv_transform_internal_utf8+7ACj .text:0003B398 CMP R6, #0 .text:0003B39C LDREQ R3, [R10] .text:0003B3A0 STREQ R3, [R11,#var_30] .text:0003B3A4 BEQ loc_3AF90 .text:0003B3A8 .text:0003B3A8 loc_3B3A8 ; CODE XREF: __gconv_transform_internal_utf8+3ACj .text:0003B3A8 LDR R1, [R11,#arg_C] .text:0003B3AC CMP R6, #7 .text:0003B3B0 MOVNE R3, #0 .text:0003B3B4 MOVEQ R3, #1 .text:0003B3B8 CMP R1, #0 .text:0003B3BC MOVEQ R3, #0 .text:0003B3C0 CMP R3, #0 .text:0003B3C4 BEQ loc_3B460 .text:0003B3C8 LDR R2, [R9] .text:0003B3CC RSB R3, R2, R7 .text:0003B3D0 CMP R3, #3 .text:0003B3D4 BLE loc_3B410 .text:0003B3D8 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003B3DC LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003B3E0 MOV R2, #0x254 .text:0003B3E4 LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003B3E8 ADD R2, R2, #3 .text:0003B3EC BL __assert_fail .text:0003B3EC ; --------------------------------------------------------------------------- .text:0003B3F0 off_3B3F0 DCD aWc0x7fffffff ; DATA XREF: __gconv_transform_internal_utf8+680r .text:0003B3F0 ; "wc <= 0x7fffffff" .text:0003B3F4 off_3B3F4 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_utf8+684r .text:0003B3F4 ; "../iconv/loop.c" .text:0003B3F8 off_3B3F8 DCD aInternal_utf_0 ; DATA XREF: __gconv_transform_internal_utf8+68Cr .text:0003B3F8 ; "internal_utf8_loop" .text:0003B3FC off_3B3FC DCD aOutbufOuterr ; DATA XREF: __gconv_transform_internal_utf8+760r .text:0003B3FC ; "outbuf == outerr" .text:0003B400 off_3B400 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_utf8+764r .text:0003B400 ; __gconv_transform_internal_utf8+788r ... .text:0003B400 ; "../iconv/skeleton.c" .text:0003B404 off_3B404 DCD a__gconv_tran_5 ; DATA XREF: __gconv_transform_internal_utf8+76Cr .text:0003B404 ; __gconv_transform_internal_utf8+78Cr ... .text:0003B404 ; "__gconv_transform_internal_utf8" .text:0003B408 off_3B408 DCD aNstatus__gconv ; DATA XREF: __gconv_transform_internal_utf8+784r .text:0003B408 ; "nstatus == __GCONV_FULL_OUTPUT" .text:0003B40C off_3B40C DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_utf8+804r .text:0003B40C ; "inend - *inptrp < 4" .text:0003B410 ; --------------------------------------------------------------------------- .text:0003B410 .text:0003B410 loc_3B410 ; CODE XREF: __gconv_transform_internal_utf8+800j .text:0003B410 MOV R0, #0 .text:0003B414 CMP R2, R7 .text:0003B418 BCS loc_3B440 .text:0003B41C .text:0003B41C loc_3B41C ; CODE XREF: __gconv_transform_internal_utf8+868j .text:0003B41C LDR R3, [R9] .text:0003B420 LDR R2, [R10,#0x14] .text:0003B424 LDRB R1, [R3],#1 .text:0003B428 ADD R2, R2, R0 .text:0003B42C STRB R1, [R2,#4] .text:0003B430 ADD R0, R0, #1 .text:0003B434 CMP R3, R7 .text:0003B438 STR R3, [R9] .text:0003B43C BCC loc_3B41C .text:0003B440 .text:0003B440 loc_3B440 ; CODE XREF: __gconv_transform_internal_utf8+844j .text:0003B440 LDR R2, [R10,#0x14] .text:0003B444 LDR R3, [R2] .text:0003B448 BIC R3, R3, #7 .text:0003B44C STR R3, [R2] .text:0003B450 LDR R1, [R10,#0x14] .text:0003B454 LDR R3, [R1] .text:0003B458 ORR R3, R3, R0 .text:0003B45C STR R3, [R1] .text:0003B460 .text:0003B460 loc_3B460 ; CODE XREF: __gconv_transform_internal_utf8+8Cj .text:0003B460 ; __gconv_transform_internal_utf8+D4j ... .text:0003B460 MOV R0, R6 .text:0003B464 .text:0003B464 locret_3B464 ; CODE XREF: __gconv_transform_internal_utf8+528j .text:0003B464 LDMDB R11, {R4-R11,SP,PC} .text:0003B464 ; End of function __gconv_transform_internal_utf8 .text:0003B464 .text:0003B468 .text:0003B468 ; =============== S U B R O U T I N E ======================================= .text:0003B468 .text:0003B468 ; Attributes: bp-based frame .text:0003B468 .text:0003B468 EXPORT __gconv_transform_utf8_internal .text:0003B468 __gconv_transform_utf8_internal .text:0003B468 .text:0003B468 var_80 = -0x80 .text:0003B468 var_74 = -0x74 .text:0003B468 var_70 = -0x70 .text:0003B468 var_6C = -0x6C .text:0003B468 var_68 = -0x68 .text:0003B468 var_64 = -0x64 .text:0003B468 var_60 = -0x60 .text:0003B468 var_5C = -0x5C .text:0003B468 var_58 = -0x58 .text:0003B468 var_54 = -0x54 .text:0003B468 var_50 = -0x50 .text:0003B468 var_4C = -0x4C .text:0003B468 var_48 = -0x48 .text:0003B468 var_44 = -0x44 .text:0003B468 var_40 = -0x40 .text:0003B468 var_3C = -0x3C .text:0003B468 var_38 = -0x38 .text:0003B468 var_34 = -0x34 .text:0003B468 var_30 = -0x30 .text:0003B468 var_2A = -0x2A .text:0003B468 arg_0 = 4 .text:0003B468 arg_4 = 8 .text:0003B468 arg_8 = 0xC .text:0003B468 arg_C = 0x10 .text:0003B468 .text:0003B468 MOV R12, SP .text:0003B46C STMFD SP!, {R4-R12,LR,PC} .text:0003B470 SUB R11, R12, #4 .text:0003B474 SUB SP, SP, #0x58 .text:0003B478 STR R1, [R11,#var_44] .text:0003B47C LDR R1, [R1,#8] .text:0003B480 MOV R12, #0 .text:0003B484 STR R12, [R11,#var_54] .text:0003B488 ADD R0, R0, #0x38 .text:0003B48C STR R0, [R11,#var_4C] .text:0003B490 LDR R0, [R11,#var_44] .text:0003B494 MOV R7, R3 .text:0003B498 STR R2, [R11,#var_48] .text:0003B49C TST R1, #1 .text:0003B4A0 ADD R0, R0, #0x24 .text:0003B4A4 STR R0, [R11,#var_50] .text:0003B4A8 LDREQ R1, [R11,#var_4C] .text:0003B4AC LDREQ R1, [R1,#0x14] .text:0003B4B0 STREQ R1, [R11,#var_54] .text:0003B4B4 LDR R3, [R11,#arg_8] .text:0003B4B8 CMP R3, #0 .text:0003B4BC BEQ loc_3B54C .text:0003B4C0 LDR R2, [R11,#arg_0] .text:0003B4C4 MOV R5, #0 .text:0003B4C8 CMP R2, R5 .text:0003B4CC BEQ loc_3B4E4 .text:0003B4D0 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003B4D4 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003B4D8 LDR R3, =a__gconv_tran_6 ; "__gconv_transform_utf8_internal" .text:0003B4DC MOV R2, #0x130 .text:0003B4E0 BL __assert_fail .text:0003B4E4 ; --------------------------------------------------------------------------- .text:0003B4E4 .text:0003B4E4 loc_3B4E4 ; CODE XREF: __gconv_transform_utf8_internal+64j .text:0003B4E4 LDR R3, [R11,#var_44] .text:0003B4E8 MOV R1, R5 .text:0003B4EC LDR R0, [R3,#0x14] .text:0003B4F0 MOV R2, #8 .text:0003B4F4 BL memset .text:0003B4F8 LDR R12, [R11,#var_44] .text:0003B4FC LDR R3, [R12,#8] .text:0003B500 TST R3, #1 .text:0003B504 BNE loc_3C230 .text:0003B508 LDR R0, [R11,#var_54] .text:0003B50C BL _dl_mcount_wrapper_check .text:0003B510 STR R5, [SP,#0x80+var_80] .text:0003B514 LDR R0, [R11,#arg_4] .text:0003B518 MOV R3, #1 .text:0003B51C STMFA SP, {R0,R3} .text:0003B520 LDR R1, [R11,#arg_C] .text:0003B524 STR R1, [SP,#0x80+var_74] .text:0003B528 LDR R0, [R11,#var_4C] .text:0003B52C LDR R1, [R11,#var_50] .text:0003B530 MOV R2, R5 .text:0003B534 LDR R12, [R11,#var_54] .text:0003B538 MOV R3, R2 .text:0003B53C MOV LR, PC .text:0003B540 MOV PC, R12 .text:0003B544 MOV R5, R0 .text:0003B548 B loc_3C230 .text:0003B54C ; --------------------------------------------------------------------------- .text:0003B54C .text:0003B54C loc_3B54C ; CODE XREF: __gconv_transform_utf8_internal+54j .text:0003B54C LDR R0, [R11,#arg_0] .text:0003B550 CMP R0, #0 .text:0003B554 LDREQ R1, [R11,#var_44] .text:0003B558 LDREQ R3, [R1] .text:0003B55C LDRNE R2, [R11,#arg_0] .text:0003B560 LDRNE R3, [R2] .text:0003B564 STR R3, [R11,#var_38] .text:0003B568 MOV R3, #0 .text:0003B56C STR R3, [R11,#var_34] .text:0003B570 SUB R0, R11, #-var_38 .text:0003B574 STR R0, [R11,#var_6C] .text:0003B578 LDR R3, [R11,#arg_4] .text:0003B57C LDR R12, [R11,#arg_C] .text:0003B580 LDR R1, [R11,#var_44] .text:0003B584 CMP R3, #0 .text:0003B588 SUBNE R6, R11, #-var_34 .text:0003B58C MOVEQ R6, #0 .text:0003B590 LDR R1, [R1,#4] .text:0003B594 CMP R12, #0 .text:0003B598 STR R1, [R11,#var_58] .text:0003B59C BEQ loc_3BB54 .text:0003B5A0 LDR R2, [R11,#var_44] .text:0003B5A4 LDR R10, [R2,#0x14] .text:0003B5A8 LDR R2, [R10] .text:0003B5AC TST R2, #7 .text:0003B5B0 BEQ loc_3BB54 .text:0003B5B4 LDR R3, [R11,#arg_0] .text:0003B5B8 CMP R3, #0 .text:0003B5BC BEQ loc_3B5D8 .text:0003B5C0 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003B5C4 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003B5C8 MOV R2, #0x168 .text:0003B5CC LDR R3, =a__gconv_tran_6 ; "__gconv_transform_utf8_internal" .text:0003B5D0 ADD R2, R2, #2 .text:0003B5D4 BL __assert_fail .text:0003B5D8 ; --------------------------------------------------------------------------- .text:0003B5D8 .text:0003B5D8 loc_3B5D8 ; CODE XREF: __gconv_transform_utf8_internal+154j .text:0003B5D8 LDR R12, [R11,#var_48] .text:0003B5DC LDR R0, [R11,#arg_0] .text:0003B5E0 LDR R3, [R12] .text:0003B5E4 STR R0, [R11,#var_60] .text:0003B5E8 STR R3, [R11,#var_3C] .text:0003B5EC LDR R0, [R11,#var_38] .text:0003B5F0 MOV R12, R2 .text:0003B5F4 LDR R2, [R11,#var_44] .text:0003B5F8 LDR R1, [R10,#4] .text:0003B5FC LDR R4, [R2,#8] .text:0003B600 CMP R1, #0x800 .text:0003B604 MOVCC R2, #2 .text:0003B608 MOVCC R3, #0xC0 .text:0003B60C BCC loc_3B644 .text:0003B610 CMP R1, #0x10000 .text:0003B614 MOVCC R2, #3 .text:0003B618 MOVCC R3, #0xE0 .text:0003B61C BCC loc_3B644 .text:0003B620 CMP R1, #0x200000 .text:0003B624 MOVCC R2, #4 .text:0003B628 MOVCC R3, #0xF0 .text:0003B62C BCC loc_3B644 .text:0003B630 CMN R1, #0xFC000001 .text:0003B634 MOVLS R2, #5 .text:0003B638 MOVLS R3, #0xF8 .text:0003B63C MOVHI R2, #6 .text:0003B640 MOVHI R3, #0xFC .text:0003B644 .text:0003B644 loc_3B644 ; CODE XREF: __gconv_transform_utf8_internal+1A4j .text:0003B644 ; __gconv_transform_utf8_internal+1B4j ... .text:0003B644 STRB R3, [R11,#var_30] .text:0003B648 SUB LR, R11, #-var_30 .text:0003B64C .text:0003B64C loc_3B64C ; CODE XREF: __gconv_transform_utf8_internal+200j .text:0003B64C SUB R2, R2, #1 .text:0003B650 CMP R2, R12 .text:0003B654 ANDCC R3, R1, #0x3F .text:0003B658 ORRCC R3, R3, #0x80 .text:0003B65C STRCCB R3, [LR,R2] .text:0003B660 MOV R1, R1,LSR#6 .text:0003B664 CMP R2, #1 .text:0003B668 BHI loc_3B64C .text:0003B66C LDR R3, [R11,#var_3C] .text:0003B670 LDRB R2, [R11,#var_30] .text:0003B674 ADD R3, R3, #1 .text:0003B678 RSB R3, R12, R3 .text:0003B67C CMP R3, R7 .text:0003B680 ORR R2, R2, R1 .text:0003B684 STRB R2, [R11,#var_30] .text:0003B688 BLS loc_3B750 .text:0003B68C LDR R3, [R11,#var_48] .text:0003B690 STR R7, [R3] .text:0003B694 SUB R3, R11, #-var_30 .text:0003B698 STR R3, [R11,#var_3C] .text:0003B69C SUB LR, R11, #-var_3C .text:0003B6A0 LDRB R0, [R11,#var_30] .text:0003B6A4 ADD R5, R3, R12 .text:0003B6A8 STR R12, [R10] .text:0003B6AC SUB R3, R0, #0xC2 .text:0003B6B0 CMP R3, #0x1D .text:0003B6B4 MOVLS R1, #2 .text:0003B6B8 ANDLS R0, R0, #0x1F .text:0003B6BC BLS loc_3B700 .text:0003B6C0 AND R3, R0, #0xF0 .text:0003B6C4 CMP R3, #0xE0 .text:0003B6C8 MOVEQ R1, #3 .text:0003B6CC ANDEQ R0, R0, #0xF .text:0003B6D0 BEQ loc_3B700 .text:0003B6D4 AND R3, R0, #0xF8 .text:0003B6D8 CMP R3, #0xF0 .text:0003B6DC MOVEQ R1, #4 .text:0003B6E0 ANDEQ R0, R0, #7 .text:0003B6E4 BEQ loc_3B700 .text:0003B6E8 AND R3, R0, #0xFC .text:0003B6EC CMP R3, #0xF8 .text:0003B6F0 MOVEQ R1, #5 .text:0003B6F4 ANDEQ R0, R0, #3 .text:0003B6F8 MOVNE R1, #6 .text:0003B6FC ANDNE R0, R0, #1 .text:0003B700 .text:0003B700 loc_3B700 ; CODE XREF: __gconv_transform_utf8_internal+254j .text:0003B700 ; __gconv_transform_utf8_internal+268j ... .text:0003B700 LDR R3, [LR] .text:0003B704 SUB R1, R1, #1 .text:0003B708 ADD R3, R3, #1 .text:0003B70C CMP R3, R5 .text:0003B710 STR R3, [LR] .text:0003B714 BCS loc_3B738 .text:0003B718 .text:0003B718 loc_3B718 ; CODE XREF: __gconv_transform_utf8_internal+2CCj .text:0003B718 LDR R2, [LR] .text:0003B71C LDRB R3, [R2],#1 .text:0003B720 SUB R1, R1, #1 .text:0003B724 AND R3, R3, #0x3F .text:0003B728 ORR R0, R3, R0,LSL#6 .text:0003B72C CMP R2, R5 .text:0003B730 STR R2, [LR] .text:0003B734 BCC loc_3B718 .text:0003B738 .text:0003B738 loc_3B738 ; CODE XREF: __gconv_transform_utf8_internal+2ACj .text:0003B738 ADD R3, R1, R1,LSL#1 .text:0003B73C MOV R3, R3,LSL#1 .text:0003B740 MOV R0, R0,LSL R3 .text:0003B744 MOV R5, #7 .text:0003B748 STR R0, [R10,#4] .text:0003B74C B loc_3BB20 .text:0003B750 ; --------------------------------------------------------------------------- .text:0003B750 .text:0003B750 loc_3B750 ; CODE XREF: __gconv_transform_utf8_internal+220j .text:0003B750 LDR R1, [R11,#var_58] .text:0003B754 ADD R3, R0, #4 .text:0003B758 STR R3, [R11,#var_70] .text:0003B75C CMP R3, R1 .text:0003B760 BLS loc_3B7A8 .text:0003B764 MOV R5, #5 .text:0003B768 B loc_3BB20 .text:0003B76C ; --------------------------------------------------------------------------- .text:0003B76C .text:0003B76C loc_3B76C ; CODE XREF: __gconv_transform_utf8_internal+418j .text:0003B76C MOV R2, #7 .text:0003B770 STR R2, [R11,#var_60] .text:0003B774 B loc_3B9C0 .text:0003B778 ; --------------------------------------------------------------------------- .text:0003B778 .text:0003B778 loc_3B778 ; CODE XREF: __gconv_transform_utf8_internal+428j .text:0003B778 STR R3, [R11,#var_3C] .text:0003B77C LDR R3, [R6] .text:0003B780 ADD R3, R3, #1 .text:0003B784 STR R3, [R6] .text:0003B788 B loc_3B9C0 .text:0003B78C ; --------------------------------------------------------------------------- .text:0003B78C .text:0003B78C loc_3B78C ; CODE XREF: __gconv_transform_utf8_internal+49Cj .text:0003B78C LDR R3, [R11,#var_3C] .text:0003B790 ADD R3, R3, R12 .text:0003B794 STR R3, [R11,#var_3C] .text:0003B798 LDR R2, [R6] .text:0003B79C ADD R2, R2, #1 .text:0003B7A0 STR R2, [R6] .text:0003B7A4 B loc_3B9C0 .text:0003B7A8 ; --------------------------------------------------------------------------- .text:0003B7A8 .text:0003B7A8 loc_3B7A8 ; CODE XREF: __gconv_transform_utf8_internal+2F8j .text:0003B7A8 SUB R9, R11, #-var_30 .text:0003B7AC MOV R1, R9 .text:0003B7B0 .text:0003B7B0 loc_3B7B0 ; CODE XREF: __gconv_transform_utf8_internal+368j .text:0003B7B0 LDR R2, [R11,#var_3C] .text:0003B7B4 LDRB R3, [R2],#1 .text:0003B7B8 STRB R3, [R1,R12] .text:0003B7BC ADD R12, R12, #1 .text:0003B7C0 CMP R12, #5 .text:0003B7C4 STR R2, [R11,#var_3C] .text:0003B7C8 BHI loc_3B7D4 .text:0003B7CC CMP R2, R7 .text:0003B7D0 BCC loc_3B7B0 .text:0003B7D4 .text:0003B7D4 loc_3B7D4 ; CODE XREF: __gconv_transform_utf8_internal+360j .text:0003B7D4 ADD R5, R9, R12 .text:0003B7D8 AND R8, R4, #2 .text:0003B7DC STR R9, [R11,#var_3C] .text:0003B7E0 B loc_3B92C .text:0003B7E4 ; --------------------------------------------------------------------------- .text:0003B7E4 .text:0003B7E4 loc_3B7E4 ; CODE XREF: __gconv_transform_utf8_internal+54Cj .text:0003B7E4 MOV R1, #0 .text:0003B7E8 .text:0003B7E8 loc_3B7E8 ; CODE XREF: __gconv_transform_utf8_internal+3A8j .text:0003B7E8 LDR R2, [R11,#var_3C] .text:0003B7EC ADD R1, R1, #1 .text:0003B7F0 ADD R3, R2, #1 .text:0003B7F4 CMP R3, R5 .text:0003B7F8 STR R3, [R11,#var_3C] .text:0003B7FC BCS loc_3B9C0 .text:0003B800 LDRB R3, [R2,#1] .text:0003B804 AND R3, R3, #0xC0 .text:0003B808 CMP R1, #4 .text:0003B80C CMPLE R3, #0x80 .text:0003B810 BEQ loc_3B7E8 .text:0003B814 B loc_3B9C0 .text:0003B814 ; --------------------------------------------------------------------------- .text:0003B818 off_3B818 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_utf8_internal+68r .text:0003B818 ; __gconv_transform_utf8_internal+158r .text:0003B818 ; "outbufstart == ((void *)0)" .text:0003B81C off_3B81C DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_utf8_internal+6Cr .text:0003B81C ; __gconv_transform_utf8_internal+15Cr .text:0003B81C ; "../iconv/skeleton.c" .text:0003B820 off_3B820 DCD a__gconv_tran_6 ; DATA XREF: __gconv_transform_utf8_internal+70r .text:0003B820 ; __gconv_transform_utf8_internal+164r .text:0003B820 ; "__gconv_transform_utf8_internal" .text:0003B824 ; --------------------------------------------------------------------------- .text:0003B824 .text:0003B824 loc_3B824 ; CODE XREF: __gconv_transform_utf8_internal+4ECj .text:0003B824 ; __gconv_transform_utf8_internal+500j ... .text:0003B824 ADD R3, R4, LR .text:0003B828 CMP R3, R5 .text:0003B82C BLS loc_3B8A0 .text:0003B830 MOV R12, #1 .text:0003B834 ADD R3, R4, R12 .text:0003B838 CMP R3, R5 .text:0003B83C BCS loc_3B874 .text:0003B840 LDRB R3, [R4,#1] .text:0003B844 AND R3, R3, #0xC0 .text:0003B848 CMP R3, #0x80 .text:0003B84C BNE loc_3B874 .text:0003B850 MOV R2, R4 .text:0003B854 .text:0003B854 loc_3B854 ; CODE XREF: __gconv_transform_utf8_internal+408j .text:0003B854 ADD R12, R12, #1 .text:0003B858 ADD R3, R2, R12 .text:0003B85C CMP R3, R5 .text:0003B860 BCS loc_3B874 .text:0003B864 LDRB R3, [R4,R12] .text:0003B868 AND R3, R3, #0xC0 .text:0003B86C CMP R3, #0x80 .text:0003B870 BEQ loc_3B854 .text:0003B874 .text:0003B874 loc_3B874 ; CODE XREF: __gconv_transform_utf8_internal+3D4j .text:0003B874 ; __gconv_transform_utf8_internal+3E4j ... .text:0003B874 LDR R3, [R11,#var_3C] .text:0003B878 ADD R3, R3, R12 .text:0003B87C CMP R3, R5 .text:0003B880 BEQ loc_3B76C .text:0003B884 CMP R6, #0 .text:0003B888 BEQ loc_3B894 .text:0003B88C CMP R8, #0 .text:0003B890 BNE loc_3B778 .text:0003B894 .text:0003B894 loc_3B894 ; CODE XREF: __gconv_transform_utf8_internal+420j .text:0003B894 MOV R3, #6 .text:0003B898 STR R3, [R11,#var_60] .text:0003B89C B loc_3B9C0 .text:0003B8A0 ; --------------------------------------------------------------------------- .text:0003B8A0 .text:0003B8A0 loc_3B8A0 ; CODE XREF: __gconv_transform_utf8_internal+3C4j .text:0003B8A0 MOV R12, #1 .text:0003B8A4 CMP R12, LR .text:0003B8A8 BCS loc_3B8D8 .text:0003B8AC LDRB R2, [R4,#1] .text:0003B8B0 B loc_3B8CC .text:0003B8B4 ; --------------------------------------------------------------------------- .text:0003B8B4 .text:0003B8B4 loc_3B8B4 ; CODE XREF: __gconv_transform_utf8_internal+46Cj .text:0003B8B4 AND R3, R2, #0x3F .text:0003B8B8 ORR R1, R3, R1,LSL#6 .text:0003B8BC ADD R12, R12, #1 .text:0003B8C0 CMP R12, LR .text:0003B8C4 BCS loc_3B8D8 .text:0003B8C8 LDRB R2, [R4,R12] .text:0003B8CC .text:0003B8CC loc_3B8CC ; CODE XREF: __gconv_transform_utf8_internal+448j .text:0003B8CC AND R3, R2, #0xC0 .text:0003B8D0 CMP R3, #0x80 .text:0003B8D4 BEQ loc_3B8B4 .text:0003B8D8 .text:0003B8D8 loc_3B8D8 ; CODE XREF: __gconv_transform_utf8_internal+440j .text:0003B8D8 ; __gconv_transform_utf8_internal+45Cj .text:0003B8D8 CMP R12, LR .text:0003B8DC BCC loc_3B8F8 .text:0003B8E0 CMP LR, #2 .text:0003B8E4 BLS loc_3B914 .text:0003B8E8 ADD R3, LR, LR,LSL#2 .text:0003B8EC SUB R3, R3, #4 .text:0003B8F0 MOVS R3, R1,LSR R3 .text:0003B8F4 BNE loc_3B914 .text:0003B8F8 .text:0003B8F8 loc_3B8F8 ; CODE XREF: __gconv_transform_utf8_internal+474j .text:0003B8F8 CMP R6, #0 .text:0003B8FC BEQ loc_3B908 .text:0003B900 CMP R8, #0 .text:0003B904 BNE loc_3B78C .text:0003B908 .text:0003B908 loc_3B908 ; CODE XREF: __gconv_transform_utf8_internal+494j .text:0003B908 MOV R12, #6 .text:0003B90C STR R12, [R11,#var_60] .text:0003B910 B loc_3B9C0 .text:0003B914 ; --------------------------------------------------------------------------- .text:0003B914 .text:0003B914 loc_3B914 ; CODE XREF: __gconv_transform_utf8_internal+47Cj .text:0003B914 ; __gconv_transform_utf8_internal+48Cj .text:0003B914 LDR R3, [R11,#var_3C] .text:0003B918 ADD R3, R3, LR .text:0003B91C .text:0003B91C loc_3B91C ; CODE XREF: __gconv_transform_utf8_internal+4D8j .text:0003B91C STR R3, [R11,#var_3C] .text:0003B920 STR R1, [R0] .text:0003B924 LDR R0, [R11,#var_70] .text:0003B928 B loc_3B9C0 .text:0003B92C ; --------------------------------------------------------------------------- .text:0003B92C .text:0003B92C loc_3B92C ; CODE XREF: __gconv_transform_utf8_internal+378j .text:0003B92C LDR R3, [R11,#var_3C] .text:0003B930 LDRB R1, [R3] .text:0003B934 MOV R4, R3 .text:0003B938 CMP R1, #0x7F .text:0003B93C ADDLS R3, R3, #1 .text:0003B940 BLS loc_3B91C .text:0003B944 SUB R3, R1, #0xC2 .text:0003B948 CMP R3, #0x1D .text:0003B94C MOVLS LR, #2 .text:0003B950 ANDLS R1, R1, #0x1F .text:0003B954 BLS loc_3B824 .text:0003B958 AND R3, R1, #0xF0 .text:0003B95C CMP R3, #0xE0 .text:0003B960 MOVEQ LR, #3 .text:0003B964 ANDEQ R1, R1, #0xF .text:0003B968 BEQ loc_3B824 .text:0003B96C AND R3, R1, #0xF8 .text:0003B970 CMP R3, #0xF0 .text:0003B974 MOVEQ LR, #4 .text:0003B978 ANDEQ R1, R1, #7 .text:0003B97C BEQ loc_3B824 .text:0003B980 AND R3, R1, #0xFC .text:0003B984 CMP R3, #0xF8 .text:0003B988 MOVEQ LR, #5 .text:0003B98C ANDEQ R1, R1, #3 .text:0003B990 BEQ loc_3B824 .text:0003B994 AND R3, R1, #0xFE .text:0003B998 CMP R3, #0xFC .text:0003B99C MOVEQ LR, #6 .text:0003B9A0 ANDEQ R1, R1, #1 .text:0003B9A4 BEQ loc_3B824 .text:0003B9A8 CMP R6, #0 .text:0003B9AC BEQ loc_3B9B8 .text:0003B9B0 CMP R8, #0 .text:0003B9B4 BNE loc_3B7E4 .text:0003B9B8 .text:0003B9B8 loc_3B9B8 ; CODE XREF: __gconv_transform_utf8_internal+544j .text:0003B9B8 MOV R1, #6 .text:0003B9BC STR R1, [R11,#var_60] .text:0003B9C0 .text:0003B9C0 loc_3B9C0 ; CODE XREF: __gconv_transform_utf8_internal+30Cj .text:0003B9C0 ; __gconv_transform_utf8_internal+320j ... .text:0003B9C0 LDR R12, [R11,#var_3C] .text:0003B9C4 CMP R12, R9 .text:0003B9C8 BEQ loc_3BA24 .text:0003B9CC LDR R3, [R10] .text:0003B9D0 RSB R1, R9, R12 .text:0003B9D4 AND R2, R3, #7 .text:0003B9D8 CMP R1, R2 .text:0003B9DC BGT loc_3B9F4 .text:0003B9E0 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003B9E4 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003B9E8 LDR R3, =aUtf8_internal_ ; "utf8_internal_loop_single" .text:0003B9EC MOV R2, #0x17C .text:0003B9F0 BL __assert_fail .text:0003B9F4 ; --------------------------------------------------------------------------- .text:0003B9F4 .text:0003B9F4 loc_3B9F4 ; CODE XREF: __gconv_transform_utf8_internal+574j .text:0003B9F4 STR R0, [R11,#var_38] .text:0003B9F8 LDR R12, [R11,#var_48] .text:0003B9FC LDR R3, [R12] .text:0003BA00 RSB R2, R2, R1 .text:0003BA04 ADD R3, R3, R2 .text:0003BA08 STR R3, [R12] .text:0003BA0C LDR R2, [R10] .text:0003BA10 MOV R0, #0 .text:0003BA14 STR R0, [R11,#var_60] .text:0003BA18 BIC R2, R2, #7 .text:0003BA1C STR R2, [R10] .text:0003BA20 B loc_3BB1C .text:0003BA24 ; --------------------------------------------------------------------------- .text:0003BA24 .text:0003BA24 loc_3BA24 ; CODE XREF: __gconv_transform_utf8_internal+560j .text:0003BA24 LDR R1, [R11,#var_60] .text:0003BA28 CMP R1, #7 .text:0003BA2C BNE loc_3BB1C .text:0003BA30 SUB R3, R11, #-var_2A .text:0003BA34 CMP R5, R3 .text:0003BA38 BNE loc_3BA54 .text:0003BA3C LDR R0, =aInendBytebuf6 ; "inend != &bytebuf[6]" .text:0003BA40 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003BA44 MOV R2, #0x188 .text:0003BA48 LDR R3, =aUtf8_internal_ ; "utf8_internal_loop_single" .text:0003BA4C ADD R2, R2, #2 .text:0003BA50 BL __assert_fail .text:0003BA54 ; --------------------------------------------------------------------------- .text:0003BA54 .text:0003BA54 loc_3BA54 ; CODE XREF: __gconv_transform_utf8_internal+5D0j .text:0003BA54 LDR R2, [R10] .text:0003BA58 RSB R1, R12, R5 .text:0003BA5C LDR R0, [R11,#var_48] .text:0003BA60 AND R2, R2, #7 .text:0003BA64 LDR R3, [R0] .text:0003BA68 RSB R2, R2, R1 .text:0003BA6C ADD R3, R3, R2 .text:0003BA70 STR R3, [R0] .text:0003BA74 LDRB R12, [R12] .text:0003BA78 SUB LR, R11, #-var_3C .text:0003BA7C STR R1, [R10] .text:0003BA80 SUB R3, R12, #0xC2 .text:0003BA84 CMP R3, #0x1D .text:0003BA88 MOVLS R1, #2 .text:0003BA8C ANDLS R12, R12, #0x1F .text:0003BA90 BLS loc_3BAD4 .text:0003BA94 AND R3, R12, #0xF0 .text:0003BA98 CMP R3, #0xE0 .text:0003BA9C MOVEQ R1, #3 .text:0003BAA0 ANDEQ R12, R12, #0xF .text:0003BAA4 BEQ loc_3BAD4 .text:0003BAA8 AND R3, R12, #0xF8 .text:0003BAAC CMP R3, #0xF0 .text:0003BAB0 MOVEQ R1, #4 .text:0003BAB4 ANDEQ R12, R12, #7 .text:0003BAB8 BEQ loc_3BAD4 .text:0003BABC AND R3, R12, #0xFC .text:0003BAC0 CMP R3, #0xF8 .text:0003BAC4 MOVEQ R1, #5 .text:0003BAC8 ANDEQ R12, R12, #3 .text:0003BACC MOVNE R1, #6 .text:0003BAD0 ANDNE R12, R12, #1 .text:0003BAD4 .text:0003BAD4 loc_3BAD4 ; CODE XREF: __gconv_transform_utf8_internal+628j .text:0003BAD4 ; __gconv_transform_utf8_internal+63Cj ... .text:0003BAD4 LDR R3, [LR] .text:0003BAD8 SUB R1, R1, #1 .text:0003BADC ADD R3, R3, #1 .text:0003BAE0 CMP R3, R5 .text:0003BAE4 STR R3, [LR] .text:0003BAE8 BCS loc_3BB0C .text:0003BAEC .text:0003BAEC loc_3BAEC ; CODE XREF: __gconv_transform_utf8_internal+6A0j .text:0003BAEC LDR R2, [LR] .text:0003BAF0 LDRB R3, [R2],#1 .text:0003BAF4 SUB R1, R1, #1 .text:0003BAF8 AND R3, R3, #0x3F .text:0003BAFC ORR R12, R3, R12,LSL#6 .text:0003BB00 CMP R2, R5 .text:0003BB04 STR R2, [LR] .text:0003BB08 BCC loc_3BAEC .text:0003BB0C .text:0003BB0C loc_3BB0C ; CODE XREF: __gconv_transform_utf8_internal+680j .text:0003BB0C ADD R3, R1, R1,LSL#1 .text:0003BB10 MOV R3, R3,LSL#1 .text:0003BB14 MOV R12, R12,LSL R3 .text:0003BB18 STR R12, [R10,#4] .text:0003BB1C .text:0003BB1C loc_3BB1C ; CODE XREF: __gconv_transform_utf8_internal+5B8j .text:0003BB1C ; __gconv_transform_utf8_internal+5C4j .text:0003BB1C LDR R5, [R11,#var_60] .text:0003BB20 .text:0003BB20 loc_3BB20 ; CODE XREF: __gconv_transform_utf8_internal+2E4j .text:0003BB20 ; __gconv_transform_utf8_internal+300j .text:0003BB20 CMP R5, #0 .text:0003BB24 BEQ loc_3BB54 .text:0003BB28 B loc_3C230 .text:0003BB2C ; --------------------------------------------------------------------------- .text:0003BB2C .text:0003BB2C loc_3BB2C ; CODE XREF: __gconv_transform_utf8_internal+990j .text:0003BB2C LDR R3, [R11,#var_38] .text:0003BB30 LDR R1, [R11,#var_44] .text:0003BB34 STR R3, [R1] .text:0003BB38 LDR R3, [R11,#arg_4] .text:0003BB3C LDR R2, [R3] .text:0003BB40 LDR R3, [R11,#var_34] .text:0003BB44 LDR R12, [R11,#arg_4] .text:0003BB48 ADD R2, R2, R3 .text:0003BB4C STR R2, [R12] .text:0003BB50 B loc_3C120 .text:0003BB54 ; --------------------------------------------------------------------------- .text:0003BB54 .text:0003BB54 loc_3BB54 ; CODE XREF: __gconv_transform_utf8_internal+134j .text:0003BB54 ; __gconv_transform_utf8_internal+148j ... .text:0003BB54 LDR R0, [R11,#var_48] .text:0003BB58 LDR R1, [R11,#var_38] .text:0003BB5C LDR R9, [R0] .text:0003BB60 STR R1, [R11,#var_5C] .text:0003BB64 MOV R8, #4 .text:0003BB68 LDR R2, [R11,#var_44] .text:0003BB6C MOV R10, R1 .text:0003BB70 MOV R0, R9 .text:0003BB74 CMP R9, R7 .text:0003BB78 LDR R5, [R2,#8] .text:0003BB7C BEQ loc_3BD70 .text:0003BB80 LDR R12, [R11,#var_58] .text:0003BB84 ADD R3, R1, R8 .text:0003BB88 CMP R3, R12 .text:0003BB8C B loc_3BD68 .text:0003BB90 ; --------------------------------------------------------------------------- .text:0003BB90 .text:0003BB90 loc_3BB90 ; CODE XREF: __gconv_transform_utf8_internal+830j .text:0003BB90 MOV R8, #7 .text:0003BB94 B loc_3BD70 .text:0003BB98 ; --------------------------------------------------------------------------- .text:0003BB98 .text:0003BB98 loc_3BB98 ; CODE XREF: __gconv_transform_utf8_internal:loc_3BD68j .text:0003BB98 LDRB R1, [R0] .text:0003BB9C CMP R1, #0x7F .text:0003BBA0 ADDLS R0, R0, #1 .text:0003BBA4 BLS loc_3BD50 .text:0003BBA8 SUB R3, R1, #0xC2 .text:0003BBAC CMP R3, #0x1D .text:0003BBB0 MOVLS LR, #2 .text:0003BBB4 ANDLS R1, R1, #0x1F .text:0003BBB8 BLS loc_3BC48 .text:0003BBBC AND R3, R1, #0xF0 .text:0003BBC0 CMP R3, #0xE0 .text:0003BBC4 MOVEQ LR, #3 .text:0003BBC8 ANDEQ R1, R1, #0xF .text:0003BBCC BEQ loc_3BC48 .text:0003BBD0 AND R3, R1, #0xF8 .text:0003BBD4 CMP R3, #0xF0 .text:0003BBD8 MOVEQ LR, #4 .text:0003BBDC ANDEQ R1, R1, #7 .text:0003BBE0 BEQ loc_3BC48 .text:0003BBE4 AND R3, R1, #0xFC .text:0003BBE8 CMP R3, #0xF8 .text:0003BBEC MOVEQ LR, #5 .text:0003BBF0 ANDEQ R1, R1, #3 .text:0003BBF4 BEQ loc_3BC48 .text:0003BBF8 AND R3, R1, #0xFE .text:0003BBFC CMP R3, #0xFC .text:0003BC00 MOVEQ LR, #6 .text:0003BC04 ANDEQ R1, R1, #1 .text:0003BC08 BEQ loc_3BC48 .text:0003BC0C CMP R6, #0 .text:0003BC10 BEQ loc_3BD34 .text:0003BC14 TST R5, #2 .text:0003BC18 BEQ loc_3BD34 .text:0003BC1C MOV R2, #0 .text:0003BC20 .text:0003BC20 loc_3BC20 ; CODE XREF: __gconv_transform_utf8_internal+7D8j .text:0003BC20 ADD R0, R0, #1 .text:0003BC24 ADD R2, R2, #1 .text:0003BC28 CMP R0, R7 .text:0003BC2C BCS loc_3BD54 .text:0003BC30 LDRB R3, [R0] .text:0003BC34 AND R3, R3, #0xC0 .text:0003BC38 CMP R2, #4 .text:0003BC3C CMPLE R3, #0x80 .text:0003BC40 BEQ loc_3BC20 .text:0003BC44 B loc_3BD54 .text:0003BC48 ; --------------------------------------------------------------------------- .text:0003BC48 .text:0003BC48 loc_3BC48 ; CODE XREF: __gconv_transform_utf8_internal+750j .text:0003BC48 ; __gconv_transform_utf8_internal+764j ... .text:0003BC48 ADD R3, R0, LR .text:0003BC4C CMP R3, R7 .text:0003BC50 MOV R4, R3 .text:0003BC54 BLS loc_3BCB8 .text:0003BC58 MOV R12, #1 .text:0003BC5C ADD R3, R0, R12 .text:0003BC60 CMP R3, R7 .text:0003BC64 BCS loc_3BC90 .text:0003BC68 LDRB R3, [R0,#1] .text:0003BC6C B loc_3BC84 .text:0003BC70 ; --------------------------------------------------------------------------- .text:0003BC70 .text:0003BC70 loc_3BC70 ; CODE XREF: __gconv_transform_utf8_internal+824j .text:0003BC70 ADD R12, R12, #1 .text:0003BC74 ADD R3, R0, R12 .text:0003BC78 CMP R3, R7 .text:0003BC7C BCS loc_3BC90 .text:0003BC80 LDRB R3, [R0,R12] .text:0003BC84 .text:0003BC84 loc_3BC84 ; CODE XREF: __gconv_transform_utf8_internal+804j .text:0003BC84 AND R3, R3, #0xC0 .text:0003BC88 CMP R3, #0x80 .text:0003BC8C BEQ loc_3BC70 .text:0003BC90 .text:0003BC90 loc_3BC90 ; CODE XREF: __gconv_transform_utf8_internal+7FCj .text:0003BC90 ; __gconv_transform_utf8_internal+814j .text:0003BC90 ADD R2, R0, R12 .text:0003BC94 CMP R2, R7 .text:0003BC98 BEQ loc_3BB90 .text:0003BC9C CMP R6, #0 .text:0003BCA0 BEQ loc_3BD34 .text:0003BCA4 TST R5, #2 .text:0003BCA8 BEQ loc_3BD34 .text:0003BCAC LDR R3, [R6] .text:0003BCB0 MOV R0, R2 .text:0003BCB4 B loc_3BD28 .text:0003BCB8 ; --------------------------------------------------------------------------- .text:0003BCB8 .text:0003BCB8 loc_3BCB8 ; CODE XREF: __gconv_transform_utf8_internal+7ECj .text:0003BCB8 MOV R12, #1 .text:0003BCBC CMP R12, LR .text:0003BCC0 BCS loc_3BCF0 .text:0003BCC4 LDRB R2, [R0,#1] .text:0003BCC8 B loc_3BCE4 .text:0003BCCC ; --------------------------------------------------------------------------- .text:0003BCCC .text:0003BCCC loc_3BCCC ; CODE XREF: __gconv_transform_utf8_internal+884j .text:0003BCCC AND R3, R2, #0x3F .text:0003BCD0 ORR R1, R3, R1,LSL#6 .text:0003BCD4 ADD R12, R12, #1 .text:0003BCD8 CMP R12, LR .text:0003BCDC BCS loc_3BCF0 .text:0003BCE0 LDRB R2, [R0,R12] .text:0003BCE4 .text:0003BCE4 loc_3BCE4 ; CODE XREF: __gconv_transform_utf8_internal+860j .text:0003BCE4 AND R3, R2, #0xC0 .text:0003BCE8 CMP R3, #0x80 .text:0003BCEC BEQ loc_3BCCC .text:0003BCF0 .text:0003BCF0 loc_3BCF0 ; CODE XREF: __gconv_transform_utf8_internal+858j .text:0003BCF0 ; __gconv_transform_utf8_internal+874j .text:0003BCF0 CMP R12, LR .text:0003BCF4 BCC loc_3BD10 .text:0003BCF8 CMP LR, #2 .text:0003BCFC BLS loc_3BD4C .text:0003BD00 ADD R3, LR, LR,LSL#2 .text:0003BD04 SUB R3, R3, #4 .text:0003BD08 MOVS R3, R1,LSR R3 .text:0003BD0C BNE loc_3BD4C .text:0003BD10 .text:0003BD10 loc_3BD10 ; CODE XREF: __gconv_transform_utf8_internal+88Cj .text:0003BD10 CMP R6, #0 .text:0003BD14 BEQ loc_3BD34 .text:0003BD18 TST R5, #2 .text:0003BD1C BEQ loc_3BD34 .text:0003BD20 LDR R3, [R6] .text:0003BD24 ADD R0, R0, R12 .text:0003BD28 .text:0003BD28 loc_3BD28 ; CODE XREF: __gconv_transform_utf8_internal+84Cj .text:0003BD28 ADD R3, R3, #1 .text:0003BD2C STR R3, [R6] .text:0003BD30 B loc_3BD54 .text:0003BD34 ; --------------------------------------------------------------------------- .text:0003BD34 .text:0003BD34 loc_3BD34 ; CODE XREF: __gconv_transform_utf8_internal+7A8j .text:0003BD34 ; __gconv_transform_utf8_internal+7B0j ... .text:0003BD34 MOV R8, #6 .text:0003BD38 B loc_3BD70 .text:0003BD38 ; --------------------------------------------------------------------------- .text:0003BD3C off_3BD3C DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_utf8_internal+578r .text:0003BD3C ; "inptr - bytebuf > (state->__count & 7)" .text:0003BD40 off_3BD40 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_utf8_internal+57Cr .text:0003BD40 ; __gconv_transform_utf8_internal+5D8r .text:0003BD40 ; "../iconv/loop.c" .text:0003BD44 off_3BD44 DCD aUtf8_internal_ ; DATA XREF: __gconv_transform_utf8_internal+580r .text:0003BD44 ; __gconv_transform_utf8_internal+5E0r .text:0003BD44 ; "utf8_internal_loop_single" .text:0003BD48 off_3BD48 DCD aInendBytebuf6 ; DATA XREF: __gconv_transform_utf8_internal+5D4r .text:0003BD48 ; "inend != &bytebuf[6]" .text:0003BD4C ; --------------------------------------------------------------------------- .text:0003BD4C .text:0003BD4C loc_3BD4C ; CODE XREF: __gconv_transform_utf8_internal+894j .text:0003BD4C ; __gconv_transform_utf8_internal+8A4j .text:0003BD4C MOV R0, R4 .text:0003BD50 .text:0003BD50 loc_3BD50 ; CODE XREF: __gconv_transform_utf8_internal+73Cj .text:0003BD50 STR R1, [R10],#4 .text:0003BD54 .text:0003BD54 loc_3BD54 ; CODE XREF: __gconv_transform_utf8_internal+7C4j .text:0003BD54 ; __gconv_transform_utf8_internal+7DCj ... .text:0003BD54 CMP R0, R7 .text:0003BD58 BEQ loc_3BD70 .text:0003BD5C LDR R1, [R11,#var_58] .text:0003BD60 ADD R3, R10, #4 .text:0003BD64 CMP R3, R1 .text:0003BD68 .text:0003BD68 loc_3BD68 ; CODE XREF: __gconv_transform_utf8_internal+724j .text:0003BD68 BLS loc_3BB98 .text:0003BD6C MOV R8, #5 .text:0003BD70 .text:0003BD70 loc_3BD70 ; CODE XREF: __gconv_transform_utf8_internal+714j .text:0003BD70 ; __gconv_transform_utf8_internal+72Cj ... .text:0003BD70 LDR R2, [R11,#var_48] .text:0003BD74 STR R0, [R2] .text:0003BD78 LDR R3, [R11,#var_6C] .text:0003BD7C STR R10, [R3] .text:0003BD80 MOV R5, R8 .text:0003BD84 LDR R12, [R11,#arg_0] .text:0003BD88 CMP R12, #0 .text:0003BD8C BNE loc_3C1B0 .text:0003BD90 LDR R0, [R11,#var_44] .text:0003BD94 LDR R4, [R0,#0x20] .text:0003BD98 CMP R4, #0 .text:0003BD9C BEQ loc_3BDE0 .text:0003BDA0 .text:0003BDA0 loc_3BDA0 ; CODE XREF: __gconv_transform_utf8_internal+974j .text:0003BDA0 LDR R0, [R4,#4] .text:0003BDA4 CMP R0, #0 .text:0003BDA8 BEQ loc_3BDD4 .text:0003BDAC BL _dl_mcount_wrapper_check .text:0003BDB0 LDR R3, [R11,#var_38] .text:0003BDB4 LDR R0, [R4,#0xC] .text:0003BDB8 STR R3, [SP,#0x80+var_80] .text:0003BDBC LDR R12, [R11,#var_48] .text:0003BDC0 LDR R3, [R11,#var_5C] .text:0003BDC4 LDR R2, [R12] .text:0003BDC8 MOV R1, R9 .text:0003BDCC MOV LR, PC .text:0003BDD0 LDR PC, [R4,#4] .text:0003BDD4 .text:0003BDD4 loc_3BDD4 ; CODE XREF: __gconv_transform_utf8_internal+940j .text:0003BDD4 LDR R4, [R4,#0x10] .text:0003BDD8 CMP R4, #0 .text:0003BDDC BNE loc_3BDA0 .text:0003BDE0 .text:0003BDE0 loc_3BDE0 ; CODE XREF: __gconv_transform_utf8_internal+934j .text:0003BDE0 LDR R0, [R11,#var_44] .text:0003BDE4 ADD R2, R0, #8 .text:0003BDE8 LDMIA R2, {R2,R3} .text:0003BDEC ADD R3, R3, #1 .text:0003BDF0 ANDS R4, R2, #1 .text:0003BDF4 STR R3, [R0,#0xC] .text:0003BDF8 BNE loc_3BB2C .text:0003BDFC LDR R3, [R11,#var_38] .text:0003BE00 LDR R1, [R11,#var_5C] .text:0003BE04 CMP R3, R1 .text:0003BE08 BLS loc_3C10C .text:0003BE0C LDR R3, [R0] .text:0003BE10 STR R3, [R11,#var_40] .text:0003BE14 LDR R0, [R11,#var_54] .text:0003BE18 BL _dl_mcount_wrapper_check .text:0003BE1C STR R4, [SP,#0x80+var_80] .text:0003BE20 LDR R2, [R11,#arg_4] .text:0003BE24 STMFA SP, {R2,R4} .text:0003BE28 LDR R3, [R11,#arg_C] .text:0003BE2C STR R3, [SP,#0x80+var_74] .text:0003BE30 LDR R0, [R11,#var_4C] .text:0003BE34 LDR R1, [R11,#var_50] .text:0003BE38 LDR R3, [R11,#var_38] .text:0003BE3C LDR R12, [R11,#var_54] .text:0003BE40 SUB R2, R11, #-var_40 .text:0003BE44 MOV LR, PC .text:0003BE48 MOV PC, R12 .text:0003BE4C STR R0, [R11,#var_64] .text:0003BE50 CMP R0, #4 .text:0003BE54 BEQ loc_3C0F8 .text:0003BE58 LDR R2, [R11,#var_40] .text:0003BE5C LDR R3, [R11,#var_38] .text:0003BE60 CMP R2, R3 .text:0003BE64 BEQ loc_3C0F0 .text:0003BE68 LDR R0, [R11,#var_48] .text:0003BE6C STR R9, [R0] .text:0003BE70 STR R2, [R11,#var_68] .text:0003BE74 LDR R1, [R11,#var_5C] .text:0003BE78 STR R1, [R11,#var_38] .text:0003BE7C LDR R8, [R11,#var_5C] .text:0003BE80 MOV R10, #4 .text:0003BE84 LDR R2, [R11,#var_44] .text:0003BE88 MOV R1, R9 .text:0003BE8C CMP R1, R7 .text:0003BE90 LDR R9, [R2,#8] .text:0003BE94 BEQ loc_3C084 .text:0003BE98 ADD R3, R8, R10 .text:0003BE9C LDR R12, [R11,#var_68] .text:0003BEA0 MOV R5, R3 .text:0003BEA4 CMP R3, R12 .text:0003BEA8 B loc_3C07C .text:0003BEAC ; --------------------------------------------------------------------------- .text:0003BEAC .text:0003BEAC loc_3BEAC ; CODE XREF: __gconv_transform_utf8_internal+B4Cj .text:0003BEAC MOV R10, #7 .text:0003BEB0 B loc_3C084 .text:0003BEB4 ; --------------------------------------------------------------------------- .text:0003BEB4 .text:0003BEB4 loc_3BEB4 ; CODE XREF: __gconv_transform_utf8_internal:loc_3C07Cj .text:0003BEB4 LDRB R12, [R1] .text:0003BEB8 CMP R12, #0x7F .text:0003BEBC ADDLS R1, R1, #1 .text:0003BEC0 BLS loc_3C05C .text:0003BEC4 SUB R3, R12, #0xC2 .text:0003BEC8 CMP R3, #0x1D .text:0003BECC MOVLS R4, #2 .text:0003BED0 ANDLS R12, R12, #0x1F .text:0003BED4 BLS loc_3BF64 .text:0003BED8 AND R3, R12, #0xF0 .text:0003BEDC CMP R3, #0xE0 .text:0003BEE0 MOVEQ R4, #3 .text:0003BEE4 ANDEQ R12, R12, #0xF .text:0003BEE8 BEQ loc_3BF64 .text:0003BEEC AND R3, R12, #0xF8 .text:0003BEF0 CMP R3, #0xF0 .text:0003BEF4 MOVEQ R4, #4 .text:0003BEF8 ANDEQ R12, R12, #7 .text:0003BEFC BEQ loc_3BF64 .text:0003BF00 AND R3, R12, #0xFC .text:0003BF04 CMP R3, #0xF8 .text:0003BF08 MOVEQ R4, #5 .text:0003BF0C ANDEQ R12, R12, #3 .text:0003BF10 BEQ loc_3BF64 .text:0003BF14 AND R3, R12, #0xFE .text:0003BF18 CMP R3, #0xFC .text:0003BF1C MOVEQ R4, #6 .text:0003BF20 ANDEQ R12, R12, #1 .text:0003BF24 BEQ loc_3BF64 .text:0003BF28 CMP R6, #0 .text:0003BF2C BEQ loc_3C050 .text:0003BF30 TST R9, #2 .text:0003BF34 BEQ loc_3C050 .text:0003BF38 MOV R2, #0 .text:0003BF3C .text:0003BF3C loc_3BF3C ; CODE XREF: __gconv_transform_utf8_internal+AF4j .text:0003BF3C ADD R1, R1, #1 .text:0003BF40 ADD R2, R2, #1 .text:0003BF44 CMP R1, R7 .text:0003BF48 BCS loc_3C064 .text:0003BF4C LDRB R3, [R1] .text:0003BF50 AND R3, R3, #0xC0 .text:0003BF54 CMP R2, #4 .text:0003BF58 CMPLE R3, #0x80 .text:0003BF5C BEQ loc_3BF3C .text:0003BF60 B loc_3C064 .text:0003BF64 ; --------------------------------------------------------------------------- .text:0003BF64 .text:0003BF64 loc_3BF64 ; CODE XREF: __gconv_transform_utf8_internal+A6Cj .text:0003BF64 ; __gconv_transform_utf8_internal+A80j ... .text:0003BF64 ADD R3, R1, R4 .text:0003BF68 CMP R3, R7 .text:0003BF6C MOV R0, R3 .text:0003BF70 BLS loc_3BFD4 .text:0003BF74 MOV LR, #1 .text:0003BF78 ADD R3, R1, LR .text:0003BF7C CMP R3, R7 .text:0003BF80 BCS loc_3BFAC .text:0003BF84 LDRB R3, [R1,#1] .text:0003BF88 B loc_3BFA0 .text:0003BF8C ; --------------------------------------------------------------------------- .text:0003BF8C .text:0003BF8C loc_3BF8C ; CODE XREF: __gconv_transform_utf8_internal+B40j .text:0003BF8C ADD LR, LR, #1 .text:0003BF90 ADD R3, R1, LR .text:0003BF94 CMP R3, R7 .text:0003BF98 BCS loc_3BFAC .text:0003BF9C LDRB R3, [R1,LR] .text:0003BFA0 .text:0003BFA0 loc_3BFA0 ; CODE XREF: __gconv_transform_utf8_internal+B20j .text:0003BFA0 AND R3, R3, #0xC0 .text:0003BFA4 CMP R3, #0x80 .text:0003BFA8 BEQ loc_3BF8C .text:0003BFAC .text:0003BFAC loc_3BFAC ; CODE XREF: __gconv_transform_utf8_internal+B18j .text:0003BFAC ; __gconv_transform_utf8_internal+B30j .text:0003BFAC ADD R2, R1, LR .text:0003BFB0 CMP R2, R7 .text:0003BFB4 BEQ loc_3BEAC .text:0003BFB8 CMP R6, #0 .text:0003BFBC BEQ loc_3C050 .text:0003BFC0 TST R9, #2 .text:0003BFC4 BEQ loc_3C050 .text:0003BFC8 LDR R3, [R6] .text:0003BFCC MOV R1, R2 .text:0003BFD0 B loc_3C044 .text:0003BFD4 ; --------------------------------------------------------------------------- .text:0003BFD4 .text:0003BFD4 loc_3BFD4 ; CODE XREF: __gconv_transform_utf8_internal+B08j .text:0003BFD4 MOV LR, #1 .text:0003BFD8 CMP LR, R4 .text:0003BFDC BCS loc_3C00C .text:0003BFE0 LDRB R2, [R1,#1] .text:0003BFE4 B loc_3C000 .text:0003BFE8 ; --------------------------------------------------------------------------- .text:0003BFE8 .text:0003BFE8 loc_3BFE8 ; CODE XREF: __gconv_transform_utf8_internal+BA0j .text:0003BFE8 AND R3, R2, #0x3F .text:0003BFEC ORR R12, R3, R12,LSL#6 .text:0003BFF0 ADD LR, LR, #1 .text:0003BFF4 CMP LR, R4 .text:0003BFF8 BCS loc_3C00C .text:0003BFFC LDRB R2, [R1,LR] .text:0003C000 .text:0003C000 loc_3C000 ; CODE XREF: __gconv_transform_utf8_internal+B7Cj .text:0003C000 AND R3, R2, #0xC0 .text:0003C004 CMP R3, #0x80 .text:0003C008 BEQ loc_3BFE8 .text:0003C00C .text:0003C00C loc_3C00C ; CODE XREF: __gconv_transform_utf8_internal+B74j .text:0003C00C ; __gconv_transform_utf8_internal+B90j .text:0003C00C CMP LR, R4 .text:0003C010 BCC loc_3C02C .text:0003C014 CMP R4, #2 .text:0003C018 BLS loc_3C058 .text:0003C01C ADD R3, R4, R4,LSL#2 .text:0003C020 SUB R3, R3, #4 .text:0003C024 MOVS R3, R12,LSR R3 .text:0003C028 BNE loc_3C058 .text:0003C02C .text:0003C02C loc_3C02C ; CODE XREF: __gconv_transform_utf8_internal+BA8j .text:0003C02C CMP R6, #0 .text:0003C030 BEQ loc_3C050 .text:0003C034 TST R9, #2 .text:0003C038 BEQ loc_3C050 .text:0003C03C LDR R3, [R6] .text:0003C040 ADD R1, R1, LR .text:0003C044 .text:0003C044 loc_3C044 ; CODE XREF: __gconv_transform_utf8_internal+B68j .text:0003C044 ADD R3, R3, #1 .text:0003C048 STR R3, [R6] .text:0003C04C B loc_3C064 .text:0003C050 ; --------------------------------------------------------------------------- .text:0003C050 .text:0003C050 loc_3C050 ; CODE XREF: __gconv_transform_utf8_internal+AC4j .text:0003C050 ; __gconv_transform_utf8_internal+ACCj ... .text:0003C050 MOV R10, #6 .text:0003C054 B loc_3C084 .text:0003C058 ; --------------------------------------------------------------------------- .text:0003C058 .text:0003C058 loc_3C058 ; CODE XREF: __gconv_transform_utf8_internal+BB0j .text:0003C058 ; __gconv_transform_utf8_internal+BC0j .text:0003C058 MOV R1, R0 .text:0003C05C .text:0003C05C loc_3C05C ; CODE XREF: __gconv_transform_utf8_internal+A58j .text:0003C05C STR R12, [R8] .text:0003C060 MOV R8, R5 .text:0003C064 .text:0003C064 loc_3C064 ; CODE XREF: __gconv_transform_utf8_internal+AE0j .text:0003C064 ; __gconv_transform_utf8_internal+AF8j ... .text:0003C064 CMP R1, R7 .text:0003C068 BEQ loc_3C084 .text:0003C06C ADD R3, R8, #4 .text:0003C070 LDR R0, [R11,#var_68] .text:0003C074 MOV R5, R3 .text:0003C078 CMP R3, R0 .text:0003C07C .text:0003C07C loc_3C07C ; CODE XREF: __gconv_transform_utf8_internal+A40j .text:0003C07C BLS loc_3BEB4 .text:0003C080 MOV R10, #5 .text:0003C084 .text:0003C084 loc_3C084 ; CODE XREF: __gconv_transform_utf8_internal+A2Cj .text:0003C084 ; __gconv_transform_utf8_internal+A48j ... .text:0003C084 LDR R2, [R11,#var_48] .text:0003C088 STR R1, [R2] .text:0003C08C LDR R3, [R11,#var_6C] .text:0003C090 STR R8, [R3] .text:0003C094 LDR R2, [R11,#var_38] .text:0003C098 LDR R3, [R11,#var_40] .text:0003C09C CMP R2, R3 .text:0003C0A0 BEQ loc_3C0BC .text:0003C0A4 LDR R0, =aOutbufOuterr ; "outbuf == outerr" .text:0003C0A8 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003C0AC MOV R2, #0x220 .text:0003C0B0 LDR R3, =a__gconv_tran_6 ; "__gconv_transform_utf8_internal" .text:0003C0B4 ADD R2, R2, #3 .text:0003C0B8 BL __assert_fail .text:0003C0BC ; --------------------------------------------------------------------------- .text:0003C0BC .text:0003C0BC loc_3C0BC ; CODE XREF: __gconv_transform_utf8_internal+C38j .text:0003C0BC CMP R10, #5 .text:0003C0C0 BEQ loc_3C0D8 .text:0003C0C4 LDR R0, =aNstatus__gconv ; "nstatus == __GCONV_FULL_OUTPUT" .text:0003C0C8 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003C0CC LDR R3, =a__gconv_tran_6 ; "__gconv_transform_utf8_internal" .text:0003C0D0 MOV R2, #0x224 .text:0003C0D4 BL __assert_fail .text:0003C0D8 ; --------------------------------------------------------------------------- .text:0003C0D8 .text:0003C0D8 loc_3C0D8 ; CODE XREF: __gconv_transform_utf8_internal+C58j .text:0003C0D8 LDR R12, [R11,#var_5C] .text:0003C0DC CMP R2, R12 .text:0003C0E0 LDREQ R0, [R11,#var_44] .text:0003C0E4 LDREQ R3, [R0,#0xC] .text:0003C0E8 SUBEQ R3, R3, #1 .text:0003C0EC STREQ R3, [R0,#0xC] .text:0003C0F0 .text:0003C0F0 loc_3C0F0 ; CODE XREF: __gconv_transform_utf8_internal+9FCj .text:0003C0F0 LDR R5, [R11,#var_64] .text:0003C0F4 B loc_3C10C .text:0003C0F8 ; --------------------------------------------------------------------------- .text:0003C0F8 .text:0003C0F8 loc_3C0F8 ; CODE XREF: __gconv_transform_utf8_internal+9ECj .text:0003C0F8 CMP R8, #5 .text:0003C0FC LDREQ R1, [R11,#var_44] .text:0003C100 LDREQ R3, [R1] .text:0003C104 MOVEQ R5, R4 .text:0003C108 STREQ R3, [R11,#var_38] .text:0003C10C .text:0003C10C loc_3C10C ; CODE XREF: __gconv_transform_utf8_internal+9A0j .text:0003C10C ; __gconv_transform_utf8_internal+C8Cj .text:0003C10C CMP R5, #0 .text:0003C110 LDREQ R2, [R11,#var_44] .text:0003C114 LDREQ R3, [R2] .text:0003C118 STREQ R3, [R11,#var_38] .text:0003C11C BEQ loc_3BB54 .text:0003C120 .text:0003C120 loc_3C120 ; CODE XREF: __gconv_transform_utf8_internal+6E8j .text:0003C120 LDR R12, [R11,#arg_C] .text:0003C124 CMP R5, #7 .text:0003C128 MOVNE R3, #0 .text:0003C12C MOVEQ R3, #1 .text:0003C130 CMP R12, #0 .text:0003C134 MOVEQ R3, #0 .text:0003C138 CMP R3, #0 .text:0003C13C BEQ loc_3C230 .text:0003C140 SUB R0, R11, #-var_48 .text:0003C144 LDMIA R0, {R0,R2} .text:0003C148 LDR R3, [R0] .text:0003C14C LDR R1, [R2,#0x14] .text:0003C150 LDRB R0, [R3] .text:0003C154 RSB R3, R3, R7 .text:0003C158 STR R3, [R1] .text:0003C15C SUB R2, R0, #0xC2 .text:0003C160 CMP R2, #0x1D .text:0003C164 MOVLS R12, #2 .text:0003C168 ANDLS R0, R0, #0x1F .text:0003C16C BLS loc_3C1DC .text:0003C170 AND R3, R0, #0xF0 .text:0003C174 CMP R3, #0xE0 .text:0003C178 MOVEQ R12, #3 .text:0003C17C ANDEQ R0, R0, #0xF .text:0003C180 BEQ loc_3C1DC .text:0003C184 AND R3, R0, #0xF8 .text:0003C188 CMP R3, #0xF0 .text:0003C18C MOVEQ R12, #4 .text:0003C190 ANDEQ R0, R0, #7 .text:0003C194 BEQ loc_3C1DC .text:0003C198 AND R3, R0, #0xFC .text:0003C19C CMP R3, #0xF8 .text:0003C1A0 BNE loc_3C1D4 .text:0003C1A4 MOV R12, #5 .text:0003C1A8 AND R0, R0, #3 .text:0003C1AC B loc_3C1DC .text:0003C1B0 ; --------------------------------------------------------------------------- .text:0003C1B0 .text:0003C1B0 loc_3C1B0 ; CODE XREF: __gconv_transform_utf8_internal+924j .text:0003C1B0 LDR R3, [R11,#var_38] .text:0003C1B4 LDR R12, [R11,#arg_0] .text:0003C1B8 MOV R0, R5 .text:0003C1BC STR R3, [R12] .text:0003C1C0 B locret_3C234 .text:0003C1C0 ; --------------------------------------------------------------------------- .text:0003C1C4 off_3C1C4 DCD aOutbufOuterr ; DATA XREF: __gconv_transform_utf8_internal+C3Cr .text:0003C1C4 ; "outbuf == outerr" .text:0003C1C8 off_3C1C8 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_utf8_internal+C40r .text:0003C1C8 ; __gconv_transform_utf8_internal+C60r .text:0003C1C8 ; "../iconv/skeleton.c" .text:0003C1CC off_3C1CC DCD a__gconv_tran_6 ; DATA XREF: __gconv_transform_utf8_internal+C48r .text:0003C1CC ; __gconv_transform_utf8_internal+C64r .text:0003C1CC ; "__gconv_transform_utf8_internal" .text:0003C1D0 off_3C1D0 DCD aNstatus__gconv ; DATA XREF: __gconv_transform_utf8_internal+C5Cr .text:0003C1D0 ; "nstatus == __GCONV_FULL_OUTPUT" .text:0003C1D4 ; --------------------------------------------------------------------------- .text:0003C1D4 .text:0003C1D4 loc_3C1D4 ; CODE XREF: __gconv_transform_utf8_internal+D38j .text:0003C1D4 MOV R12, #6 .text:0003C1D8 AND R0, R0, #1 .text:0003C1DC .text:0003C1DC loc_3C1DC ; CODE XREF: __gconv_transform_utf8_internal+D04j .text:0003C1DC ; __gconv_transform_utf8_internal+D18j ... .text:0003C1DC LDR R2, [R11,#var_48] .text:0003C1E0 LDR R3, [R2] .text:0003C1E4 SUB R12, R12, #1 .text:0003C1E8 ADD R3, R3, #1 .text:0003C1EC CMP R3, R7 .text:0003C1F0 STR R3, [R2] .text:0003C1F4 BCS loc_3C220 .text:0003C1F8 .text:0003C1F8 loc_3C1F8 ; CODE XREF: __gconv_transform_utf8_internal+DB4j .text:0003C1F8 LDR R3, [R11,#var_48] .text:0003C1FC LDR R2, [R3] .text:0003C200 LDRB R3, [R2],#1 .text:0003C204 SUB R12, R12, #1 .text:0003C208 AND R3, R3, #0x3F .text:0003C20C ORR R0, R3, R0,LSL#6 .text:0003C210 LDR R3, [R11,#var_48] .text:0003C214 CMP R2, R7 .text:0003C218 STR R2, [R3] .text:0003C21C BCC loc_3C1F8 .text:0003C220 .text:0003C220 loc_3C220 ; CODE XREF: __gconv_transform_utf8_internal+D8Cj .text:0003C220 ADD R3, R12, R12,LSL#1 .text:0003C224 MOV R3, R3,LSL#1 .text:0003C228 MOV R0, R0,LSL R3 .text:0003C22C STR R0, [R1,#4] .text:0003C230 .text:0003C230 loc_3C230 ; CODE XREF: __gconv_transform_utf8_internal+9Cj .text:0003C230 ; __gconv_transform_utf8_internal+E0j ... .text:0003C230 MOV R0, R5 .text:0003C234 .text:0003C234 locret_3C234 ; CODE XREF: __gconv_transform_utf8_internal+D58j .text:0003C234 LDMDB R11, {R4-R11,SP,PC} .text:0003C234 ; End of function __gconv_transform_utf8_internal .text:0003C234 .text:0003C238 .text:0003C238 ; =============== S U B R O U T I N E ======================================= .text:0003C238 .text:0003C238 ; Attributes: bp-based frame .text:0003C238 .text:0003C238 EXPORT __gconv_transform_ucs2_internal .text:0003C238 __gconv_transform_ucs2_internal .text:0003C238 .text:0003C238 var_7C = -0x7C .text:0003C238 var_78 = -0x78 .text:0003C238 var_74 = -0x74 .text:0003C238 var_70 = -0x70 .text:0003C238 var_6C = -0x6C .text:0003C238 var_68 = -0x68 .text:0003C238 var_64 = -0x64 .text:0003C238 var_60 = -0x60 .text:0003C238 var_5C = -0x5C .text:0003C238 var_58 = -0x58 .text:0003C238 var_54 = -0x54 .text:0003C238 var_50 = -0x50 .text:0003C238 var_4C = -0x4C .text:0003C238 var_48 = -0x48 .text:0003C238 var_44 = -0x44 .text:0003C238 var_40 = -0x40 .text:0003C238 var_3C = -0x3C .text:0003C238 var_38 = -0x38 .text:0003C238 var_34 = -0x34 .text:0003C238 var_30 = -0x30 .text:0003C238 var_2C = -0x2C .text:0003C238 var_2A = -0x2A .text:0003C238 arg_0 = 4 .text:0003C238 arg_4 = 8 .text:0003C238 arg_8 = 0xC .text:0003C238 arg_C = 0x10 .text:0003C238 .text:0003C238 MOV R12, SP .text:0003C23C STMFD SP!, {R4-R12,LR,PC} .text:0003C240 SUB R11, R12, #4 .text:0003C244 MOV R7, R1 .text:0003C248 SUB SP, SP, #0x54 .text:0003C24C LDR R1, [R7,#8] .text:0003C250 MOV R12, #0 .text:0003C254 STR R12, [R11,#var_48] .text:0003C258 STR R2, [R11,#var_3C] .text:0003C25C ADD R0, R0, #0x38 .text:0003C260 STR R0, [R11,#var_40] .text:0003C264 MOV R6, R3 .text:0003C268 ADD R0, R7, #0x24 .text:0003C26C STR R0, [R11,#var_44] .text:0003C270 TST R1, #1 .text:0003C274 LDREQ R1, [R11,#var_40] .text:0003C278 LDREQ R1, [R1,#0x14] .text:0003C27C STREQ R1, [R11,#var_48] .text:0003C280 LDR R3, [R11,#arg_8] .text:0003C284 CMP R3, #0 .text:0003C288 BEQ loc_3C314 .text:0003C28C LDR R2, [R11,#arg_0] .text:0003C290 MOV R5, #0 .text:0003C294 CMP R2, R5 .text:0003C298 BEQ loc_3C2B0 .text:0003C29C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003C2A0 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003C2A4 LDR R3, =a__gconv_tran_7 ; "__gconv_transform_ucs2_internal" .text:0003C2A8 MOV R2, #0x130 .text:0003C2AC BL __assert_fail .text:0003C2B0 ; --------------------------------------------------------------------------- .text:0003C2B0 .text:0003C2B0 loc_3C2B0 ; CODE XREF: __gconv_transform_ucs2_internal+60j .text:0003C2B0 MOV R1, R5 .text:0003C2B4 LDR R0, [R7,#0x14] .text:0003C2B8 MOV R2, #8 .text:0003C2BC BL memset .text:0003C2C0 LDR R3, [R7,#8] .text:0003C2C4 TST R3, #1 .text:0003C2C8 BNE loc_3C9D4 .text:0003C2CC LDR R0, [R11,#var_48] .text:0003C2D0 BL _dl_mcount_wrapper_check .text:0003C2D4 STR R5, [SP,#0x7C+var_7C] .text:0003C2D8 LDR R3, [R11,#arg_4] .text:0003C2DC STR R3, [SP,#0x7C+var_78] .text:0003C2E0 MOV R3, #1 .text:0003C2E4 STR R3, [SP,#0x7C+var_74] .text:0003C2E8 LDR R12, [R11,#arg_C] .text:0003C2EC STR R12, [SP,#0x7C+var_70] .text:0003C2F0 LDR R0, [R11,#var_40] .text:0003C2F4 LDR R1, [R11,#var_44] .text:0003C2F8 MOV R2, R5 .text:0003C2FC LDR R12, [R11,#var_48] .text:0003C300 MOV R3, R2 .text:0003C304 MOV LR, PC .text:0003C308 MOV PC, R12 .text:0003C30C MOV R5, R0 .text:0003C310 B loc_3C9D4 .text:0003C314 ; --------------------------------------------------------------------------- .text:0003C314 .text:0003C314 loc_3C314 ; CODE XREF: __gconv_transform_ucs2_internal+50j .text:0003C314 LDR R1, [R11,#var_3C] .text:0003C318 LDR R0, [R11,#arg_0] .text:0003C31C LDR R1, [R1] .text:0003C320 CMP R0, #0 .text:0003C324 STR R1, [R11,#var_4C] .text:0003C328 LDREQ R3, [R7] .text:0003C32C LDRNE R2, [R11,#arg_0] .text:0003C330 LDRNE R3, [R2] .text:0003C334 STR R3, [R11,#var_34] .text:0003C338 MOV R3, #0 .text:0003C33C STR R3, [R11,#var_30] .text:0003C340 SUB R0, R11, #-var_34 .text:0003C344 STR R0, [R11,#var_68] .text:0003C348 LDR R3, [R11,#arg_4] .text:0003C34C LDR R12, [R11,#arg_C] .text:0003C350 CMP R3, #0 .text:0003C354 SUBNE R9, R11, #-var_30 .text:0003C358 MOVEQ R9, #0 .text:0003C35C LDR R1, [R7,#4] .text:0003C360 CMP R12, #0 .text:0003C364 STR R1, [R11,#var_50] .text:0003C368 BEQ loc_3C5E4 .text:0003C36C LDR R5, [R7,#0x14] .text:0003C370 LDR R3, [R5] .text:0003C374 ANDS R3, R3, #7 .text:0003C378 BEQ loc_3C5E4 .text:0003C37C LDR R2, [R11,#arg_0] .text:0003C380 CMP R2, #0 .text:0003C384 BEQ loc_3C3A0 .text:0003C388 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003C38C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003C390 MOV R2, #0x168 .text:0003C394 LDR R3, =a__gconv_tran_7 ; "__gconv_transform_ucs2_internal" .text:0003C398 ADD R2, R2, #2 .text:0003C39C BL __assert_fail .text:0003C3A0 ; --------------------------------------------------------------------------- .text:0003C3A0 .text:0003C3A0 loc_3C3A0 ; CODE XREF: __gconv_transform_ucs2_internal+14Cj .text:0003C3A0 LDR R12, [R11,#arg_0] .text:0003C3A4 STR R12, [R11,#var_58] .text:0003C3A8 LDR R0, [R11,#var_3C] .text:0003C3AC LDR R1, [R11,#var_34] .text:0003C3B0 MOV R4, R12 .text:0003C3B4 LDR R12, [R0] .text:0003C3B8 STR R1, [R11,#var_5C] .text:0003C3BC CMP R4, R3 .text:0003C3C0 LDR R10, [R7,#8] .text:0003C3C4 BCS loc_3C3EC .text:0003C3C8 SUB R1, R11, #-var_2C .text:0003C3CC .text:0003C3CC loc_3C3CC ; CODE XREF: __gconv_transform_ucs2_internal+1B0j .text:0003C3CC ADD R3, R5, R4 .text:0003C3D0 LDRB R2, [R3,#4] .text:0003C3D4 STRB R2, [R1,R4] .text:0003C3D8 LDR R3, [R5] .text:0003C3DC ADD R4, R4, #1 .text:0003C3E0 AND R3, R3, #7 .text:0003C3E4 CMP R4, R3 .text:0003C3E8 BCC loc_3C3CC .text:0003C3EC .text:0003C3EC loc_3C3EC ; CODE XREF: __gconv_transform_ucs2_internal+18Cj .text:0003C3EC ADD R3, R12, #2 .text:0003C3F0 RSB R3, R4, R3 .text:0003C3F4 CMP R3, R6 .text:0003C3F8 BLS loc_3C42C .text:0003C3FC LDR R2, [R11,#var_3C] .text:0003C400 CMP R12, R6 .text:0003C404 STR R6, [R2] .text:0003C408 BCS loc_3C424 .text:0003C40C .text:0003C40C loc_3C40C ; CODE XREF: __gconv_transform_ucs2_internal+1E8j .text:0003C40C ADD R2, R5, R4 .text:0003C410 LDRB R3, [R12],#1 .text:0003C414 ADD R4, R4, #1 .text:0003C418 CMP R12, R6 .text:0003C41C STRB R3, [R2,#4] .text:0003C420 BCC loc_3C40C .text:0003C424 .text:0003C424 loc_3C424 ; CODE XREF: __gconv_transform_ucs2_internal+1D0j .text:0003C424 MOV R5, #7 .text:0003C428 B loc_3C5B8 .text:0003C42C ; --------------------------------------------------------------------------- .text:0003C42C .text:0003C42C loc_3C42C ; CODE XREF: __gconv_transform_ucs2_internal+1C0j .text:0003C42C LDR R0, [R11,#var_5C] .text:0003C430 LDR R1, [R11,#var_50] .text:0003C434 ADD R3, R0, #4 .text:0003C438 CMP R3, R1 .text:0003C43C STR R3, [R11,#var_6C] .text:0003C440 MOVHI R5, #5 .text:0003C444 BHI loc_3C5B8 .text:0003C448 SUB LR, R11, #-var_2C .text:0003C44C MOV R2, LR .text:0003C450 .text:0003C450 loc_3C450 ; CODE XREF: __gconv_transform_ucs2_internal+22Cj .text:0003C450 LDRB R3, [R12],#1 .text:0003C454 STRB R3, [R2,R4] .text:0003C458 ADD R4, R4, #1 .text:0003C45C CMP R4, #1 .text:0003C460 CMPLS R12, R6 .text:0003C464 BCC loc_3C450 .text:0003C468 MOV R12, LR .text:0003C46C MOV R0, 0x7FF .text:0003C474 ADD R8, R12, R4 .text:0003C478 AND R10, R10, #2 .text:0003C47C B loc_3C4AC .text:0003C480 ; --------------------------------------------------------------------------- .text:0003C480 .text:0003C480 loc_3C480 ; CODE XREF: __gconv_transform_ucs2_internal+29Cj .text:0003C480 LDR R3, [R9] .text:0003C484 ADD R12, LR, #2 .text:0003C488 ADD R3, R3, #1 .text:0003C48C STR R3, [R9] .text:0003C490 B loc_3C4E0 .text:0003C494 ; --------------------------------------------------------------------------- .text:0003C494 .text:0003C494 loc_3C494 ; CODE XREF: __gconv_transform_ucs2_internal+28Cj .text:0003C494 LDR R3, [R11,#var_5C] .text:0003C498 STR R2, [R3] .text:0003C49C LDR R12, [R11,#var_6C] .text:0003C4A0 STR R12, [R11,#var_5C] .text:0003C4A4 ADD R12, LR, #2 .text:0003C4A8 B loc_3C4E0 .text:0003C4AC ; --------------------------------------------------------------------------- .text:0003C4AC .text:0003C4AC loc_3C4AC ; CODE XREF: __gconv_transform_ucs2_internal+244j .text:0003C4AC LDRB R1, [LR] .text:0003C4B0 LDRB R2, [LR,#1] .text:0003C4B4 ORR R2, R1, R2,LSL#8 .text:0003C4B8 ADD R3, R2, #0x2800 .text:0003C4BC MOV R3, R3,LSL#16 .text:0003C4C0 CMP R0, R3,LSR#16 .text:0003C4C4 BCC loc_3C494 .text:0003C4C8 CMP R9, #0 .text:0003C4CC BEQ loc_3C4D8 .text:0003C4D0 CMP R10, #0 .text:0003C4D4 BNE loc_3C480 .text:0003C4D8 .text:0003C4D8 loc_3C4D8 ; CODE XREF: __gconv_transform_ucs2_internal+294j .text:0003C4D8 MOV R0, #6 .text:0003C4DC STR R0, [R11,#var_58] .text:0003C4E0 .text:0003C4E0 loc_3C4E0 ; CODE XREF: __gconv_transform_ucs2_internal+258j .text:0003C4E0 ; __gconv_transform_ucs2_internal+270j .text:0003C4E0 CMP R12, LR .text:0003C4E4 BEQ loc_3C544 .text:0003C4E8 LDR R3, [R5] .text:0003C4EC RSB R1, LR, R12 .text:0003C4F0 AND R2, R3, #7 .text:0003C4F4 CMP R1, R2 .text:0003C4F8 BGT loc_3C510 .text:0003C4FC LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003C500 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003C504 LDR R3, =aUcs2_internal_ ; "ucs2_internal_loop_single" .text:0003C508 MOV R2, #0x17C .text:0003C50C BL __assert_fail .text:0003C510 ; --------------------------------------------------------------------------- .text:0003C510 .text:0003C510 loc_3C510 ; CODE XREF: __gconv_transform_ucs2_internal+2C0j .text:0003C510 LDR R3, [R11,#var_5C] .text:0003C514 STR R3, [R11,#var_34] .text:0003C518 LDR R12, [R11,#var_3C] .text:0003C51C LDR R3, [R12] .text:0003C520 RSB R2, R2, R1 .text:0003C524 ADD R3, R3, R2 .text:0003C528 STR R3, [R12] .text:0003C52C LDR R2, [R5] .text:0003C530 MOV R0, #0 .text:0003C534 STR R0, [R11,#var_58] .text:0003C538 BIC R2, R2, #7 .text:0003C53C STR R2, [R5] .text:0003C540 B loc_3C5B4 .text:0003C544 ; --------------------------------------------------------------------------- .text:0003C544 .text:0003C544 loc_3C544 ; CODE XREF: __gconv_transform_ucs2_internal+2ACj .text:0003C544 LDR R1, [R11,#var_58] .text:0003C548 CMP R1, #7 .text:0003C54C BNE loc_3C5B4 .text:0003C550 SUB R3, R11, #-var_2A .text:0003C554 CMP R8, R3 .text:0003C558 BNE loc_3C574 .text:0003C55C LDR R0, =aInendBytebuf2 ; "inend != &bytebuf[2]" .text:0003C560 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003C564 MOV R2, #0x188 .text:0003C568 LDR R3, =aUcs2_internal_ ; "ucs2_internal_loop_single" .text:0003C56C ADD R2, R2, #2 .text:0003C570 BL __assert_fail .text:0003C574 ; --------------------------------------------------------------------------- .text:0003C574 .text:0003C574 loc_3C574 ; CODE XREF: __gconv_transform_ucs2_internal+320j .text:0003C574 CMP R12, R8 .text:0003C578 LDR R3, [R5] .text:0003C57C RSB R1, R12, R8 .text:0003C580 LDR R0, [R11,#var_3C] .text:0003C584 AND R3, R3, #7 .text:0003C588 LDR R2, [R0] .text:0003C58C RSB R1, R3, R1 .text:0003C590 ADD R2, R2, R1 .text:0003C594 STR R2, [R0] .text:0003C598 BCS loc_3C5B4 .text:0003C59C .text:0003C59C loc_3C59C ; CODE XREF: __gconv_transform_ucs2_internal+378j .text:0003C59C ADD R2, R5, R4 .text:0003C5A0 LDRB R3, [R12],#1 .text:0003C5A4 ADD R4, R4, #1 .text:0003C5A8 CMP R12, R8 .text:0003C5AC STRB R3, [R2,#4] .text:0003C5B0 BCC loc_3C59C .text:0003C5B4 .text:0003C5B4 loc_3C5B4 ; CODE XREF: __gconv_transform_ucs2_internal+308j .text:0003C5B4 ; __gconv_transform_ucs2_internal+314j ... .text:0003C5B4 LDR R5, [R11,#var_58] .text:0003C5B8 .text:0003C5B8 loc_3C5B8 ; CODE XREF: __gconv_transform_ucs2_internal+1F0j .text:0003C5B8 ; __gconv_transform_ucs2_internal+20Cj .text:0003C5B8 CMP R5, #0 .text:0003C5BC BEQ loc_3C5E4 .text:0003C5C0 B loc_3C9D4 .text:0003C5C4 ; --------------------------------------------------------------------------- .text:0003C5C4 .text:0003C5C4 loc_3C5C4 ; CODE XREF: __gconv_transform_ucs2_internal+630j .text:0003C5C4 LDR R3, [R11,#var_34] .text:0003C5C8 STR R3, [R7] .text:0003C5CC LDR R1, [R11,#arg_4] .text:0003C5D0 LDR R3, [R11,#var_30] .text:0003C5D4 LDR R2, [R1] .text:0003C5D8 ADD R2, R2, R3 .text:0003C5DC STR R2, [R1] .text:0003C5E0 B loc_3C910 .text:0003C5E4 ; --------------------------------------------------------------------------- .text:0003C5E4 .text:0003C5E4 loc_3C5E4 ; CODE XREF: __gconv_transform_ucs2_internal+130j .text:0003C5E4 ; __gconv_transform_ucs2_internal+140j ... .text:0003C5E4 LDR R3, [R11,#var_4C] .text:0003C5E8 MOV R2, #0 .text:0003C5EC STR R2, [R11,#var_54] .text:0003C5F0 TST R3, #1 .text:0003C5F4 BNE loc_3C610 .text:0003C5F8 LDR R3, [R7,#8] .text:0003C5FC TST R3, #1 .text:0003C600 BEQ loc_3C618 .text:0003C604 LDR R3, [R11,#var_34] .text:0003C608 TST R3, #3 .text:0003C60C BEQ loc_3C618 .text:0003C610 .text:0003C610 loc_3C610 ; CODE XREF: __gconv_transform_ucs2_internal+3BCj .text:0003C610 MOV R12, #1 .text:0003C614 STR R12, [R11,#var_54] .text:0003C618 .text:0003C618 loc_3C618 ; CODE XREF: __gconv_transform_ucs2_internal+3C8j .text:0003C618 ; __gconv_transform_ucs2_internal+3D4j ... .text:0003C618 LDR R0, [R11,#var_3C] .text:0003C61C LDR R1, [R11,#var_54] .text:0003C620 LDR R10, [R11,#var_34] .text:0003C624 LDR R0, [R0] .text:0003C628 CMP R1, #0 .text:0003C62C STR R0, [R11,#var_4C] .text:0003C630 BNE loc_3C730 .text:0003C634 MOV R8, #4 .text:0003C638 MOV LR, R0 .text:0003C63C MOV R0, R10 .text:0003C640 MOV R5, 0x7FF .text:0003C648 LDR R3, [R7,#8] .text:0003C64C CMP LR, R6 .text:0003C650 AND R3, R3, #2 .text:0003C654 STR R3, [R11,#var_60] .text:0003C658 BEQ loc_3C708 .text:0003C65C LDR R2, [R11,#var_50] .text:0003C660 ADD R4, R10, R8 .text:0003C664 CMP R4, R2 .text:0003C668 B loc_3C6F4 .text:0003C668 ; --------------------------------------------------------------------------- .text:0003C66C off_3C66C DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ucs2_internal+64r .text:0003C66C ; __gconv_transform_ucs2_internal+150r .text:0003C66C ; "outbufstart == ((void *)0)" .text:0003C670 off_3C670 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs2_internal+68r .text:0003C670 ; __gconv_transform_ucs2_internal+154r .text:0003C670 ; "../iconv/skeleton.c" .text:0003C674 off_3C674 DCD a__gconv_tran_7 ; DATA XREF: __gconv_transform_ucs2_internal+6Cr .text:0003C674 ; __gconv_transform_ucs2_internal+15Cr .text:0003C674 ; "__gconv_transform_ucs2_internal" .text:0003C678 off_3C678 DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_ucs2_internal+2C4r .text:0003C678 ; "inptr - bytebuf > (state->__count & 7)" .text:0003C67C off_3C67C DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_ucs2_internal+2C8r .text:0003C67C ; __gconv_transform_ucs2_internal+328r .text:0003C67C ; "../iconv/loop.c" .text:0003C680 off_3C680 DCD aUcs2_internal_ ; DATA XREF: __gconv_transform_ucs2_internal+2CCr .text:0003C680 ; __gconv_transform_ucs2_internal+330r .text:0003C680 ; "ucs2_internal_loop_single" .text:0003C684 off_3C684 DCD aInendBytebuf2 ; DATA XREF: __gconv_transform_ucs2_internal+324r .text:0003C684 ; "inend != &bytebuf[2]" .text:0003C688 ; --------------------------------------------------------------------------- .text:0003C688 .text:0003C688 loc_3C688 ; CODE XREF: __gconv_transform_ucs2_internal+4C8j .text:0003C688 LDRB R1, [LR] .text:0003C68C LDRB R2, [LR,#1] .text:0003C690 ORR R2, R1, R2,LSL#8 .text:0003C694 ADD R3, R2, #0x2800 .text:0003C698 MOV R3, R3,LSL#16 .text:0003C69C CMP R5, R3,LSR#16 .text:0003C6A0 BCC loc_3C6D4 .text:0003C6A4 CMP R9, #0 .text:0003C6A8 BEQ loc_3C6B8 .text:0003C6AC LDR R3, [R11,#var_60] .text:0003C6B0 CMP R3, #0 .text:0003C6B4 BNE loc_3C6C0 .text:0003C6B8 .text:0003C6B8 loc_3C6B8 ; CODE XREF: __gconv_transform_ucs2_internal+470j .text:0003C6B8 MOV R8, #6 .text:0003C6BC B loc_3C708 .text:0003C6C0 ; --------------------------------------------------------------------------- .text:0003C6C0 .text:0003C6C0 loc_3C6C0 ; CODE XREF: __gconv_transform_ucs2_internal+47Cj .text:0003C6C0 LDR R3, [R9] .text:0003C6C4 MOV LR, R12 .text:0003C6C8 ADD R3, R3, #1 .text:0003C6CC STR R3, [R9] .text:0003C6D0 B loc_3C6E0 .text:0003C6D4 ; --------------------------------------------------------------------------- .text:0003C6D4 .text:0003C6D4 loc_3C6D4 ; CODE XREF: __gconv_transform_ucs2_internal+468j .text:0003C6D4 STR R2, [R0] .text:0003C6D8 MOV R0, R4 .text:0003C6DC MOV LR, R12 .text:0003C6E0 .text:0003C6E0 loc_3C6E0 ; CODE XREF: __gconv_transform_ucs2_internal+498j .text:0003C6E0 CMP LR, R6 .text:0003C6E4 BEQ loc_3C708 .text:0003C6E8 LDR R12, [R11,#var_50] .text:0003C6EC ADD R4, R0, #4 .text:0003C6F0 CMP R4, R12 .text:0003C6F4 .text:0003C6F4 loc_3C6F4 ; CODE XREF: __gconv_transform_ucs2_internal+430j .text:0003C6F4 BHI loc_3C720 .text:0003C6F8 ADD R12, LR, #2 .text:0003C6FC CMP R12, R6 .text:0003C700 BLS loc_3C688 .text:0003C704 MOV R8, #7 .text:0003C708 .text:0003C708 loc_3C708 ; CODE XREF: __gconv_transform_ucs2_internal+420j .text:0003C708 ; __gconv_transform_ucs2_internal+484j ... .text:0003C708 LDR R1, [R11,#var_3C] .text:0003C70C STR LR, [R1] .text:0003C710 LDR R2, [R11,#var_68] .text:0003C714 MOV R5, R8 .text:0003C718 STR R0, [R2] .text:0003C71C B loc_3C7FC .text:0003C720 ; --------------------------------------------------------------------------- .text:0003C720 .text:0003C720 loc_3C720 ; CODE XREF: __gconv_transform_ucs2_internal:loc_3C6F4j .text:0003C720 MOV R8, #5 .text:0003C724 B loc_3C708 .text:0003C728 ; --------------------------------------------------------------------------- .text:0003C728 .text:0003C728 loc_3C728 ; CODE XREF: __gconv_transform_ucs2_internal:loc_3C7D4j .text:0003C728 MOV R8, #5 .text:0003C72C B loc_3C7E8 .text:0003C730 ; --------------------------------------------------------------------------- .text:0003C730 .text:0003C730 loc_3C730 ; CODE XREF: __gconv_transform_ucs2_internal+3F8j .text:0003C730 MOV R8, #4 .text:0003C734 MOV R0, R10 .text:0003C738 MOV R5, #0x7F0 .text:0003C73C LDR LR, [R11,#var_4C] .text:0003C740 ADD R5, R5, #0xF .text:0003C744 LDR R3, [R7,#8] .text:0003C748 CMP LR, R6 .text:0003C74C AND R3, R3, #2 .text:0003C750 STR R3, [R11,#var_64] .text:0003C754 BEQ loc_3C7E8 .text:0003C758 LDR R3, [R11,#var_50] .text:0003C75C ADD R4, R10, R8 .text:0003C760 CMP R4, R3 .text:0003C764 B loc_3C7D4 .text:0003C768 ; --------------------------------------------------------------------------- .text:0003C768 .text:0003C768 loc_3C768 ; CODE XREF: __gconv_transform_ucs2_internal+5A8j .text:0003C768 LDRB R1, [LR] .text:0003C76C LDRB R2, [LR,#1] .text:0003C770 ORR R2, R1, R2,LSL#8 .text:0003C774 ADD R3, R2, #0x2800 .text:0003C778 MOV R3, R3,LSL#16 .text:0003C77C CMP R5, R3,LSR#16 .text:0003C780 BCC loc_3C7B4 .text:0003C784 CMP R9, #0 .text:0003C788 BEQ loc_3C798 .text:0003C78C LDR R1, [R11,#var_64] .text:0003C790 CMP R1, #0 .text:0003C794 BNE loc_3C7A0 .text:0003C798 .text:0003C798 loc_3C798 ; CODE XREF: __gconv_transform_ucs2_internal+550j .text:0003C798 MOV R8, #6 .text:0003C79C B loc_3C7E8 .text:0003C7A0 ; --------------------------------------------------------------------------- .text:0003C7A0 .text:0003C7A0 loc_3C7A0 ; CODE XREF: __gconv_transform_ucs2_internal+55Cj .text:0003C7A0 LDR R3, [R9] .text:0003C7A4 MOV LR, R12 .text:0003C7A8 ADD R3, R3, #1 .text:0003C7AC STR R3, [R9] .text:0003C7B0 B loc_3C7C0 .text:0003C7B4 ; --------------------------------------------------------------------------- .text:0003C7B4 .text:0003C7B4 loc_3C7B4 ; CODE XREF: __gconv_transform_ucs2_internal+548j .text:0003C7B4 STR R2, [R0] .text:0003C7B8 MOV R0, R4 .text:0003C7BC MOV LR, R12 .text:0003C7C0 .text:0003C7C0 loc_3C7C0 ; CODE XREF: __gconv_transform_ucs2_internal+578j .text:0003C7C0 CMP LR, R6 .text:0003C7C4 BEQ loc_3C7E8 .text:0003C7C8 LDR R2, [R11,#var_50] .text:0003C7CC ADD R4, R0, #4 .text:0003C7D0 CMP R4, R2 .text:0003C7D4 .text:0003C7D4 loc_3C7D4 ; CODE XREF: __gconv_transform_ucs2_internal+52Cj .text:0003C7D4 BHI loc_3C728 .text:0003C7D8 ADD R12, LR, #2 .text:0003C7DC CMP R12, R6 .text:0003C7E0 BLS loc_3C768 .text:0003C7E4 MOV R8, #7 .text:0003C7E8 .text:0003C7E8 loc_3C7E8 ; CODE XREF: __gconv_transform_ucs2_internal+4F4j .text:0003C7E8 ; __gconv_transform_ucs2_internal+51Cj ... .text:0003C7E8 LDR R3, [R11,#var_3C] .text:0003C7EC STR LR, [R3] .text:0003C7F0 LDR R12, [R11,#var_68] .text:0003C7F4 MOV R5, R8 .text:0003C7F8 STR R0, [R12] .text:0003C7FC .text:0003C7FC loc_3C7FC ; CODE XREF: __gconv_transform_ucs2_internal+4E4j .text:0003C7FC LDR R0, [R11,#arg_0] .text:0003C800 CMP R0, #0 .text:0003C804 BNE loc_3C95C .text:0003C808 LDR R4, [R7,#0x20] .text:0003C80C CMP R4, #0 .text:0003C810 BEQ loc_3C854 .text:0003C814 .text:0003C814 loc_3C814 ; CODE XREF: __gconv_transform_ucs2_internal+618j .text:0003C814 LDR R0, [R4,#4] .text:0003C818 CMP R0, #0 .text:0003C81C BEQ loc_3C848 .text:0003C820 BL _dl_mcount_wrapper_check .text:0003C824 LDR R3, [R11,#var_34] .text:0003C828 LDR R0, [R4,#0xC] .text:0003C82C STR R3, [SP,#0x7C+var_7C] .text:0003C830 LDR R12, [R11,#var_3C] .text:0003C834 LDR R1, [R11,#var_4C] .text:0003C838 LDR R2, [R12] .text:0003C83C MOV R3, R10 .text:0003C840 MOV LR, PC .text:0003C844 LDR PC, [R4,#4] .text:0003C848 .text:0003C848 loc_3C848 ; CODE XREF: __gconv_transform_ucs2_internal+5E4j .text:0003C848 LDR R4, [R4,#0x10] .text:0003C84C CMP R4, #0 .text:0003C850 BNE loc_3C814 .text:0003C854 .text:0003C854 loc_3C854 ; CODE XREF: __gconv_transform_ucs2_internal+5D8j .text:0003C854 ADD R2, R7, #8 .text:0003C858 LDMIA R2, {R2,R3} .text:0003C85C ADD R3, R3, #1 .text:0003C860 ANDS R4, R2, #1 .text:0003C864 STR R3, [R7,#0xC] .text:0003C868 BNE loc_3C5C4 .text:0003C86C LDR R3, [R11,#var_34] .text:0003C870 CMP R3, R10 .text:0003C874 BLS loc_3C900 .text:0003C878 LDR R3, [R7] .text:0003C87C STR R3, [R11,#var_38] .text:0003C880 LDR R0, [R11,#var_48] .text:0003C884 BL _dl_mcount_wrapper_check .text:0003C888 STR R4, [SP,#0x7C+var_7C] .text:0003C88C LDR R0, [R11,#arg_4] .text:0003C890 STMFA SP, {R0,R4} .text:0003C894 LDR R1, [R11,#arg_C] .text:0003C898 STR R1, [SP,#0x7C+var_70] .text:0003C89C LDR R0, [R11,#var_40] .text:0003C8A0 LDR R1, [R11,#var_44] .text:0003C8A4 LDR R3, [R11,#var_34] .text:0003C8A8 LDR R12, [R11,#var_48] .text:0003C8AC SUB R2, R11, #-var_38 .text:0003C8B0 MOV LR, PC .text:0003C8B4 MOV PC, R12 .text:0003C8B8 CMP R0, #4 .text:0003C8BC BEQ loc_3C8F0 .text:0003C8C0 SUB R2, R11, #-var_38 .text:0003C8C4 LDMIA R2, {R2,R3} .text:0003C8C8 CMP R2, R3 .text:0003C8CC BEQ loc_3C8E8 .text:0003C8D0 LDR R1, [R11,#var_3C] .text:0003C8D4 RSB R3, R2, R3 .text:0003C8D8 LDR R2, [R1] .text:0003C8DC ADD R3, R3, R3,LSR#31 .text:0003C8E0 SUB R2, R2, R3,ASR#1 .text:0003C8E4 STR R2, [R1] .text:0003C8E8 .text:0003C8E8 loc_3C8E8 ; CODE XREF: __gconv_transform_ucs2_internal+694j .text:0003C8E8 MOV R5, R0 .text:0003C8EC B loc_3C900 .text:0003C8F0 ; --------------------------------------------------------------------------- .text:0003C8F0 .text:0003C8F0 loc_3C8F0 ; CODE XREF: __gconv_transform_ucs2_internal+684j .text:0003C8F0 CMP R5, #5 .text:0003C8F4 LDREQ R3, [R7] .text:0003C8F8 MOVEQ R5, R4 .text:0003C8FC STREQ R3, [R11,#var_34] .text:0003C900 .text:0003C900 loc_3C900 ; CODE XREF: __gconv_transform_ucs2_internal+63Cj .text:0003C900 ; __gconv_transform_ucs2_internal+6B4j .text:0003C900 CMP R5, #0 .text:0003C904 LDREQ R3, [R7] .text:0003C908 STREQ R3, [R11,#var_34] .text:0003C90C BEQ loc_3C618 .text:0003C910 .text:0003C910 loc_3C910 ; CODE XREF: __gconv_transform_ucs2_internal+3A8j .text:0003C910 LDR R2, [R11,#arg_C] .text:0003C914 CMP R5, #7 .text:0003C918 MOVNE R3, #0 .text:0003C91C MOVEQ R3, #1 .text:0003C920 CMP R2, #0 .text:0003C924 MOVEQ R3, #0 .text:0003C928 CMP R3, #0 .text:0003C92C BEQ loc_3C9D4 .text:0003C930 LDR R3, [R11,#var_3C] .text:0003C934 LDR R2, [R3] .text:0003C938 RSB R3, R2, R6 .text:0003C93C CMP R3, #3 .text:0003C940 BLE loc_3C97C .text:0003C944 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003C948 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003C94C MOV R2, #0x254 .text:0003C950 LDR R3, =a__gconv_tran_7 ; "__gconv_transform_ucs2_internal" .text:0003C954 ADD R2, R2, #3 .text:0003C958 BL __assert_fail .text:0003C95C ; --------------------------------------------------------------------------- .text:0003C95C .text:0003C95C loc_3C95C ; CODE XREF: __gconv_transform_ucs2_internal+5CCj .text:0003C95C LDR R3, [R11,#var_34] .text:0003C960 LDR R12, [R11,#arg_0] .text:0003C964 MOV R0, R5 .text:0003C968 STR R3, [R12] .text:0003C96C B locret_3C9D8 .text:0003C96C ; --------------------------------------------------------------------------- .text:0003C970 off_3C970 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_ucs2_internal+70Cr .text:0003C970 ; "inend - *inptrp < 4" .text:0003C974 off_3C974 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs2_internal+710r .text:0003C974 ; "../iconv/skeleton.c" .text:0003C978 off_3C978 DCD a__gconv_tran_7 ; DATA XREF: __gconv_transform_ucs2_internal+718r .text:0003C978 ; "__gconv_transform_ucs2_internal" .text:0003C97C ; --------------------------------------------------------------------------- .text:0003C97C .text:0003C97C loc_3C97C ; CODE XREF: __gconv_transform_ucs2_internal+708j .text:0003C97C MOV R0, #0 .text:0003C980 CMP R2, R6 .text:0003C984 BCS loc_3C9B4 .text:0003C988 .text:0003C988 loc_3C988 ; CODE XREF: __gconv_transform_ucs2_internal+778j .text:0003C988 LDR R1, [R11,#var_3C] .text:0003C98C LDR R2, [R7,#0x14] .text:0003C990 LDR R3, [R1] .text:0003C994 LDRB R1, [R3],#1 .text:0003C998 ADD R2, R2, R0 .text:0003C99C STRB R1, [R2,#4] .text:0003C9A0 ADD R0, R0, #1 .text:0003C9A4 LDR R2, [R11,#var_3C] .text:0003C9A8 CMP R3, R6 .text:0003C9AC STR R3, [R2] .text:0003C9B0 BCC loc_3C988 .text:0003C9B4 .text:0003C9B4 loc_3C9B4 ; CODE XREF: __gconv_transform_ucs2_internal+74Cj .text:0003C9B4 LDR R2, [R7,#0x14] .text:0003C9B8 LDR R3, [R2] .text:0003C9BC BIC R3, R3, #7 .text:0003C9C0 STR R3, [R2] .text:0003C9C4 LDR R1, [R7,#0x14] .text:0003C9C8 LDR R3, [R1] .text:0003C9CC ORR R3, R3, R0 .text:0003C9D0 STR R3, [R1] .text:0003C9D4 .text:0003C9D4 loc_3C9D4 ; CODE XREF: __gconv_transform_ucs2_internal+90j .text:0003C9D4 ; __gconv_transform_ucs2_internal+D8j ... .text:0003C9D4 MOV R0, R5 .text:0003C9D8 .text:0003C9D8 locret_3C9D8 ; CODE XREF: __gconv_transform_ucs2_internal+734j .text:0003C9D8 LDMDB R11, {R4-R11,SP,PC} .text:0003C9D8 ; End of function __gconv_transform_ucs2_internal .text:0003C9D8 .text:0003C9DC .text:0003C9DC ; =============== S U B R O U T I N E ======================================= .text:0003C9DC .text:0003C9DC ; Attributes: bp-based frame .text:0003C9DC .text:0003C9DC EXPORT __gconv_transform_internal_ucs2 .text:0003C9DC __gconv_transform_internal_ucs2 .text:0003C9DC .text:0003C9DC var_9C = -0x9C .text:0003C9DC var_98 = -0x98 .text:0003C9DC var_94 = -0x94 .text:0003C9DC var_90 = -0x90 .text:0003C9DC var_8C = -0x8C .text:0003C9DC var_88 = -0x88 .text:0003C9DC var_84 = -0x84 .text:0003C9DC var_80 = -0x80 .text:0003C9DC var_7C = -0x7C .text:0003C9DC var_78 = -0x78 .text:0003C9DC var_74 = -0x74 .text:0003C9DC var_70 = -0x70 .text:0003C9DC var_6C = -0x6C .text:0003C9DC var_68 = -0x68 .text:0003C9DC var_64 = -0x64 .text:0003C9DC var_60 = -0x60 .text:0003C9DC var_54 = -0x54 .text:0003C9DC var_50 = -0x50 .text:0003C9DC var_44 = -0x44 .text:0003C9DC var_40 = -0x40 .text:0003C9DC var_3C = -0x3C .text:0003C9DC var_38 = -0x38 .text:0003C9DC var_34 = -0x34 .text:0003C9DC var_30 = -0x30 .text:0003C9DC var_2C = -0x2C .text:0003C9DC var_28 = -0x28 .text:0003C9DC arg_0 = 4 .text:0003C9DC arg_4 = 8 .text:0003C9DC arg_8 = 0xC .text:0003C9DC arg_C = 0x10 .text:0003C9DC .text:0003C9DC MOV R12, SP .text:0003C9E0 STMFD SP!, {R4-R12,LR,PC} .text:0003C9E4 SUB R11, R12, #4 .text:0003C9E8 MOV R7, R1 .text:0003C9EC SUB SP, SP, #0x74 .text:0003C9F0 LDR R1, [R7,#8] .text:0003C9F4 MOV R12, #0 .text:0003C9F8 STR R12, [R11,#var_70] .text:0003C9FC MOV R10, R2 .text:0003CA00 STR R0, [R11,#var_64] .text:0003CA04 TST R1, #1 .text:0003CA08 ADD R1, R7, #0x24 .text:0003CA0C STR R1, [R11,#var_6C] .text:0003CA10 MOV R8, R3 .text:0003CA14 ADD LR, R0, #0x38 .text:0003CA18 STR LR, [R11,#var_68] .text:0003CA1C LDREQ R2, [LR,#0x14] .text:0003CA20 STREQ R2, [R11,#var_70] .text:0003CA24 LDR R3, [R11,#arg_8] .text:0003CA28 CMP R3, #0 .text:0003CA2C BEQ loc_3CAB8 .text:0003CA30 LDR R3, [R11,#arg_0] .text:0003CA34 MOV R6, #0 .text:0003CA38 CMP R3, R6 .text:0003CA3C BEQ loc_3CA54 .text:0003CA40 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003CA44 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003CA48 LDR R3, =a__gconv_tran_8 ; "__gconv_transform_internal_ucs2" .text:0003CA4C MOV R2, #0x130 .text:0003CA50 BL __assert_fail .text:0003CA54 ; --------------------------------------------------------------------------- .text:0003CA54 .text:0003CA54 loc_3CA54 ; CODE XREF: __gconv_transform_internal_ucs2+60j .text:0003CA54 MOV R1, R6 .text:0003CA58 LDR R0, [R7,#0x14] .text:0003CA5C MOV R2, #8 .text:0003CA60 BL memset .text:0003CA64 LDR R3, [R7,#8] .text:0003CA68 TST R3, #1 .text:0003CA6C BNE loc_3D3B4 .text:0003CA70 LDR R0, [R11,#var_70] .text:0003CA74 BL _dl_mcount_wrapper_check .text:0003CA78 STR R6, [SP,#0x9C+var_9C] .text:0003CA7C LDR R12, [R11,#arg_4] .text:0003CA80 MOV R3, #1 .text:0003CA84 STR R3, [SP,#0x9C+var_94] .text:0003CA88 STR R12, [SP,#0x9C+var_98] .text:0003CA8C LDR LR, [R11,#arg_C] .text:0003CA90 STR LR, [SP,#0x9C+var_90] .text:0003CA94 LDR R0, [R11,#var_68] .text:0003CA98 LDR R1, [R11,#var_6C] .text:0003CA9C MOV R2, R6 .text:0003CAA0 LDR R12, [R11,#var_70] .text:0003CAA4 MOV R3, R2 .text:0003CAA8 MOV LR, PC .text:0003CAAC MOV PC, R12 .text:0003CAB0 MOV R6, R0 .text:0003CAB4 B loc_3D3B4 .text:0003CAB8 ; --------------------------------------------------------------------------- .text:0003CAB8 .text:0003CAB8 loc_3CAB8 ; CODE XREF: __gconv_transform_internal_ucs2+50j .text:0003CAB8 LDR LR, [R11,#arg_0] .text:0003CABC LDR R1, [R10] .text:0003CAC0 CMP LR, #0 .text:0003CAC4 STR R1, [R11,#var_74] .text:0003CAC8 LDREQ R3, [R7] .text:0003CACC LDRNE R2, [R11,#arg_0] .text:0003CAD0 LDRNE R3, [R2] .text:0003CAD4 STR R3, [R11,#var_34] .text:0003CAD8 MOV R3, #0 .text:0003CADC STR R3, [R11,#var_30] .text:0003CAE0 SUB LR, R11, #-var_34 .text:0003CAE4 STR LR, [R11,#var_8C] .text:0003CAE8 LDR R3, [R11,#arg_4] .text:0003CAEC LDR R12, [R11,#arg_C] .text:0003CAF0 CMP R3, #0 .text:0003CAF4 SUBNE R5, R11, #-var_30 .text:0003CAF8 MOVEQ R5, #0 .text:0003CAFC LDR R1, [R7,#4] .text:0003CB00 CMP R12, #0 .text:0003CB04 STR R1, [R11,#var_78] .text:0003CB08 BEQ loc_3CE88 .text:0003CB0C LDR R2, [R7,#0x14] .text:0003CB10 STR R2, [R11,#var_80] .text:0003CB14 LDR R3, [R2] .text:0003CB18 ANDS R1, R3, #7 .text:0003CB1C BEQ loc_3CE88 .text:0003CB20 LDR R3, [R11,#arg_0] .text:0003CB24 CMP R3, #0 .text:0003CB28 BEQ loc_3CB44 .text:0003CB2C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003CB30 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003CB34 MOV R2, #0x168 .text:0003CB38 LDR R3, =a__gconv_tran_8 ; "__gconv_transform_internal_ucs2" .text:0003CB3C ADD R2, R2, #2 .text:0003CB40 BL __assert_fail .text:0003CB44 ; --------------------------------------------------------------------------- .text:0003CB44 .text:0003CB44 loc_3CB44 ; CODE XREF: __gconv_transform_internal_ucs2+14Cj .text:0003CB44 LDR R3, [R10] .text:0003CB48 STR R3, [R11,#var_38] .text:0003CB4C LDR R2, [R11,#var_34] .text:0003CB50 STR R2, [R11,#var_3C] .text:0003CB54 LDR R0, [R11,#arg_0] .text:0003CB58 MOV R6, R0 .text:0003CB5C LDR R12, [R7,#8] .text:0003CB60 CMP R6, R1 .text:0003CB64 STR R12, [R11,#var_88] .text:0003CB68 BCS loc_3CB94 .text:0003CB6C SUB R1, R11, #-var_2C .text:0003CB70 .text:0003CB70 loc_3CB70 ; CODE XREF: __gconv_transform_internal_ucs2+1B4j .text:0003CB70 LDR LR, [R11,#var_80] .text:0003CB74 ADD R3, LR, R6 .text:0003CB78 LDRB R2, [R3,#4] .text:0003CB7C STRB R2, [R1,R6] .text:0003CB80 LDR R3, [LR] .text:0003CB84 ADD R6, R6, #1 .text:0003CB88 AND R3, R3, #7 .text:0003CB8C CMP R6, R3 .text:0003CB90 BCC loc_3CB70 .text:0003CB94 .text:0003CB94 loc_3CB94 ; CODE XREF: __gconv_transform_internal_ucs2+18Cj .text:0003CB94 LDR R1, [R11,#var_38] .text:0003CB98 ADD R3, R1, #4 .text:0003CB9C RSB R3, R6, R3 .text:0003CBA0 CMP R3, R8 .text:0003CBA4 BLS loc_3CBEC .text:0003CBA8 MOV R3, R1 .text:0003CBAC CMP R3, R8 .text:0003CBB0 STR R8, [R10] .text:0003CBB4 BCS loc_3CBE4 .text:0003CBB8 .text:0003CBB8 loc_3CBB8 ; CODE XREF: __gconv_transform_internal_ucs2+204j .text:0003CBB8 LDR R1, [R11,#var_80] .text:0003CBBC LDRB R3, [R3] .text:0003CBC0 ADD R2, R1, R6 .text:0003CBC4 STRB R3, [R2,#4] .text:0003CBC8 LDR R1, [R11,#var_38] .text:0003CBCC ADD R6, R6, #1 .text:0003CBD0 ADD R1, R1, #1 .text:0003CBD4 MOV R3, R1 .text:0003CBD8 CMP R3, R8 .text:0003CBDC STR R1, [R11,#var_38] .text:0003CBE0 BCC loc_3CBB8 .text:0003CBE4 .text:0003CBE4 loc_3CBE4 ; CODE XREF: __gconv_transform_internal_ucs2+1D8j .text:0003CBE4 MOV R6, #7 .text:0003CBE8 B loc_3CE58 .text:0003CBEC ; --------------------------------------------------------------------------- .text:0003CBEC .text:0003CBEC loc_3CBEC ; CODE XREF: __gconv_transform_internal_ucs2+1C8j .text:0003CBEC LDR R3, [R11,#var_3C] .text:0003CBF0 LDR R2, [R11,#var_78] .text:0003CBF4 ADD R3, R3, #2 .text:0003CBF8 CMP R3, R2 .text:0003CBFC MOVHI R6, #5 .text:0003CC00 BHI loc_3CE58 .text:0003CC04 SUB R9, R11, #-var_2C .text:0003CC08 MOV R1, R9 .text:0003CC0C .text:0003CC0C loc_3CC0C ; CODE XREF: __gconv_transform_internal_ucs2+254j .text:0003CC0C LDR R3, [R11,#var_38] .text:0003CC10 LDRB R2, [R3] .text:0003CC14 STRB R2, [R1,R6] .text:0003CC18 LDR R3, [R11,#var_38] .text:0003CC1C ADD R6, R6, #1 .text:0003CC20 ADD R3, R3, #1 .text:0003CC24 CMP R6, #3 .text:0003CC28 CMPLS R3, R8 .text:0003CC2C STR R3, [R11,#var_38] .text:0003CC30 BCC loc_3CC0C .text:0003CC34 STR R9, [R11,#var_38] .text:0003CC38 LDR R1, [R9] .text:0003CC3C ADD R3, R9, R6 .text:0003CC40 STR R3, [R11,#var_84] .text:0003CC44 CMP R1, #0x10000 .text:0003CC48 BCC loc_3CCE8 .text:0003CC4C MOV R0, #6 .text:0003CC50 CMP R5, #0 .text:0003CC54 BEQ loc_3CD4C .text:0003CC58 LDR R4, [R7,#0x20] .text:0003CC5C B loc_3CC64 .text:0003CC60 ; --------------------------------------------------------------------------- .text:0003CC60 .text:0003CC60 loc_3CC60 ; CODE XREF: __gconv_transform_internal_ucs2+2D0j .text:0003CC60 LDR R4, [R4,#0x10] .text:0003CC64 .text:0003CC64 loc_3CC64 ; CODE XREF: __gconv_transform_internal_ucs2+280j .text:0003CC64 CMP R4, #0 .text:0003CC68 BEQ loc_3CCB0 .text:0003CC6C LDR R0, [R4] .text:0003CC70 BL _dl_mcount_wrapper_check .text:0003CC74 LDR R2, [R4,#0xC] .text:0003CC78 SUB R3, R11, #-var_38 .text:0003CC7C STR R3, [SP,#0x9C+var_9C] .text:0003CC80 LDR R12, [R11,#var_84] .text:0003CC84 SUB R3, R11, #-var_3C .text:0003CC88 STR R3, [SP,#0x9C+var_94] .text:0003CC8C STR R5, [SP,#0x9C+var_90] .text:0003CC90 STR R12, [SP,#0x9C+var_98] .text:0003CC94 LDR R0, [R11,#var_64] .text:0003CC98 LDR R3, [R10] .text:0003CC9C MOV R1, R7 .text:0003CCA0 MOV LR, PC .text:0003CCA4 LDR PC, [R4] .text:0003CCA8 CMP R0, #6 .text:0003CCAC BEQ loc_3CC60 .text:0003CCB0 .text:0003CCB0 loc_3CCB0 ; CODE XREF: __gconv_transform_internal_ucs2+28Cj .text:0003CCB0 CMP R0, #6 .text:0003CCB4 BNE loc_3CD4C .text:0003CCB8 CMP R5, #0 .text:0003CCBC BEQ loc_3CD4C .text:0003CCC0 LDR LR, [R11,#var_88] .text:0003CCC4 TST LR, #2 .text:0003CCC8 BEQ loc_3CD4C .text:0003CCCC LDR R3, [R5] .text:0003CCD0 ADD R3, R3, #1 .text:0003CCD4 STR R3, [R5] .text:0003CCD8 LDR R2, [R11,#var_38] .text:0003CCDC ADD R2, R2, #4 .text:0003CCE0 STR R2, [R11,#var_38] .text:0003CCE4 B loc_3CD4C .text:0003CCE8 ; --------------------------------------------------------------------------- .text:0003CCE8 .text:0003CCE8 loc_3CCE8 ; CODE XREF: __gconv_transform_internal_ucs2+26Cj .text:0003CCE8 SUB R3, R1, #0xD800 .text:0003CCEC CMP R3, #0x800 .text:0003CCF0 BCS loc_3CD28 .text:0003CCF4 CMP R5, #0 .text:0003CCF8 BEQ loc_3CD08 .text:0003CCFC LDR R1, [R11,#var_88] .text:0003CD00 TST R1, #2 .text:0003CD04 BNE loc_3CD10 .text:0003CD08 .text:0003CD08 loc_3CD08 ; CODE XREF: __gconv_transform_internal_ucs2+31Cj .text:0003CD08 MOV R0, #6 .text:0003CD0C B loc_3CD4C .text:0003CD10 ; --------------------------------------------------------------------------- .text:0003CD10 .text:0003CD10 loc_3CD10 ; CODE XREF: __gconv_transform_internal_ucs2+328j .text:0003CD10 ADD R2, R9, #4 .text:0003CD14 STR R2, [R11,#var_38] .text:0003CD18 LDR R3, [R5] .text:0003CD1C ADD R3, R3, #1 .text:0003CD20 STR R3, [R5] .text:0003CD24 B loc_3CD4C .text:0003CD28 ; --------------------------------------------------------------------------- .text:0003CD28 .text:0003CD28 loc_3CD28 ; CODE XREF: __gconv_transform_internal_ucs2+314j .text:0003CD28 LDR R2, [R11,#var_3C] .text:0003CD2C STRB R1, [R2] .text:0003CD30 MOV R3, R1,ASR#8 .text:0003CD34 STRB R3, [R2,#1] .text:0003CD38 LDR R3, [R11,#var_38] .text:0003CD3C ADD R2, R2, #2 .text:0003CD40 STR R2, [R11,#var_3C] .text:0003CD44 ADD R3, R3, #4 .text:0003CD48 STR R3, [R11,#var_38] .text:0003CD4C .text:0003CD4C loc_3CD4C ; CODE XREF: __gconv_transform_internal_ucs2+278j .text:0003CD4C ; __gconv_transform_internal_ucs2+2D8j ... .text:0003CD4C LDR R2, [R11,#var_38] .text:0003CD50 CMP R2, R9 .text:0003CD54 BEQ loc_3CDB4 .text:0003CD58 LDR R12, [R11,#var_80] .text:0003CD5C LDR R3, [R12] .text:0003CD60 RSB R1, R9, R2 .text:0003CD64 AND R2, R3, #7 .text:0003CD68 CMP R1, R2 .text:0003CD6C BGT loc_3CD84 .text:0003CD70 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003CD74 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003CD78 LDR R3, =aInternal_ucs2_ ; "internal_ucs2_loop_single" .text:0003CD7C MOV R2, #0x17C .text:0003CD80 BL __assert_fail .text:0003CD84 ; --------------------------------------------------------------------------- .text:0003CD84 .text:0003CD84 loc_3CD84 ; CODE XREF: __gconv_transform_internal_ucs2+390j .text:0003CD84 LDR R3, [R10] .text:0003CD88 RSB R2, R2, R1 .text:0003CD8C ADD R3, R3, R2 .text:0003CD90 STR R3, [R10] .text:0003CD94 LDR R2, [R11,#var_3C] .text:0003CD98 STR R2, [R11,#var_34] .text:0003CD9C LDR LR, [R11,#var_80] .text:0003CDA0 LDR R3, [LR] .text:0003CDA4 MOV R0, #0 .text:0003CDA8 BIC R3, R3, #7 .text:0003CDAC STR R3, [LR] .text:0003CDB0 B loc_3CE54 .text:0003CDB4 ; --------------------------------------------------------------------------- .text:0003CDB4 .text:0003CDB4 loc_3CDB4 ; CODE XREF: __gconv_transform_internal_ucs2+378j .text:0003CDB4 CMP R0, #7 .text:0003CDB8 BNE loc_3CE54 .text:0003CDBC LDR R1, [R11,#var_84] .text:0003CDC0 SUB R3, R11, #-var_28 .text:0003CDC4 CMP R1, R3 .text:0003CDC8 BNE loc_3CE00 .text:0003CDCC LDR R0, =aInendBytebuf4 ; "inend != &bytebuf[4]" .text:0003CDD0 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003CDD4 MOV R2, #0x188 .text:0003CDD8 LDR R3, =aInternal_ucs2_ ; "internal_ucs2_loop_single" .text:0003CDDC ADD R2, R2, #2 .text:0003CDE0 BL __assert_fail .text:0003CDE0 ; --------------------------------------------------------------------------- .text:0003CDE4 off_3CDE4 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ucs2+64r .text:0003CDE4 ; __gconv_transform_internal_ucs2+150r .text:0003CDE4 ; "outbufstart == ((void *)0)" .text:0003CDE8 off_3CDE8 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs2+68r .text:0003CDE8 ; __gconv_transform_internal_ucs2+154r .text:0003CDE8 ; "../iconv/skeleton.c" .text:0003CDEC off_3CDEC DCD a__gconv_tran_8 ; DATA XREF: __gconv_transform_internal_ucs2+6Cr .text:0003CDEC ; __gconv_transform_internal_ucs2+15Cr .text:0003CDEC ; "__gconv_transform_internal_ucs2" .text:0003CDF0 off_3CDF0 DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_internal_ucs2+394r .text:0003CDF0 ; "inptr - bytebuf > (state->__count & 7)" .text:0003CDF4 off_3CDF4 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_ucs2+398r .text:0003CDF4 ; __gconv_transform_internal_ucs2+3F4r .text:0003CDF4 ; "../iconv/loop.c" .text:0003CDF8 off_3CDF8 DCD aInternal_ucs2_ ; DATA XREF: __gconv_transform_internal_ucs2+39Cr .text:0003CDF8 ; __gconv_transform_internal_ucs2+3FCr .text:0003CDF8 ; "internal_ucs2_loop_single" .text:0003CDFC off_3CDFC DCD aInendBytebuf4 ; DATA XREF: __gconv_transform_internal_ucs2+3F0r .text:0003CDFC ; "inend != &bytebuf[4]" .text:0003CE00 ; --------------------------------------------------------------------------- .text:0003CE00 .text:0003CE00 loc_3CE00 ; CODE XREF: __gconv_transform_internal_ucs2+3ECj .text:0003CE00 LDR LR, [R11,#var_84] .text:0003CE04 MOV R12, R2 .text:0003CE08 LDR R1, [R11,#var_80] .text:0003CE0C CMP R12, LR .text:0003CE10 LDR R3, [R1] .text:0003CE14 RSB R1, R2, LR .text:0003CE18 LDR R2, [R10] .text:0003CE1C AND R3, R3, #7 .text:0003CE20 RSB R1, R3, R1 .text:0003CE24 ADD R2, R2, R1 .text:0003CE28 STR R2, [R10] .text:0003CE2C BCS loc_3CE54 .text:0003CE30 .text:0003CE30 loc_3CE30 ; CODE XREF: __gconv_transform_internal_ucs2+474j .text:0003CE30 LDR LR, [R11,#var_80] .text:0003CE34 LDRB R2, [R12],#1 .text:0003CE38 ADD R3, LR, R6 .text:0003CE3C STRB R2, [R3,#4] .text:0003CE40 LDR R1, [R11,#var_84] .text:0003CE44 ADD R6, R6, #1 .text:0003CE48 STR R12, [R11,#var_38] .text:0003CE4C CMP R12, R1 .text:0003CE50 BCC loc_3CE30 .text:0003CE54 .text:0003CE54 loc_3CE54 ; CODE XREF: __gconv_transform_internal_ucs2+3D4j .text:0003CE54 ; __gconv_transform_internal_ucs2+3DCj ... .text:0003CE54 MOV R6, R0 .text:0003CE58 .text:0003CE58 loc_3CE58 ; CODE XREF: __gconv_transform_internal_ucs2+20Cj .text:0003CE58 ; __gconv_transform_internal_ucs2+224j .text:0003CE58 CMP R6, #0 .text:0003CE5C BEQ loc_3CE88 .text:0003CE60 B loc_3D3B4 .text:0003CE64 ; --------------------------------------------------------------------------- .text:0003CE64 .text:0003CE64 loc_3CE64 ; CODE XREF: __gconv_transform_internal_ucs2+884j .text:0003CE64 LDR R3, [R11,#var_34] .text:0003CE68 STR R3, [R7] .text:0003CE6C LDR R3, [R11,#arg_4] .text:0003CE70 LDR R2, [R3] .text:0003CE74 LDR R3, [R11,#var_30] .text:0003CE78 LDR R12, [R11,#arg_4] .text:0003CE7C ADD R2, R2, R3 .text:0003CE80 STR R2, [R12] .text:0003CE84 B loc_3D2FC .text:0003CE88 ; --------------------------------------------------------------------------- .text:0003CE88 .text:0003CE88 loc_3CE88 ; CODE XREF: __gconv_transform_internal_ucs2+12Cj .text:0003CE88 ; __gconv_transform_internal_ucs2+140j ... .text:0003CE88 LDR R1, [R11,#var_74] .text:0003CE8C MOV LR, #0 .text:0003CE90 STR LR, [R11,#var_7C] .text:0003CE94 TST R1, #3 .text:0003CE98 BNE loc_3CEB4 .text:0003CE9C LDR R3, [R7,#8] .text:0003CEA0 TST R3, #1 .text:0003CEA4 BEQ loc_3CEBC .text:0003CEA8 LDR R3, [R11,#var_34] .text:0003CEAC TST R3, #1 .text:0003CEB0 BEQ loc_3CEBC .text:0003CEB4 .text:0003CEB4 loc_3CEB4 ; CODE XREF: __gconv_transform_internal_ucs2+4BCj .text:0003CEB4 MOV R2, #1 .text:0003CEB8 STR R2, [R11,#var_7C] .text:0003CEBC .text:0003CEBC loc_3CEBC ; CODE XREF: __gconv_transform_internal_ucs2+4C8j .text:0003CEBC ; __gconv_transform_internal_ucs2+4D4j ... .text:0003CEBC LDR R3, [R10] .text:0003CEC0 LDR R12, [R11,#var_7C] .text:0003CEC4 LDR R9, [R11,#var_34] .text:0003CEC8 CMP R12, #0 .text:0003CECC STR R3, [R11,#var_74] .text:0003CED0 BNE loc_3D078 .text:0003CED4 STR R3, [R11,#var_40] .text:0003CED8 LDR R3, [R7,#8] .text:0003CEDC LDR LR, [R11,#var_74] .text:0003CEE0 MOV R0, #4 .text:0003CEE4 STR R9, [R11,#var_44] .text:0003CEE8 CMP LR, R8 .text:0003CEEC AND R6, R3, #2 .text:0003CEF0 BEQ loc_3D03C .text:0003CEF4 MOV LR, R9 .text:0003CEF8 LDR R1, [R11,#var_78] .text:0003CEFC ADD R4, R9, #2 .text:0003CF00 CMP R4, R1 .text:0003CF04 BHI loc_3D060 .text:0003CF08 LDR R2, [R11,#var_74] .text:0003CF0C ADD R12, R2, R0 .text:0003CF10 CMP R12, R8 .text:0003CF14 BHI loc_3D058 .text:0003CF18 LDR R2, [R2] .text:0003CF1C B loc_3D028 .text:0003CF20 ; --------------------------------------------------------------------------- .text:0003CF20 .text:0003CF20 loc_3CF20 ; CODE XREF: __gconv_transform_internal_ucs2+65Cj .text:0003CF20 LDR R4, [R7,#0x20] .text:0003CF24 B loc_3CF2C .text:0003CF28 ; --------------------------------------------------------------------------- .text:0003CF28 .text:0003CF28 loc_3CF28 ; CODE XREF: __gconv_transform_internal_ucs2+590j .text:0003CF28 LDR R4, [R4,#0x10] .text:0003CF2C .text:0003CF2C loc_3CF2C ; CODE XREF: __gconv_transform_internal_ucs2+548j .text:0003CF2C CMP R4, #0 .text:0003CF30 BEQ loc_3CF70 .text:0003CF34 LDR R0, [R4] .text:0003CF38 BL _dl_mcount_wrapper_check .text:0003CF3C LDR R2, [R4,#0xC] .text:0003CF40 SUB R3, R11, #-var_40 .text:0003CF44 STMEA SP, {R3,R8} .text:0003CF48 SUB R3, R11, #-var_44 .text:0003CF4C STR R3, [SP,#0x9C+var_94] .text:0003CF50 STR R5, [SP,#0x9C+var_90] .text:0003CF54 LDR R0, [R11,#var_64] .text:0003CF58 LDR R3, [R10] .text:0003CF5C MOV R1, R7 .text:0003CF60 MOV LR, PC .text:0003CF64 LDR PC, [R4] .text:0003CF68 CMP R0, #6 .text:0003CF6C BEQ loc_3CF28 .text:0003CF70 .text:0003CF70 loc_3CF70 ; CODE XREF: __gconv_transform_internal_ucs2+554j .text:0003CF70 CMP R0, #6 .text:0003CF74 BNE loc_3CFF8 .text:0003CF78 CMP R5, #0 .text:0003CF7C BEQ loc_3D03C .text:0003CF80 CMP R6, #0 .text:0003CF84 BEQ loc_3D03C .text:0003CF88 LDR R3, [R5] .text:0003CF8C ADD R3, R3, #1 .text:0003CF90 STR R3, [R5] .text:0003CF94 LDR R2, [R11,#var_40] .text:0003CF98 ADD R2, R2, #4 .text:0003CF9C STR R2, [R11,#var_40] .text:0003CFA0 B loc_3CFF8 .text:0003CFA4 ; --------------------------------------------------------------------------- .text:0003CFA4 .text:0003CFA4 loc_3CFA4 ; CODE XREF: __gconv_transform_internal_ucs2+650j .text:0003CFA4 SUB R3, R2, #0xD800 .text:0003CFA8 CMP R3, #0x800 .text:0003CFAC BCS loc_3CFDC .text:0003CFB0 CMP R5, #0 .text:0003CFB4 BEQ loc_3CFC0 .text:0003CFB8 CMP R6, #0 .text:0003CFBC BNE loc_3CFC8 .text:0003CFC0 .text:0003CFC0 loc_3CFC0 ; CODE XREF: __gconv_transform_internal_ucs2+5D8j .text:0003CFC0 MOV R0, #6 .text:0003CFC4 B loc_3D03C .text:0003CFC8 ; --------------------------------------------------------------------------- .text:0003CFC8 .text:0003CFC8 loc_3CFC8 ; CODE XREF: __gconv_transform_internal_ucs2+5E0j .text:0003CFC8 STR R12, [R11,#var_40] .text:0003CFCC LDR R3, [R5] .text:0003CFD0 ADD R3, R3, #1 .text:0003CFD4 STR R3, [R5] .text:0003CFD8 B loc_3CFF8 .text:0003CFDC ; --------------------------------------------------------------------------- .text:0003CFDC .text:0003CFDC loc_3CFDC ; CODE XREF: __gconv_transform_internal_ucs2+5D0j .text:0003CFDC STRB R2, [LR] .text:0003CFE0 MOV R3, R2,ASR#8 .text:0003CFE4 STRB R3, [LR,#1] .text:0003CFE8 LDR R3, [R11,#var_40] .text:0003CFEC STR R4, [R11,#var_44] .text:0003CFF0 ADD R3, R3, #4 .text:0003CFF4 STR R3, [R11,#var_40] .text:0003CFF8 .text:0003CFF8 loc_3CFF8 ; CODE XREF: __gconv_transform_internal_ucs2+598j .text:0003CFF8 ; __gconv_transform_internal_ucs2+5C4j ... .text:0003CFF8 LDR R3, [R11,#var_40] .text:0003CFFC CMP R3, R8 .text:0003D000 BEQ loc_3D03C .text:0003D004 LDR LR, [R11,#var_44] .text:0003D008 LDR R12, [R11,#var_78] .text:0003D00C ADD R4, LR, #2 .text:0003D010 CMP R4, R12 .text:0003D014 BHI loc_3D060 .text:0003D018 ADD R12, R3, #4 .text:0003D01C CMP R12, R8 .text:0003D020 BHI loc_3D058 .text:0003D024 LDR R2, [R3] .text:0003D028 .text:0003D028 loc_3D028 ; CODE XREF: __gconv_transform_internal_ucs2+540j .text:0003D028 CMP R2, #0x10000 .text:0003D02C BCC loc_3CFA4 .text:0003D030 MOV R0, #6 .text:0003D034 CMP R5, #0 .text:0003D038 BNE loc_3CF20 .text:0003D03C .text:0003D03C loc_3D03C ; CODE XREF: __gconv_transform_internal_ucs2+514j .text:0003D03C ; __gconv_transform_internal_ucs2+5A0j ... .text:0003D03C LDR R3, [R11,#var_40] .text:0003D040 STR R3, [R10] .text:0003D044 LDR R2, [R11,#var_44] .text:0003D048 LDR LR, [R11,#var_8C] .text:0003D04C MOV R6, R0 .text:0003D050 STR R2, [LR] .text:0003D054 B loc_3D1F8 .text:0003D058 ; --------------------------------------------------------------------------- .text:0003D058 .text:0003D058 loc_3D058 ; CODE XREF: __gconv_transform_internal_ucs2+538j .text:0003D058 ; __gconv_transform_internal_ucs2+644j .text:0003D058 MOV R0, #7 .text:0003D05C B loc_3D03C .text:0003D060 ; --------------------------------------------------------------------------- .text:0003D060 .text:0003D060 loc_3D060 ; CODE XREF: __gconv_transform_internal_ucs2+528j .text:0003D060 ; __gconv_transform_internal_ucs2+638j .text:0003D060 MOV R0, #5 .text:0003D064 B loc_3D03C .text:0003D068 ; --------------------------------------------------------------------------- .text:0003D068 .text:0003D068 loc_3D068 ; CODE XREF: __gconv_transform_internal_ucs2+6D0j .text:0003D068 ; __gconv_transform_internal_ucs2+7DCj .text:0003D068 MOV R0, #5 .text:0003D06C B loc_3D1E0 .text:0003D070 ; --------------------------------------------------------------------------- .text:0003D070 .text:0003D070 loc_3D070 ; CODE XREF: __gconv_transform_internal_ucs2+6DCj .text:0003D070 ; __gconv_transform_internal_ucs2+7E8j .text:0003D070 MOV R0, #7 .text:0003D074 B loc_3D1E0 .text:0003D078 ; --------------------------------------------------------------------------- .text:0003D078 .text:0003D078 loc_3D078 ; CODE XREF: __gconv_transform_internal_ucs2+4F4j .text:0003D078 LDR R1, [R11,#var_74] .text:0003D07C STR R1, [R11,#var_50] .text:0003D080 LDR R2, [R11,#var_34] .text:0003D084 MOV R0, #4 .text:0003D088 LDR R3, [R7,#8] .text:0003D08C CMP R1, R8 .text:0003D090 STR R2, [R11,#var_54] .text:0003D094 AND R6, R3, #2 .text:0003D098 BEQ loc_3D1E0 .text:0003D09C MOV R12, R2 .text:0003D0A0 LDR R2, [R11,#var_78] .text:0003D0A4 ADD R4, R12, #2 .text:0003D0A8 CMP R4, R2 .text:0003D0AC BHI loc_3D068 .text:0003D0B0 ADD LR, R1, R0 .text:0003D0B4 CMP LR, R8 .text:0003D0B8 BHI loc_3D070 .text:0003D0BC LDR R2, [R1] .text:0003D0C0 B loc_3D1CC .text:0003D0C4 ; --------------------------------------------------------------------------- .text:0003D0C4 .text:0003D0C4 loc_3D0C4 ; CODE XREF: __gconv_transform_internal_ucs2+800j .text:0003D0C4 LDR R4, [R7,#0x20] .text:0003D0C8 B loc_3D0D0 .text:0003D0CC ; --------------------------------------------------------------------------- .text:0003D0CC .text:0003D0CC loc_3D0CC ; CODE XREF: __gconv_transform_internal_ucs2+734j .text:0003D0CC LDR R4, [R4,#0x10] .text:0003D0D0 .text:0003D0D0 loc_3D0D0 ; CODE XREF: __gconv_transform_internal_ucs2+6ECj .text:0003D0D0 CMP R4, #0 .text:0003D0D4 BEQ loc_3D114 .text:0003D0D8 LDR R0, [R4] .text:0003D0DC BL _dl_mcount_wrapper_check .text:0003D0E0 LDR R2, [R4,#0xC] .text:0003D0E4 SUB R3, R11, #-var_50 .text:0003D0E8 STMEA SP, {R3,R8} .text:0003D0EC SUB R3, R11, #-var_54 .text:0003D0F0 STR R3, [SP,#0x9C+var_94] .text:0003D0F4 STR R5, [SP,#0x9C+var_90] .text:0003D0F8 LDR R0, [R11,#var_64] .text:0003D0FC LDR R3, [R10] .text:0003D100 MOV R1, R7 .text:0003D104 MOV LR, PC .text:0003D108 LDR PC, [R4] .text:0003D10C CMP R0, #6 .text:0003D110 BEQ loc_3D0CC .text:0003D114 .text:0003D114 loc_3D114 ; CODE XREF: __gconv_transform_internal_ucs2+6F8j .text:0003D114 CMP R0, #6 .text:0003D118 BNE loc_3D19C .text:0003D11C CMP R5, #0 .text:0003D120 BEQ loc_3D1E0 .text:0003D124 CMP R6, #0 .text:0003D128 BEQ loc_3D1E0 .text:0003D12C LDR R3, [R5] .text:0003D130 ADD R3, R3, #1 .text:0003D134 STR R3, [R5] .text:0003D138 LDR R2, [R11,#var_50] .text:0003D13C ADD R2, R2, #4 .text:0003D140 STR R2, [R11,#var_50] .text:0003D144 B loc_3D19C .text:0003D148 ; --------------------------------------------------------------------------- .text:0003D148 .text:0003D148 loc_3D148 ; CODE XREF: __gconv_transform_internal_ucs2+7F4j .text:0003D148 SUB R3, R2, #0xD800 .text:0003D14C CMP R3, #0x800 .text:0003D150 BCS loc_3D180 .text:0003D154 CMP R5, #0 .text:0003D158 BEQ loc_3D164 .text:0003D15C CMP R6, #0 .text:0003D160 BNE loc_3D16C .text:0003D164 .text:0003D164 loc_3D164 ; CODE XREF: __gconv_transform_internal_ucs2+77Cj .text:0003D164 MOV R0, #6 .text:0003D168 B loc_3D1E0 .text:0003D16C ; --------------------------------------------------------------------------- .text:0003D16C .text:0003D16C loc_3D16C ; CODE XREF: __gconv_transform_internal_ucs2+784j .text:0003D16C STR LR, [R11,#var_50] .text:0003D170 LDR R3, [R5] .text:0003D174 ADD R3, R3, #1 .text:0003D178 STR R3, [R5] .text:0003D17C B loc_3D19C .text:0003D180 ; --------------------------------------------------------------------------- .text:0003D180 .text:0003D180 loc_3D180 ; CODE XREF: __gconv_transform_internal_ucs2+774j .text:0003D180 STRB R2, [R12] .text:0003D184 MOV R3, R2,ASR#8 .text:0003D188 STRB R3, [R12,#1] .text:0003D18C LDR R3, [R11,#var_50] .text:0003D190 STR R4, [R11,#var_54] .text:0003D194 ADD R3, R3, #4 .text:0003D198 STR R3, [R11,#var_50] .text:0003D19C .text:0003D19C loc_3D19C ; CODE XREF: __gconv_transform_internal_ucs2+73Cj .text:0003D19C ; __gconv_transform_internal_ucs2+768j ... .text:0003D19C LDR R3, [R11,#var_50] .text:0003D1A0 CMP R3, R8 .text:0003D1A4 BEQ loc_3D1E0 .text:0003D1A8 LDR R12, [R11,#var_54] .text:0003D1AC LDR LR, [R11,#var_78] .text:0003D1B0 ADD R4, R12, #2 .text:0003D1B4 CMP R4, LR .text:0003D1B8 BHI loc_3D068 .text:0003D1BC ADD LR, R3, #4 .text:0003D1C0 CMP LR, R8 .text:0003D1C4 BHI loc_3D070 .text:0003D1C8 LDR R2, [R3] .text:0003D1CC .text:0003D1CC loc_3D1CC ; CODE XREF: __gconv_transform_internal_ucs2+6E4j .text:0003D1CC CMP R2, #0x10000 .text:0003D1D0 BCC loc_3D148 .text:0003D1D4 MOV R0, #6 .text:0003D1D8 CMP R5, #0 .text:0003D1DC BNE loc_3D0C4 .text:0003D1E0 .text:0003D1E0 loc_3D1E0 ; CODE XREF: __gconv_transform_internal_ucs2+690j .text:0003D1E0 ; __gconv_transform_internal_ucs2+698j ... .text:0003D1E0 LDR R3, [R11,#var_50] .text:0003D1E4 STR R3, [R10] .text:0003D1E8 LDR R2, [R11,#var_54] .text:0003D1EC LDR R1, [R11,#var_8C] .text:0003D1F0 MOV R6, R0 .text:0003D1F4 STR R2, [R1] .text:0003D1F8 .text:0003D1F8 loc_3D1F8 ; CODE XREF: __gconv_transform_internal_ucs2+678j .text:0003D1F8 LDR R2, [R11,#arg_0] .text:0003D1FC CMP R2, #0 .text:0003D200 BNE loc_3D344 .text:0003D204 LDR R4, [R7,#0x20] .text:0003D208 CMP R4, #0 .text:0003D20C BEQ loc_3D24C .text:0003D210 .text:0003D210 loc_3D210 ; CODE XREF: __gconv_transform_internal_ucs2+86Cj .text:0003D210 LDR R0, [R4,#4] .text:0003D214 CMP R0, #0 .text:0003D218 BEQ loc_3D240 .text:0003D21C BL _dl_mcount_wrapper_check .text:0003D220 LDR R3, [R11,#var_34] .text:0003D224 LDR R0, [R4,#0xC] .text:0003D228 STR R3, [SP,#0x9C+var_9C] .text:0003D22C LDR R1, [R11,#var_74] .text:0003D230 LDR R2, [R10] .text:0003D234 MOV R3, R9 .text:0003D238 MOV LR, PC .text:0003D23C LDR PC, [R4,#4] .text:0003D240 .text:0003D240 loc_3D240 ; CODE XREF: __gconv_transform_internal_ucs2+83Cj .text:0003D240 LDR R4, [R4,#0x10] .text:0003D244 CMP R4, #0 .text:0003D248 BNE loc_3D210 .text:0003D24C .text:0003D24C loc_3D24C ; CODE XREF: __gconv_transform_internal_ucs2+830j .text:0003D24C ADD R2, R7, #8 .text:0003D250 LDMIA R2, {R2,R3} .text:0003D254 ADD R3, R3, #1 .text:0003D258 ANDS R4, R2, #1 .text:0003D25C STR R3, [R7,#0xC] .text:0003D260 BNE loc_3CE64 .text:0003D264 LDR R3, [R11,#var_34] .text:0003D268 CMP R3, R9 .text:0003D26C BLS loc_3D2EC .text:0003D270 LDR R3, [R7] .text:0003D274 STR R3, [R11,#var_60] .text:0003D278 LDR R0, [R11,#var_70] .text:0003D27C BL _dl_mcount_wrapper_check .text:0003D280 STR R4, [SP,#0x9C+var_9C] .text:0003D284 LDR R3, [R11,#arg_4] .text:0003D288 STMFA SP, {R3,R4} .text:0003D28C LDR R12, [R11,#arg_C] .text:0003D290 STR R12, [SP,#0x9C+var_90] .text:0003D294 LDR R0, [R11,#var_68] .text:0003D298 LDR R1, [R11,#var_6C] .text:0003D29C LDR R3, [R11,#var_34] .text:0003D2A0 LDR R12, [R11,#var_70] .text:0003D2A4 SUB R2, R11, #-var_60 .text:0003D2A8 MOV LR, PC .text:0003D2AC MOV PC, R12 .text:0003D2B0 CMP R0, #4 .text:0003D2B4 BEQ loc_3D2DC .text:0003D2B8 LDR R1, [R11,#var_60] .text:0003D2BC LDR R2, [R11,#var_34] .text:0003D2C0 CMP R1, R2 .text:0003D2C4 LDRNE R3, [R10] .text:0003D2C8 RSBNE R2, R1, R2 .text:0003D2CC SUBNE R3, R3, R2,LSL#1 .text:0003D2D0 STRNE R3, [R10] .text:0003D2D4 MOV R6, R0 .text:0003D2D8 B loc_3D2EC .text:0003D2DC ; --------------------------------------------------------------------------- .text:0003D2DC .text:0003D2DC loc_3D2DC ; CODE XREF: __gconv_transform_internal_ucs2+8D8j .text:0003D2DC CMP R6, #5 .text:0003D2E0 LDREQ R3, [R7] .text:0003D2E4 MOVEQ R6, R4 .text:0003D2E8 STREQ R3, [R11,#var_34] .text:0003D2EC .text:0003D2EC loc_3D2EC ; CODE XREF: __gconv_transform_internal_ucs2+890j .text:0003D2EC ; __gconv_transform_internal_ucs2+8FCj .text:0003D2EC CMP R6, #0 .text:0003D2F0 LDREQ R3, [R7] .text:0003D2F4 STREQ R3, [R11,#var_34] .text:0003D2F8 BEQ loc_3CEBC .text:0003D2FC .text:0003D2FC loc_3D2FC ; CODE XREF: __gconv_transform_internal_ucs2+4A8j .text:0003D2FC LDR LR, [R11,#arg_C] .text:0003D300 CMP R6, #7 .text:0003D304 MOVNE R3, #0 .text:0003D308 MOVEQ R3, #1 .text:0003D30C CMP LR, #0 .text:0003D310 MOVEQ R3, #0 .text:0003D314 CMP R3, #0 .text:0003D318 BEQ loc_3D3B4 .text:0003D31C LDR R2, [R10] .text:0003D320 RSB R3, R2, R8 .text:0003D324 CMP R3, #3 .text:0003D328 BLE loc_3D364 .text:0003D32C LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003D330 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003D334 MOV R2, #0x254 .text:0003D338 LDR R3, =a__gconv_tran_8 ; "__gconv_transform_internal_ucs2" .text:0003D33C ADD R2, R2, #3 .text:0003D340 BL __assert_fail .text:0003D344 ; --------------------------------------------------------------------------- .text:0003D344 .text:0003D344 loc_3D344 ; CODE XREF: __gconv_transform_internal_ucs2+824j .text:0003D344 LDR R3, [R11,#var_34] .text:0003D348 LDR R1, [R11,#arg_0] .text:0003D34C MOV R0, R6 .text:0003D350 STR R3, [R1] .text:0003D354 B locret_3D3B8 .text:0003D354 ; --------------------------------------------------------------------------- .text:0003D358 off_3D358 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ucs2+950r .text:0003D358 ; "inend - *inptrp < 4" .text:0003D35C off_3D35C DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs2+954r .text:0003D35C ; "../iconv/skeleton.c" .text:0003D360 off_3D360 DCD a__gconv_tran_8 ; DATA XREF: __gconv_transform_internal_ucs2+95Cr .text:0003D360 ; "__gconv_transform_internal_ucs2" .text:0003D364 ; --------------------------------------------------------------------------- .text:0003D364 .text:0003D364 loc_3D364 ; CODE XREF: __gconv_transform_internal_ucs2+94Cj .text:0003D364 MOV R0, #0 .text:0003D368 CMP R2, R8 .text:0003D36C BCS loc_3D394 .text:0003D370 .text:0003D370 loc_3D370 ; CODE XREF: __gconv_transform_internal_ucs2+9B4j .text:0003D370 LDR R3, [R10] .text:0003D374 LDR R2, [R7,#0x14] .text:0003D378 LDRB R1, [R3],#1 .text:0003D37C ADD R2, R2, R0 .text:0003D380 STRB R1, [R2,#4] .text:0003D384 ADD R0, R0, #1 .text:0003D388 CMP R3, R8 .text:0003D38C STR R3, [R10] .text:0003D390 BCC loc_3D370 .text:0003D394 .text:0003D394 loc_3D394 ; CODE XREF: __gconv_transform_internal_ucs2+990j .text:0003D394 LDR R2, [R7,#0x14] .text:0003D398 LDR R3, [R2] .text:0003D39C BIC R3, R3, #7 .text:0003D3A0 STR R3, [R2] .text:0003D3A4 LDR R1, [R7,#0x14] .text:0003D3A8 LDR R3, [R1] .text:0003D3AC ORR R3, R3, R0 .text:0003D3B0 STR R3, [R1] .text:0003D3B4 .text:0003D3B4 loc_3D3B4 ; CODE XREF: __gconv_transform_internal_ucs2+90j .text:0003D3B4 ; __gconv_transform_internal_ucs2+D8j ... .text:0003D3B4 MOV R0, R6 .text:0003D3B8 .text:0003D3B8 locret_3D3B8 ; CODE XREF: __gconv_transform_internal_ucs2+978j .text:0003D3B8 LDMDB R11, {R4-R11,SP,PC} .text:0003D3B8 ; End of function __gconv_transform_internal_ucs2 .text:0003D3B8 .text:0003D3BC .text:0003D3BC ; =============== S U B R O U T I N E ======================================= .text:0003D3BC .text:0003D3BC ; Attributes: bp-based frame .text:0003D3BC .text:0003D3BC EXPORT __gconv_transform_ucs2reverse_internal .text:0003D3BC __gconv_transform_ucs2reverse_internal .text:0003D3BC .text:0003D3BC var_7C = -0x7C .text:0003D3BC var_78 = -0x78 .text:0003D3BC var_74 = -0x74 .text:0003D3BC var_70 = -0x70 .text:0003D3BC var_6C = -0x6C .text:0003D3BC var_68 = -0x68 .text:0003D3BC var_64 = -0x64 .text:0003D3BC var_60 = -0x60 .text:0003D3BC var_5C = -0x5C .text:0003D3BC var_58 = -0x58 .text:0003D3BC var_54 = -0x54 .text:0003D3BC var_50 = -0x50 .text:0003D3BC var_4C = -0x4C .text:0003D3BC var_48 = -0x48 .text:0003D3BC var_44 = -0x44 .text:0003D3BC var_40 = -0x40 .text:0003D3BC var_3C = -0x3C .text:0003D3BC var_38 = -0x38 .text:0003D3BC var_34 = -0x34 .text:0003D3BC var_30 = -0x30 .text:0003D3BC var_2C = -0x2C .text:0003D3BC var_2A = -0x2A .text:0003D3BC arg_0 = 4 .text:0003D3BC arg_4 = 8 .text:0003D3BC arg_8 = 0xC .text:0003D3BC arg_C = 0x10 .text:0003D3BC .text:0003D3BC MOV R12, SP .text:0003D3C0 STMFD SP!, {R4-R12,LR,PC} .text:0003D3C4 SUB R11, R12, #4 .text:0003D3C8 MOV R7, R1 .text:0003D3CC SUB SP, SP, #0x54 .text:0003D3D0 LDR R1, [R7,#8] .text:0003D3D4 MOV R12, #0 .text:0003D3D8 STR R12, [R11,#var_48] .text:0003D3DC STR R2, [R11,#var_3C] .text:0003D3E0 ADD R0, R0, #0x38 .text:0003D3E4 STR R0, [R11,#var_40] .text:0003D3E8 MOV R6, R3 .text:0003D3EC ADD R0, R7, #0x24 .text:0003D3F0 STR R0, [R11,#var_44] .text:0003D3F4 TST R1, #1 .text:0003D3F8 LDREQ R1, [R11,#var_40] .text:0003D3FC LDREQ R1, [R1,#0x14] .text:0003D400 STREQ R1, [R11,#var_48] .text:0003D404 LDR R3, [R11,#arg_8] .text:0003D408 CMP R3, #0 .text:0003D40C BEQ loc_3D498 .text:0003D410 LDR R2, [R11,#arg_0] .text:0003D414 MOV R5, #0 .text:0003D418 CMP R2, R5 .text:0003D41C BEQ loc_3D434 .text:0003D420 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003D424 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003D428 LDR R3, =a__gconv_tran_9 ; "__gconv_transform_ucs2reverse_internal" .text:0003D42C MOV R2, #0x130 .text:0003D430 BL __assert_fail .text:0003D434 ; --------------------------------------------------------------------------- .text:0003D434 .text:0003D434 loc_3D434 ; CODE XREF: __gconv_transform_ucs2reverse_internal+60j .text:0003D434 MOV R1, R5 .text:0003D438 LDR R0, [R7,#0x14] .text:0003D43C MOV R2, #8 .text:0003D440 BL memset .text:0003D444 LDR R3, [R7,#8] .text:0003D448 TST R3, #1 .text:0003D44C BNE loc_3DB58 .text:0003D450 LDR R0, [R11,#var_48] .text:0003D454 BL _dl_mcount_wrapper_check .text:0003D458 STR R5, [SP,#0x7C+var_7C] .text:0003D45C LDR R3, [R11,#arg_4] .text:0003D460 STR R3, [SP,#0x7C+var_78] .text:0003D464 MOV R3, #1 .text:0003D468 STR R3, [SP,#0x7C+var_74] .text:0003D46C LDR R12, [R11,#arg_C] .text:0003D470 STR R12, [SP,#0x7C+var_70] .text:0003D474 LDR R0, [R11,#var_40] .text:0003D478 LDR R1, [R11,#var_44] .text:0003D47C MOV R2, R5 .text:0003D480 LDR R12, [R11,#var_48] .text:0003D484 MOV R3, R2 .text:0003D488 MOV LR, PC .text:0003D48C MOV PC, R12 .text:0003D490 MOV R5, R0 .text:0003D494 B loc_3DB58 .text:0003D498 ; --------------------------------------------------------------------------- .text:0003D498 .text:0003D498 loc_3D498 ; CODE XREF: __gconv_transform_ucs2reverse_internal+50j .text:0003D498 LDR R1, [R11,#var_3C] .text:0003D49C LDR R0, [R11,#arg_0] .text:0003D4A0 LDR R1, [R1] .text:0003D4A4 CMP R0, #0 .text:0003D4A8 STR R1, [R11,#var_4C] .text:0003D4AC LDREQ R3, [R7] .text:0003D4B0 LDRNE R2, [R11,#arg_0] .text:0003D4B4 LDRNE R3, [R2] .text:0003D4B8 STR R3, [R11,#var_34] .text:0003D4BC MOV R3, #0 .text:0003D4C0 STR R3, [R11,#var_30] .text:0003D4C4 SUB R0, R11, #-var_34 .text:0003D4C8 STR R0, [R11,#var_6C] .text:0003D4CC LDR R3, [R11,#arg_4] .text:0003D4D0 LDR R12, [R11,#arg_C] .text:0003D4D4 CMP R3, #0 .text:0003D4D8 SUBNE R9, R11, #-var_30 .text:0003D4DC MOVEQ R9, #0 .text:0003D4E0 LDR R1, [R7,#4] .text:0003D4E4 CMP R12, #0 .text:0003D4E8 STR R1, [R11,#var_50] .text:0003D4EC BEQ loc_3D768 .text:0003D4F0 LDR R5, [R7,#0x14] .text:0003D4F4 LDR R3, [R5] .text:0003D4F8 ANDS R3, R3, #7 .text:0003D4FC BEQ loc_3D768 .text:0003D500 LDR R2, [R11,#arg_0] .text:0003D504 CMP R2, #0 .text:0003D508 BEQ loc_3D524 .text:0003D50C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003D510 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003D514 MOV R2, #0x168 .text:0003D518 LDR R3, =a__gconv_tran_9 ; "__gconv_transform_ucs2reverse_internal" .text:0003D51C ADD R2, R2, #2 .text:0003D520 BL __assert_fail .text:0003D524 ; --------------------------------------------------------------------------- .text:0003D524 .text:0003D524 loc_3D524 ; CODE XREF: __gconv_transform_ucs2reverse_internal+14Cj .text:0003D524 LDR R12, [R11,#arg_0] .text:0003D528 STR R12, [R11,#var_58] .text:0003D52C LDR R0, [R11,#var_3C] .text:0003D530 LDR R1, [R11,#var_34] .text:0003D534 MOV R4, R12 .text:0003D538 LDR R12, [R0] .text:0003D53C STR R1, [R11,#var_5C] .text:0003D540 CMP R4, R3 .text:0003D544 LDR R10, [R7,#8] .text:0003D548 BCS loc_3D570 .text:0003D54C SUB R1, R11, #-var_2C .text:0003D550 .text:0003D550 loc_3D550 ; CODE XREF: __gconv_transform_ucs2reverse_internal+1B0j .text:0003D550 ADD R3, R5, R4 .text:0003D554 LDRB R2, [R3,#4] .text:0003D558 STRB R2, [R1,R4] .text:0003D55C LDR R3, [R5] .text:0003D560 ADD R4, R4, #1 .text:0003D564 AND R3, R3, #7 .text:0003D568 CMP R4, R3 .text:0003D56C BCC loc_3D550 .text:0003D570 .text:0003D570 loc_3D570 ; CODE XREF: __gconv_transform_ucs2reverse_internal+18Cj .text:0003D570 ADD R3, R12, #2 .text:0003D574 RSB R3, R4, R3 .text:0003D578 CMP R3, R6 .text:0003D57C BLS loc_3D5B0 .text:0003D580 LDR R2, [R11,#var_3C] .text:0003D584 CMP R12, R6 .text:0003D588 STR R6, [R2] .text:0003D58C BCS loc_3D5A8 .text:0003D590 .text:0003D590 loc_3D590 ; CODE XREF: __gconv_transform_ucs2reverse_internal+1E8j .text:0003D590 ADD R2, R5, R4 .text:0003D594 LDRB R3, [R12],#1 .text:0003D598 ADD R4, R4, #1 .text:0003D59C CMP R12, R6 .text:0003D5A0 STRB R3, [R2,#4] .text:0003D5A4 BCC loc_3D590 .text:0003D5A8 .text:0003D5A8 loc_3D5A8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+1D0j .text:0003D5A8 MOV R5, #7 .text:0003D5AC B loc_3D73C .text:0003D5B0 ; --------------------------------------------------------------------------- .text:0003D5B0 .text:0003D5B0 loc_3D5B0 ; CODE XREF: __gconv_transform_ucs2reverse_internal+1C0j .text:0003D5B0 LDR R0, [R11,#var_5C] .text:0003D5B4 LDR R1, [R11,#var_50] .text:0003D5B8 ADD R3, R0, #4 .text:0003D5BC CMP R3, R1 .text:0003D5C0 STR R3, [R11,#var_68] .text:0003D5C4 MOVHI R5, #5 .text:0003D5C8 BHI loc_3D73C .text:0003D5CC SUB LR, R11, #-var_2C .text:0003D5D0 MOV R2, LR .text:0003D5D4 .text:0003D5D4 loc_3D5D4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+22Cj .text:0003D5D4 LDRB R3, [R12],#1 .text:0003D5D8 STRB R3, [R2,R4] .text:0003D5DC ADD R4, R4, #1 .text:0003D5E0 CMP R4, #1 .text:0003D5E4 CMPLS R12, R6 .text:0003D5E8 BCC loc_3D5D4 .text:0003D5EC MOV R12, LR .text:0003D5F0 MOV R0, 0x7FF .text:0003D5F8 ADD R8, R12, R4 .text:0003D5FC AND R10, R10, #2 .text:0003D600 B loc_3D630 .text:0003D604 ; --------------------------------------------------------------------------- .text:0003D604 .text:0003D604 loc_3D604 ; CODE XREF: __gconv_transform_ucs2reverse_internal+29Cj .text:0003D604 LDR R3, [R9] .text:0003D608 ADD R12, LR, #2 .text:0003D60C ADD R3, R3, #1 .text:0003D610 STR R3, [R9] .text:0003D614 B loc_3D664 .text:0003D618 ; --------------------------------------------------------------------------- .text:0003D618 .text:0003D618 loc_3D618 ; CODE XREF: __gconv_transform_ucs2reverse_internal+28Cj .text:0003D618 LDR R3, [R11,#var_5C] .text:0003D61C STR R2, [R3] .text:0003D620 LDR R12, [R11,#var_68] .text:0003D624 STR R12, [R11,#var_5C] .text:0003D628 ADD R12, LR, #2 .text:0003D62C B loc_3D664 .text:0003D630 ; --------------------------------------------------------------------------- .text:0003D630 .text:0003D630 loc_3D630 ; CODE XREF: __gconv_transform_ucs2reverse_internal+244j .text:0003D630 LDRB R1, [LR,#1] .text:0003D634 LDRB R2, [LR] .text:0003D638 ORR R2, R1, R2,LSL#8 .text:0003D63C ADD R3, R2, #0x2800 .text:0003D640 MOV R3, R3,LSL#16 .text:0003D644 CMP R0, R3,LSR#16 .text:0003D648 BCC loc_3D618 .text:0003D64C CMP R9, #0 .text:0003D650 BEQ loc_3D65C .text:0003D654 CMP R10, #0 .text:0003D658 BNE loc_3D604 .text:0003D65C .text:0003D65C loc_3D65C ; CODE XREF: __gconv_transform_ucs2reverse_internal+294j .text:0003D65C MOV R0, #6 .text:0003D660 STR R0, [R11,#var_58] .text:0003D664 .text:0003D664 loc_3D664 ; CODE XREF: __gconv_transform_ucs2reverse_internal+258j .text:0003D664 ; __gconv_transform_ucs2reverse_internal+270j .text:0003D664 CMP R12, LR .text:0003D668 BEQ loc_3D6C8 .text:0003D66C LDR R3, [R5] .text:0003D670 RSB R1, LR, R12 .text:0003D674 AND R2, R3, #7 .text:0003D678 CMP R1, R2 .text:0003D67C BGT loc_3D694 .text:0003D680 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003D684 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003D688 LDR R3, =aUcs2reverse_in ; "ucs2reverse_internal_loop_single" .text:0003D68C MOV R2, #0x17C .text:0003D690 BL __assert_fail .text:0003D694 ; --------------------------------------------------------------------------- .text:0003D694 .text:0003D694 loc_3D694 ; CODE XREF: __gconv_transform_ucs2reverse_internal+2C0j .text:0003D694 LDR R3, [R11,#var_5C] .text:0003D698 STR R3, [R11,#var_34] .text:0003D69C LDR R12, [R11,#var_3C] .text:0003D6A0 LDR R3, [R12] .text:0003D6A4 RSB R2, R2, R1 .text:0003D6A8 ADD R3, R3, R2 .text:0003D6AC STR R3, [R12] .text:0003D6B0 LDR R2, [R5] .text:0003D6B4 MOV R0, #0 .text:0003D6B8 STR R0, [R11,#var_58] .text:0003D6BC BIC R2, R2, #7 .text:0003D6C0 STR R2, [R5] .text:0003D6C4 B loc_3D738 .text:0003D6C8 ; --------------------------------------------------------------------------- .text:0003D6C8 .text:0003D6C8 loc_3D6C8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+2ACj .text:0003D6C8 LDR R1, [R11,#var_58] .text:0003D6CC CMP R1, #7 .text:0003D6D0 BNE loc_3D738 .text:0003D6D4 SUB R3, R11, #-var_2A .text:0003D6D8 CMP R8, R3 .text:0003D6DC BNE loc_3D6F8 .text:0003D6E0 LDR R0, =aInendBytebuf2 ; "inend != &bytebuf[2]" .text:0003D6E4 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003D6E8 MOV R2, #0x188 .text:0003D6EC LDR R3, =aUcs2reverse_in ; "ucs2reverse_internal_loop_single" .text:0003D6F0 ADD R2, R2, #2 .text:0003D6F4 BL __assert_fail .text:0003D6F8 ; --------------------------------------------------------------------------- .text:0003D6F8 .text:0003D6F8 loc_3D6F8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+320j .text:0003D6F8 CMP R12, R8 .text:0003D6FC LDR R3, [R5] .text:0003D700 RSB R1, R12, R8 .text:0003D704 LDR R0, [R11,#var_3C] .text:0003D708 AND R3, R3, #7 .text:0003D70C LDR R2, [R0] .text:0003D710 RSB R1, R3, R1 .text:0003D714 ADD R2, R2, R1 .text:0003D718 STR R2, [R0] .text:0003D71C BCS loc_3D738 .text:0003D720 .text:0003D720 loc_3D720 ; CODE XREF: __gconv_transform_ucs2reverse_internal+378j .text:0003D720 ADD R2, R5, R4 .text:0003D724 LDRB R3, [R12],#1 .text:0003D728 ADD R4, R4, #1 .text:0003D72C CMP R12, R8 .text:0003D730 STRB R3, [R2,#4] .text:0003D734 BCC loc_3D720 .text:0003D738 .text:0003D738 loc_3D738 ; CODE XREF: __gconv_transform_ucs2reverse_internal+308j .text:0003D738 ; __gconv_transform_ucs2reverse_internal+314j ... .text:0003D738 LDR R5, [R11,#var_58] .text:0003D73C .text:0003D73C loc_3D73C ; CODE XREF: __gconv_transform_ucs2reverse_internal+1F0j .text:0003D73C ; __gconv_transform_ucs2reverse_internal+20Cj .text:0003D73C CMP R5, #0 .text:0003D740 BEQ loc_3D768 .text:0003D744 B loc_3DB58 .text:0003D748 ; --------------------------------------------------------------------------- .text:0003D748 .text:0003D748 loc_3D748 ; CODE XREF: __gconv_transform_ucs2reverse_internal+630j .text:0003D748 LDR R3, [R11,#var_34] .text:0003D74C STR R3, [R7] .text:0003D750 LDR R1, [R11,#arg_4] .text:0003D754 LDR R3, [R11,#var_30] .text:0003D758 LDR R2, [R1] .text:0003D75C ADD R2, R2, R3 .text:0003D760 STR R2, [R1] .text:0003D764 B loc_3DA94 .text:0003D768 ; --------------------------------------------------------------------------- .text:0003D768 .text:0003D768 loc_3D768 ; CODE XREF: __gconv_transform_ucs2reverse_internal+130j .text:0003D768 ; __gconv_transform_ucs2reverse_internal+140j ... .text:0003D768 LDR R3, [R11,#var_4C] .text:0003D76C MOV R2, #0 .text:0003D770 STR R2, [R11,#var_54] .text:0003D774 TST R3, #1 .text:0003D778 BNE loc_3D794 .text:0003D77C LDR R3, [R7,#8] .text:0003D780 TST R3, #1 .text:0003D784 BEQ loc_3D79C .text:0003D788 LDR R3, [R11,#var_34] .text:0003D78C TST R3, #3 .text:0003D790 BEQ loc_3D79C .text:0003D794 .text:0003D794 loc_3D794 ; CODE XREF: __gconv_transform_ucs2reverse_internal+3BCj .text:0003D794 MOV R12, #1 .text:0003D798 STR R12, [R11,#var_54] .text:0003D79C .text:0003D79C loc_3D79C ; CODE XREF: __gconv_transform_ucs2reverse_internal+3C8j .text:0003D79C ; __gconv_transform_ucs2reverse_internal+3D4j ... .text:0003D79C LDR R0, [R11,#var_3C] .text:0003D7A0 LDR R1, [R11,#var_54] .text:0003D7A4 LDR R10, [R11,#var_34] .text:0003D7A8 LDR R0, [R0] .text:0003D7AC CMP R1, #0 .text:0003D7B0 STR R0, [R11,#var_4C] .text:0003D7B4 BNE loc_3D8B4 .text:0003D7B8 MOV R8, #4 .text:0003D7BC MOV LR, R0 .text:0003D7C0 MOV R0, R10 .text:0003D7C4 MOV R5, 0x7FF .text:0003D7CC LDR R3, [R7,#8] .text:0003D7D0 CMP LR, R6 .text:0003D7D4 AND R3, R3, #2 .text:0003D7D8 STR R3, [R11,#var_60] .text:0003D7DC BEQ loc_3D88C .text:0003D7E0 LDR R2, [R11,#var_50] .text:0003D7E4 ADD R4, R10, R8 .text:0003D7E8 CMP R4, R2 .text:0003D7EC B loc_3D878 .text:0003D7EC ; --------------------------------------------------------------------------- .text:0003D7F0 off_3D7F0 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ucs2reverse_internal+64r .text:0003D7F0 ; __gconv_transform_ucs2reverse_internal+150r .text:0003D7F0 ; "outbufstart == ((void *)0)" .text:0003D7F4 off_3D7F4 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs2reverse_internal+68r .text:0003D7F4 ; __gconv_transform_ucs2reverse_internal+154r .text:0003D7F4 ; "../iconv/skeleton.c" .text:0003D7F8 off_3D7F8 DCD a__gconv_tran_9 ; DATA XREF: __gconv_transform_ucs2reverse_internal+6Cr .text:0003D7F8 ; __gconv_transform_ucs2reverse_internal+15Cr .text:0003D7F8 ; "__gconv_transform_ucs2reverse_internal" .text:0003D7FC off_3D7FC DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_ucs2reverse_internal+2C4r .text:0003D7FC ; "inptr - bytebuf > (state->__count & 7)" .text:0003D800 off_3D800 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_ucs2reverse_internal+2C8r .text:0003D800 ; __gconv_transform_ucs2reverse_internal+328r .text:0003D800 ; "../iconv/loop.c" .text:0003D804 off_3D804 DCD aUcs2reverse_in ; DATA XREF: __gconv_transform_ucs2reverse_internal+2CCr .text:0003D804 ; __gconv_transform_ucs2reverse_internal+330r .text:0003D804 ; "ucs2reverse_internal_loop_single" .text:0003D808 off_3D808 DCD aInendBytebuf2 ; DATA XREF: __gconv_transform_ucs2reverse_internal+324r .text:0003D808 ; "inend != &bytebuf[2]" .text:0003D80C ; --------------------------------------------------------------------------- .text:0003D80C .text:0003D80C loc_3D80C ; CODE XREF: __gconv_transform_ucs2reverse_internal+4C8j .text:0003D80C LDRB R1, [LR,#1] .text:0003D810 LDRB R2, [LR] .text:0003D814 ORR R2, R1, R2,LSL#8 .text:0003D818 ADD R3, R2, #0x2800 .text:0003D81C MOV R3, R3,LSL#16 .text:0003D820 CMP R5, R3,LSR#16 .text:0003D824 BCC loc_3D858 .text:0003D828 CMP R9, #0 .text:0003D82C BEQ loc_3D83C .text:0003D830 LDR R3, [R11,#var_60] .text:0003D834 CMP R3, #0 .text:0003D838 BNE loc_3D844 .text:0003D83C .text:0003D83C loc_3D83C ; CODE XREF: __gconv_transform_ucs2reverse_internal+470j .text:0003D83C MOV R8, #6 .text:0003D840 B loc_3D88C .text:0003D844 ; --------------------------------------------------------------------------- .text:0003D844 .text:0003D844 loc_3D844 ; CODE XREF: __gconv_transform_ucs2reverse_internal+47Cj .text:0003D844 LDR R3, [R9] .text:0003D848 MOV LR, R12 .text:0003D84C ADD R3, R3, #1 .text:0003D850 STR R3, [R9] .text:0003D854 B loc_3D864 .text:0003D858 ; --------------------------------------------------------------------------- .text:0003D858 .text:0003D858 loc_3D858 ; CODE XREF: __gconv_transform_ucs2reverse_internal+468j .text:0003D858 STR R2, [R0] .text:0003D85C MOV R0, R4 .text:0003D860 MOV LR, R12 .text:0003D864 .text:0003D864 loc_3D864 ; CODE XREF: __gconv_transform_ucs2reverse_internal+498j .text:0003D864 CMP LR, R6 .text:0003D868 BEQ loc_3D88C .text:0003D86C LDR R12, [R11,#var_50] .text:0003D870 ADD R4, R0, #4 .text:0003D874 CMP R4, R12 .text:0003D878 .text:0003D878 loc_3D878 ; CODE XREF: __gconv_transform_ucs2reverse_internal+430j .text:0003D878 BHI loc_3D8A4 .text:0003D87C ADD R12, LR, #2 .text:0003D880 CMP R12, R6 .text:0003D884 BLS loc_3D80C .text:0003D888 MOV R8, #7 .text:0003D88C .text:0003D88C loc_3D88C ; CODE XREF: __gconv_transform_ucs2reverse_internal+420j .text:0003D88C ; __gconv_transform_ucs2reverse_internal+484j ... .text:0003D88C LDR R1, [R11,#var_3C] .text:0003D890 STR LR, [R1] .text:0003D894 LDR R2, [R11,#var_6C] .text:0003D898 MOV R5, R8 .text:0003D89C STR R0, [R2] .text:0003D8A0 B loc_3D980 .text:0003D8A4 ; --------------------------------------------------------------------------- .text:0003D8A4 .text:0003D8A4 loc_3D8A4 ; CODE XREF: __gconv_transform_ucs2reverse_internal:loc_3D878j .text:0003D8A4 MOV R8, #5 .text:0003D8A8 B loc_3D88C .text:0003D8AC ; --------------------------------------------------------------------------- .text:0003D8AC .text:0003D8AC loc_3D8AC ; CODE XREF: __gconv_transform_ucs2reverse_internal:loc_3D958j .text:0003D8AC MOV R8, #5 .text:0003D8B0 B loc_3D96C .text:0003D8B4 ; --------------------------------------------------------------------------- .text:0003D8B4 .text:0003D8B4 loc_3D8B4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+3F8j .text:0003D8B4 MOV R8, #4 .text:0003D8B8 MOV R0, R10 .text:0003D8BC MOV R5, #0x7F0 .text:0003D8C0 LDR LR, [R11,#var_4C] .text:0003D8C4 ADD R5, R5, #0xF .text:0003D8C8 LDR R3, [R7,#8] .text:0003D8CC CMP LR, R6 .text:0003D8D0 AND R3, R3, #2 .text:0003D8D4 STR R3, [R11,#var_64] .text:0003D8D8 BEQ loc_3D96C .text:0003D8DC LDR R3, [R11,#var_50] .text:0003D8E0 ADD R4, R10, R8 .text:0003D8E4 CMP R4, R3 .text:0003D8E8 B loc_3D958 .text:0003D8EC ; --------------------------------------------------------------------------- .text:0003D8EC .text:0003D8EC loc_3D8EC ; CODE XREF: __gconv_transform_ucs2reverse_internal+5A8j .text:0003D8EC LDRB R1, [LR,#1] .text:0003D8F0 LDRB R2, [LR] .text:0003D8F4 ORR R2, R1, R2,LSL#8 .text:0003D8F8 ADD R3, R2, #0x2800 .text:0003D8FC MOV R3, R3,LSL#16 .text:0003D900 CMP R5, R3,LSR#16 .text:0003D904 BCC loc_3D938 .text:0003D908 CMP R9, #0 .text:0003D90C BEQ loc_3D91C .text:0003D910 LDR R1, [R11,#var_64] .text:0003D914 CMP R1, #0 .text:0003D918 BNE loc_3D924 .text:0003D91C .text:0003D91C loc_3D91C ; CODE XREF: __gconv_transform_ucs2reverse_internal+550j .text:0003D91C MOV R8, #6 .text:0003D920 B loc_3D96C .text:0003D924 ; --------------------------------------------------------------------------- .text:0003D924 .text:0003D924 loc_3D924 ; CODE XREF: __gconv_transform_ucs2reverse_internal+55Cj .text:0003D924 LDR R3, [R9] .text:0003D928 MOV LR, R12 .text:0003D92C ADD R3, R3, #1 .text:0003D930 STR R3, [R9] .text:0003D934 B loc_3D944 .text:0003D938 ; --------------------------------------------------------------------------- .text:0003D938 .text:0003D938 loc_3D938 ; CODE XREF: __gconv_transform_ucs2reverse_internal+548j .text:0003D938 STR R2, [R0] .text:0003D93C MOV R0, R4 .text:0003D940 MOV LR, R12 .text:0003D944 .text:0003D944 loc_3D944 ; CODE XREF: __gconv_transform_ucs2reverse_internal+578j .text:0003D944 CMP LR, R6 .text:0003D948 BEQ loc_3D96C .text:0003D94C LDR R2, [R11,#var_50] .text:0003D950 ADD R4, R0, #4 .text:0003D954 CMP R4, R2 .text:0003D958 .text:0003D958 loc_3D958 ; CODE XREF: __gconv_transform_ucs2reverse_internal+52Cj .text:0003D958 BHI loc_3D8AC .text:0003D95C ADD R12, LR, #2 .text:0003D960 CMP R12, R6 .text:0003D964 BLS loc_3D8EC .text:0003D968 MOV R8, #7 .text:0003D96C .text:0003D96C loc_3D96C ; CODE XREF: __gconv_transform_ucs2reverse_internal+4F4j .text:0003D96C ; __gconv_transform_ucs2reverse_internal+51Cj ... .text:0003D96C LDR R3, [R11,#var_3C] .text:0003D970 STR LR, [R3] .text:0003D974 LDR R12, [R11,#var_6C] .text:0003D978 MOV R5, R8 .text:0003D97C STR R0, [R12] .text:0003D980 .text:0003D980 loc_3D980 ; CODE XREF: __gconv_transform_ucs2reverse_internal+4E4j .text:0003D980 LDR R0, [R11,#arg_0] .text:0003D984 CMP R0, #0 .text:0003D988 BNE loc_3DAE0 .text:0003D98C LDR R4, [R7,#0x20] .text:0003D990 CMP R4, #0 .text:0003D994 BEQ loc_3D9D8 .text:0003D998 .text:0003D998 loc_3D998 ; CODE XREF: __gconv_transform_ucs2reverse_internal+618j .text:0003D998 LDR R0, [R4,#4] .text:0003D99C CMP R0, #0 .text:0003D9A0 BEQ loc_3D9CC .text:0003D9A4 BL _dl_mcount_wrapper_check .text:0003D9A8 LDR R3, [R11,#var_34] .text:0003D9AC LDR R0, [R4,#0xC] .text:0003D9B0 STR R3, [SP,#0x7C+var_7C] .text:0003D9B4 LDR R12, [R11,#var_3C] .text:0003D9B8 LDR R1, [R11,#var_4C] .text:0003D9BC LDR R2, [R12] .text:0003D9C0 MOV R3, R10 .text:0003D9C4 MOV LR, PC .text:0003D9C8 LDR PC, [R4,#4] .text:0003D9CC .text:0003D9CC loc_3D9CC ; CODE XREF: __gconv_transform_ucs2reverse_internal+5E4j .text:0003D9CC LDR R4, [R4,#0x10] .text:0003D9D0 CMP R4, #0 .text:0003D9D4 BNE loc_3D998 .text:0003D9D8 .text:0003D9D8 loc_3D9D8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+5D8j .text:0003D9D8 ADD R2, R7, #8 .text:0003D9DC LDMIA R2, {R2,R3} .text:0003D9E0 ADD R3, R3, #1 .text:0003D9E4 ANDS R4, R2, #1 .text:0003D9E8 STR R3, [R7,#0xC] .text:0003D9EC BNE loc_3D748 .text:0003D9F0 LDR R3, [R11,#var_34] .text:0003D9F4 CMP R3, R10 .text:0003D9F8 BLS loc_3DA84 .text:0003D9FC LDR R3, [R7] .text:0003DA00 STR R3, [R11,#var_38] .text:0003DA04 LDR R0, [R11,#var_48] .text:0003DA08 BL _dl_mcount_wrapper_check .text:0003DA0C STR R4, [SP,#0x7C+var_7C] .text:0003DA10 LDR R0, [R11,#arg_4] .text:0003DA14 STMFA SP, {R0,R4} .text:0003DA18 LDR R1, [R11,#arg_C] .text:0003DA1C STR R1, [SP,#0x7C+var_70] .text:0003DA20 LDR R0, [R11,#var_40] .text:0003DA24 LDR R1, [R11,#var_44] .text:0003DA28 LDR R3, [R11,#var_34] .text:0003DA2C LDR R12, [R11,#var_48] .text:0003DA30 SUB R2, R11, #-var_38 .text:0003DA34 MOV LR, PC .text:0003DA38 MOV PC, R12 .text:0003DA3C CMP R0, #4 .text:0003DA40 BEQ loc_3DA74 .text:0003DA44 SUB R2, R11, #-var_38 .text:0003DA48 LDMIA R2, {R2,R3} .text:0003DA4C CMP R2, R3 .text:0003DA50 BEQ loc_3DA6C .text:0003DA54 LDR R1, [R11,#var_3C] .text:0003DA58 RSB R3, R2, R3 .text:0003DA5C LDR R2, [R1] .text:0003DA60 ADD R3, R3, R3,LSR#31 .text:0003DA64 SUB R2, R2, R3,ASR#1 .text:0003DA68 STR R2, [R1] .text:0003DA6C .text:0003DA6C loc_3DA6C ; CODE XREF: __gconv_transform_ucs2reverse_internal+694j .text:0003DA6C MOV R5, R0 .text:0003DA70 B loc_3DA84 .text:0003DA74 ; --------------------------------------------------------------------------- .text:0003DA74 .text:0003DA74 loc_3DA74 ; CODE XREF: __gconv_transform_ucs2reverse_internal+684j .text:0003DA74 CMP R5, #5 .text:0003DA78 LDREQ R3, [R7] .text:0003DA7C MOVEQ R5, R4 .text:0003DA80 STREQ R3, [R11,#var_34] .text:0003DA84 .text:0003DA84 loc_3DA84 ; CODE XREF: __gconv_transform_ucs2reverse_internal+63Cj .text:0003DA84 ; __gconv_transform_ucs2reverse_internal+6B4j .text:0003DA84 CMP R5, #0 .text:0003DA88 LDREQ R3, [R7] .text:0003DA8C STREQ R3, [R11,#var_34] .text:0003DA90 BEQ loc_3D79C .text:0003DA94 .text:0003DA94 loc_3DA94 ; CODE XREF: __gconv_transform_ucs2reverse_internal+3A8j .text:0003DA94 LDR R2, [R11,#arg_C] .text:0003DA98 CMP R5, #7 .text:0003DA9C MOVNE R3, #0 .text:0003DAA0 MOVEQ R3, #1 .text:0003DAA4 CMP R2, #0 .text:0003DAA8 MOVEQ R3, #0 .text:0003DAAC CMP R3, #0 .text:0003DAB0 BEQ loc_3DB58 .text:0003DAB4 LDR R3, [R11,#var_3C] .text:0003DAB8 LDR R2, [R3] .text:0003DABC RSB R3, R2, R6 .text:0003DAC0 CMP R3, #3 .text:0003DAC4 BLE loc_3DB00 .text:0003DAC8 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003DACC LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003DAD0 MOV R2, #0x254 .text:0003DAD4 LDR R3, =a__gconv_tran_9 ; "__gconv_transform_ucs2reverse_internal" .text:0003DAD8 ADD R2, R2, #3 .text:0003DADC BL __assert_fail .text:0003DAE0 ; --------------------------------------------------------------------------- .text:0003DAE0 .text:0003DAE0 loc_3DAE0 ; CODE XREF: __gconv_transform_ucs2reverse_internal+5CCj .text:0003DAE0 LDR R3, [R11,#var_34] .text:0003DAE4 LDR R12, [R11,#arg_0] .text:0003DAE8 MOV R0, R5 .text:0003DAEC STR R3, [R12] .text:0003DAF0 B locret_3DB5C .text:0003DAF0 ; --------------------------------------------------------------------------- .text:0003DAF4 off_3DAF4 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_ucs2reverse_internal+70Cr .text:0003DAF4 ; "inend - *inptrp < 4" .text:0003DAF8 off_3DAF8 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs2reverse_internal+710r .text:0003DAF8 ; "../iconv/skeleton.c" .text:0003DAFC off_3DAFC DCD a__gconv_tran_9 ; DATA XREF: __gconv_transform_ucs2reverse_internal+718r .text:0003DAFC ; "__gconv_transform_ucs2reverse_internal" .text:0003DB00 ; --------------------------------------------------------------------------- .text:0003DB00 .text:0003DB00 loc_3DB00 ; CODE XREF: __gconv_transform_ucs2reverse_internal+708j .text:0003DB00 MOV R0, #0 .text:0003DB04 CMP R2, R6 .text:0003DB08 BCS loc_3DB38 .text:0003DB0C .text:0003DB0C loc_3DB0C ; CODE XREF: __gconv_transform_ucs2reverse_internal+778j .text:0003DB0C LDR R1, [R11,#var_3C] .text:0003DB10 LDR R2, [R7,#0x14] .text:0003DB14 LDR R3, [R1] .text:0003DB18 LDRB R1, [R3],#1 .text:0003DB1C ADD R2, R2, R0 .text:0003DB20 STRB R1, [R2,#4] .text:0003DB24 ADD R0, R0, #1 .text:0003DB28 LDR R2, [R11,#var_3C] .text:0003DB2C CMP R3, R6 .text:0003DB30 STR R3, [R2] .text:0003DB34 BCC loc_3DB0C .text:0003DB38 .text:0003DB38 loc_3DB38 ; CODE XREF: __gconv_transform_ucs2reverse_internal+74Cj .text:0003DB38 LDR R2, [R7,#0x14] .text:0003DB3C LDR R3, [R2] .text:0003DB40 BIC R3, R3, #7 .text:0003DB44 STR R3, [R2] .text:0003DB48 LDR R1, [R7,#0x14] .text:0003DB4C LDR R3, [R1] .text:0003DB50 ORR R3, R3, R0 .text:0003DB54 STR R3, [R1] .text:0003DB58 .text:0003DB58 loc_3DB58 ; CODE XREF: __gconv_transform_ucs2reverse_internal+90j .text:0003DB58 ; __gconv_transform_ucs2reverse_internal+D8j ... .text:0003DB58 MOV R0, R5 .text:0003DB5C .text:0003DB5C locret_3DB5C ; CODE XREF: __gconv_transform_ucs2reverse_internal+734j .text:0003DB5C LDMDB R11, {R4-R11,SP,PC} .text:0003DB5C ; End of function __gconv_transform_ucs2reverse_internal .text:0003DB5C .text:0003DB60 .text:0003DB60 ; =============== S U B R O U T I N E ======================================= .text:0003DB60 .text:0003DB60 ; Attributes: bp-based frame .text:0003DB60 .text:0003DB60 EXPORT __gconv_transform_internal_ucs2reverse .text:0003DB60 __gconv_transform_internal_ucs2reverse .text:0003DB60 .text:0003DB60 var_9C = -0x9C .text:0003DB60 var_98 = -0x98 .text:0003DB60 var_94 = -0x94 .text:0003DB60 var_90 = -0x90 .text:0003DB60 var_8C = -0x8C .text:0003DB60 var_88 = -0x88 .text:0003DB60 var_84 = -0x84 .text:0003DB60 var_80 = -0x80 .text:0003DB60 var_7C = -0x7C .text:0003DB60 var_78 = -0x78 .text:0003DB60 var_74 = -0x74 .text:0003DB60 var_70 = -0x70 .text:0003DB60 var_6C = -0x6C .text:0003DB60 var_68 = -0x68 .text:0003DB60 var_64 = -0x64 .text:0003DB60 var_60 = -0x60 .text:0003DB60 var_54 = -0x54 .text:0003DB60 var_50 = -0x50 .text:0003DB60 var_44 = -0x44 .text:0003DB60 var_40 = -0x40 .text:0003DB60 var_3C = -0x3C .text:0003DB60 var_38 = -0x38 .text:0003DB60 var_34 = -0x34 .text:0003DB60 var_30 = -0x30 .text:0003DB60 var_2C = -0x2C .text:0003DB60 var_28 = -0x28 .text:0003DB60 arg_0 = 4 .text:0003DB60 arg_4 = 8 .text:0003DB60 arg_8 = 0xC .text:0003DB60 arg_C = 0x10 .text:0003DB60 .text:0003DB60 MOV R12, SP .text:0003DB64 STMFD SP!, {R4-R12,LR,PC} .text:0003DB68 SUB R11, R12, #4 .text:0003DB6C MOV R7, R1 .text:0003DB70 SUB SP, SP, #0x74 .text:0003DB74 LDR R1, [R7,#8] .text:0003DB78 MOV R12, #0 .text:0003DB7C STR R12, [R11,#var_70] .text:0003DB80 MOV R10, R2 .text:0003DB84 STR R0, [R11,#var_64] .text:0003DB88 TST R1, #1 .text:0003DB8C ADD R1, R7, #0x24 .text:0003DB90 STR R1, [R11,#var_6C] .text:0003DB94 MOV R8, R3 .text:0003DB98 ADD LR, R0, #0x38 .text:0003DB9C STR LR, [R11,#var_68] .text:0003DBA0 LDREQ R2, [LR,#0x14] .text:0003DBA4 STREQ R2, [R11,#var_70] .text:0003DBA8 LDR R3, [R11,#arg_8] .text:0003DBAC CMP R3, #0 .text:0003DBB0 BEQ loc_3DC3C .text:0003DBB4 LDR R3, [R11,#arg_0] .text:0003DBB8 MOV R6, #0 .text:0003DBBC CMP R3, R6 .text:0003DBC0 BEQ loc_3DBD8 .text:0003DBC4 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003DBC8 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003DBCC LDR R3, =a__gconv_tra_10 ; "__gconv_transform_internal_ucs2reverse" .text:0003DBD0 MOV R2, #0x130 .text:0003DBD4 BL __assert_fail .text:0003DBD8 ; --------------------------------------------------------------------------- .text:0003DBD8 .text:0003DBD8 loc_3DBD8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+60j .text:0003DBD8 MOV R1, R6 .text:0003DBDC LDR R0, [R7,#0x14] .text:0003DBE0 MOV R2, #8 .text:0003DBE4 BL memset .text:0003DBE8 LDR R3, [R7,#8] .text:0003DBEC TST R3, #1 .text:0003DBF0 BNE loc_3E548 .text:0003DBF4 LDR R0, [R11,#var_70] .text:0003DBF8 BL _dl_mcount_wrapper_check .text:0003DBFC STR R6, [SP,#0x9C+var_9C] .text:0003DC00 LDR R12, [R11,#arg_4] .text:0003DC04 MOV R3, #1 .text:0003DC08 STR R3, [SP,#0x9C+var_94] .text:0003DC0C STR R12, [SP,#0x9C+var_98] .text:0003DC10 LDR LR, [R11,#arg_C] .text:0003DC14 STR LR, [SP,#0x9C+var_90] .text:0003DC18 LDR R0, [R11,#var_68] .text:0003DC1C LDR R1, [R11,#var_6C] .text:0003DC20 MOV R2, R6 .text:0003DC24 LDR R12, [R11,#var_70] .text:0003DC28 MOV R3, R2 .text:0003DC2C MOV LR, PC .text:0003DC30 MOV PC, R12 .text:0003DC34 MOV R6, R0 .text:0003DC38 B loc_3E548 .text:0003DC3C ; --------------------------------------------------------------------------- .text:0003DC3C .text:0003DC3C loc_3DC3C ; CODE XREF: __gconv_transform_internal_ucs2reverse+50j .text:0003DC3C LDR LR, [R11,#arg_0] .text:0003DC40 LDR R1, [R10] .text:0003DC44 CMP LR, #0 .text:0003DC48 STR R1, [R11,#var_74] .text:0003DC4C LDREQ R3, [R7] .text:0003DC50 LDRNE R2, [R11,#arg_0] .text:0003DC54 LDRNE R3, [R2] .text:0003DC58 STR R3, [R11,#var_34] .text:0003DC5C MOV R3, #0 .text:0003DC60 STR R3, [R11,#var_30] .text:0003DC64 SUB LR, R11, #-var_34 .text:0003DC68 STR LR, [R11,#var_8C] .text:0003DC6C LDR R3, [R11,#arg_4] .text:0003DC70 LDR R12, [R11,#arg_C] .text:0003DC74 CMP R3, #0 .text:0003DC78 SUBNE R5, R11, #-var_30 .text:0003DC7C MOVEQ R5, #0 .text:0003DC80 LDR R1, [R7,#4] .text:0003DC84 CMP R12, #0 .text:0003DC88 STR R1, [R11,#var_78] .text:0003DC8C BEQ loc_3E01C .text:0003DC90 LDR R2, [R7,#0x14] .text:0003DC94 STR R2, [R11,#var_80] .text:0003DC98 LDR R3, [R2] .text:0003DC9C ANDS R1, R3, #7 .text:0003DCA0 BEQ loc_3E01C .text:0003DCA4 LDR R3, [R11,#arg_0] .text:0003DCA8 CMP R3, #0 .text:0003DCAC BEQ loc_3DCC8 .text:0003DCB0 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003DCB4 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003DCB8 MOV R2, #0x168 .text:0003DCBC LDR R3, =a__gconv_tra_10 ; "__gconv_transform_internal_ucs2reverse" .text:0003DCC0 ADD R2, R2, #2 .text:0003DCC4 BL __assert_fail .text:0003DCC8 ; --------------------------------------------------------------------------- .text:0003DCC8 .text:0003DCC8 loc_3DCC8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+14Cj .text:0003DCC8 LDR R3, [R10] .text:0003DCCC STR R3, [R11,#var_38] .text:0003DCD0 LDR R2, [R11,#var_34] .text:0003DCD4 STR R2, [R11,#var_3C] .text:0003DCD8 LDR R0, [R11,#arg_0] .text:0003DCDC MOV R6, R0 .text:0003DCE0 LDR R12, [R7,#8] .text:0003DCE4 CMP R6, R1 .text:0003DCE8 STR R12, [R11,#var_88] .text:0003DCEC BCS loc_3DD18 .text:0003DCF0 SUB R1, R11, #-var_2C .text:0003DCF4 .text:0003DCF4 loc_3DCF4 ; CODE XREF: __gconv_transform_internal_ucs2reverse+1B4j .text:0003DCF4 LDR LR, [R11,#var_80] .text:0003DCF8 ADD R3, LR, R6 .text:0003DCFC LDRB R2, [R3,#4] .text:0003DD00 STRB R2, [R1,R6] .text:0003DD04 LDR R3, [LR] .text:0003DD08 ADD R6, R6, #1 .text:0003DD0C AND R3, R3, #7 .text:0003DD10 CMP R6, R3 .text:0003DD14 BCC loc_3DCF4 .text:0003DD18 .text:0003DD18 loc_3DD18 ; CODE XREF: __gconv_transform_internal_ucs2reverse+18Cj .text:0003DD18 LDR R1, [R11,#var_38] .text:0003DD1C ADD R3, R1, #4 .text:0003DD20 RSB R3, R6, R3 .text:0003DD24 CMP R3, R8 .text:0003DD28 BLS loc_3DD70 .text:0003DD2C MOV R3, R1 .text:0003DD30 CMP R3, R8 .text:0003DD34 STR R8, [R10] .text:0003DD38 BCS loc_3DD68 .text:0003DD3C .text:0003DD3C loc_3DD3C ; CODE XREF: __gconv_transform_internal_ucs2reverse+204j .text:0003DD3C LDR R1, [R11,#var_80] .text:0003DD40 LDRB R3, [R3] .text:0003DD44 ADD R2, R1, R6 .text:0003DD48 STRB R3, [R2,#4] .text:0003DD4C LDR R1, [R11,#var_38] .text:0003DD50 ADD R6, R6, #1 .text:0003DD54 ADD R1, R1, #1 .text:0003DD58 MOV R3, R1 .text:0003DD5C CMP R3, R8 .text:0003DD60 STR R1, [R11,#var_38] .text:0003DD64 BCC loc_3DD3C .text:0003DD68 .text:0003DD68 loc_3DD68 ; CODE XREF: __gconv_transform_internal_ucs2reverse+1D8j .text:0003DD68 MOV R6, #7 .text:0003DD6C B loc_3DFEC .text:0003DD70 ; --------------------------------------------------------------------------- .text:0003DD70 .text:0003DD70 loc_3DD70 ; CODE XREF: __gconv_transform_internal_ucs2reverse+1C8j .text:0003DD70 LDR R3, [R11,#var_3C] .text:0003DD74 LDR R2, [R11,#var_78] .text:0003DD78 ADD R3, R3, #2 .text:0003DD7C CMP R3, R2 .text:0003DD80 MOVHI R6, #5 .text:0003DD84 BHI loc_3DFEC .text:0003DD88 SUB R9, R11, #-var_2C .text:0003DD8C MOV R1, R9 .text:0003DD90 .text:0003DD90 loc_3DD90 ; CODE XREF: __gconv_transform_internal_ucs2reverse+254j .text:0003DD90 LDR R3, [R11,#var_38] .text:0003DD94 LDRB R2, [R3] .text:0003DD98 STRB R2, [R1,R6] .text:0003DD9C LDR R3, [R11,#var_38] .text:0003DDA0 ADD R6, R6, #1 .text:0003DDA4 ADD R3, R3, #1 .text:0003DDA8 CMP R6, #3 .text:0003DDAC CMPLS R3, R8 .text:0003DDB0 STR R3, [R11,#var_38] .text:0003DDB4 BCC loc_3DD90 .text:0003DDB8 STR R9, [R11,#var_38] .text:0003DDBC LDR R1, [R9] .text:0003DDC0 ADD R3, R9, R6 .text:0003DDC4 STR R3, [R11,#var_84] .text:0003DDC8 CMP R1, #0x10000 .text:0003DDCC BCC loc_3DE6C .text:0003DDD0 MOV R0, #6 .text:0003DDD4 CMP R5, #0 .text:0003DDD8 BEQ loc_3DEE0 .text:0003DDDC LDR R4, [R7,#0x20] .text:0003DDE0 B loc_3DDE8 .text:0003DDE4 ; --------------------------------------------------------------------------- .text:0003DDE4 .text:0003DDE4 loc_3DDE4 ; CODE XREF: __gconv_transform_internal_ucs2reverse+2D0j .text:0003DDE4 LDR R4, [R4,#0x10] .text:0003DDE8 .text:0003DDE8 loc_3DDE8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+280j .text:0003DDE8 CMP R4, #0 .text:0003DDEC BEQ loc_3DE34 .text:0003DDF0 LDR R0, [R4] .text:0003DDF4 BL _dl_mcount_wrapper_check .text:0003DDF8 LDR R2, [R4,#0xC] .text:0003DDFC SUB R3, R11, #-var_38 .text:0003DE00 STR R3, [SP,#0x9C+var_9C] .text:0003DE04 LDR R12, [R11,#var_84] .text:0003DE08 SUB R3, R11, #-var_3C .text:0003DE0C STR R3, [SP,#0x9C+var_94] .text:0003DE10 STR R5, [SP,#0x9C+var_90] .text:0003DE14 STR R12, [SP,#0x9C+var_98] .text:0003DE18 LDR R0, [R11,#var_64] .text:0003DE1C LDR R3, [R10] .text:0003DE20 MOV R1, R7 .text:0003DE24 MOV LR, PC .text:0003DE28 LDR PC, [R4] .text:0003DE2C CMP R0, #6 .text:0003DE30 BEQ loc_3DDE4 .text:0003DE34 .text:0003DE34 loc_3DE34 ; CODE XREF: __gconv_transform_internal_ucs2reverse+28Cj .text:0003DE34 CMP R0, #6 .text:0003DE38 BNE loc_3DEE0 .text:0003DE3C CMP R5, #0 .text:0003DE40 BEQ loc_3DEE0 .text:0003DE44 LDR LR, [R11,#var_88] .text:0003DE48 TST LR, #2 .text:0003DE4C BEQ loc_3DEE0 .text:0003DE50 LDR R3, [R5] .text:0003DE54 ADD R3, R3, #1 .text:0003DE58 STR R3, [R5] .text:0003DE5C LDR R2, [R11,#var_38] .text:0003DE60 ADD R2, R2, #4 .text:0003DE64 STR R2, [R11,#var_38] .text:0003DE68 B loc_3DEE0 .text:0003DE6C ; --------------------------------------------------------------------------- .text:0003DE6C .text:0003DE6C loc_3DE6C ; CODE XREF: __gconv_transform_internal_ucs2reverse+26Cj .text:0003DE6C SUB R3, R1, #0xD800 .text:0003DE70 CMP R3, #0x800 .text:0003DE74 BCS loc_3DEAC .text:0003DE78 CMP R5, #0 .text:0003DE7C BEQ loc_3DE8C .text:0003DE80 LDR R1, [R11,#var_88] .text:0003DE84 TST R1, #2 .text:0003DE88 BNE loc_3DE94 .text:0003DE8C .text:0003DE8C loc_3DE8C ; CODE XREF: __gconv_transform_internal_ucs2reverse+31Cj .text:0003DE8C MOV R0, #6 .text:0003DE90 B loc_3DEE0 .text:0003DE94 ; --------------------------------------------------------------------------- .text:0003DE94 .text:0003DE94 loc_3DE94 ; CODE XREF: __gconv_transform_internal_ucs2reverse+328j .text:0003DE94 ADD R2, R9, #4 .text:0003DE98 STR R2, [R11,#var_38] .text:0003DE9C LDR R3, [R5] .text:0003DEA0 ADD R3, R3, #1 .text:0003DEA4 STR R3, [R5] .text:0003DEA8 B loc_3DEE0 .text:0003DEAC ; --------------------------------------------------------------------------- .text:0003DEAC .text:0003DEAC loc_3DEAC ; CODE XREF: __gconv_transform_internal_ucs2reverse+314j .text:0003DEAC MOV R1, R1,LSL#16 .text:0003DEB0 AND R3, R1, #0xFF0000 .text:0003DEB4 MOV R3, R3,LSR#8 .text:0003DEB8 LDR R2, [R11,#var_3C] .text:0003DEBC ORR R3, R3, R1,LSR#24 .text:0003DEC0 STRB R3, [R2] .text:0003DEC4 MOV R3, R3,ASR#8 .text:0003DEC8 STRB R3, [R2,#1] .text:0003DECC LDR R3, [R11,#var_38] .text:0003DED0 ADD R2, R2, #2 .text:0003DED4 STR R2, [R11,#var_3C] .text:0003DED8 ADD R3, R3, #4 .text:0003DEDC STR R3, [R11,#var_38] .text:0003DEE0 .text:0003DEE0 loc_3DEE0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+278j .text:0003DEE0 ; __gconv_transform_internal_ucs2reverse+2D8j ... .text:0003DEE0 LDR R2, [R11,#var_38] .text:0003DEE4 CMP R2, R9 .text:0003DEE8 BEQ loc_3DF48 .text:0003DEEC LDR R12, [R11,#var_80] .text:0003DEF0 LDR R3, [R12] .text:0003DEF4 RSB R1, R9, R2 .text:0003DEF8 AND R2, R3, #7 .text:0003DEFC CMP R1, R2 .text:0003DF00 BGT loc_3DF18 .text:0003DF04 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003DF08 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003DF0C LDR R3, =aInternal_ucs2r ; "internal_ucs2reverse_loop_single" .text:0003DF10 MOV R2, #0x17C .text:0003DF14 BL __assert_fail .text:0003DF18 ; --------------------------------------------------------------------------- .text:0003DF18 .text:0003DF18 loc_3DF18 ; CODE XREF: __gconv_transform_internal_ucs2reverse+3A0j .text:0003DF18 LDR R3, [R10] .text:0003DF1C RSB R2, R2, R1 .text:0003DF20 ADD R3, R3, R2 .text:0003DF24 STR R3, [R10] .text:0003DF28 LDR R2, [R11,#var_3C] .text:0003DF2C STR R2, [R11,#var_34] .text:0003DF30 LDR LR, [R11,#var_80] .text:0003DF34 LDR R3, [LR] .text:0003DF38 MOV R0, #0 .text:0003DF3C BIC R3, R3, #7 .text:0003DF40 STR R3, [LR] .text:0003DF44 B loc_3DFE8 .text:0003DF48 ; --------------------------------------------------------------------------- .text:0003DF48 .text:0003DF48 loc_3DF48 ; CODE XREF: __gconv_transform_internal_ucs2reverse+388j .text:0003DF48 CMP R0, #7 .text:0003DF4C BNE loc_3DFE8 .text:0003DF50 LDR R1, [R11,#var_84] .text:0003DF54 SUB R3, R11, #-var_28 .text:0003DF58 CMP R1, R3 .text:0003DF5C BNE loc_3DF94 .text:0003DF60 LDR R0, =aInendBytebuf4 ; "inend != &bytebuf[4]" .text:0003DF64 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003DF68 MOV R2, #0x188 .text:0003DF6C LDR R3, =aInternal_ucs2r ; "internal_ucs2reverse_loop_single" .text:0003DF70 ADD R2, R2, #2 .text:0003DF74 BL __assert_fail .text:0003DF74 ; --------------------------------------------------------------------------- .text:0003DF78 off_3DF78 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ucs2reverse+64r .text:0003DF78 ; __gconv_transform_internal_ucs2reverse+150r .text:0003DF78 ; "outbufstart == ((void *)0)" .text:0003DF7C off_3DF7C DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs2reverse+68r .text:0003DF7C ; __gconv_transform_internal_ucs2reverse+154r .text:0003DF7C ; "../iconv/skeleton.c" .text:0003DF80 off_3DF80 DCD a__gconv_tra_10 ; DATA XREF: __gconv_transform_internal_ucs2reverse+6Cr .text:0003DF80 ; __gconv_transform_internal_ucs2reverse+15Cr .text:0003DF80 ; "__gconv_transform_internal_ucs2reverse" .text:0003DF84 off_3DF84 DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_internal_ucs2reverse+3A4r .text:0003DF84 ; "inptr - bytebuf > (state->__count & 7)" .text:0003DF88 off_3DF88 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_ucs2reverse+3A8r .text:0003DF88 ; __gconv_transform_internal_ucs2reverse+404r .text:0003DF88 ; "../iconv/loop.c" .text:0003DF8C off_3DF8C DCD aInternal_ucs2r ; DATA XREF: __gconv_transform_internal_ucs2reverse+3ACr .text:0003DF8C ; __gconv_transform_internal_ucs2reverse+40Cr .text:0003DF8C ; "internal_ucs2reverse_loop_single" .text:0003DF90 off_3DF90 DCD aInendBytebuf4 ; DATA XREF: __gconv_transform_internal_ucs2reverse+400r .text:0003DF90 ; "inend != &bytebuf[4]" .text:0003DF94 ; --------------------------------------------------------------------------- .text:0003DF94 .text:0003DF94 loc_3DF94 ; CODE XREF: __gconv_transform_internal_ucs2reverse+3FCj .text:0003DF94 LDR LR, [R11,#var_84] .text:0003DF98 MOV R12, R2 .text:0003DF9C LDR R1, [R11,#var_80] .text:0003DFA0 CMP R12, LR .text:0003DFA4 LDR R3, [R1] .text:0003DFA8 RSB R1, R2, LR .text:0003DFAC LDR R2, [R10] .text:0003DFB0 AND R3, R3, #7 .text:0003DFB4 RSB R1, R3, R1 .text:0003DFB8 ADD R2, R2, R1 .text:0003DFBC STR R2, [R10] .text:0003DFC0 BCS loc_3DFE8 .text:0003DFC4 .text:0003DFC4 loc_3DFC4 ; CODE XREF: __gconv_transform_internal_ucs2reverse+484j .text:0003DFC4 LDR LR, [R11,#var_80] .text:0003DFC8 LDRB R2, [R12],#1 .text:0003DFCC ADD R3, LR, R6 .text:0003DFD0 STRB R2, [R3,#4] .text:0003DFD4 LDR R1, [R11,#var_84] .text:0003DFD8 ADD R6, R6, #1 .text:0003DFDC STR R12, [R11,#var_38] .text:0003DFE0 CMP R12, R1 .text:0003DFE4 BCC loc_3DFC4 .text:0003DFE8 .text:0003DFE8 loc_3DFE8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+3E4j .text:0003DFE8 ; __gconv_transform_internal_ucs2reverse+3ECj ... .text:0003DFE8 MOV R6, R0 .text:0003DFEC .text:0003DFEC loc_3DFEC ; CODE XREF: __gconv_transform_internal_ucs2reverse+20Cj .text:0003DFEC ; __gconv_transform_internal_ucs2reverse+224j .text:0003DFEC CMP R6, #0 .text:0003DFF0 BEQ loc_3E01C .text:0003DFF4 B loc_3E548 .text:0003DFF8 ; --------------------------------------------------------------------------- .text:0003DFF8 .text:0003DFF8 loc_3DFF8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+890j .text:0003DFF8 LDR R3, [R11,#var_34] .text:0003DFFC STR R3, [R7] .text:0003E000 LDR R3, [R11,#arg_4] .text:0003E004 LDR R2, [R3] .text:0003E008 LDR R3, [R11,#var_30] .text:0003E00C LDR R12, [R11,#arg_4] .text:0003E010 ADD R2, R2, R3 .text:0003E014 STR R2, [R12] .text:0003E018 B loc_3E490 .text:0003E01C ; --------------------------------------------------------------------------- .text:0003E01C .text:0003E01C loc_3E01C ; CODE XREF: __gconv_transform_internal_ucs2reverse+12Cj .text:0003E01C ; __gconv_transform_internal_ucs2reverse+140j ... .text:0003E01C LDR R1, [R11,#var_74] .text:0003E020 MOV LR, #0 .text:0003E024 STR LR, [R11,#var_7C] .text:0003E028 TST R1, #3 .text:0003E02C BNE loc_3E048 .text:0003E030 LDR R3, [R7,#8] .text:0003E034 TST R3, #1 .text:0003E038 BEQ loc_3E050 .text:0003E03C LDR R3, [R11,#var_34] .text:0003E040 TST R3, #1 .text:0003E044 BEQ loc_3E050 .text:0003E048 .text:0003E048 loc_3E048 ; CODE XREF: __gconv_transform_internal_ucs2reverse+4CCj .text:0003E048 MOV R2, #1 .text:0003E04C STR R2, [R11,#var_7C] .text:0003E050 .text:0003E050 loc_3E050 ; CODE XREF: __gconv_transform_internal_ucs2reverse+4D8j .text:0003E050 ; __gconv_transform_internal_ucs2reverse+4E4j ... .text:0003E050 LDR R3, [R10] .text:0003E054 LDR R12, [R11,#var_7C] .text:0003E058 LDR R9, [R11,#var_34] .text:0003E05C CMP R12, #0 .text:0003E060 STR R3, [R11,#var_74] .text:0003E064 BNE loc_3E1F8 .text:0003E068 STR R3, [R11,#var_40] .text:0003E06C STR R9, [R11,#var_44] .text:0003E070 MOV R0, #4 .text:0003E074 CMP R3, R8 .text:0003E078 LDR R6, [R7,#8] .text:0003E07C BEQ loc_3E1C8 .text:0003E080 MOV LR, R9 .text:0003E084 LDR R1, [R11,#var_78] .text:0003E088 ADD R4, R9, #2 .text:0003E08C CMP R4, R1 .text:0003E090 BHI loc_3E1E0 .text:0003E094 ADD R12, R3, R0 .text:0003E098 B loc_3E1A8 .text:0003E09C ; --------------------------------------------------------------------------- .text:0003E09C .text:0003E09C loc_3E09C ; CODE XREF: __gconv_transform_internal_ucs2reverse+664j .text:0003E09C LDR R4, [R7,#0x20] .text:0003E0A0 B loc_3E0A8 .text:0003E0A4 ; --------------------------------------------------------------------------- .text:0003E0A4 .text:0003E0A4 loc_3E0A4 ; CODE XREF: __gconv_transform_internal_ucs2reverse+588j .text:0003E0A4 LDR R4, [R4,#0x10] .text:0003E0A8 .text:0003E0A8 loc_3E0A8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+540j .text:0003E0A8 CMP R4, #0 .text:0003E0AC BEQ loc_3E0EC .text:0003E0B0 LDR R0, [R4] .text:0003E0B4 BL _dl_mcount_wrapper_check .text:0003E0B8 LDR R2, [R4,#0xC] .text:0003E0BC SUB R3, R11, #-var_40 .text:0003E0C0 STMEA SP, {R3,R8} .text:0003E0C4 SUB R3, R11, #-var_44 .text:0003E0C8 STR R3, [SP,#0x9C+var_94] .text:0003E0CC STR R5, [SP,#0x9C+var_90] .text:0003E0D0 LDR R0, [R11,#var_64] .text:0003E0D4 LDR R3, [R10] .text:0003E0D8 MOV R1, R7 .text:0003E0DC MOV LR, PC .text:0003E0E0 LDR PC, [R4] .text:0003E0E4 CMP R0, #6 .text:0003E0E8 BEQ loc_3E0A4 .text:0003E0EC .text:0003E0EC loc_3E0EC ; CODE XREF: __gconv_transform_internal_ucs2reverse+54Cj .text:0003E0EC CMP R0, #6 .text:0003E0F0 BNE loc_3E184 .text:0003E0F4 CMP R5, #0 .text:0003E0F8 BEQ loc_3E1C8 .text:0003E0FC TST R6, #2 .text:0003E100 BEQ loc_3E1C8 .text:0003E104 LDR R3, [R5] .text:0003E108 ADD R3, R3, #1 .text:0003E10C STR R3, [R5] .text:0003E110 LDR R2, [R11,#var_40] .text:0003E114 ADD R2, R2, #4 .text:0003E118 STR R2, [R11,#var_40] .text:0003E11C B loc_3E184 .text:0003E120 ; --------------------------------------------------------------------------- .text:0003E120 .text:0003E120 loc_3E120 ; CODE XREF: __gconv_transform_internal_ucs2reverse+658j .text:0003E120 SUB R3, R2, #0xD800 .text:0003E124 CMP R3, #0x800 .text:0003E128 BCS loc_3E158 .text:0003E12C CMP R5, #0 .text:0003E130 BEQ loc_3E13C .text:0003E134 TST R6, #2 .text:0003E138 BNE loc_3E144 .text:0003E13C .text:0003E13C loc_3E13C ; CODE XREF: __gconv_transform_internal_ucs2reverse+5D0j .text:0003E13C MOV R0, #6 .text:0003E140 B loc_3E1C8 .text:0003E144 ; --------------------------------------------------------------------------- .text:0003E144 .text:0003E144 loc_3E144 ; CODE XREF: __gconv_transform_internal_ucs2reverse+5D8j .text:0003E144 STR R12, [R11,#var_40] .text:0003E148 LDR R3, [R5] .text:0003E14C ADD R3, R3, #1 .text:0003E150 STR R3, [R5] .text:0003E154 B loc_3E184 .text:0003E158 ; --------------------------------------------------------------------------- .text:0003E158 .text:0003E158 loc_3E158 ; CODE XREF: __gconv_transform_internal_ucs2reverse+5C8j .text:0003E158 MOV R3, R2,LSL#16 .text:0003E15C AND R2, R3, #0xFF0000 .text:0003E160 MOV R2, R2,LSR#8 .text:0003E164 ORR R2, R2, R3,LSR#24 .text:0003E168 STRB R2, [LR] .text:0003E16C MOV R2, R2,ASR#8 .text:0003E170 STRB R2, [LR,#1] .text:0003E174 LDR R3, [R11,#var_40] .text:0003E178 STR R4, [R11,#var_44] .text:0003E17C ADD R3, R3, #4 .text:0003E180 STR R3, [R11,#var_40] .text:0003E184 .text:0003E184 loc_3E184 ; CODE XREF: __gconv_transform_internal_ucs2reverse+590j .text:0003E184 ; __gconv_transform_internal_ucs2reverse+5BCj ... .text:0003E184 LDR R3, [R11,#var_40] .text:0003E188 CMP R3, R8 .text:0003E18C BEQ loc_3E1C8 .text:0003E190 LDR LR, [R11,#var_44] .text:0003E194 LDR R2, [R11,#var_78] .text:0003E198 ADD R4, LR, #2 .text:0003E19C CMP R4, R2 .text:0003E1A0 BHI loc_3E1E0 .text:0003E1A4 ADD R12, R3, #4 .text:0003E1A8 .text:0003E1A8 loc_3E1A8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+538j .text:0003E1A8 CMP R12, R8 .text:0003E1AC BHI loc_3E1D8 .text:0003E1B0 LDR R2, [R3] .text:0003E1B4 CMP R2, #0x10000 .text:0003E1B8 BCC loc_3E120 .text:0003E1BC MOV R0, #6 .text:0003E1C0 CMP R5, #0 .text:0003E1C4 BNE loc_3E09C .text:0003E1C8 .text:0003E1C8 loc_3E1C8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+51Cj .text:0003E1C8 ; __gconv_transform_internal_ucs2reverse+598j ... .text:0003E1C8 LDR R3, [R11,#var_40] .text:0003E1CC STR R3, [R10] .text:0003E1D0 LDR R2, [R11,#var_44] .text:0003E1D4 B loc_3E37C .text:0003E1D8 ; --------------------------------------------------------------------------- .text:0003E1D8 .text:0003E1D8 loc_3E1D8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+64Cj .text:0003E1D8 MOV R0, #7 .text:0003E1DC B loc_3E1C8 .text:0003E1E0 ; --------------------------------------------------------------------------- .text:0003E1E0 .text:0003E1E0 loc_3E1E0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+530j .text:0003E1E0 ; __gconv_transform_internal_ucs2reverse+640j .text:0003E1E0 MOV R0, #5 .text:0003E1E4 B loc_3E1C8 .text:0003E1E8 ; --------------------------------------------------------------------------- .text:0003E1E8 .text:0003E1E8 loc_3E1E8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+6C8j .text:0003E1E8 ; __gconv_transform_internal_ucs2reverse+7E8j .text:0003E1E8 MOV R0, #5 .text:0003E1EC B loc_3E370 .text:0003E1F0 ; --------------------------------------------------------------------------- .text:0003E1F0 .text:0003E1F0 loc_3E1F0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+6D8j .text:0003E1F0 ; __gconv_transform_internal_ucs2reverse+7F4j .text:0003E1F0 MOV R0, #7 .text:0003E1F4 B loc_3E370 .text:0003E1F8 ; --------------------------------------------------------------------------- .text:0003E1F8 .text:0003E1F8 loc_3E1F8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+504j .text:0003E1F8 LDR R12, [R11,#var_74] .text:0003E1FC STR R12, [R11,#var_50] .text:0003E200 LDR R3, [R11,#var_34] .text:0003E204 STR R3, [R11,#var_54] .text:0003E208 MOV R0, #4 .text:0003E20C CMP R12, R8 .text:0003E210 LDR R6, [R7,#8] .text:0003E214 BEQ loc_3E370 .text:0003E218 MOV R12, R3 .text:0003E21C LDR LR, [R11,#var_78] .text:0003E220 ADD R4, R12, #2 .text:0003E224 CMP R4, LR .text:0003E228 BHI loc_3E1E8 .text:0003E22C LDR R1, [R11,#var_74] .text:0003E230 ADD LR, R1, R0 .text:0003E234 CMP LR, R8 .text:0003E238 BHI loc_3E1F0 .text:0003E23C LDR R2, [R1] .text:0003E240 B loc_3E35C .text:0003E244 ; --------------------------------------------------------------------------- .text:0003E244 .text:0003E244 loc_3E244 ; CODE XREF: __gconv_transform_internal_ucs2reverse+80Cj .text:0003E244 LDR R4, [R7,#0x20] .text:0003E248 B loc_3E250 .text:0003E24C ; --------------------------------------------------------------------------- .text:0003E24C .text:0003E24C loc_3E24C ; CODE XREF: __gconv_transform_internal_ucs2reverse+730j .text:0003E24C LDR R4, [R4,#0x10] .text:0003E250 .text:0003E250 loc_3E250 ; CODE XREF: __gconv_transform_internal_ucs2reverse+6E8j .text:0003E250 CMP R4, #0 .text:0003E254 BEQ loc_3E294 .text:0003E258 LDR R0, [R4] .text:0003E25C BL _dl_mcount_wrapper_check .text:0003E260 LDR R2, [R4,#0xC] .text:0003E264 SUB R3, R11, #-var_50 .text:0003E268 STMEA SP, {R3,R8} .text:0003E26C SUB R3, R11, #-var_54 .text:0003E270 STR R3, [SP,#0x9C+var_94] .text:0003E274 STR R5, [SP,#0x9C+var_90] .text:0003E278 LDR R0, [R11,#var_64] .text:0003E27C LDR R3, [R10] .text:0003E280 MOV R1, R7 .text:0003E284 MOV LR, PC .text:0003E288 LDR PC, [R4] .text:0003E28C CMP R0, #6 .text:0003E290 BEQ loc_3E24C .text:0003E294 .text:0003E294 loc_3E294 ; CODE XREF: __gconv_transform_internal_ucs2reverse+6F4j .text:0003E294 CMP R0, #6 .text:0003E298 BNE loc_3E32C .text:0003E29C CMP R5, #0 .text:0003E2A0 BEQ loc_3E370 .text:0003E2A4 TST R6, #2 .text:0003E2A8 BEQ loc_3E370 .text:0003E2AC LDR R3, [R5] .text:0003E2B0 ADD R3, R3, #1 .text:0003E2B4 STR R3, [R5] .text:0003E2B8 LDR R2, [R11,#var_50] .text:0003E2BC ADD R2, R2, #4 .text:0003E2C0 STR R2, [R11,#var_50] .text:0003E2C4 B loc_3E32C .text:0003E2C8 ; --------------------------------------------------------------------------- .text:0003E2C8 .text:0003E2C8 loc_3E2C8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+800j .text:0003E2C8 SUB R3, R2, #0xD800 .text:0003E2CC CMP R3, #0x800 .text:0003E2D0 BCS loc_3E300 .text:0003E2D4 CMP R5, #0 .text:0003E2D8 BEQ loc_3E2E4 .text:0003E2DC TST R6, #2 .text:0003E2E0 BNE loc_3E2EC .text:0003E2E4 .text:0003E2E4 loc_3E2E4 ; CODE XREF: __gconv_transform_internal_ucs2reverse+778j .text:0003E2E4 MOV R0, #6 .text:0003E2E8 B loc_3E370 .text:0003E2EC ; --------------------------------------------------------------------------- .text:0003E2EC .text:0003E2EC loc_3E2EC ; CODE XREF: __gconv_transform_internal_ucs2reverse+780j .text:0003E2EC STR LR, [R11,#var_50] .text:0003E2F0 LDR R3, [R5] .text:0003E2F4 ADD R3, R3, #1 .text:0003E2F8 STR R3, [R5] .text:0003E2FC B loc_3E32C .text:0003E300 ; --------------------------------------------------------------------------- .text:0003E300 .text:0003E300 loc_3E300 ; CODE XREF: __gconv_transform_internal_ucs2reverse+770j .text:0003E300 MOV R3, R2,LSL#16 .text:0003E304 AND R2, R3, #0xFF0000 .text:0003E308 MOV R2, R2,LSR#8 .text:0003E30C ORR R2, R2, R3,LSR#24 .text:0003E310 STRB R2, [R12] .text:0003E314 MOV R2, R2,ASR#8 .text:0003E318 STRB R2, [R12,#1] .text:0003E31C LDR R3, [R11,#var_50] .text:0003E320 STR R4, [R11,#var_54] .text:0003E324 ADD R3, R3, #4 .text:0003E328 STR R3, [R11,#var_50] .text:0003E32C .text:0003E32C loc_3E32C ; CODE XREF: __gconv_transform_internal_ucs2reverse+738j .text:0003E32C ; __gconv_transform_internal_ucs2reverse+764j ... .text:0003E32C LDR R3, [R11,#var_50] .text:0003E330 CMP R3, R8 .text:0003E334 BEQ loc_3E370 .text:0003E338 LDR R12, [R11,#var_54] .text:0003E33C LDR R2, [R11,#var_78] .text:0003E340 ADD R4, R12, #2 .text:0003E344 CMP R4, R2 .text:0003E348 BHI loc_3E1E8 .text:0003E34C ADD LR, R3, #4 .text:0003E350 CMP LR, R8 .text:0003E354 BHI loc_3E1F0 .text:0003E358 LDR R2, [R3] .text:0003E35C .text:0003E35C loc_3E35C ; CODE XREF: __gconv_transform_internal_ucs2reverse+6E0j .text:0003E35C CMP R2, #0x10000 .text:0003E360 BCC loc_3E2C8 .text:0003E364 MOV R0, #6 .text:0003E368 CMP R5, #0 .text:0003E36C BNE loc_3E244 .text:0003E370 .text:0003E370 loc_3E370 ; CODE XREF: __gconv_transform_internal_ucs2reverse+68Cj .text:0003E370 ; __gconv_transform_internal_ucs2reverse+694j ... .text:0003E370 LDR R3, [R11,#var_50] .text:0003E374 STR R3, [R10] .text:0003E378 LDR R2, [R11,#var_54] .text:0003E37C .text:0003E37C loc_3E37C ; CODE XREF: __gconv_transform_internal_ucs2reverse+674j .text:0003E37C LDR R3, [R11,#var_8C] .text:0003E380 MOV R6, R0 .text:0003E384 STR R2, [R3] .text:0003E388 LDR R12, [R11,#arg_0] .text:0003E38C CMP R12, #0 .text:0003E390 BNE loc_3E4D8 .text:0003E394 LDR R4, [R7,#0x20] .text:0003E398 CMP R4, #0 .text:0003E39C BEQ loc_3E3DC .text:0003E3A0 .text:0003E3A0 loc_3E3A0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+878j .text:0003E3A0 LDR R0, [R4,#4] .text:0003E3A4 CMP R0, #0 .text:0003E3A8 BEQ loc_3E3D0 .text:0003E3AC BL _dl_mcount_wrapper_check .text:0003E3B0 LDR R3, [R11,#var_34] .text:0003E3B4 LDR R0, [R4,#0xC] .text:0003E3B8 STR R3, [SP,#0x9C+var_9C] .text:0003E3BC LDR R1, [R11,#var_74] .text:0003E3C0 LDR R2, [R10] .text:0003E3C4 MOV R3, R9 .text:0003E3C8 MOV LR, PC .text:0003E3CC LDR PC, [R4,#4] .text:0003E3D0 .text:0003E3D0 loc_3E3D0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+848j .text:0003E3D0 LDR R4, [R4,#0x10] .text:0003E3D4 CMP R4, #0 .text:0003E3D8 BNE loc_3E3A0 .text:0003E3DC .text:0003E3DC loc_3E3DC ; CODE XREF: __gconv_transform_internal_ucs2reverse+83Cj .text:0003E3DC ADD R2, R7, #8 .text:0003E3E0 LDMIA R2, {R2,R3} .text:0003E3E4 ADD R3, R3, #1 .text:0003E3E8 ANDS R4, R2, #1 .text:0003E3EC STR R3, [R7,#0xC] .text:0003E3F0 BNE loc_3DFF8 .text:0003E3F4 LDR R3, [R11,#var_34] .text:0003E3F8 CMP R3, R9 .text:0003E3FC BLS loc_3E480 .text:0003E400 LDR R3, [R7] .text:0003E404 STR R3, [R11,#var_60] .text:0003E408 LDR R0, [R11,#var_70] .text:0003E40C BL _dl_mcount_wrapper_check .text:0003E410 STR R4, [SP,#0x9C+var_9C] .text:0003E414 LDR LR, [R11,#arg_4] .text:0003E418 STR R4, [SP,#0x9C+var_94] .text:0003E41C STR LR, [SP,#0x9C+var_98] .text:0003E420 LDR R1, [R11,#arg_C] .text:0003E424 STR R1, [SP,#0x9C+var_90] .text:0003E428 LDR R0, [R11,#var_68] .text:0003E42C LDR R1, [R11,#var_6C] .text:0003E430 LDR R3, [R11,#var_34] .text:0003E434 LDR R12, [R11,#var_70] .text:0003E438 SUB R2, R11, #-var_60 .text:0003E43C MOV LR, PC .text:0003E440 MOV PC, R12 .text:0003E444 CMP R0, #4 .text:0003E448 BEQ loc_3E470 .text:0003E44C LDR R1, [R11,#var_60] .text:0003E450 LDR R2, [R11,#var_34] .text:0003E454 CMP R1, R2 .text:0003E458 LDRNE R3, [R10] .text:0003E45C RSBNE R2, R1, R2 .text:0003E460 SUBNE R3, R3, R2,LSL#1 .text:0003E464 STRNE R3, [R10] .text:0003E468 MOV R6, R0 .text:0003E46C B loc_3E480 .text:0003E470 ; --------------------------------------------------------------------------- .text:0003E470 .text:0003E470 loc_3E470 ; CODE XREF: __gconv_transform_internal_ucs2reverse+8E8j .text:0003E470 CMP R6, #5 .text:0003E474 LDREQ R3, [R7] .text:0003E478 MOVEQ R6, R4 .text:0003E47C STREQ R3, [R11,#var_34] .text:0003E480 .text:0003E480 loc_3E480 ; CODE XREF: __gconv_transform_internal_ucs2reverse+89Cj .text:0003E480 ; __gconv_transform_internal_ucs2reverse+90Cj .text:0003E480 CMP R6, #0 .text:0003E484 LDREQ R3, [R7] .text:0003E488 STREQ R3, [R11,#var_34] .text:0003E48C BEQ loc_3E050 .text:0003E490 .text:0003E490 loc_3E490 ; CODE XREF: __gconv_transform_internal_ucs2reverse+4B8j .text:0003E490 LDR LR, [R11,#arg_C] .text:0003E494 CMP R6, #7 .text:0003E498 MOVNE R3, #0 .text:0003E49C MOVEQ R3, #1 .text:0003E4A0 CMP LR, #0 .text:0003E4A4 MOVEQ R3, #0 .text:0003E4A8 CMP R3, #0 .text:0003E4AC BEQ loc_3E548 .text:0003E4B0 LDR R2, [R10] .text:0003E4B4 RSB R3, R2, R8 .text:0003E4B8 CMP R3, #3 .text:0003E4BC BLE loc_3E4F8 .text:0003E4C0 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003E4C4 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003E4C8 MOV R2, #0x254 .text:0003E4CC LDR R3, =a__gconv_tra_10 ; "__gconv_transform_internal_ucs2reverse" .text:0003E4D0 ADD R2, R2, #3 .text:0003E4D4 BL __assert_fail .text:0003E4D8 ; --------------------------------------------------------------------------- .text:0003E4D8 .text:0003E4D8 loc_3E4D8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+830j .text:0003E4D8 LDR R3, [R11,#var_34] .text:0003E4DC LDR R1, [R11,#arg_0] .text:0003E4E0 MOV R0, R6 .text:0003E4E4 STR R3, [R1] .text:0003E4E8 B locret_3E54C .text:0003E4E8 ; --------------------------------------------------------------------------- .text:0003E4EC off_3E4EC DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ucs2reverse+960r .text:0003E4EC ; "inend - *inptrp < 4" .text:0003E4F0 off_3E4F0 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs2reverse+964r .text:0003E4F0 ; "../iconv/skeleton.c" .text:0003E4F4 off_3E4F4 DCD a__gconv_tra_10 ; DATA XREF: __gconv_transform_internal_ucs2reverse+96Cr .text:0003E4F4 ; "__gconv_transform_internal_ucs2reverse" .text:0003E4F8 ; --------------------------------------------------------------------------- .text:0003E4F8 .text:0003E4F8 loc_3E4F8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+95Cj .text:0003E4F8 MOV R0, #0 .text:0003E4FC CMP R2, R8 .text:0003E500 BCS loc_3E528 .text:0003E504 .text:0003E504 loc_3E504 ; CODE XREF: __gconv_transform_internal_ucs2reverse+9C4j .text:0003E504 LDR R3, [R10] .text:0003E508 LDR R2, [R7,#0x14] .text:0003E50C LDRB R1, [R3],#1 .text:0003E510 ADD R2, R2, R0 .text:0003E514 STRB R1, [R2,#4] .text:0003E518 ADD R0, R0, #1 .text:0003E51C CMP R3, R8 .text:0003E520 STR R3, [R10] .text:0003E524 BCC loc_3E504 .text:0003E528 .text:0003E528 loc_3E528 ; CODE XREF: __gconv_transform_internal_ucs2reverse+9A0j .text:0003E528 LDR R2, [R7,#0x14] .text:0003E52C LDR R3, [R2] .text:0003E530 BIC R3, R3, #7 .text:0003E534 STR R3, [R2] .text:0003E538 LDR R1, [R7,#0x14] .text:0003E53C LDR R3, [R1] .text:0003E540 ORR R3, R3, R0 .text:0003E544 STR R3, [R1] .text:0003E548 .text:0003E548 loc_3E548 ; CODE XREF: __gconv_transform_internal_ucs2reverse+90j .text:0003E548 ; __gconv_transform_internal_ucs2reverse+D8j ... .text:0003E548 MOV R0, R6 .text:0003E54C .text:0003E54C locret_3E54C ; CODE XREF: __gconv_transform_internal_ucs2reverse+988j .text:0003E54C LDMDB R11, {R4-R11,SP,PC} .text:0003E54C ; End of function __gconv_transform_internal_ucs2reverse .text:0003E54C .text:0003E550 .text:0003E550 ; =============== S U B R O U T I N E ======================================= .text:0003E550 .text:0003E550 ; Attributes: bp-based frame .text:0003E550 .text:0003E550 EXPORT __gconv_transliterate .text:0003E550 __gconv_transliterate ; DATA XREF: __gconv_open+168o .text:0003E550 ; __gconv_open+1BCo ... .text:0003E550 .text:0003E550 var_74 = -0x74 .text:0003E550 var_70 = -0x70 .text:0003E550 var_6C = -0x6C .text:0003E550 var_68 = -0x68 .text:0003E550 var_64 = -0x64 .text:0003E550 var_5C = -0x5C .text:0003E550 var_58 = -0x58 .text:0003E550 var_54 = -0x54 .text:0003E550 var_50 = -0x50 .text:0003E550 var_4C = -0x4C .text:0003E550 var_48 = -0x48 .text:0003E550 var_44 = -0x44 .text:0003E550 var_40 = -0x40 .text:0003E550 var_3C = -0x3C .text:0003E550 var_38 = -0x38 .text:0003E550 var_34 = -0x34 .text:0003E550 var_30 = -0x30 .text:0003E550 var_2C = -0x2C .text:0003E550 arg_0 = 4 .text:0003E550 arg_4 = 8 .text:0003E550 arg_8 = 0xC .text:0003E550 arg_C = 0x10 .text:0003E550 .text:0003E550 MOV R12, SP .text:0003E554 STMFD SP!, {R4-R12,LR,PC} .text:0003E558 LDR R3, =_nl_current_LC_CTYPE .text:0003E55C SUB SP, SP, #0x4C .text:0003E560 LDR R2, [R3] .text:0003E564 SUB R11, R12, #4 .text:0003E568 LDR R12, [R2,#0x114] .text:0003E56C STR R0, [R11,#var_3C] .text:0003E570 STR R1, [R11,#var_40] .text:0003E574 LDR R0, [R11,#arg_0] .text:0003E578 CMP R12, #0 .text:0003E57C LDR R10, [R0] .text:0003E580 BEQ loc_3E790 .text:0003E584 LDR R1, [R2,#0x118] .text:0003E588 STR R1, [R11,#var_44] .text:0003E58C LDR R3, [R2,#0x11C] .text:0003E590 STR R3, [R11,#var_48] .text:0003E594 LDR LR, [R2,#0x120] .text:0003E598 STR LR, [R11,#var_4C] .text:0003E59C LDR R0, [R11,#arg_4] .text:0003E5A0 ADD R3, R10, #4 .text:0003E5A4 CMP R3, R0 .text:0003E5A8 LDR R7, [R2,#0x124] .text:0003E5AC BHI loc_3E7C8 .text:0003E5B0 STR R12, [R11,#var_54] .text:0003E5B4 MOV R1, #0 .text:0003E5B8 STR R1, [R11,#var_50] .text:0003E5BC CMP R1, R12 .text:0003E5C0 BCS loc_3E790 .text:0003E5C4 .text:0003E5C4 loc_3E5C4 ; CODE XREF: __gconv_transliterate+23Cj .text:0003E5C4 LDR R2, [R11,#var_50] .text:0003E5C8 LDR R12, [R11,#var_54] .text:0003E5CC ADD R3, R2, R12 .text:0003E5D0 MOV R3, R3,LSR#1 .text:0003E5D4 STR R3, [R11,#var_64] .text:0003E5D8 MOV R6, #0 .text:0003E5DC LDR LR, [R11,#var_44] .text:0003E5E0 MOV R0, R10 .text:0003E5E4 LDR R8, [LR,R3,LSL#2] .text:0003E5E8 .text:0003E5E8 loc_3E5E8 ; CODE XREF: __gconv_transliterate+D4j .text:0003E5E8 LDR R2, [R11,#var_48] .text:0003E5EC ADD R3, R8, R6 .text:0003E5F0 LDR R1, [R2,R3,LSL#2] .text:0003E5F4 LDR R2, [R10,R6,LSL#2] .text:0003E5F8 CMP R1, R2 .text:0003E5FC BNE loc_3E628 .text:0003E600 ADD R6, R6, #1 .text:0003E604 LDR R12, [R11,#var_48] .text:0003E608 ADD R3, R8, R6 .text:0003E60C LDR R2, [R12,R3,LSL#2] .text:0003E610 ADD R0, R0, #4 .text:0003E614 CMP R2, #0 .text:0003E618 BEQ loc_3E628 .text:0003E61C LDR LR, [R11,#arg_4] .text:0003E620 CMP R0, LR .text:0003E624 BCC loc_3E5E8 .text:0003E628 .text:0003E628 loc_3E628 ; CODE XREF: __gconv_transliterate+ACj .text:0003E628 ; __gconv_transliterate+C8j .text:0003E628 CMP R6, #0 .text:0003E62C BLE loc_3E738 .text:0003E630 LDR R0, [R11,#var_48] .text:0003E634 ADD R3, R8, R6 .text:0003E638 LDR R3, [R0,R3,LSL#2] .text:0003E63C CMP R3, #0 .text:0003E640 BNE loc_3E738 .text:0003E644 SUB R1, R11, #-var_2C .text:0003E648 STR R1, [R11,#var_5C] .text:0003E64C SUB R2, R11, #-var_30 .text:0003E650 STR R2, [R11,#var_58] .text:0003E654 MOV R9, R3 .text:0003E658 LDR R3, [R11,#var_64] .text:0003E65C LDR R12, [R11,#var_4C] .text:0003E660 LDR R4, [R12,R3,LSL#2] .text:0003E664 .text:0003E664 loc_3E664 ; CODE XREF: __gconv_transliterate+1E0j .text:0003E664 MOV R5, #0 .text:0003E668 LDR R3, [R7,R4,LSL#2] .text:0003E66C MOV R1, R4,LSL#2 .text:0003E670 CMP R3, R5 .text:0003E674 BEQ loc_3E68C .text:0003E678 .text:0003E678 loc_3E678 ; CODE XREF: __gconv_transliterate+138j .text:0003E678 ADD R5, R5, #1 .text:0003E67C ADD R3, R4, R5 .text:0003E680 LDR R2, [R7,R3,LSL#2] .text:0003E684 CMP R2, #0 .text:0003E688 BNE loc_3E678 .text:0003E68C .text:0003E68C loc_3E68C ; CODE XREF: __gconv_transliterate+124j .text:0003E68C ADD R3, R7, R1 .text:0003E690 STR R3, [R11,#var_2C] .text:0003E694 LDR LR, [R11,#arg_8] .text:0003E698 LDR R2, [LR] .text:0003E69C STR R2, [R11,#var_30] .text:0003E6A0 LDR R1, [R11,#var_3C] .text:0003E6A4 LDR R0, [R1,#0x14] .text:0003E6A8 BL _dl_mcount_wrapper_check .text:0003E6AC LDR R2, [R11,#var_58] .text:0003E6B0 STR R9, [SP,#0x74+var_70] .text:0003E6B4 STR R9, [SP,#0x74+var_6C] .text:0003E6B8 STR R2, [SP,#0x74+var_74] .text:0003E6BC LDR R0, [R11,#var_3C] .text:0003E6C0 STR R9, [SP,#0x74+var_68] .text:0003E6C4 ADD R3, R4, R5 .text:0003E6C8 LDR R1, [R11,#var_40] .text:0003E6CC ADD R3, R7, R3,LSL#2 .text:0003E6D0 LDR R2, [R11,#var_5C] .text:0003E6D4 MOV R12, R0 .text:0003E6D8 MOV LR, PC .text:0003E6DC LDR PC, [R12,#0x14] .text:0003E6E0 CMP R0, #6 .text:0003E6E4 BEQ loc_3E720 .text:0003E6E8 CMP R0, #4 .text:0003E6EC BNE loc_3E718 .text:0003E6F0 LDR LR, [R11,#arg_0] .text:0003E6F4 LDR R3, [LR] .text:0003E6F8 ADD R3, R3, R6,LSL#2 .text:0003E6FC STR R3, [LR] .text:0003E700 LDR R0, [R11,#arg_C] .text:0003E704 LDR R1, [R11,#arg_C] .text:0003E708 LDR R2, [R0] .text:0003E70C MOV R0, #0 .text:0003E710 ADD R2, R2, #1 .text:0003E714 STR R2, [R1] .text:0003E718 .text:0003E718 loc_3E718 ; CODE XREF: __gconv_transliterate+19Cj .text:0003E718 LDR R3, [R11,#var_30] .text:0003E71C B loc_3E8E8 .text:0003E720 ; --------------------------------------------------------------------------- .text:0003E720 .text:0003E720 loc_3E720 ; CODE XREF: __gconv_transliterate+194j .text:0003E720 ADD R3, R4, #1 .text:0003E724 ADD R4, R3, R5 .text:0003E728 LDR R2, [R7,R4,LSL#2] .text:0003E72C CMP R2, #0 .text:0003E730 BNE loc_3E664 .text:0003E734 B loc_3E740 .text:0003E738 ; --------------------------------------------------------------------------- .text:0003E738 .text:0003E738 loc_3E738 ; CODE XREF: __gconv_transliterate+DCj .text:0003E738 ; __gconv_transliterate+F0j .text:0003E738 CMP R6, #0 .text:0003E73C BGT loc_3E8F4 .text:0003E740 .text:0003E740 loc_3E740 ; CODE XREF: __gconv_transliterate+1E4j .text:0003E740 LDR R12, [R11,#arg_4] .text:0003E744 ADD R3, R10, R6,LSL#2 .text:0003E748 CMP R3, R12 .text:0003E74C BCS loc_3E768 .text:0003E750 LDR LR, [R11,#var_48] .text:0003E754 LDR R2, [R10,R6,LSL#2] .text:0003E758 ADD R3, R8, R6 .text:0003E75C LDR R1, [LR,R3,LSL#2] .text:0003E760 CMP R1, R2 .text:0003E764 BCS loc_3E778 .text:0003E768 .text:0003E768 loc_3E768 ; CODE XREF: __gconv_transliterate+1FCj .text:0003E768 LDR R0, [R11,#var_64] .text:0003E76C ADD R0, R0, #1 .text:0003E770 STR R0, [R11,#var_50] .text:0003E774 B loc_3E780 .text:0003E778 ; --------------------------------------------------------------------------- .text:0003E778 .text:0003E778 loc_3E778 ; CODE XREF: __gconv_transliterate+214j .text:0003E778 LDR R1, [R11,#var_64] .text:0003E77C STR R1, [R11,#var_54] .text:0003E780 .text:0003E780 loc_3E780 ; CODE XREF: __gconv_transliterate+224j .text:0003E780 LDR R2, [R11,#var_50] .text:0003E784 LDR R3, [R11,#var_54] .text:0003E788 CMP R2, R3 .text:0003E78C BCC loc_3E5C4 .text:0003E790 .text:0003E790 loc_3E790 ; CODE XREF: __gconv_transliterate+30j .text:0003E790 ; __gconv_transliterate+70j .text:0003E790 LDR R12, =_nl_current_LC_CTYPE .text:0003E794 LDR R1, [R12] .text:0003E798 LDR R8, [R1,#0x130] .text:0003E79C CMP R8, #0 .text:0003E7A0 BEQ loc_3E82C .text:0003E7A4 LDR LR, [R11,#arg_0] .text:0003E7A8 LDR R0, [R11,#arg_4] .text:0003E7AC LDR R4, [R1,#0x134] .text:0003E7B0 ADD R3, R10, #4 .text:0003E7B4 LDR R2, [LR] .text:0003E7B8 CMP R3, R0 .text:0003E7BC MOV R9, R2 .text:0003E7C0 LDR R5, [R2] .text:0003E7C4 BLS loc_3E7D8 .text:0003E7C8 .text:0003E7C8 loc_3E7C8 ; CODE XREF: __gconv_transliterate+5Cj .text:0003E7C8 CMP R10, R0 .text:0003E7CC MOVNE R0, #7 .text:0003E7D0 MOVEQ R0, #4 .text:0003E7D4 B locret_3E924 .text:0003E7D8 ; --------------------------------------------------------------------------- .text:0003E7D8 .text:0003E7D8 loc_3E7D8 ; CODE XREF: __gconv_transliterate+274j .text:0003E7D8 MOV R7, #0 .text:0003E7DC CMP R7, R8 .text:0003E7E0 BGE loc_3E82C .text:0003E7E4 .text:0003E7E4 loc_3E7E4 ; CODE XREF: __gconv_transliterate+2D8j .text:0003E7E4 LDR R3, [R4] .text:0003E7E8 CMP R3, R5 .text:0003E7EC MOV R6, R3 .text:0003E7F0 BHI loc_3E814 .text:0003E7F4 LDR R3, [R4,#4] .text:0003E7F8 CMP R5, R3 .text:0003E7FC BHI loc_3E814 .text:0003E800 LDR R1, [R4,#8] .text:0003E804 RSB R0, R6, R5 .text:0003E808 BL __umodsi3 .text:0003E80C CMP R0, #0 .text:0003E810 BEQ loc_3E8FC .text:0003E814 .text:0003E814 loc_3E814 ; CODE XREF: __gconv_transliterate+2A0j .text:0003E814 ; __gconv_transliterate+2ACj .text:0003E814 CMP R5, R6 .text:0003E818 BCC loc_3E82C .text:0003E81C ADD R4, R4, #0xC .text:0003E820 ADD R7, R7, #1 .text:0003E824 CMP R7, R8 .text:0003E828 BLT loc_3E7E4 .text:0003E82C .text:0003E82C loc_3E82C ; CODE XREF: __gconv_transliterate+250j .text:0003E82C ; __gconv_transliterate+290j ... .text:0003E82C LDR R1, =_nl_current_LC_CTYPE .text:0003E830 LDR R2, [R1] .text:0003E834 LDR R6, [R2,#0x128] .text:0003E838 CMP R6, #0 .text:0003E83C BEQ loc_3E920 .text:0003E840 LDR R5, [R2,#0x12C] .text:0003E844 LDR R2, [R11,#arg_4] .text:0003E848 ADD R3, R10, #4 .text:0003E84C CMP R3, R2 .text:0003E850 STR R5, [R11,#var_34] .text:0003E854 BLS loc_3E868 .text:0003E858 CMP R10, R2 .text:0003E85C MOVNE R0, #7 .text:0003E860 MOVEQ R0, #4 .text:0003E864 B locret_3E924 .text:0003E868 ; --------------------------------------------------------------------------- .text:0003E868 .text:0003E868 loc_3E868 ; CODE XREF: __gconv_transliterate+304j .text:0003E868 LDR R12, [R11,#arg_8] .text:0003E86C LDR R3, [R12] .text:0003E870 STR R3, [R11,#var_38] .text:0003E874 LDR LR, [R11,#var_3C] .text:0003E878 LDR R0, [LR,#0x14] .text:0003E87C BL _dl_mcount_wrapper_check .text:0003E880 SUB R3, R11, #-var_38 .text:0003E884 STR R3, [SP,#0x74+var_74] .text:0003E888 MOV R4, #0 .text:0003E88C STR R4, [SP,#0x74+var_70] .text:0003E890 STR R4, [SP,#0x74+var_6C] .text:0003E894 STR R4, [SP,#0x74+var_68] .text:0003E898 LDR R0, [R11,#var_3C] .text:0003E89C SUB R2, R11, #-var_34 .text:0003E8A0 LDR R1, [R11,#var_40] .text:0003E8A4 ADD R3, R5, R6,LSL#2 .text:0003E8A8 MOV LR, PC .text:0003E8AC LDR PC, [R0,#0x14] .text:0003E8B0 CMP R0, #6 .text:0003E8B4 BEQ loc_3E920 .text:0003E8B8 CMP R0, #4 .text:0003E8BC BNE loc_3E8E4 .text:0003E8C0 LDR R0, [R11,#arg_C] .text:0003E8C4 LDR R3, [R0] .text:0003E8C8 ADD R3, R3, #1 .text:0003E8CC STR R3, [R0] .text:0003E8D0 LDR R1, [R11,#arg_0] .text:0003E8D4 LDR R2, [R1] .text:0003E8D8 MOV R0, R4 .text:0003E8DC ADD R2, R2, #4 .text:0003E8E0 STR R2, [R1] .text:0003E8E4 .text:0003E8E4 loc_3E8E4 ; CODE XREF: __gconv_transliterate+36Cj .text:0003E8E4 LDR R3, [R11,#var_38] .text:0003E8E8 .text:0003E8E8 loc_3E8E8 ; CODE XREF: __gconv_transliterate+1CCj .text:0003E8E8 LDR R2, [R11,#arg_8] .text:0003E8EC STR R3, [R2] .text:0003E8F0 B locret_3E924 .text:0003E8F4 ; --------------------------------------------------------------------------- .text:0003E8F4 .text:0003E8F4 loc_3E8F4 ; CODE XREF: __gconv_transliterate+1ECj .text:0003E8F4 MOV R0, #7 .text:0003E8F8 B locret_3E924 .text:0003E8FC ; --------------------------------------------------------------------------- .text:0003E8FC .text:0003E8FC loc_3E8FC ; CODE XREF: __gconv_transliterate+2C0j .text:0003E8FC LDR R3, [R11,#arg_0] .text:0003E900 ADD R2, R9, #4 .text:0003E904 STR R2, [R3] .text:0003E908 LDR R12, [R11,#arg_C] .text:0003E90C LDR R3, [R12] .text:0003E910 ADD R3, R3, #1 .text:0003E914 STR R3, [R12] .text:0003E918 B locret_3E924 .text:0003E918 ; --------------------------------------------------------------------------- .text:0003E91C off_3E91C DCD _nl_current_LC_CTYPE .text:0003E91C ; DATA XREF: __gconv_transliterate+8r .text:0003E91C ; __gconv_transliterate:loc_3E790r ... .text:0003E920 ; --------------------------------------------------------------------------- .text:0003E920 .text:0003E920 loc_3E920 ; CODE XREF: __gconv_transliterate+2ECj .text:0003E920 ; __gconv_transliterate+364j .text:0003E920 MOV R0, #6 .text:0003E924 .text:0003E924 locret_3E924 ; CODE XREF: __gconv_transliterate+284j .text:0003E924 ; __gconv_transliterate+314j ... .text:0003E924 LDMDB R11, {R4-R11,SP,PC} .text:0003E924 ; End of function __gconv_transliterate .text:0003E924 .text:0003E928 .text:0003E928 ; =============== S U B R O U T I N E ======================================= .text:0003E928 .text:0003E928 ; Attributes: bp-based frame .text:0003E928 .text:0003E928 trans_compare ; DATA XREF: __gconv_translit_find+58o .text:0003E928 ; __gconv_translit_find+1CCo ... .text:0003E928 MOV R12, SP .text:0003E92C STMFD SP!, {R11,R12,LR,PC} .text:0003E930 LDR R0, [R0] .text:0003E934 LDR R1, [R1] .text:0003E938 SUB R11, R12, #4 .text:0003E93C BL strcmp .text:0003E940 LDMDB R11, {R11,SP,PC} .text:0003E940 ; End of function trans_compare .text:0003E940 .text:0003E944 .text:0003E944 ; =============== S U B R O U T I N E ======================================= .text:0003E944 .text:0003E944 ; Attributes: bp-based frame .text:0003E944 .text:0003E944 open_translit ; CODE XREF: __gconv_translit_find+8Cp .text:0003E944 ; __gconv_translit_find+1ACp .text:0003E944 MOV R12, SP .text:0003E948 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0003E94C MOV R4, R0 .text:0003E950 LDR R0, [R4,#0x20] .text:0003E954 SUB R11, R12, #4 .text:0003E958 BL __libc_dlopen .text:0003E95C CMP R0, #0 .text:0003E960 STR R0, [R4,#0x24] .text:0003E964 MOVEQ R0, #1 .text:0003E968 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0003E96C LDR R6, =aGconv_trans_co ; "gconv_trans_context" .text:0003E970 MOV R1, R6 .text:0003E974 BL __libc_dlsym .text:0003E978 SUBS R3, R0, #0 .text:0003E97C BNE loc_3E998 .text:0003E980 .text:0003E980 loc_3E980 ; CODE XREF: open_translit+6Cj .text:0003E980 ; open_translit+84j .text:0003E980 LDR R0, [R4,#0x24] .text:0003E984 BL __libc_dlclose .text:0003E988 MOV R0, #1 .text:0003E98C MOV R3, #0 .text:0003E990 STR R3, [R4,#0x24] .text:0003E994 LDMDB R11, {R4-R6,R11,SP,PC} .text:0003E998 ; --------------------------------------------------------------------------- .text:0003E998 .text:0003E998 loc_3E998 ; CODE XREF: open_translit+38j .text:0003E998 ADD R1, R4, #8 .text:0003E99C LDR R0, [R4] .text:0003E9A0 ADD R2, R4, #0xC .text:0003E9A4 MOV LR, PC .text:0003E9A8 MOV PC, R3 .text:0003E9AC SUBS R5, R0, #0 .text:0003E9B0 BNE loc_3E980 .text:0003E9B4 LDR R0, [R4,#0x24] .text:0003E9B8 LDR R1, =aGconv_trans ; "gconv_trans" .text:0003E9BC BL __libc_dlsym .text:0003E9C0 CMP R0, #0 .text:0003E9C4 STR R0, [R4,#0x10] .text:0003E9C8 BEQ loc_3E980 .text:0003E9CC LDR R0, [R4,#0x24] .text:0003E9D0 LDR R1, =aGconv_trans_in ; "gconv_trans_init" .text:0003E9D4 BL __libc_dlsym .text:0003E9D8 STR R0, [R4,#0x18] .text:0003E9DC LDR R0, [R4,#0x24] .text:0003E9E0 MOV R1, R6 .text:0003E9E4 BL __libc_dlsym .text:0003E9E8 STR R0, [R4,#0x14] .text:0003E9EC LDR R0, [R4,#0x24] .text:0003E9F0 LDR R1, =aGconv_trans_en ; "gconv_trans_end" .text:0003E9F4 BL __libc_dlsym .text:0003E9F8 STR R0, [R4,#0x1C] .text:0003E9FC MOV R0, R5 .text:0003EA00 MOV R3, #1 .text:0003EA04 STR R3, [R4,#0x28] .text:0003EA08 LDMDB R11, {R4-R6,R11,SP,PC} .text:0003EA08 ; End of function open_translit .text:0003EA08 .text:0003EA08 ; --------------------------------------------------------------------------- .text:0003EA0C off_3EA0C DCD aGconv_trans_co ; DATA XREF: open_translit+28r .text:0003EA0C ; "gconv_trans_context" .text:0003EA10 off_3EA10 DCD aGconv_trans ; DATA XREF: open_translit+74r .text:0003EA10 ; "gconv_trans" .text:0003EA14 off_3EA14 DCD aGconv_trans_in ; DATA XREF: open_translit+8Cr .text:0003EA14 ; "gconv_trans_init" .text:0003EA18 off_3EA18 DCD aGconv_trans_en ; DATA XREF: open_translit+ACr .text:0003EA18 ; "gconv_trans_end" .text:0003EA1C .text:0003EA1C ; =============== S U B R O U T I N E ======================================= .text:0003EA1C .text:0003EA1C ; Attributes: bp-based frame .text:0003EA1C .text:0003EA1C EXPORT __gconv_translit_find .text:0003EA1C __gconv_translit_find ; CODE XREF: __gconv_open+374p .text:0003EA1C MOV R12, SP .text:0003EA20 STMFD SP!, {R4-R12,LR,PC} .text:0003EA24 SUB R11, R12, #4 .text:0003EA28 MOV R7, R0 .text:0003EA2C LDR R3, [R7] .text:0003EA30 MOV R10, #1 .text:0003EA34 CMP R3, #0 .text:0003EA38 BNE loc_3EA54 .text:0003EA3C LDR R0, =aTransNameVoid0 ; "trans->name != ((void *)0)" .text:0003EA40 LDR R1, =aGconv_trans_c ; "gconv_trans.c" .text:0003EA44 MOV R2, #0x140 .text:0003EA48 LDR R3, =a__gconv_transl ; "__gconv_translit_find" .text:0003EA4C ADD R2, R2, R10 .text:0003EA50 BL __assert_fail .text:0003EA54 ; --------------------------------------------------------------------------- .text:0003EA54 .text:0003EA54 loc_3EA54 ; CODE XREF: __gconv_translit_find+1Cj .text:0003EA54 LDR R3, =0 .text:0003EA58 CMP R3, #0 .text:0003EA5C BEQ loc_3EA6C .text:0003EA60 LDR R0, =lock_4 .text:0003EA64 MOV LR, PC .text:0003EA68 MOV PC, R3 .text:0003EA6C .text:0003EA6C loc_3EA6C ; CODE XREF: __gconv_translit_find+40j .text:0003EA6C LDR R5, =search_tree .text:0003EA70 MOV R0, R7 .text:0003EA74 LDR R4, =trans_compare .text:0003EA78 MOV R1, R5 .text:0003EA7C MOV R2, R4 .text:0003EA80 BL tfind .text:0003EA84 SUBS R6, R0, #0 .text:0003EA88 BEQ loc_3EAE4 .text:0003EA8C LDR R0, [R6] .text:0003EA90 LDR R3, [R0,#0x24] .text:0003EA94 CMP R3, #0 .text:0003EA98 BEQ loc_3EBFC .text:0003EA9C CMN R3, #1 .text:0003EAA0 MOVNE R10, #0 .text:0003EAA4 BNE loc_3EBFC .text:0003EAA8 BL open_translit .text:0003EAAC SUBS R4, R0, #0 .text:0003EAB0 BNE loc_3EBFC .text:0003EAB4 LDR LR, [R6] .text:0003EAB8 LDMIA LR!, {R0-R3} .text:0003EABC MOV R12, R7 .text:0003EAC0 STMIA R12!, {R0-R3} .text:0003EAC4 LDMIA LR, {R0-R3} .text:0003EAC8 STMIA R12, {R0-R3} .text:0003EACC LDR R2, [R6] .text:0003EAD0 LDR R3, [R2,#0x28] .text:0003EAD4 MOV R10, R4 .text:0003EAD8 ADD R3, R3, #1 .text:0003EADC STR R3, [R2,#0x28] .text:0003EAE0 B loc_3EBFC .text:0003EAE4 ; --------------------------------------------------------------------------- .text:0003EAE4 .text:0003EAE4 loc_3EAE4 ; CODE XREF: __gconv_translit_find+6Cj .text:0003EAE4 LDR R0, [R7] .text:0003EAE8 BL strlen .text:0003EAEC MOV R9, R6 .text:0003EAF0 MOV R6, R0 .text:0003EAF4 LDR R2, =__gconv_path_elem .text:0003EAF8 ADD R8, R6, #1 .text:0003EAFC LDR R3, [R2] .text:0003EB00 MOV R5, R2 .text:0003EB04 CMP R3, #0 .text:0003EB08 BNE loc_3EB10 .text:0003EB0C BL __gconv_get_path .text:0003EB10 .text:0003EB10 loc_3EB10 ; CODE XREF: __gconv_translit_find+ECj .text:0003EB10 CMP R8, #4 .text:0003EB14 BLS loc_3EB38 .text:0003EB18 MOV R2, #3 .text:0003EB1C LDR R3, [R7] .text:0003EB20 SUB R0, R6, #3 .text:0003EB24 LDR R1, =a_so ; ".so" .text:0003EB28 ADD R0, R3, R0 .text:0003EB2C BL memcmp .text:0003EB30 CMP R0, #0 .text:0003EB34 BEQ loc_3EB3C .text:0003EB38 .text:0003EB38 loc_3EB38 ; CODE XREF: __gconv_translit_find+F8j .text:0003EB38 MOV R9, R10 .text:0003EB3C .text:0003EB3C loc_3EB3C ; CODE XREF: __gconv_translit_find+118j .text:0003EB3C LDR R3, =__gconv_max_path_elem_len .text:0003EB40 LDR R0, [R3] .text:0003EB44 ADD R3, R8, #0x2F .text:0003EB48 ADD R0, R0, R8 .text:0003EB4C ADD R0, R0, R3 .text:0003EB50 BL malloc .text:0003EB54 SUBS R4, R0, #0 .text:0003EB58 BEQ loc_3EBFC .text:0003EB5C MOV R0, R4 .text:0003EB60 MOV R1, #0 .text:0003EB64 MOV R2, #0x2C .text:0003EB68 BL memset .text:0003EB6C ADD R0, R4, #0x2C .text:0003EB70 STR R0, [R4] .text:0003EB74 LDR R1, [R7] .text:0003EB78 MOV R2, R8 .text:0003EB7C BL mempcpy .text:0003EB80 STR R0, [R4,#0x20] .text:0003EB84 LDR R5, [R5] .text:0003EB88 B loc_3EB90 .text:0003EB8C ; --------------------------------------------------------------------------- .text:0003EB8C .text:0003EB8C loc_3EB8C ; CODE XREF: __gconv_translit_find+1B4j .text:0003EB8C ADD R5, R5, #8 .text:0003EB90 .text:0003EB90 loc_3EB90 ; CODE XREF: __gconv_translit_find+16Cj .text:0003EB90 LDR R1, [R5] .text:0003EB94 CMP R1, #0 .text:0003EB98 BEQ loc_3EBD8 .text:0003EB9C LDR R0, [R4,#0x20] .text:0003EBA0 BL stpcpy .text:0003EBA4 LDR R1, [R7] .text:0003EBA8 MOV R2, R8 .text:0003EBAC BL mempcpy .text:0003EBB0 CMP R9, #0 .text:0003EBB4 BEQ loc_3EBC4 .text:0003EBB8 LDR R1, =a_so ; ".so" .text:0003EBBC MOV R2, #4 .text:0003EBC0 BL memcpy .text:0003EBC4 .text:0003EBC4 loc_3EBC4 ; CODE XREF: __gconv_translit_find+198j .text:0003EBC4 MOV R0, R4 .text:0003EBC8 BL open_translit .text:0003EBCC CMP R0, #0 .text:0003EBD0 BNE loc_3EB8C .text:0003EBD4 MOV R10, R0 .text:0003EBD8 .text:0003EBD8 loc_3EBD8 ; CODE XREF: __gconv_translit_find+17Cj .text:0003EBD8 CMP R10, #0 .text:0003EBDC MOVNE R3, #0 .text:0003EBE0 STRNE R3, [R4,#0x20] .text:0003EBE4 LDR R1, =search_tree .text:0003EBE8 LDR R2, =trans_compare .text:0003EBEC MOV R0, R4 .text:0003EBF0 BL tsearch .text:0003EBF4 CMP R0, #0 .text:0003EBF8 MOVEQ R10, #1 .text:0003EBFC .text:0003EBFC loc_3EBFC ; CODE XREF: __gconv_translit_find+7Cj .text:0003EBFC ; __gconv_translit_find+88j ... .text:0003EBFC LDR R3, =0 .text:0003EC00 CMP R3, #0 .text:0003EC04 BEQ loc_3EC14 .text:0003EC08 LDR R0, =lock_4 .text:0003EC0C MOV LR, PC .text:0003EC10 MOV PC, R3 .text:0003EC14 .text:0003EC14 loc_3EC14 ; CODE XREF: __gconv_translit_find+1E8j .text:0003EC14 MOV R0, R10 .text:0003EC18 LDMDB R11, {R4-R11,SP,PC} .text:0003EC18 ; End of function __gconv_translit_find .text:0003EC18 .text:0003EC18 ; --------------------------------------------------------------------------- .text:0003EC1C off_3EC1C DCD aTransNameVoid0 ; DATA XREF: __gconv_translit_find+20r .text:0003EC1C ; "trans->name != ((void *)0)" .text:0003EC20 off_3EC20 DCD aGconv_trans_c ; DATA XREF: __gconv_translit_find+24r .text:0003EC20 ; "gconv_trans.c" .text:0003EC24 off_3EC24 DCD a__gconv_transl ; DATA XREF: __gconv_translit_find+2Cr .text:0003EC24 ; "__gconv_translit_find" .text:0003EC28 off_3EC28 DCD 0 ; DATA XREF: __gconv_translit_find:loc_3EA54r .text:0003EC2C off_3EC2C DCD lock_4 ; DATA XREF: __gconv_translit_find+44r .text:0003EC2C ; __gconv_translit_find+1ECr .text:0003EC30 off_3EC30 DCD search_tree ; DATA XREF: __gconv_translit_find:loc_3EA6Cr .text:0003EC30 ; __gconv_translit_find+1C8r .text:0003EC34 off_3EC34 DCD trans_compare ; DATA XREF: __gconv_translit_find+58r .text:0003EC34 ; __gconv_translit_find+1CCr .text:0003EC38 off_3EC38 DCD __gconv_path_elem ; DATA XREF: __gconv_translit_find+D8r .text:0003EC3C off_3EC3C DCD a_so ; DATA XREF: __gconv_translit_find+108r .text:0003EC3C ; __gconv_translit_find+19Cr .text:0003EC3C ; ".so" .text:0003EC40 off_3EC40 DCD __gconv_max_path_elem_len .text:0003EC40 ; DATA XREF: __gconv_translit_find:loc_3EB3Cr .text:0003EC44 off_3EC44 DCD 0 ; DATA XREF: __gconv_translit_find:loc_3EBFCr .text:0003EC48 .text:0003EC48 ; =============== S U B R O U T I N E ======================================= .text:0003EC48 .text:0003EC48 ; Attributes: bp-based frame .text:0003EC48 .text:0003EC48 known_compare ; DATA XREF: __gconv_find_shlib+18o .text:0003EC48 ; __gconv_find_shlib:off_3ED84o .text:0003EC48 MOV R12, SP .text:0003EC4C STMFD SP!, {R11,R12,LR,PC} .text:0003EC50 LDR R0, [R0] .text:0003EC54 LDR R1, [R1] .text:0003EC58 SUB R11, R12, #4 .text:0003EC5C BL strcmp .text:0003EC60 LDMDB R11, {R11,SP,PC} .text:0003EC60 ; End of function known_compare .text:0003EC60 .text:0003EC64 .text:0003EC64 ; =============== S U B R O U T I N E ======================================= .text:0003EC64 .text:0003EC64 ; Attributes: bp-based frame .text:0003EC64 .text:0003EC64 EXPORT __gconv_find_shlib .text:0003EC64 __gconv_find_shlib ; CODE XREF: gen_steps+ECp .text:0003EC64 ; increment_counter+64p .text:0003EC64 .text:0003EC64 var_20 = -0x20 .text:0003EC64 .text:0003EC64 MOV R12, SP .text:0003EC68 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0003EC6C SUB R11, R12, #4 .text:0003EC70 SUB SP, SP, #4 .text:0003EC74 STR R0, [R11,#var_20] .text:0003EC78 LDR R7, =loaded .text:0003EC7C LDR R6, =known_compare .text:0003EC80 MOV R1, R7 .text:0003EC84 MOV R2, R6 .text:0003EC88 SUB R0, R11, #-var_20 .text:0003EC8C BL tfind .text:0003EC90 SUBS R5, R0, #0 .text:0003EC94 BNE loc_3ECDC .text:0003EC98 MOV R0, #0x18 .text:0003EC9C BL malloc .text:0003ECA0 SUBS R4, R0, #0 .text:0003ECA4 BEQ loc_3ECE0 .text:0003ECA8 LDR R2, [R11,#var_20] .text:0003ECAC MOV R3, 0xFFFFFFFD .text:0003ECB0 STMIA R4, {R2,R3,R5} .text:0003ECB4 MOV R0, R4 .text:0003ECB8 MOV R1, R7 .text:0003ECBC MOV R2, R6 .text:0003ECC0 BL tsearch .text:0003ECC4 CMP R0, #0 .text:0003ECC8 BNE loc_3ECE0 .text:0003ECCC MOV R0, R4 .text:0003ECD0 MOV R4, R5 .text:0003ECD4 BL free .text:0003ECD8 B loc_3ECE0 .text:0003ECDC ; --------------------------------------------------------------------------- .text:0003ECDC .text:0003ECDC loc_3ECDC ; CODE XREF: __gconv_find_shlib+30j .text:0003ECDC LDR R4, [R5] .text:0003ECE0 .text:0003ECE0 loc_3ECE0 ; CODE XREF: __gconv_find_shlib+40j .text:0003ECE0 ; __gconv_find_shlib+64j ... .text:0003ECE0 CMP R4, #0 .text:0003ECE4 BEQ loc_3EDBC .text:0003ECE8 LDR R2, [R4,#4] .text:0003ECEC CMN R2, #2 .text:0003ECF0 BGE loc_3EDA0 .text:0003ECF4 LDR R3, [R4,#8] .text:0003ECF8 CMP R3, #0 .text:0003ECFC BEQ loc_3ED14 .text:0003ED00 LDR R0, =aFoundHandleVoi ; "found->handle == ((void *)0)" .text:0003ED04 LDR R1, =aGconv_dl_c ; "gconv_dl.c" .text:0003ED08 LDR R3, =a__gconv_find_s ; "__gconv_find_shlib" .text:0003ED0C MOV R2, #0x71 .text:0003ED10 BL __assert_fail .text:0003ED14 ; --------------------------------------------------------------------------- .text:0003ED14 .text:0003ED14 loc_3ED14 ; CODE XREF: __gconv_find_shlib+98j .text:0003ED14 LDR R0, [R4] .text:0003ED18 BL __libc_dlopen .text:0003ED1C CMP R0, #0 .text:0003ED20 STR R0, [R4,#8] .text:0003ED24 BEQ loc_3ED78 .text:0003ED28 LDR R1, =aGconv ; "gconv" .text:0003ED2C BL __libc_dlsym .text:0003ED30 MOV R5, R0 .text:0003ED34 CMP R5, #0 .text:0003ED38 STR R5, [R4,#0xC] .text:0003ED3C BNE loc_3ED50 .text:0003ED40 MOV R0, R4 .text:0003ED44 MOV R4, R5 .text:0003ED48 BL __gconv_release_shlib .text:0003ED4C B loc_3EDBC .text:0003ED50 ; --------------------------------------------------------------------------- .text:0003ED50 .text:0003ED50 loc_3ED50 ; CODE XREF: __gconv_find_shlib+D8j .text:0003ED50 LDR R0, [R4,#8] .text:0003ED54 LDR R1, =aGconv_init ; "gconv_init" .text:0003ED58 BL __libc_dlsym .text:0003ED5C STR R0, [R4,#0x10] .text:0003ED60 LDR R0, [R4,#8] .text:0003ED64 LDR R1, =aGconv_end ; "gconv_end" .text:0003ED68 BL __libc_dlsym .text:0003ED6C STR R0, [R4,#0x14] .text:0003ED70 MOV R3, #1 .text:0003ED74 B loc_3EDB8 .text:0003ED78 ; --------------------------------------------------------------------------- .text:0003ED78 .text:0003ED78 loc_3ED78 ; CODE XREF: __gconv_find_shlib+C0j .text:0003ED78 MOV R4, R0 .text:0003ED7C B loc_3EDBC .text:0003ED7C ; --------------------------------------------------------------------------- .text:0003ED80 off_3ED80 DCD loaded ; DATA XREF: __gconv_find_shlib+14r .text:0003ED84 off_3ED84 DCD known_compare ; DATA XREF: __gconv_find_shlib+18r .text:0003ED88 off_3ED88 DCD aFoundHandleVoi ; DATA XREF: __gconv_find_shlib+9Cr .text:0003ED88 ; "found->handle == ((void *)0)" .text:0003ED8C off_3ED8C DCD aGconv_dl_c ; DATA XREF: __gconv_find_shlib+A0r .text:0003ED8C ; "gconv_dl.c" .text:0003ED90 off_3ED90 DCD a__gconv_find_s ; DATA XREF: __gconv_find_shlib+A4r .text:0003ED90 ; "__gconv_find_shlib" .text:0003ED94 off_3ED94 DCD aGconv ; DATA XREF: __gconv_find_shlib+C4r .text:0003ED94 ; "gconv" .text:0003ED98 off_3ED98 DCD aGconv_init ; DATA XREF: __gconv_find_shlib+F0r .text:0003ED98 ; "gconv_init" .text:0003ED9C off_3ED9C DCD aGconv_end ; DATA XREF: __gconv_find_shlib+100r .text:0003ED9C ; "gconv_end" .text:0003EDA0 ; --------------------------------------------------------------------------- .text:0003EDA0 .text:0003EDA0 loc_3EDA0 ; CODE XREF: __gconv_find_shlib+8Cj .text:0003EDA0 LDR R3, [R4,#8] .text:0003EDA4 CMP R3, #0 .text:0003EDA8 BEQ loc_3EDBC .text:0003EDAC ADD R3, R2, #1 .text:0003EDB0 CMP R3, #1 .text:0003EDB4 MOVLT R3, #1 .text:0003EDB8 .text:0003EDB8 loc_3EDB8 ; CODE XREF: __gconv_find_shlib+110j .text:0003EDB8 STR R3, [R4,#4] .text:0003EDBC .text:0003EDBC loc_3EDBC ; CODE XREF: __gconv_find_shlib+80j .text:0003EDBC ; __gconv_find_shlib+E8j ... .text:0003EDBC MOV R0, R4 .text:0003EDC0 LDMDB R11, {R4-R7,R11,SP,PC} .text:0003EDC0 ; End of function __gconv_find_shlib .text:0003EDC0 .text:0003EDC4 .text:0003EDC4 ; =============== S U B R O U T I N E ======================================= .text:0003EDC4 .text:0003EDC4 ; Attributes: bp-based frame .text:0003EDC4 .text:0003EDC4 do_release_shlib ; DATA XREF: __gconv_release_shlib+14o .text:0003EDC4 ; .text:off_3EEA4o .text:0003EDC4 MOV R12, SP .text:0003EDC8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0003EDCC SUB R11, R12, #4 .text:0003EDD0 SUBS R3, R1, #3 .text:0003EDD4 MOVNE R3, #1 .text:0003EDD8 CMP R1, #0 .text:0003EDDC MOVNE R5, R3 .text:0003EDE0 MOVEQ R5, #0 .text:0003EDE4 CMP R5, #0 .text:0003EDE8 LDR R4, [R0] .text:0003EDEC LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0003EDF0 LDR R3, =release_handle .text:0003EDF4 LDR R2, [R3] .text:0003EDF8 CMP R4, R2 .text:0003EDFC BNE loc_3EE2C .text:0003EE00 LDR R3, [R4,#4] .text:0003EE04 CMP R3, #0 .text:0003EE08 BGT loc_3EE20 .text:0003EE0C LDR R0, =aObjCounter0 ; "obj->counter > 0" .text:0003EE10 LDR R1, =aGconv_dl_c ; "gconv_dl.c" .text:0003EE14 LDR R3, =aDo_release_shl ; "do_release_shlib" .text:0003EE18 MOV R2, #0xA3 .text:0003EE1C BL __assert_fail .text:0003EE20 ; --------------------------------------------------------------------------- .text:0003EE20 .text:0003EE20 loc_3EE20 ; CODE XREF: do_release_shlib+44j .text:0003EE20 SUB R3, R3, #1 .text:0003EE24 STR R3, [R4,#4] .text:0003EE28 LDMDB R11, {R4,R5,R11,SP,PC} .text:0003EE2C ; --------------------------------------------------------------------------- .text:0003EE2C .text:0003EE2C loc_3EE2C ; CODE XREF: do_release_shlib+38j .text:0003EE2C LDR R2, [R4,#4] .text:0003EE30 ADD R3, R2, #2 .text:0003EE34 CMP R3, #2 .text:0003EE38 LDMHIDB R11, {R4,R5,R11,SP,PC} .text:0003EE3C SUB R3, R2, #1 .text:0003EE40 CMN R3, #2 .text:0003EE44 STR R3, [R4,#4] .text:0003EE48 LDMGEDB R11, {R4,R5,R11,SP,PC} .text:0003EE4C LDR R0, [R4,#8] .text:0003EE50 CMP R0, #0 .text:0003EE54 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0003EE58 BL __libc_dlclose .text:0003EE5C STR R5, [R4,#8] .text:0003EE60 LDMDB R11, {R4,R5,R11,SP,PC} .text:0003EE60 ; End of function do_release_shlib .text:0003EE60 .text:0003EE60 ; --------------------------------------------------------------------------- .text:0003EE64 off_3EE64 DCD release_handle ; DATA XREF: do_release_shlib+2Cr .text:0003EE68 off_3EE68 DCD aObjCounter0 ; DATA XREF: do_release_shlib+48r .text:0003EE68 ; "obj->counter > 0" .text:0003EE6C off_3EE6C DCD aGconv_dl_c ; DATA XREF: do_release_shlib+4Cr .text:0003EE6C ; "gconv_dl.c" .text:0003EE70 off_3EE70 DCD aDo_release_shl ; DATA XREF: do_release_shlib+50r .text:0003EE70 ; "do_release_shlib" .text:0003EE74 .text:0003EE74 ; =============== S U B R O U T I N E ======================================= .text:0003EE74 .text:0003EE74 ; Attributes: bp-based frame .text:0003EE74 .text:0003EE74 EXPORT __gconv_release_shlib .text:0003EE74 __gconv_release_shlib ; CODE XREF: gen_steps+1D8p .text:0003EE74 ; increment_counter+D0p ... .text:0003EE74 MOV R12, SP .text:0003EE78 STMFD SP!, {R11,R12,LR,PC} .text:0003EE7C LDR R3, =release_handle .text:0003EE80 STR R0, [R3] .text:0003EE84 LDR R2, =loaded .text:0003EE88 LDR R1, =do_release_shlib .text:0003EE8C LDR R0, [R2] .text:0003EE90 SUB R11, R12, #4 .text:0003EE94 BL twalk .text:0003EE98 LDMDB R11, {R11,SP,PC} .text:0003EE98 ; End of function __gconv_release_shlib .text:0003EE98 .text:0003EE98 ; --------------------------------------------------------------------------- .text:0003EE9C off_3EE9C DCD release_handle ; DATA XREF: __gconv_release_shlib+8r .text:0003EEA0 off_3EEA0 DCD loaded ; DATA XREF: __gconv_release_shlib+10r .text:0003EEA4 off_3EEA4 DCD do_release_shlib ; DATA XREF: __gconv_release_shlib+14r .text:0003EEA8 .text:0003EEA8 ; =============== S U B R O U T I N E ======================================= .text:0003EEA8 .text:0003EEA8 ; Attributes: bp-based frame .text:0003EEA8 .text:0003EEA8 do_release_all ; DATA XREF: free_mem_6+Co .text:0003EEA8 ; .text:off_3EEF8o .text:0003EEA8 MOV R12, SP .text:0003EEAC STMFD SP!, {R4,R11,R12,LR,PC} .text:0003EEB0 MOV R4, R0 .text:0003EEB4 LDR R0, [R4,#8] .text:0003EEB8 SUB R11, R12, #4 .text:0003EEBC CMP R0, #0 .text:0003EEC0 BEQ loc_3EEC8 .text:0003EEC4 BL __libc_dlclose .text:0003EEC8 .text:0003EEC8 loc_3EEC8 ; CODE XREF: do_release_all+18j .text:0003EEC8 MOV R0, R4 .text:0003EECC BL free .text:0003EED0 LDMDB R11, {R4,R11,SP,PC} .text:0003EED0 ; End of function do_release_all .text:0003EED0 .text:0003EED4 .text:0003EED4 ; =============== S U B R O U T I N E ======================================= .text:0003EED4 .text:0003EED4 ; Attributes: bp-based frame .text:0003EED4 .text:0003EED4 free_mem_6 .text:0003EED4 MOV R12, SP .text:0003EED8 STMFD SP!, {R11,R12,LR,PC} .text:0003EEDC LDR R3, =loaded .text:0003EEE0 LDR R1, =do_release_all .text:0003EEE4 LDR R0, [R3] .text:0003EEE8 SUB R11, R12, #4 .text:0003EEEC BL tdestroy .text:0003EEF0 LDMDB R11, {R11,SP,PC} .text:0003EEF0 ; End of function free_mem_6 .text:0003EEF0 .text:0003EEF0 ; --------------------------------------------------------------------------- .text:0003EEF4 off_3EEF4 DCD loaded ; DATA XREF: free_mem_6+8r .text:0003EEF8 off_3EEF8 DCD do_release_all ; DATA XREF: free_mem_6+Cr .text:0003EEFC .text:0003EEFC ; =============== S U B R O U T I N E ======================================= .text:0003EEFC .text:0003EEFC ; Attributes: bp-based frame .text:0003EEFC .text:0003EEFC EXPORT setlocale .text:0003EEFC setlocale ; CODE XREF: guess_category_value+38p .text:0003EEFC .text:0003EEFC var_A8 = -0xA8 .text:0003EEFC var_A4 = -0xA4 .text:0003EEFC var_A0 = -0xA0 .text:0003EEFC var_9C = -0x9C .text:0003EEFC var_98 = -0x98 .text:0003EEFC var_94 = -0x94 .text:0003EEFC var_90 = -0x90 .text:0003EEFC var_5C = -0x5C .text:0003EEFC .text:0003EEFC MOV R12, SP .text:0003EF00 STMFD SP!, {R4-R12,LR,PC} .text:0003EF04 SUB R11, R12, #4 .text:0003EF08 MOV R7, R0 .text:0003EF0C CMP R7, #0xC .text:0003EF10 MOV R8, R1 .text:0003EF14 SUB SP, SP, #0x80 .text:0003EF18 BHI loc_3F074 .text:0003EF1C CMP R8, #0 .text:0003EF20 LDREQ R3, =_nl_current_names .text:0003EF24 LDREQ R0, [R3,R7,LSL#2] .text:0003EF28 BEQ loc_3F74C .text:0003EF2C LDR R4, =_nl_current_names .text:0003EF30 MOV R3, R7,LSL#2 .text:0003EF34 LDR R1, [R4,R3] .text:0003EF38 STR R3, [R11,#var_A8] .text:0003EF3C MOV R0, R8 .text:0003EF40 BL strcmp .text:0003EF44 CMP R0, #0 .text:0003EF48 LDREQ R1, [R11,#var_A8] .text:0003EF4C LDREQ R0, [R4,R1] .text:0003EF50 BEQ loc_3F74C .text:0003EF54 MOV R6, #0 .text:0003EF58 STR R6, [R11,#var_94] .text:0003EF5C STR R6, [R11,#var_98] .text:0003EF60 LDR R0, =aLocpath ; "LOCPATH" .text:0003EF64 BL getenv .text:0003EF68 SUB R5, R11, #-var_94 .text:0003EF6C SUB R4, R11, #-var_98 .text:0003EF70 CMP R0, #0 .text:0003EF74 BEQ loc_3EF9C .text:0003EF78 LDRB R3, [R0] .text:0003EF7C CMP R3, R6 .text:0003EF80 BEQ loc_3EF9C .text:0003EF84 MOV R1, #0x3A .text:0003EF88 MOV R2, R5 .text:0003EF8C MOV R3, R4 .text:0003EF90 BL argz_create_sep .text:0003EF94 CMP R0, R6 .text:0003EF98 BNE loc_3F080 .text:0003EF9C .text:0003EF9C loc_3EF9C ; CODE XREF: setlocale+78j .text:0003EF9C ; setlocale+84j .text:0003EF9C MOV R0, R5 .text:0003EFA0 MOV R1, R4 .text:0003EFA4 LDR R2, =aUsrLocalArm2_0 ; "/usr/local/arm/2.95.3/arm-linux/lib/loc"... .text:0003EFA8 MOV R3, #0x3A .text:0003EFAC BL argz_add_sep .text:0003EFB0 CMP R0, #0 .text:0003EFB4 BNE loc_3F080 .text:0003EFB8 CMP R7, #6 .text:0003EFBC BNE loc_3F430 .text:0003EFC0 MOV R7, R0 .text:0003EFC4 SUB R3, R11, #-var_5C .text:0003EFC8 .text:0003EFC8 loc_3EFC8 ; CODE XREF: setlocale+DCj .text:0003EFC8 CMP R7, #6 .text:0003EFCC STRNE R8, [R3,R7,LSL#2] .text:0003EFD0 ADD R7, R7, #1 .text:0003EFD4 CMP R7, #0xC .text:0003EFD8 BLE loc_3EFC8 .text:0003EFDC MOV R0, R8 .text:0003EFE0 MOV R1, #0x3B .text:0003EFE4 BL strchr .text:0003EFE8 CMP R0, #0 .text:0003EFEC BEQ loc_3F100 .text:0003EFF0 MOV R0, R8 .text:0003EFF4 BL strlen .text:0003EFF8 MOV R2, R0 .text:0003EFFC ADD R3, R2, #4 .text:0003F000 BIC R3, R3, #3 .text:0003F004 RSB SP, R3, SP .text:0003F008 MOV R0, SP .text:0003F00C MOV R1, R8 .text:0003F010 ADD R2, R2, #1 .text:0003F014 BL memcpy .text:0003F018 MOV R6, R0 .text:0003F01C B loc_3F0B4 .text:0003F020 ; --------------------------------------------------------------------------- .text:0003F020 .text:0003F020 loc_3F020 ; CODE XREF: setlocale+1C8j .text:0003F020 LDR R9, =_nl_category_name_sizes .text:0003F024 LDR R10, =_nl_category_names .text:0003F028 MOV R4, #0 .text:0003F02C B loc_3F034 .text:0003F030 ; --------------------------------------------------------------------------- .text:0003F030 .text:0003F030 loc_3F030 ; CODE XREF: setlocale+144j .text:0003F030 ; setlocale+158j ... .text:0003F030 ADD R4, R4, #1 .text:0003F034 .text:0003F034 loc_3F034 ; CODE XREF: setlocale+130j .text:0003F034 CMP R4, #0xC .text:0003F038 BGT loc_3F06C .text:0003F03C CMP R4, #6 .text:0003F040 BEQ loc_3F030 .text:0003F044 MOV R1, R4,LSL#2 .text:0003F048 LDR R3, [R9,R1] .text:0003F04C RSB R2, R6, R5 .text:0003F050 CMP R2, R3 .text:0003F054 BNE loc_3F030 .text:0003F058 LDR R1, [R10,R1] .text:0003F05C MOV R0, R6 .text:0003F060 BL memcmp .text:0003F064 CMP R0, #0 .text:0003F068 BNE loc_3F030 .text:0003F06C .text:0003F06C loc_3F06C ; CODE XREF: setlocale+13Cj .text:0003F06C CMP R4, #0xD .text:0003F070 BNE loc_3F088 .text:0003F074 .text:0003F074 loc_3F074 ; CODE XREF: setlocale+1Cj .text:0003F074 BL __errno_location .text:0003F078 MOV R3, #0x16 .text:0003F07C STR R3, [R0] .text:0003F080 .text:0003F080 loc_3F080 ; CODE XREF: setlocale+9Cj .text:0003F080 ; setlocale+B8j ... .text:0003F080 MOV R0, #0 .text:0003F084 B loc_3F74C .text:0003F088 ; --------------------------------------------------------------------------- .text:0003F088 .text:0003F088 loc_3F088 ; CODE XREF: setlocale+174j .text:0003F088 ADD R5, R5, #1 .text:0003F08C SUB R3, R11, #-var_5C .text:0003F090 STR R5, [R3,R4,LSL#2] .text:0003F094 MOV R0, R5 .text:0003F098 MOV R1, #0x3B .text:0003F09C BL strchr .text:0003F0A0 SUBS R5, R0, #0 .text:0003F0A4 BEQ loc_3F0C8 .text:0003F0A8 MOV R3, #0 .text:0003F0AC STRB R3, [R5],#1 .text:0003F0B0 MOV R6, R5 .text:0003F0B4 .text:0003F0B4 loc_3F0B4 ; CODE XREF: setlocale+120j .text:0003F0B4 MOV R0, R6 .text:0003F0B8 MOV R1, #0x3D .text:0003F0BC BL strchr .text:0003F0C0 SUBS R5, R0, #0 .text:0003F0C4 BNE loc_3F020 .text:0003F0C8 .text:0003F0C8 loc_3F0C8 ; CODE XREF: setlocale+1A8j .text:0003F0C8 MOV R4, #0 .text:0003F0CC SUB R2, R11, #-var_5C .text:0003F0D0 MOV R5, #0x16 .text:0003F0D4 .text:0003F0D4 loc_3F0D4 ; CODE XREF: setlocale+200j .text:0003F0D4 CMP R4, #6 .text:0003F0D8 BEQ loc_3F0F4 .text:0003F0DC LDR R3, [R2,R4,LSL#2] .text:0003F0E0 CMP R3, R8 .text:0003F0E4 BNE loc_3F0F4 .text:0003F0E8 BL __errno_location .text:0003F0EC STR R5, [R0] .text:0003F0F0 B loc_3F080 .text:0003F0F4 ; --------------------------------------------------------------------------- .text:0003F0F4 .text:0003F0F4 loc_3F0F4 ; CODE XREF: setlocale+1DCj .text:0003F0F4 ; setlocale+1E8j .text:0003F0F4 ADD R4, R4, #1 .text:0003F0F8 CMP R4, #0xC .text:0003F0FC BLE loc_3F0D4 .text:0003F100 .text:0003F100 loc_3F100 ; CODE XREF: setlocale+F0j .text:0003F100 LDR R3, =0 .text:0003F104 CMP R3, #0 .text:0003F108 BEQ loc_3F14C .text:0003F10C LDR R0, =__libc_setlocale_lock .text:0003F110 MOV LR, PC .text:0003F114 MOV PC, R3 .text:0003F118 B loc_3F14C .text:0003F11C ; --------------------------------------------------------------------------- .text:0003F11C .text:0003F11C loc_3F11C ; CODE XREF: setlocale+290j .text:0003F11C LDR R3, [R0,#0x10] .text:0003F120 CMN R3, #1 .text:0003F124 MOVNE R3, 0xFFFFFFFF .text:0003F128 STRNE R3, [R0,#0x10] .text:0003F12C LDR R0, [R5,R4] .text:0003F130 LDR R3, =_nl_C_name .text:0003F134 CMP R0, R3 .text:0003F138 BEQ loc_3F14C .text:0003F13C BL strdup .text:0003F140 CMP R0, #0 .text:0003F144 STR R0, [R5,R4] .text:0003F148 BEQ loc_3F190 .text:0003F14C .text:0003F14C loc_3F14C ; CODE XREF: setlocale+20Cj .text:0003F14C ; setlocale+21Cj ... .text:0003F14C MOV R3, R7 .text:0003F150 SUB R7, R7, #1 .text:0003F154 CMP R3, #0 .text:0003F158 BLE loc_3F190 .text:0003F15C CMP R7, #6 .text:0003F160 BEQ loc_3F14C .text:0003F164 MOV R2, R7 .text:0003F168 SUB R5, R11, #-var_5C .text:0003F16C LDR R0, [R11,#var_94] .text:0003F170 MOV R4, R7,LSL#2 .text:0003F174 LDR R1, [R11,#var_98] .text:0003F178 ADD R3, R5, R4 .text:0003F17C BL _nl_find_locale .text:0003F180 CMP R0, #0 .text:0003F184 SUB R3, R11, #-var_90 .text:0003F188 STR R0, [R3,R4] .text:0003F18C BNE loc_3F11C .text:0003F190 .text:0003F190 loc_3F190 ; CODE XREF: setlocale+24Cj .text:0003F190 ; setlocale+25Cj .text:0003F190 CMP R7, #0 .text:0003F194 BGE loc_3F2F8 .text:0003F198 SUB R10, R11, #-var_5C .text:0003F19C MOV R6, #0 .text:0003F1A0 MOV R9, R6 .text:0003F1A4 MOV R8, #1 .text:0003F1A8 MOV R5, R6 .text:0003F1AC .text:0003F1AC loc_3F1AC ; CODE XREF: setlocale+308j .text:0003F1AC CMP R5, #6 .text:0003F1B0 BEQ loc_3F1FC .text:0003F1B4 LDR R4, [R10,R5,LSL#2] .text:0003F1B8 MOV R0, R4 .text:0003F1BC BL strlen .text:0003F1C0 MOV R9, R0 .text:0003F1C4 CMP R8, #0 .text:0003F1C8 CMPNE R5, #0 .text:0003F1CC LDR R0, =_nl_category_name_sizes .text:0003F1D0 ADD R3, R6, #1 .text:0003F1D4 LDR R2, [R0,R5,LSL#2] .text:0003F1D8 ADD R1, R9, #1 .text:0003F1DC ADD R2, R2, R1 .text:0003F1E0 ADD R6, R3, R2 .text:0003F1E4 BLE loc_3F1FC .text:0003F1E8 LDR R1, [R11,#var_5C] .text:0003F1EC MOV R0, R4 .text:0003F1F0 BL strcmp .text:0003F1F4 CMP R0, #0 .text:0003F1F8 MOVNE R8, #0 .text:0003F1FC .text:0003F1FC loc_3F1FC ; CODE XREF: setlocale+2B4j .text:0003F1FC ; setlocale+2E8j .text:0003F1FC ADD R5, R5, #1 .text:0003F200 CMP R5, #0xC .text:0003F204 BLE loc_3F1AC .text:0003F208 CMP R8, #0 .text:0003F20C BEQ loc_3F274 .text:0003F210 LDR R0, [R11,#var_5C] .text:0003F214 LDR R1, =_nl_C_name .text:0003F218 BL strcmp .text:0003F21C CMP R0, #0 .text:0003F220 BEQ loc_3F238 .text:0003F224 LDR R0, [R11,#var_5C] .text:0003F228 LDR R1, =_nl_POSIX_name ; "POSIX" .text:0003F22C BL strcmp .text:0003F230 CMP R0, #0 .text:0003F234 BNE loc_3F240 .text:0003F238 .text:0003F238 loc_3F238 ; CODE XREF: setlocale+324j .text:0003F238 LDR R6, =_nl_C_name .text:0003F23C B loc_3F2FC .text:0003F240 ; --------------------------------------------------------------------------- .text:0003F240 .text:0003F240 loc_3F240 ; CODE XREF: setlocale+338j .text:0003F240 ADD R4, R9, #1 .text:0003F244 MOV R0, R4 .text:0003F248 BL malloc .text:0003F24C SUBS R6, R0, #0 .text:0003F250 BEQ loc_3F268 .text:0003F254 MOV R0, R6 .text:0003F258 LDR R1, [R11,#var_5C] .text:0003F25C MOV R2, R4 .text:0003F260 BL memcpy .text:0003F264 B loc_3F26C .text:0003F268 ; --------------------------------------------------------------------------- .text:0003F268 .text:0003F268 loc_3F268 ; CODE XREF: setlocale+354j .text:0003F268 MOV R0, R6 .text:0003F26C .text:0003F26C loc_3F26C ; CODE XREF: setlocale+368j .text:0003F26C MOV R6, R0 .text:0003F270 B loc_3F2FC .text:0003F274 ; --------------------------------------------------------------------------- .text:0003F274 .text:0003F274 loc_3F274 ; CODE XREF: setlocale+310j .text:0003F274 MOV R0, R6 .text:0003F278 BL malloc .text:0003F27C SUBS R6, R0, #0 .text:0003F280 BEQ loc_3F2FC .text:0003F284 MOV R0, R6 .text:0003F288 MOV R5, R8 .text:0003F28C LDR R8, =_nl_category_names .text:0003F290 .text:0003F290 loc_3F290 ; CODE XREF: setlocale+3C8j .text:0003F290 CMP R5, #6 .text:0003F294 BEQ loc_3F2BC .text:0003F298 LDR R1, [R8,R5,LSL#2] .text:0003F29C LDR R4, [R10,R5,LSL#2] .text:0003F2A0 BL stpcpy .text:0003F2A4 MOV R3, #0x3D .text:0003F2A8 STRB R3, [R0],#1 .text:0003F2AC MOV R1, R4 .text:0003F2B0 BL stpcpy .text:0003F2B4 MOV R3, #0x3B .text:0003F2B8 STRB R3, [R0],#1 .text:0003F2BC .text:0003F2BC loc_3F2BC ; CODE XREF: setlocale+398j .text:0003F2BC ADD R5, R5, #1 .text:0003F2C0 CMP R5, #0xC .text:0003F2C4 BLE loc_3F290 .text:0003F2C8 MOV R3, #0 .text:0003F2CC STRB R3, [R0,#-1] .text:0003F2D0 B loc_3F2FC .text:0003F2D0 ; --------------------------------------------------------------------------- .text:0003F2D4 off_3F2D4 DCD _nl_current_names ; DATA XREF: setlocale+24r .text:0003F2D4 ; setlocale+30r .text:0003F2D8 off_3F2D8 DCD aLocpath ; DATA XREF: setlocale+64r .text:0003F2D8 ; "LOCPATH" .text:0003F2DC off_3F2DC DCD aUsrLocalArm2_0 ; DATA XREF: setlocale+A8r .text:0003F2DC ; "/usr/local/arm/2.95.3/arm-linux/lib/loc"... .text:0003F2E0 off_3F2E0 DCD _nl_category_name_sizes ; DATA XREF: setlocale:loc_3F020r .text:0003F2E0 ; setlocale+2D0r .text:0003F2E4 off_3F2E4 DCD _nl_category_names ; DATA XREF: setlocale+128r .text:0003F2E4 ; setlocale+390r .text:0003F2E8 off_3F2E8 DCD 0 ; DATA XREF: setlocale:loc_3F100r .text:0003F2EC off_3F2EC DCD __libc_setlocale_lock ; DATA XREF: setlocale+210r .text:0003F2F0 off_3F2F0 DCD _nl_C_name ; DATA XREF: setlocale+234r .text:0003F2F0 ; setlocale+318r ... .text:0003F2F4 off_3F2F4 DCD _nl_POSIX_name ; DATA XREF: setlocale+32Cr .text:0003F2F4 ; "POSIX" .text:0003F2F8 ; --------------------------------------------------------------------------- .text:0003F2F8 .text:0003F2F8 loc_3F2F8 ; CODE XREF: setlocale+298j .text:0003F2F8 MOV R6, #0 .text:0003F2FC .text:0003F2FC loc_3F2FC ; CODE XREF: setlocale+340j .text:0003F2FC ; setlocale+374j ... .text:0003F2FC CMP R6, #0 .text:0003F300 BEQ loc_3F3D0 .text:0003F304 MOV R7, #0 .text:0003F308 MOV R5, R7 .text:0003F30C LDR R8, =_nl_msg_cat_cntr .text:0003F310 .text:0003F310 loc_3F310 ; CODE XREF: setlocale+498j .text:0003F310 CMP R7, #6 .text:0003F314 BEQ loc_3F388 .text:0003F318 LDR R3, =_nl_current .text:0003F31C LDR R2, [R3,R5] .text:0003F320 STR R5, [R11,#var_A8] .text:0003F324 SUB R3, R11, #-var_90 .text:0003F328 CMP R2, #0 .text:0003F32C LDR R3, [R3,R5] .text:0003F330 BEQ loc_3F354 .text:0003F334 STR R3, [R2] .text:0003F338 LDR R3, =_nl_category_postload .text:0003F33C LDR R1, [R11,#var_A8] .text:0003F340 LDR R3, [R3,R1] .text:0003F344 CMP R3, #0 .text:0003F348 BEQ loc_3F354 .text:0003F34C MOV LR, PC .text:0003F350 MOV PC, R3 .text:0003F354 .text:0003F354 loc_3F354 ; CODE XREF: setlocale+434j .text:0003F354 ; setlocale+44Cj .text:0003F354 LDR R2, =_nl_current_names .text:0003F358 SUB R3, R11, #-var_5C .text:0003F35C LDR R4, [R3,R5] .text:0003F360 LDR R0, [R5,R2] .text:0003F364 CMP R0, R4 .text:0003F368 BEQ loc_3F388 .text:0003F36C LDR R3, =_nl_C_name .text:0003F370 CMP R0, R3 .text:0003F374 BEQ loc_3F37C .text:0003F378 BL free .text:0003F37C .text:0003F37C loc_3F37C ; CODE XREF: setlocale+478j .text:0003F37C LDR R3, =_nl_current_names .text:0003F380 LDR R0, [R11,#var_A8] .text:0003F384 STR R4, [R3,R0] .text:0003F388 .text:0003F388 loc_3F388 ; CODE XREF: setlocale+418j .text:0003F388 ; setlocale+46Cj .text:0003F388 ADD R5, R5, #4 .text:0003F38C ADD R7, R7, #1 .text:0003F390 CMP R7, #0xC .text:0003F394 BLE loc_3F310 .text:0003F398 LDR R1, =_nl_current_names .text:0003F39C LDR R0, [R1,#(_nl_current_names+0x18 - 0x6C0FC)] .text:0003F3A0 CMP R0, R6 .text:0003F3A4 BEQ loc_3F3C0 .text:0003F3A8 LDR R3, =_nl_C_name .text:0003F3AC CMP R0, R3 .text:0003F3B0 BEQ loc_3F3B8 .text:0003F3B4 BL free .text:0003F3B8 .text:0003F3B8 loc_3F3B8 ; CODE XREF: setlocale+4B4j .text:0003F3B8 LDR R2, =_nl_current_names .text:0003F3BC STR R6, [R2,#(_nl_current_names+0x18 - 0x6C0FC)] .text:0003F3C0 .text:0003F3C0 loc_3F3C0 ; CODE XREF: setlocale+4A8j .text:0003F3C0 LDR R3, [R8] .text:0003F3C4 ADD R3, R3, #1 .text:0003F3C8 STR R3, [R8] .text:0003F3CC B loc_3F408 .text:0003F3D0 ; --------------------------------------------------------------------------- .text:0003F3D0 .text:0003F3D0 loc_3F3D0 ; CODE XREF: setlocale+404j .text:0003F3D0 ADD R7, R7, #1 .text:0003F3D4 CMP R7, #0xC .text:0003F3D8 BGT loc_3F408 .text:0003F3DC SUB R4, R11, #-var_5C .text:0003F3E0 LDR R5, =_nl_C_name .text:0003F3E4 .text:0003F3E4 loc_3F3E4 ; CODE XREF: setlocale+508j .text:0003F3E4 CMP R7, #6 .text:0003F3E8 BEQ loc_3F3FC .text:0003F3EC LDR R0, [R4,R7,LSL#2] .text:0003F3F0 CMP R0, R5 .text:0003F3F4 BEQ loc_3F3FC .text:0003F3F8 BL free .text:0003F3FC .text:0003F3FC loc_3F3FC ; CODE XREF: setlocale+4ECj .text:0003F3FC ; setlocale+4F8j .text:0003F3FC ADD R7, R7, #1 .text:0003F400 CMP R7, #0xC .text:0003F404 BLE loc_3F3E4 .text:0003F408 .text:0003F408 loc_3F408 ; CODE XREF: setlocale+4D0j .text:0003F408 ; setlocale+4DCj .text:0003F408 LDR R3, =0 .text:0003F40C CMP R3, #0 .text:0003F410 BEQ loc_3F420 .text:0003F414 LDR R0, =__libc_setlocale_lock .text:0003F418 MOV LR, PC .text:0003F41C MOV PC, R3 .text:0003F420 .text:0003F420 loc_3F420 ; CODE XREF: setlocale+514j .text:0003F420 LDR R0, [R11,#var_94] .text:0003F424 BL free .text:0003F428 MOV R0, R6 .text:0003F42C B loc_3F74C .text:0003F430 ; --------------------------------------------------------------------------- .text:0003F430 .text:0003F430 loc_3F430 ; CODE XREF: setlocale+C0j .text:0003F430 STR R0, [R11,#var_A0] .text:0003F434 LDR R3, =0 .text:0003F438 STR R8, [R11,#var_9C] .text:0003F43C CMP R3, #0 .text:0003F440 BEQ loc_3F450 .text:0003F444 LDR R0, =__libc_setlocale_lock .text:0003F448 MOV LR, PC .text:0003F44C MOV PC, R3 .text:0003F450 .text:0003F450 loc_3F450 ; CODE XREF: setlocale+544j .text:0003F450 LDR R2, =_nl_current .text:0003F454 LDR R0, [R11,#var_A8] .text:0003F458 LDR R3, [R2,R0] .text:0003F45C CMP R3, #0 .text:0003F460 BEQ loc_3F494 .text:0003F464 LDR R0, [R11,#var_94] .text:0003F468 MOV R2, R7 .text:0003F46C LDR R1, [R11,#var_98] .text:0003F470 SUB R3, R11, #-var_9C .text:0003F474 BL _nl_find_locale .text:0003F478 CMP R0, #0 .text:0003F47C STR R0, [R11,#var_A0] .text:0003F480 BEQ loc_3F64C .text:0003F484 LDR R3, [R0,#0x10] .text:0003F488 CMN R3, #1 .text:0003F48C MOVNE R3, 0xFFFFFFFF .text:0003F490 STRNE R3, [R0,#0x10] .text:0003F494 .text:0003F494 loc_3F494 ; CODE XREF: setlocale+564j .text:0003F494 LDR R0, [R11,#var_9C] .text:0003F498 LDR R3, =_nl_C_name .text:0003F49C CMP R0, R3 .text:0003F4A0 BEQ loc_3F4B4 .text:0003F4A4 BL strdup .text:0003F4A8 CMP R0, #0 .text:0003F4AC STR R0, [R11,#var_9C] .text:0003F4B0 BEQ loc_3F64C .text:0003F4B4 .text:0003F4B4 loc_3F4B4 ; CODE XREF: setlocale+5A4j .text:0003F4B4 MOV R8, #0 .text:0003F4B8 STR R8, [R11,#var_A4] .text:0003F4BC SUB R6, R11, #-var_9C .text:0003F4C0 MOV R10, #1 .text:0003F4C4 MOV R5, R8 .text:0003F4C8 LDR R9, =_nl_category_name_sizes .text:0003F4CC .text:0003F4CC loc_3F4CC ; CODE XREF: setlocale+640j .text:0003F4CC CMP R5, #6 .text:0003F4D0 BEQ loc_3F530 .text:0003F4D4 CMP R7, #6 .text:0003F4D8 LDREQ R4, [R6,R5,LSL#2] .text:0003F4DC BEQ loc_3F4F0 .text:0003F4E0 CMP R7, R5 .text:0003F4E4 LDREQ R4, [R6] .text:0003F4E8 LDRNE R1, =_nl_current_names .text:0003F4EC LDRNE R4, [R1,R5,LSL#2] .text:0003F4F0 .text:0003F4F0 loc_3F4F0 ; CODE XREF: setlocale+5E0j .text:0003F4F0 MOV R0, R4 .text:0003F4F4 BL strlen .text:0003F4F8 STR R0, [R11,#var_A4] .text:0003F4FC CMP R10, #0 .text:0003F500 CMPNE R5, #0 .text:0003F504 ADD R3, R8, #1 .text:0003F508 LDR R2, [R9] .text:0003F50C ADD R1, R0, #1 .text:0003F510 ADD R2, R2, R1 .text:0003F514 ADD R8, R3, R2 .text:0003F518 BLE loc_3F530 .text:0003F51C LDR R1, [R6] .text:0003F520 MOV R0, R4 .text:0003F524 BL strcmp .text:0003F528 CMP R0, #0 .text:0003F52C MOVNE R10, #0 .text:0003F530 .text:0003F530 loc_3F530 ; CODE XREF: setlocale+5D4j .text:0003F530 ; setlocale+61Cj .text:0003F530 ADD R9, R9, #4 .text:0003F534 ADD R5, R5, #1 .text:0003F538 CMP R5, #0xC .text:0003F53C BLE loc_3F4CC .text:0003F540 CMP R10, #0 .text:0003F544 BEQ loc_3F5B0 .text:0003F548 LDR R0, [R6] .text:0003F54C LDR R1, =_nl_C_name .text:0003F550 BL strcmp .text:0003F554 CMP R0, #0 .text:0003F558 BEQ loc_3F570 .text:0003F55C LDR R0, [R6] .text:0003F560 LDR R1, =_nl_POSIX_name ; "POSIX" .text:0003F564 BL strcmp .text:0003F568 CMP R0, #0 .text:0003F56C BNE loc_3F578 .text:0003F570 .text:0003F570 loc_3F570 ; CODE XREF: setlocale+65Cj .text:0003F570 LDR R6, =_nl_C_name .text:0003F574 B loc_3F630 .text:0003F578 ; --------------------------------------------------------------------------- .text:0003F578 .text:0003F578 loc_3F578 ; CODE XREF: setlocale+670j .text:0003F578 LDR R2, [R11,#var_A4] .text:0003F57C ADD R4, R2, #1 .text:0003F580 MOV R0, R4 .text:0003F584 BL malloc .text:0003F588 SUBS R8, R0, #0 .text:0003F58C BEQ loc_3F5A4 .text:0003F590 MOV R0, R8 .text:0003F594 LDR R1, [R6] .text:0003F598 MOV R2, R4 .text:0003F59C BL memcpy .text:0003F5A0 B loc_3F5A8 .text:0003F5A4 ; --------------------------------------------------------------------------- .text:0003F5A4 .text:0003F5A4 loc_3F5A4 ; CODE XREF: setlocale+690j .text:0003F5A4 MOV R0, R8 .text:0003F5A8 .text:0003F5A8 loc_3F5A8 ; CODE XREF: setlocale+6A4j .text:0003F5A8 MOV R6, R0 .text:0003F5AC B loc_3F630 .text:0003F5B0 ; --------------------------------------------------------------------------- .text:0003F5B0 .text:0003F5B0 loc_3F5B0 ; CODE XREF: setlocale+648j .text:0003F5B0 MOV R0, R8 .text:0003F5B4 BL malloc .text:0003F5B8 SUBS R8, R0, #0 .text:0003F5BC MOVEQ R6, R8 .text:0003F5C0 BEQ loc_3F630 .text:0003F5C4 MOV R0, R8 .text:0003F5C8 MOV R5, R10 .text:0003F5CC LDR R10, =_nl_category_names .text:0003F5D0 .text:0003F5D0 loc_3F5D0 ; CODE XREF: setlocale+724j .text:0003F5D0 CMP R5, #6 .text:0003F5D4 BEQ loc_3F614 .text:0003F5D8 CMP R7, #6 .text:0003F5DC LDREQ R4, [R6,R5,LSL#2] .text:0003F5E0 BEQ loc_3F5F4 .text:0003F5E4 CMP R7, R5 .text:0003F5E8 LDREQ R4, [R6] .text:0003F5EC LDRNE R3, =_nl_current_names .text:0003F5F0 LDRNE R4, [R3,R5,LSL#2] .text:0003F5F4 .text:0003F5F4 loc_3F5F4 ; CODE XREF: setlocale+6E4j .text:0003F5F4 LDR R1, [R10] .text:0003F5F8 BL stpcpy .text:0003F5FC MOV R3, #0x3D .text:0003F600 STRB R3, [R0],#1 .text:0003F604 MOV R1, R4 .text:0003F608 BL stpcpy .text:0003F60C MOV R3, #0x3B .text:0003F610 STRB R3, [R0],#1 .text:0003F614 .text:0003F614 loc_3F614 ; CODE XREF: setlocale+6D8j .text:0003F614 ADD R10, R10, #4 .text:0003F618 ADD R5, R5, #1 .text:0003F61C CMP R5, #0xC .text:0003F620 BLE loc_3F5D0 .text:0003F624 MOV R6, R8 .text:0003F628 MOV R3, #0 .text:0003F62C STRB R3, [R0,#-1] .text:0003F630 .text:0003F630 loc_3F630 ; CODE XREF: setlocale+678j .text:0003F630 ; setlocale+6B0j ... .text:0003F630 CMP R6, #0 .text:0003F634 BNE loc_3F684 .text:0003F638 LDR R0, [R11,#var_9C] .text:0003F63C LDR R1, =_nl_C_name .text:0003F640 CMP R0, R1 .text:0003F644 BEQ loc_3F64C .text:0003F648 BL free .text:0003F64C .text:0003F64C loc_3F64C ; CODE XREF: setlocale+584j .text:0003F64C ; setlocale+5B4j ... .text:0003F64C MOV R3, #0 .text:0003F650 STR R3, [R11,#var_9C] .text:0003F654 B loc_3F724 .text:0003F654 ; --------------------------------------------------------------------------- .text:0003F658 off_3F658 DCD _nl_msg_cat_cntr ; DATA XREF: setlocale+410r .text:0003F65C off_3F65C DCD _nl_current ; DATA XREF: setlocale+41Cr .text:0003F65C ; setlocale:loc_3F450r .text:0003F660 off_3F660 DCD _nl_category_postload ; DATA XREF: setlocale+43Cr .text:0003F664 off_3F664 DCD _nl_current_names ; DATA XREF: setlocale:loc_3F354r .text:0003F664 ; setlocale:loc_3F37Cr ... .text:0003F668 off_3F668 DCD _nl_C_name ; DATA XREF: setlocale+470r .text:0003F668 ; setlocale+4ACr ... .text:0003F66C off_3F66C DCD 0 ; DATA XREF: setlocale:loc_3F408r .text:0003F670 off_3F670 DCD __libc_setlocale_lock ; DATA XREF: setlocale+518r .text:0003F670 ; setlocale+548r .text:0003F674 off_3F674 DCD 0 ; DATA XREF: setlocale+538r .text:0003F678 off_3F678 DCD _nl_category_name_sizes ; DATA XREF: setlocale+5CCr .text:0003F67C off_3F67C DCD _nl_POSIX_name ; DATA XREF: setlocale+664r .text:0003F67C ; "POSIX" .text:0003F680 off_3F680 DCD _nl_category_names ; DATA XREF: setlocale+6D0r .text:0003F684 ; --------------------------------------------------------------------------- .text:0003F684 .text:0003F684 loc_3F684 ; CODE XREF: setlocale+738j .text:0003F684 LDR R3, =_nl_current .text:0003F688 LDR R0, [R11,#var_A8] .text:0003F68C LDR R2, [R3,R0] .text:0003F690 CMP R2, #0 .text:0003F694 BEQ loc_3F6B8 .text:0003F698 LDR R1, [R11,#var_A0] .text:0003F69C STR R1, [R2] .text:0003F6A0 LDR R3, =_nl_category_postload .text:0003F6A4 LDR R3, [R3,R0] .text:0003F6A8 CMP R3, #0 .text:0003F6AC BEQ loc_3F6B8 .text:0003F6B0 MOV LR, PC .text:0003F6B4 MOV PC, R3 .text:0003F6B8 .text:0003F6B8 loc_3F6B8 ; CODE XREF: setlocale+798j .text:0003F6B8 ; setlocale+7B0j .text:0003F6B8 LDR R2, =_nl_current_names .text:0003F6BC LDR R3, [R11,#var_A8] .text:0003F6C0 LDR R4, [R11,#var_9C] .text:0003F6C4 LDR R0, [R2,R3] .text:0003F6C8 CMP R0, R4 .text:0003F6CC BEQ loc_3F6EC .text:0003F6D0 LDR R1, =_nl_C_name .text:0003F6D4 CMP R0, R1 .text:0003F6D8 BEQ loc_3F6E0 .text:0003F6DC BL free .text:0003F6E0 .text:0003F6E0 loc_3F6E0 ; CODE XREF: setlocale+7DCj .text:0003F6E0 LDR R2, =_nl_current_names .text:0003F6E4 LDR R3, [R11,#var_A8] .text:0003F6E8 STR R4, [R2,R3] .text:0003F6EC .text:0003F6EC loc_3F6EC ; CODE XREF: setlocale+7D0j .text:0003F6EC LDR R1, =_nl_current_names .text:0003F6F0 LDR R0, [R1,#(_nl_current_names+0x18 - 0x6C0FC)] .text:0003F6F4 CMP R0, R6 .text:0003F6F8 BEQ loc_3F714 .text:0003F6FC LDR R2, =_nl_C_name .text:0003F700 CMP R0, R2 .text:0003F704 BEQ loc_3F70C .text:0003F708 BL free .text:0003F70C .text:0003F70C loc_3F70C ; CODE XREF: setlocale+808j .text:0003F70C LDR R3, =_nl_current_names .text:0003F710 STR R6, [R3,#(_nl_current_names+0x18 - 0x6C0FC)] .text:0003F714 .text:0003F714 loc_3F714 ; CODE XREF: setlocale+7FCj .text:0003F714 LDR R2, =_nl_msg_cat_cntr .text:0003F718 LDR R3, [R2] .text:0003F71C ADD R3, R3, #1 .text:0003F720 STR R3, [R2] .text:0003F724 .text:0003F724 loc_3F724 ; CODE XREF: setlocale+758j .text:0003F724 LDR R0, =0 .text:0003F728 CMP R0, #0 .text:0003F72C BEQ loc_3F740 .text:0003F730 LDR R0, =__libc_setlocale_lock .text:0003F734 LDR R1, =0 .text:0003F738 MOV LR, PC .text:0003F73C MOV PC, R1 .text:0003F740 .text:0003F740 loc_3F740 ; CODE XREF: setlocale+830j .text:0003F740 LDR R0, [R11,#var_94] .text:0003F744 BL free .text:0003F748 LDR R0, [R11,#var_9C] .text:0003F74C .text:0003F74C loc_3F74C ; CODE XREF: setlocale+2Cj .text:0003F74C ; setlocale+54j ... .text:0003F74C B locret_3F76C .text:0003F74C ; --------------------------------------------------------------------------- .text:0003F750 off_3F750 DCD _nl_current ; DATA XREF: setlocale:loc_3F684r .text:0003F754 off_3F754 DCD _nl_category_postload ; DATA XREF: setlocale+7A4r .text:0003F758 off_3F758 DCD _nl_current_names ; DATA XREF: setlocale:loc_3F6B8r .text:0003F758 ; setlocale:loc_3F6E0r ... .text:0003F75C off_3F75C DCD _nl_C_name ; DATA XREF: setlocale+7D4r .text:0003F75C ; setlocale+800r .text:0003F760 off_3F760 DCD _nl_msg_cat_cntr ; DATA XREF: setlocale:loc_3F714r .text:0003F764 off_3F764 DCD 0 ; DATA XREF: setlocale:loc_3F724r .text:0003F764 ; setlocale+838r .text:0003F768 off_3F768 DCD __libc_setlocale_lock ; DATA XREF: setlocale+834r .text:0003F76C ; --------------------------------------------------------------------------- .text:0003F76C .text:0003F76C locret_3F76C ; CODE XREF: setlocale:loc_3F74Cj .text:0003F76C LDMDB R11, {R4-R11,SP,PC} .text:0003F76C ; End of function setlocale .text:0003F76C .text:0003F770 .text:0003F770 ; =============== S U B R O U T I N E ======================================= .text:0003F770 .text:0003F770 ; Attributes: bp-based frame .text:0003F770 .text:0003F770 free_mem_7 .text:0003F770 MOV R12, SP .text:0003F774 STMFD SP!, {R4-R12,LR,PC} .text:0003F778 SUB R11, R12, #4 .text:0003F77C LDR R10, =_nl_C_name .text:0003F780 MOV R7, #0 .text:0003F784 LDR R8, =_nl_current_names .text:0003F788 MOV R4, R7 .text:0003F78C LDR R9, =_nl_current .text:0003F790 .text:0003F790 loc_3F790 ; CODE XREF: free_mem_7+90j .text:0003F790 CMP R7, #6 .text:0003F794 BEQ loc_3F7F4 .text:0003F798 LDR R2, [R9,R4] .text:0003F79C LDR R3, =_nl_C .text:0003F7A0 LDR R5, [R2] .text:0003F7A4 LDR R3, [R3,R4] .text:0003F7A8 MOV R6, R4 .text:0003F7AC CMP R5, R3 .text:0003F7B0 BEQ loc_3F7F4 .text:0003F7B4 CMP R2, #0 .text:0003F7B8 BEQ loc_3F7D8 .text:0003F7BC STR R3, [R2] .text:0003F7C0 LDR R3, =_nl_category_postload .text:0003F7C4 LDR R3, [R3,R4] .text:0003F7C8 CMP R3, #0 .text:0003F7CC BEQ loc_3F7D8 .text:0003F7D0 MOV LR, PC .text:0003F7D4 MOV PC, R3 .text:0003F7D8 .text:0003F7D8 loc_3F7D8 ; CODE XREF: free_mem_7+48j .text:0003F7D8 ; free_mem_7+5Cj .text:0003F7D8 LDR R0, [R4,R8] .text:0003F7DC CMP R0, R10 .text:0003F7E0 BEQ loc_3F7EC .text:0003F7E4 BL free .text:0003F7E8 STR R10, [R8,R6] .text:0003F7EC .text:0003F7EC loc_3F7EC ; CODE XREF: free_mem_7+70j .text:0003F7EC MOV R0, R5 .text:0003F7F0 BL _nl_unload_locale .text:0003F7F4 .text:0003F7F4 loc_3F7F4 ; CODE XREF: free_mem_7+24j .text:0003F7F4 ; free_mem_7+40j .text:0003F7F4 ADD R4, R4, #4 .text:0003F7F8 ADD R7, R7, #1 .text:0003F7FC CMP R7, #0xC .text:0003F800 BLE loc_3F790 .text:0003F804 LDR R0, [R8,#0x18] .text:0003F808 CMP R0, R10 .text:0003F80C LDMEQDB R11, {R4-R11,SP,PC} .text:0003F810 BL free .text:0003F814 STR R10, [R8,#0x18] .text:0003F818 LDMDB R11, {R4-R11,SP,PC} .text:0003F818 ; End of function free_mem_7 .text:0003F818 .text:0003F818 ; --------------------------------------------------------------------------- .text:0003F81C off_3F81C DCD _nl_C_name ; DATA XREF: free_mem_7+Cr .text:0003F820 off_3F820 DCD _nl_current_names ; DATA XREF: free_mem_7+14r .text:0003F824 off_3F824 DCD _nl_current ; DATA XREF: free_mem_7+1Cr .text:0003F828 off_3F828 DCD _nl_C ; DATA XREF: free_mem_7+2Cr .text:0003F82C off_3F82C DCD _nl_category_postload ; DATA XREF: free_mem_7+50r .text:0003F830 .text:0003F830 ; =============== S U B R O U T I N E ======================================= .text:0003F830 .text:0003F830 ; Attributes: bp-based frame .text:0003F830 .text:0003F830 upstr_0 ; CODE XREF: _nl_find_locale+4FCp .text:0003F830 ; _nl_find_locale+510p .text:0003F830 MOV R12, SP .text:0003F834 STMFD SP!, {R4,R11,R12,LR,PC} .text:0003F838 SUB R11, R12, #4 .text:0003F83C MOV LR, R1 .text:0003F840 MOV R12, R0 .text:0003F844 LDR R4, =__ctype_toupper .text:0003F848 .text:0003F848 loc_3F848 ; CODE XREF: upstr_0+2Cj .text:0003F848 LDRB R3, [LR],#1 .text:0003F84C LDR R2, [R4] .text:0003F850 LDR R1, [R2,R3,LSL#2] .text:0003F854 TST R1, #0xFF .text:0003F858 STRB R1, [R12],#1 .text:0003F85C BNE loc_3F848 .text:0003F860 LDMDB R11, {R4,R11,SP,PC} .text:0003F860 ; End of function upstr_0 .text:0003F860 .text:0003F860 ; --------------------------------------------------------------------------- .text:0003F864 off_3F864 DCD __ctype_toupper ; DATA XREF: upstr_0+14r .text:0003F868 .text:0003F868 ; =============== S U B R O U T I N E ======================================= .text:0003F868 .text:0003F868 ; Attributes: bp-based frame .text:0003F868 .text:0003F868 EXPORT _nl_find_locale .text:0003F868 _nl_find_locale ; CODE XREF: setlocale+280p .text:0003F868 ; setlocale+578p .text:0003F868 .text:0003F868 var_78 = -0x78 .text:0003F868 var_74 = -0x74 .text:0003F868 var_70 = -0x70 .text:0003F868 var_6C = -0x6C .text:0003F868 var_68 = -0x68 .text:0003F868 var_64 = -0x64 .text:0003F868 var_60 = -0x60 .text:0003F868 var_5C = -0x5C .text:0003F868 var_58 = -0x58 .text:0003F868 var_54 = -0x54 .text:0003F868 var_50 = -0x50 .text:0003F868 var_4C = -0x4C .text:0003F868 var_48 = -0x48 .text:0003F868 var_44 = -0x44 .text:0003F868 var_40 = -0x40 .text:0003F868 var_3C = -0x3C .text:0003F868 var_38 = -0x38 .text:0003F868 var_34 = -0x34 .text:0003F868 var_30 = -0x30 .text:0003F868 var_2C = -0x2C .text:0003F868 .text:0003F868 MOV R12, SP .text:0003F86C STMFD SP!, {R4-R12,LR,PC} .text:0003F870 MOV R5, R3 .text:0003F874 SUB SP, SP, #0x50 .text:0003F878 LDR R3, [R5] .text:0003F87C SUB R11, R12, #4 .text:0003F880 LDRB R12, [R3] .text:0003F884 STR R0, [R11,#var_4C] .text:0003F888 MOV R10, R2 .text:0003F88C STR R1, [R11,#var_50] .text:0003F890 CMP R12, #0 .text:0003F894 BNE loc_3F8EC .text:0003F898 LDR R0, =aLc_all_0 ; "LC_ALL" .text:0003F89C BL getenv .text:0003F8A0 CMP R0, #0 .text:0003F8A4 STR R0, [R5] .text:0003F8A8 BEQ loc_3F8B8 .text:0003F8AC LDRB R3, [R0] .text:0003F8B0 CMP R3, #0 .text:0003F8B4 BNE loc_3F8C8 .text:0003F8B8 .text:0003F8B8 loc_3F8B8 ; CODE XREF: _nl_find_locale+40j .text:0003F8B8 LDR R3, =_nl_category_names .text:0003F8BC LDR R0, [R3,R10,LSL#2] .text:0003F8C0 BL getenv .text:0003F8C4 STR R0, [R5] .text:0003F8C8 .text:0003F8C8 loc_3F8C8 ; CODE XREF: _nl_find_locale+4Cj .text:0003F8C8 LDR R3, [R5] .text:0003F8CC CMP R3, #0 .text:0003F8D0 BEQ loc_3F8E0 .text:0003F8D4 LDRB R3, [R3] .text:0003F8D8 CMP R3, #0 .text:0003F8DC BNE loc_3F8EC .text:0003F8E0 .text:0003F8E0 loc_3F8E0 ; CODE XREF: _nl_find_locale+68j .text:0003F8E0 LDR R0, =aLang ; "LANG" .text:0003F8E4 BL getenv .text:0003F8E8 STR R0, [R5] .text:0003F8EC .text:0003F8EC loc_3F8EC ; CODE XREF: _nl_find_locale+2Cj .text:0003F8EC ; _nl_find_locale+74j .text:0003F8EC LDR R0, [R5] .text:0003F8F0 CMP R0, #0 .text:0003F8F4 BEQ loc_3F928 .text:0003F8F8 LDRB R3, [R0] .text:0003F8FC CMP R3, #0 .text:0003F900 BEQ loc_3F928 .text:0003F904 LDR R3, =__libc_enable_secure .text:0003F908 LDR R2, [R3] .text:0003F90C LDR R4, =_nl_C_name .text:0003F910 CMP R2, #0 .text:0003F914 BEQ loc_3F934 .text:0003F918 MOV R1, #0x2F .text:0003F91C BL strchr .text:0003F920 CMP R0, #0 .text:0003F924 BEQ loc_3F934 .text:0003F928 .text:0003F928 loc_3F928 ; CODE XREF: _nl_find_locale+8Cj .text:0003F928 ; _nl_find_locale+98j .text:0003F928 LDR R3, =_nl_C_name .text:0003F92C MOV R4, R3 .text:0003F930 STR R3, [R5] .text:0003F934 .text:0003F934 loc_3F934 ; CODE XREF: _nl_find_locale+ACj .text:0003F934 ; _nl_find_locale+BCj .text:0003F934 LDR R0, [R5] .text:0003F938 MOV R1, R4 .text:0003F93C BL strcmp .text:0003F940 CMP R0, #0 .text:0003F944 BEQ loc_3F95C .text:0003F948 LDR R0, [R5] .text:0003F94C LDR R1, =_nl_POSIX_name ; "POSIX" .text:0003F950 BL strcmp .text:0003F954 CMP R0, #0 .text:0003F958 BNE loc_3F96C .text:0003F95C .text:0003F95C loc_3F95C ; CODE XREF: _nl_find_locale+DCj .text:0003F95C STR R4, [R5] .text:0003F960 LDR R3, =_nl_C .text:0003F964 LDR R0, [R3,R10,LSL#2] .text:0003F968 B loc_3FE48 .text:0003F96C ; --------------------------------------------------------------------------- .text:0003F96C .text:0003F96C loc_3F96C ; CODE XREF: _nl_find_locale+F0j .text:0003F96C LDR R0, [R5] .text:0003F970 BL _nl_expand_alias .text:0003F974 SUBS R4, R0, #0 .text:0003F978 LDREQ R4, [R5] .text:0003F97C MOV R0, R4 .text:0003F980 BL strlen .text:0003F984 MOV R2, R0 .text:0003F988 ADD R3, R2, #4 .text:0003F98C BIC R3, R3, #3 .text:0003F990 RSB SP, R3, SP .text:0003F994 ADD R0, SP, #0x78+var_50 .text:0003F998 MOV R1, R4 .text:0003F99C ADD R2, R2, #1 .text:0003F9A0 BL memcpy .text:0003F9A4 SUB R3, R11, #-var_38 .text:0003F9A8 STR R3, [SP,#0x78+var_78] .text:0003F9AC SUB R2, R11, #-var_3C .text:0003F9B0 STR R2, [SP,#0x78+var_74] .text:0003F9B4 SUB R3, R11, #-var_40 .text:0003F9B8 STR R3, [SP,#0x78+var_70] .text:0003F9BC SUB R2, R11, #-var_44 .text:0003F9C0 STR R2, [SP,#0x78+var_6C] .text:0003F9C4 SUB R3, R11, #-var_48 .text:0003F9C8 STR R3, [SP,#0x78+var_68] .text:0003F9CC SUB R1, R11, #-var_2C .text:0003F9D0 SUB R2, R11, #-var_30 .text:0003F9D4 SUB R3, R11, #-var_34 .text:0003F9D8 BL _nl_explode_name .text:0003F9DC MOV R3, #0 .text:0003F9E0 STR R3, [SP,#0x78+var_54] .text:0003F9E4 LDR R2, [R11,#var_2C] .text:0003F9E8 STR R2, [SP,#0x78+var_78] .text:0003F9EC LDR R3, [R11,#var_34] .text:0003F9F0 STR R3, [SP,#0x78+var_74] .text:0003F9F4 LDR R2, [R11,#var_38] .text:0003F9F8 STR R2, [SP,#0x78+var_70] .text:0003F9FC LDR R3, [R11,#var_3C] .text:0003FA00 STR R3, [SP,#0x78+var_6C] .text:0003FA04 LDR R2, [R11,#var_30] .text:0003FA08 STR R2, [SP,#0x78+var_68] .text:0003FA0C LDR R3, [R11,#var_40] .text:0003FA10 STR R3, [SP,#0x78+var_64] .text:0003FA14 LDR R2, [R11,#var_44] .text:0003FA18 STR R2, [SP,#0x78+var_60] .text:0003FA1C LDR R3, [R11,#var_48] .text:0003FA20 STR R3, [SP,#0x78+var_5C] .text:0003FA24 LDR R2, =_nl_category_names .text:0003FA28 MOV R4, R10,LSL#2 .text:0003FA2C LDR R6, [R2,R4] .text:0003FA30 STR R6, [SP,#0x78+var_58] .text:0003FA34 MOV R5, R0 .text:0003FA38 LDR R0, =locale_file_list .text:0003FA3C ADD R8, R4, R0 .text:0003FA40 LDR R1, [R11,#var_4C] .text:0003FA44 MOV R0, R8 .text:0003FA48 LDR R2, [R11,#var_50] .text:0003FA4C MOV R3, R5 .text:0003FA50 BL _nl_make_l10nflist .text:0003FA54 SUBS R7, R0, #0 .text:0003FA58 MOV R9, R4 .text:0003FA5C BNE loc_3FAC8 .text:0003FA60 STR R6, [SP,#0x78+var_58] .text:0003FA64 MOV R3, #1 .text:0003FA68 STR R3, [SP,#0x78+var_54] .text:0003FA6C LDR R2, [R11,#var_2C] .text:0003FA70 STR R2, [SP,#0x78+var_78] .text:0003FA74 LDR R3, [R11,#var_34] .text:0003FA78 STR R3, [SP,#0x78+var_74] .text:0003FA7C LDR R2, [R11,#var_38] .text:0003FA80 STR R2, [SP,#0x78+var_70] .text:0003FA84 LDR R3, [R11,#var_3C] .text:0003FA88 STR R3, [SP,#0x78+var_6C] .text:0003FA8C LDR R2, [R11,#var_30] .text:0003FA90 STR R2, [SP,#0x78+var_68] .text:0003FA94 LDR R3, [R11,#var_40] .text:0003FA98 STR R3, [SP,#0x78+var_64] .text:0003FA9C LDR R2, [R11,#var_44] .text:0003FAA0 STR R2, [SP,#0x78+var_60] .text:0003FAA4 LDR R3, [R11,#var_48] .text:0003FAA8 STR R3, [SP,#0x78+var_5C] .text:0003FAAC LDR R1, [R11,#var_4C] .text:0003FAB0 MOV R0, R8 .text:0003FAB4 LDR R2, [R11,#var_50] .text:0003FAB8 MOV R3, R5 .text:0003FABC BL _nl_make_l10nflist .text:0003FAC0 SUBS R7, R0, #0 .text:0003FAC4 BEQ loc_3FD94 .text:0003FAC8 .text:0003FAC8 loc_3FAC8 ; CODE XREF: _nl_find_locale+1F4j .text:0003FAC8 TST R5, #8 .text:0003FACC BEQ loc_3FAD8 .text:0003FAD0 LDR R0, [R11,#var_3C] .text:0003FAD4 BL free .text:0003FAD8 .text:0003FAD8 loc_3FAD8 ; CODE XREF: _nl_find_locale+264j .text:0003FAD8 LDR R3, [R7,#4] .text:0003FADC CMP R3, #0 .text:0003FAE0 BNE loc_3FAF0 .text:0003FAE4 MOV R0, R7 .text:0003FAE8 MOV R1, R10 .text:0003FAEC BL _nl_load_locale .text:0003FAF0 .text:0003FAF0 loc_3FAF0 ; CODE XREF: _nl_find_locale+278j .text:0003FAF0 LDR R3, [R7,#8] .text:0003FAF4 CMP R3, #0 .text:0003FAF8 BNE loc_3FB58 .text:0003FAFC MOV R6, R3 .text:0003FB00 ADD R4, R7, #0x10 .text:0003FB04 B loc_3FB0C .text:0003FB08 ; --------------------------------------------------------------------------- .text:0003FB08 .text:0003FB08 loc_3FB08 ; CODE XREF: _nl_find_locale+2D8j .text:0003FB08 ADD R6, R6, #1 .text:0003FB0C .text:0003FB0C loc_3FB0C ; CODE XREF: _nl_find_locale+29Cj .text:0003FB0C MOV R3, R6,LSL#2 .text:0003FB10 LDR R0, [R4,R3] .text:0003FB14 MOV R5, R3 .text:0003FB18 CMP R0, #0 .text:0003FB1C BEQ loc_3FB44 .text:0003FB20 LDR R3, [R0,#4] .text:0003FB24 CMP R3, #0 .text:0003FB28 BNE loc_3FB34 .text:0003FB2C MOV R1, R10 .text:0003FB30 BL _nl_load_locale .text:0003FB34 .text:0003FB34 loc_3FB34 ; CODE XREF: _nl_find_locale+2C0j .text:0003FB34 LDR R3, [R4,R5] .text:0003FB38 LDR R2, [R3,#8] .text:0003FB3C CMP R2, #0 .text:0003FB40 BEQ loc_3FB08 .text:0003FB44 .text:0003FB44 loc_3FB44 ; CODE XREF: _nl_find_locale+2B4j .text:0003FB44 LDR R3, [R4,R5] .text:0003FB48 STR R3, [R7,#0x10] .text:0003FB4C LDR R7, [R4,R5] .text:0003FB50 CMP R7, #0 .text:0003FB54 BEQ loc_3FD94 .text:0003FB58 .text:0003FB58 loc_3FB58 ; CODE XREF: _nl_find_locale+290j .text:0003FB58 LDR R3, [R11,#var_38] .text:0003FB5C CMP R3, #0 .text:0003FB60 BEQ loc_3FD9C .text:0003FB64 LDR R3, =codeset_idx.96 .text:0003FB68 LDR R2, [R7,#8] .text:0003FB6C LDR R1, [R3,R9] .text:0003FB70 ADD R2, R2, #0x20 .text:0003FB74 LDR R4, [R2,R1,LSL#2] .text:0003FB78 CMP R4, #0 .text:0003FB7C BNE loc_3FB94 .text:0003FB80 LDR R0, =aLocale_codeset ; "locale_codeset != ((void *)0)" .text:0003FB84 LDR R1, =aFindlocale_c ; "findlocale.c" .text:0003FB88 LDR R3, =a_nl_find_local ; "_nl_find_locale" .text:0003FB8C MOV R2, #0xC9 .text:0003FB90 BL __assert_fail .text:0003FB94 ; --------------------------------------------------------------------------- .text:0003FB94 .text:0003FB94 loc_3FB94 ; CODE XREF: _nl_find_locale+314j .text:0003FB94 MOV R0, R4 .text:0003FB98 BL strlen .text:0003FB9C ADD R0, R0, #6 .text:0003FBA0 BIC R0, R0, #3 .text:0003FBA4 RSB SP, R0, SP .text:0003FBA8 ADD R6, SP, #0x78+var_50 .text:0003FBAC MOV R12, R6 .text:0003FBB0 MOV R0, R4 .text:0003FBB4 LDRB R3, [R0] .text:0003FBB8 MOV R1, #0 .text:0003FBBC CMP R3, R1 .text:0003FBC0 BEQ loc_3FC68 .text:0003FBC4 LDR R3, =__ctype_b .text:0003FBC8 LDR R4, =__ctype_toupper .text:0003FBCC LDR LR, [R3] .text:0003FBD0 .text:0003FBD0 loc_3FBD0 ; CODE XREF: _nl_find_locale+3FCj .text:0003FBD0 LDRB R2, [R0] .text:0003FBD4 LDRB R3, [LR,R2,LSL#1] .text:0003FBD8 TST R3, #8 .text:0003FBDC BNE loc_3FBFC .text:0003FBE0 AND R3, R2, #0xFF .text:0003FBE4 CMP R3, #0x5F .text:0003FBE8 BEQ loc_3FBFC .text:0003FBEC CMP R3, #0x2D .text:0003FBF0 BEQ loc_3FBFC .text:0003FBF4 CMP R3, #0x2E .text:0003FBF8 BNE loc_3FC44 .text:0003FBFC .text:0003FBFC loc_3FBFC ; CODE XREF: _nl_find_locale+374j .text:0003FBFC ; _nl_find_locale+380j ... .text:0003FBFC LDR R3, [R4] .text:0003FC00 LDR R2, [R3,R2,LSL#2] .text:0003FC04 STRB R2, [R12],#1 .text:0003FC08 B loc_3FC5C .text:0003FC08 ; --------------------------------------------------------------------------- .text:0003FC0C off_3FC0C DCD aLc_all_0 ; DATA XREF: _nl_find_locale+30r .text:0003FC0C ; "LC_ALL" .text:0003FC10 off_3FC10 DCD _nl_category_names ; DATA XREF: _nl_find_locale:loc_3F8B8r .text:0003FC10 ; _nl_find_locale+1BCr .text:0003FC14 off_3FC14 DCD aLang ; DATA XREF: _nl_find_locale:loc_3F8E0r .text:0003FC14 ; "LANG" .text:0003FC18 off_3FC18 DCD __libc_enable_secure ; DATA XREF: _nl_find_locale+9Cr .text:0003FC1C off_3FC1C DCD _nl_C_name ; DATA XREF: _nl_find_locale+A4r .text:0003FC1C ; _nl_find_locale:loc_3F928r .text:0003FC20 off_3FC20 DCD _nl_POSIX_name ; DATA XREF: _nl_find_locale+E4r .text:0003FC20 ; "POSIX" .text:0003FC24 off_3FC24 DCD _nl_C ; DATA XREF: _nl_find_locale+F8r .text:0003FC28 off_3FC28 DCD locale_file_list ; DATA XREF: _nl_find_locale+1D0r .text:0003FC2C off_3FC2C DCD codeset_idx.96 ; DATA XREF: _nl_find_locale+2FCr .text:0003FC30 off_3FC30 DCD aLocale_codeset ; DATA XREF: _nl_find_locale+318r .text:0003FC30 ; "locale_codeset != ((void *)0)" .text:0003FC34 off_3FC34 DCD aFindlocale_c ; DATA XREF: _nl_find_locale+31Cr .text:0003FC34 ; "findlocale.c" .text:0003FC38 off_3FC38 DCD a_nl_find_local ; DATA XREF: _nl_find_locale+320r .text:0003FC38 ; "_nl_find_locale" .text:0003FC3C off_3FC3C DCD __ctype_b ; DATA XREF: _nl_find_locale+35Cr .text:0003FC40 off_3FC40 DCD __ctype_toupper ; DATA XREF: _nl_find_locale+360r .text:0003FC44 ; --------------------------------------------------------------------------- .text:0003FC44 .text:0003FC44 loc_3FC44 ; CODE XREF: _nl_find_locale+390j .text:0003FC44 CMP R3, #0x2F .text:0003FC48 BNE loc_3FC5C .text:0003FC4C ADD R1, R1, #1 .text:0003FC50 CMP R1, #3 .text:0003FC54 BEQ loc_3FC68 .text:0003FC58 STRB R3, [R12],#1 .text:0003FC5C .text:0003FC5C loc_3FC5C ; CODE XREF: _nl_find_locale+3A0j .text:0003FC5C ; _nl_find_locale+3E0j .text:0003FC5C LDRB R3, [R0,#1]! .text:0003FC60 CMP R3, #0 .text:0003FC64 BNE loc_3FBD0 .text:0003FC68 .text:0003FC68 loc_3FC68 ; CODE XREF: _nl_find_locale+358j .text:0003FC68 ; _nl_find_locale+3ECj .text:0003FC68 MOV R3, R1 .text:0003FC6C ADD R1, R1, #1 .text:0003FC70 CMP R3, #1 .text:0003FC74 BGT loc_3FC90 .text:0003FC78 MOV R2, #0x2F .text:0003FC7C .text:0003FC7C loc_3FC7C ; CODE XREF: _nl_find_locale+424j .text:0003FC7C MOV R3, R1 .text:0003FC80 ADD R1, R1, #1 .text:0003FC84 CMP R3, #1 .text:0003FC88 STRB R2, [R12],#1 .text:0003FC8C BLE loc_3FC7C .text:0003FC90 .text:0003FC90 loc_3FC90 ; CODE XREF: _nl_find_locale+40Cj .text:0003FC90 MOV R4, #0 .text:0003FC94 STRB R4, [R12] .text:0003FC98 LDR R0, [R11,#var_38] .text:0003FC9C BL strlen .text:0003FCA0 ADD R0, R0, #6 .text:0003FCA4 BIC R0, R0, #3 .text:0003FCA8 RSB SP, R0, SP .text:0003FCAC LDR R12, [R11,#var_38] .text:0003FCB0 ADD R0, SP, #0x78+var_50 .text:0003FCB4 LDRB R3, [R12] .text:0003FCB8 MOV R1, R0 .text:0003FCBC CMP R3, R4 .text:0003FCC0 BEQ loc_3FD30 .text:0003FCC4 LDR R3, =__ctype_b .text:0003FCC8 LDR R5, =__ctype_toupper .text:0003FCCC LDR LR, [R3] .text:0003FCD0 .text:0003FCD0 loc_3FCD0 ; CODE XREF: _nl_find_locale+4C4j .text:0003FCD0 LDRB R2, [R12] .text:0003FCD4 LDRB R3, [LR,R2,LSL#1] .text:0003FCD8 TST R3, #8 .text:0003FCDC BNE loc_3FCFC .text:0003FCE0 AND R3, R2, #0xFF .text:0003FCE4 CMP R3, #0x5F .text:0003FCE8 BEQ loc_3FCFC .text:0003FCEC CMP R3, #0x2D .text:0003FCF0 BEQ loc_3FCFC .text:0003FCF4 CMP R3, #0x2E .text:0003FCF8 BNE loc_3FD0C .text:0003FCFC .text:0003FCFC loc_3FCFC ; CODE XREF: _nl_find_locale+474j .text:0003FCFC ; _nl_find_locale+480j ... .text:0003FCFC LDR R3, [R5] .text:0003FD00 LDR R2, [R3,R2,LSL#2] .text:0003FD04 STRB R2, [R1],#1 .text:0003FD08 B loc_3FD24 .text:0003FD0C ; --------------------------------------------------------------------------- .text:0003FD0C .text:0003FD0C loc_3FD0C ; CODE XREF: _nl_find_locale+490j .text:0003FD0C CMP R3, #0x2F .text:0003FD10 BNE loc_3FD24 .text:0003FD14 ADD R4, R4, #1 .text:0003FD18 CMP R4, #3 .text:0003FD1C BEQ loc_3FD30 .text:0003FD20 STRB R3, [R1],#1 .text:0003FD24 .text:0003FD24 loc_3FD24 ; CODE XREF: _nl_find_locale+4A0j .text:0003FD24 ; _nl_find_locale+4A8j .text:0003FD24 LDRB R3, [R12,#1]! .text:0003FD28 CMP R3, #0 .text:0003FD2C BNE loc_3FCD0 .text:0003FD30 .text:0003FD30 loc_3FD30 ; CODE XREF: _nl_find_locale+458j .text:0003FD30 ; _nl_find_locale+4B4j .text:0003FD30 MOV R3, R4 .text:0003FD34 ADD R4, R4, #1 .text:0003FD38 CMP R3, #1 .text:0003FD3C BGT loc_3FD58 .text:0003FD40 MOV R2, #0x2F .text:0003FD44 .text:0003FD44 loc_3FD44 ; CODE XREF: _nl_find_locale+4ECj .text:0003FD44 MOV R3, R4 .text:0003FD48 ADD R4, R4, #1 .text:0003FD4C CMP R3, #1 .text:0003FD50 STRB R2, [R1],#1 .text:0003FD54 BLE loc_3FD44 .text:0003FD58 .text:0003FD58 loc_3FD58 ; CODE XREF: _nl_find_locale+4D4j .text:0003FD58 MOV R5, #0 .text:0003FD5C STRB R5, [R1] .text:0003FD60 MOV R1, R0 .text:0003FD64 BL upstr_0 .text:0003FD68 BL __gconv_lookup_alias .text:0003FD6C MOV R4, R0 .text:0003FD70 MOV R0, R6 .text:0003FD74 MOV R1, R0 .text:0003FD78 BL upstr_0 .text:0003FD7C BL __gconv_lookup_alias .text:0003FD80 MOV R1, R0 .text:0003FD84 MOV R0, R4 .text:0003FD88 BL strcmp .text:0003FD8C CMP R0, R5 .text:0003FD90 BEQ loc_3FD9C .text:0003FD94 .text:0003FD94 loc_3FD94 ; CODE XREF: _nl_find_locale+25Cj .text:0003FD94 ; _nl_find_locale+2ECj .text:0003FD94 MOV R0, #0 .text:0003FD98 B loc_3FE48 .text:0003FD9C ; --------------------------------------------------------------------------- .text:0003FD9C .text:0003FD9C loc_3FD9C ; CODE XREF: _nl_find_locale+2F8j .text:0003FD9C ; _nl_find_locale+528j .text:0003FD9C LDR R3, [R7,#8] .text:0003FDA0 LDR R2, [R3] .text:0003FDA4 CMP R2, #0 .text:0003FDA8 BNE loc_3FDEC .text:0003FDAC LDR R0, [R7] .text:0003FDB0 MOV R1, #0x2F .text:0003FDB4 BL strrchr .text:0003FDB8 MOV R1, R0 .text:0003FDBC SUB R0, R1, #1 .text:0003FDC0 B loc_3FDD0 .text:0003FDC0 ; --------------------------------------------------------------------------- .text:0003FDC4 off_3FDC4 DCD __ctype_b ; DATA XREF: _nl_find_locale+45Cr .text:0003FDC8 off_3FDC8 DCD __ctype_toupper ; DATA XREF: _nl_find_locale+460r .text:0003FDCC ; --------------------------------------------------------------------------- .text:0003FDCC .text:0003FDCC loc_3FDCC ; CODE XREF: _nl_find_locale+570j .text:0003FDCC SUB R0, R0, #1 .text:0003FDD0 .text:0003FDD0 loc_3FDD0 ; CODE XREF: _nl_find_locale+558j .text:0003FDD0 LDRB R3, [R0,#-1] .text:0003FDD4 CMP R3, #0x2F .text:0003FDD8 BNE loc_3FDCC .text:0003FDDC RSB R1, R0, R1 .text:0003FDE0 LDR R4, [R7,#8] .text:0003FDE4 BL strndup .text:0003FDE8 STR R0, [R4] .text:0003FDEC .text:0003FDEC loc_3FDEC ; CODE XREF: _nl_find_locale+540j .text:0003FDEC LDR R0, [R11,#var_30] .text:0003FDF0 CMP R0, #0 .text:0003FDF4 BEQ loc_3FE08 .text:0003FDF8 LDR R1, =aTranslit_2 ; "TRANSLIT" .text:0003FDFC BL strcasecmp .text:0003FE00 CMP R0, #0 .text:0003FE04 BEQ loc_3FE24 .text:0003FE08 .text:0003FE08 loc_3FE08 ; CODE XREF: _nl_find_locale+58Cj .text:0003FE08 LDR R0, [R11,#var_40] .text:0003FE0C CMP R0, #0 .text:0003FE10 BEQ loc_3FE30 .text:0003FE14 LDR R1, =aTranslit_2 ; "TRANSLIT" .text:0003FE18 BL strcasecmp .text:0003FE1C CMP R0, #0 .text:0003FE20 BNE loc_3FE30 .text:0003FE24 .text:0003FE24 loc_3FE24 ; CODE XREF: _nl_find_locale+59Cj .text:0003FE24 LDR R2, [R7,#8] .text:0003FE28 MOV R3, #1 .text:0003FE2C STR R3, [R2,#0x14] .text:0003FE30 .text:0003FE30 loc_3FE30 ; CODE XREF: _nl_find_locale+5A8j .text:0003FE30 ; _nl_find_locale+5B8j .text:0003FE30 LDR R2, [R7,#8] .text:0003FE34 LDR R3, [R2,#0x10] .text:0003FE38 CMN R3, #3 .text:0003FE3C ADDLS R3, R3, #1 .text:0003FE40 STRLS R3, [R2,#0x10] .text:0003FE44 LDR R0, [R7,#8] .text:0003FE48 .text:0003FE48 loc_3FE48 ; CODE XREF: _nl_find_locale+100j .text:0003FE48 ; _nl_find_locale+530j .text:0003FE48 B locret_3FE50 .text:0003FE48 ; --------------------------------------------------------------------------- .text:0003FE4C off_3FE4C DCD aTranslit_2 ; DATA XREF: _nl_find_locale+590r .text:0003FE4C ; _nl_find_locale+5ACr .text:0003FE4C ; "TRANSLIT" .text:0003FE50 ; --------------------------------------------------------------------------- .text:0003FE50 .text:0003FE50 locret_3FE50 ; CODE XREF: _nl_find_locale:loc_3FE48j .text:0003FE50 LDMDB R11, {R4-R11,SP,PC} .text:0003FE50 ; End of function _nl_find_locale .text:0003FE50 .text:0003FE54 .text:0003FE54 ; =============== S U B R O U T I N E ======================================= .text:0003FE54 .text:0003FE54 ; Attributes: bp-based frame .text:0003FE54 .text:0003FE54 EXPORT _nl_remove_locale .text:0003FE54 _nl_remove_locale .text:0003FE54 MOV R12, SP .text:0003FE58 STMFD SP!, {R4,R11,R12,LR,PC} .text:0003FE5C MOV R4, R1 .text:0003FE60 LDR R3, [R4,#0x10] .text:0003FE64 SUB R11, R12, #4 .text:0003FE68 SUB R3, R3, #1 .text:0003FE6C CMP R3, #0 .text:0003FE70 STR R3, [R4,#0x10] .text:0003FE74 LDMNEDB R11, {R4,R11,SP,PC} .text:0003FE78 LDR R3, =locale_file_list .text:0003FE7C LDR R0, [R3,R0,LSL#2] .text:0003FE80 LDR R2, [R0,#8] .text:0003FE84 CMP R2, R4 .text:0003FE88 BEQ loc_3FE9C .text:0003FE8C .text:0003FE8C loc_3FE8C ; CODE XREF: _nl_remove_locale+44j .text:0003FE8C LDR R0, [R0,#0xC] .text:0003FE90 LDR R3, [R0,#8] .text:0003FE94 CMP R3, R4 .text:0003FE98 BNE loc_3FE8C .text:0003FE9C .text:0003FE9C loc_3FE9C ; CODE XREF: _nl_remove_locale+34j .text:0003FE9C MOV R3, #0 .text:0003FEA0 STR R3, [R0,#4] .text:0003FEA4 STR R3, [R0,#8] .text:0003FEA8 LDR R0, [R4] .text:0003FEAC BL free .text:0003FEB0 LDR R3, [R4,#0xC] .text:0003FEB4 CMP R3, #0 .text:0003FEB8 BEQ loc_3FED8 .text:0003FEBC LDMIB R4, {R0,R1} .text:0003FEC0 BL munmap .text:0003FEC4 CMP R0, #0 .text:0003FEC8 BEQ loc_3FEE0 .text:0003FECC MOV R3, 0xFFFFFFFF .text:0003FED0 STR R3, [R4,#0x10] .text:0003FED4 LDMDB R11, {R4,R11,SP,PC} .text:0003FED8 ; --------------------------------------------------------------------------- .text:0003FED8 .text:0003FED8 loc_3FED8 ; CODE XREF: _nl_remove_locale+64j .text:0003FED8 LDR R0, [R4,#4] .text:0003FEDC BL free .text:0003FEE0 .text:0003FEE0 loc_3FEE0 ; CODE XREF: _nl_remove_locale+74j .text:0003FEE0 MOV R0, R4 .text:0003FEE4 BL free .text:0003FEE8 LDMDB R11, {R4,R11,SP,PC} .text:0003FEE8 ; End of function _nl_remove_locale .text:0003FEE8 .text:0003FEE8 ; --------------------------------------------------------------------------- .text:0003FEEC off_3FEEC DCD locale_file_list ; DATA XREF: _nl_remove_locale+24r .text:0003FEF0 .text:0003FEF0 ; =============== S U B R O U T I N E ======================================= .text:0003FEF0 .text:0003FEF0 ; Attributes: bp-based frame .text:0003FEF0 .text:0003FEF0 free_mem_8 .text:0003FEF0 MOV R12, SP .text:0003FEF4 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0003FEF8 SUB R11, R12, #4 .text:0003FEFC MOV R3, #0 .text:0003FF00 LDR R10, =locale_file_list .text:0003FF04 .text:0003FF04 loc_3FF04 ; CODE XREF: free_mem_8+7Cj .text:0003FF04 CMP R3, #6 .text:0003FF08 ADD R7, R3, #1 .text:0003FF0C BEQ loc_3FF64 .text:0003FF10 MOV R3, R3,LSL#2 .text:0003FF14 LDR R4, [R10,R3] .text:0003FF18 MOV R6, R3 .text:0003FF1C CMP R4, #0 .text:0003FF20 BEQ loc_3FF64 .text:0003FF24 LDR R8, =_nl_C .text:0003FF28 .text:0003FF28 loc_3FF28 ; CODE XREF: free_mem_8+70j .text:0003FF28 LDR R0, [R4,#8] .text:0003FF2C MOV R5, R4 .text:0003FF30 CMP R0, #0 .text:0003FF34 BEQ loc_3FF48 .text:0003FF38 LDR R3, [R8,R6] .text:0003FF3C CMP R0, R3 .text:0003FF40 BEQ loc_3FF48 .text:0003FF44 BL _nl_unload_locale .text:0003FF48 .text:0003FF48 loc_3FF48 ; CODE XREF: free_mem_8+44j .text:0003FF48 ; free_mem_8+50j .text:0003FF48 LDR R0, [R5] .text:0003FF4C LDR R4, [R4,#0xC] .text:0003FF50 BL free .text:0003FF54 MOV R0, R5 .text:0003FF58 BL free .text:0003FF5C CMP R4, #0 .text:0003FF60 BNE loc_3FF28 .text:0003FF64 .text:0003FF64 loc_3FF64 ; CODE XREF: free_mem_8+1Cj .text:0003FF64 ; free_mem_8+30j .text:0003FF64 MOV R3, R7 .text:0003FF68 CMP R3, #0xC .text:0003FF6C BLE loc_3FF04 .text:0003FF70 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0003FF70 ; End of function free_mem_8 .text:0003FF70 .text:0003FF70 ; --------------------------------------------------------------------------- .text:0003FF74 off_3FF74 DCD locale_file_list ; DATA XREF: free_mem_8+10r .text:0003FF78 off_3FF78 DCD _nl_C ; DATA XREF: free_mem_8+34r .text:0003FF7C .text:0003FF7C ; =============== S U B R O U T I N E ======================================= .text:0003FF7C .text:0003FF7C ; Attributes: bp-based frame .text:0003FF7C .text:0003FF7C EXPORT _nl_load_locale .text:0003FF7C _nl_load_locale ; CODE XREF: _nl_find_locale+284p .text:0003FF7C ; _nl_find_locale+2C8p .text:0003FF7C .text:0003FF7C var_94 = -0x94 .text:0003FF7C var_90 = -0x90 .text:0003FF7C var_8C = -0x8C .text:0003FF7C var_88 = -0x88 .text:0003FF7C var_78 = -0x78 .text:0003FF7C var_5C = -0x5C .text:0003FF7C var_28 = -0x28 .text:0003FF7C .text:0003FF7C MOV R12, SP .text:0003FF80 STMFD SP!, {R4-R12,LR,PC} .text:0003FF84 SUB R11, R12, #4 .text:0003FF88 MOV R2, #1 .text:0003FF8C SUB SP, SP, #0x74 .text:0003FF90 STR R2, [R11,#var_94] .text:0003FF94 MOV R9, R0 .text:0003FF98 STR R2, [R9,#4] .text:0003FF9C MOV R10, #0 .text:0003FFA0 STR R10, [R9,#8] .text:0003FFA4 LDR R0, [R9] .text:0003FFA8 STR R1, [R11,#var_8C] .text:0003FFAC MOV R1, R10 .text:0003FFB0 BL open .text:0003FFB4 SUBS R8, R0, #0 .text:0003FFB8 BLT locret_402CC .text:0003FFBC MOV R0, #3 .text:0003FFC0 MOV R1, R8 .text:0003FFC4 SUB R7, R11, #-var_88 .text:0003FFC8 MOV R2, R7 .text:0003FFCC BL __fxstat64 .text:0003FFD0 CMP R0, R10 .text:0003FFD4 BLT loc_40190 .text:0003FFD8 LDR R3, [R11,#var_78] .text:0003FFDC AND R3, R3, #0xF000 .text:0003FFE0 CMP R3, #0x4000 .text:0003FFE4 BNE loc_40074 .text:0003FFE8 MOV R0, R8 .text:0003FFEC BL close .text:0003FFF0 LDR R0, [R9] .text:0003FFF4 BL strlen .text:0003FFF8 LDR R1, [R11,#var_8C] .text:0003FFFC LDR R3, =_nl_category_name_sizes .text:00040000 MOV R5, R1,LSL#2 .text:00040004 LDR R6, [R3,R5] .text:00040008 MOV R2, R0 .text:0004000C LDR R1, [R9] .text:00040010 ADD R0, R6, R0 .text:00040014 ADD R0, R0, #9 .text:00040018 BIC R0, R0, #3 .text:0004001C RSB SP, R0, SP .text:00040020 ADD R4, SP, #0x9C+var_94 .text:00040024 MOV R0, R4 .text:00040028 BL mempcpy .text:0004002C LDR R1, =aSys_ ; "/SYS_" .text:00040030 MOV R2, #5 .text:00040034 BL mempcpy .text:00040038 LDR R3, =_nl_category_names .text:0004003C LDR R1, [R3,R5] .text:00040040 ADD R2, R6, #1 .text:00040044 BL mempcpy .text:00040048 MOV R0, R4 .text:0004004C MOV R1, R10 .text:00040050 BL open .text:00040054 SUBS R8, R0, #0 .text:00040058 BLT locret_402CC .text:0004005C MOV R0, #3 .text:00040060 MOV R1, R8 .text:00040064 MOV R2, R7 .text:00040068 BL __fxstat64 .text:0004006C CMP R0, R10 .text:00040070 BLT loc_40190 .text:00040074 .text:00040074 loc_40074 ; CODE XREF: _nl_load_locale+68j .text:00040074 BL __errno_location .text:00040078 LDR R0, [R0] .text:0004007C STR R0, [R11,#var_90] .text:00040080 STMEA SP, {R8,R10} .text:00040084 MOV R12, 0xFFFFFFCC .text:00040088 SUB R3, R11, #-var_28 .text:0004008C LDR R2, [R11,#var_94] .text:00040090 MOV R0, R10 .text:00040094 LDR R1, [R3,R12] .text:00040098 MOV R3, #2 .text:0004009C ADD R12, R12, R11 .text:000400A0 SUB R4, R12, #0x28 .text:000400A4 BL mmap .text:000400A8 MOV R7, R0 .text:000400AC CMN R7, #1 .text:000400B0 BEQ loc_400E0 .text:000400B4 LDR R3, [R4,#4] .text:000400B8 CMP R3, #0 .text:000400BC BGT loc_40168 .text:000400C0 BNE loc_40190 .text:000400C4 LDR R3, [R11,#var_5C] .text:000400C8 CMP R3, #7 .text:000400CC BHI loc_40168 .text:000400D0 B loc_40190 .text:000400D4 ; --------------------------------------------------------------------------- .text:000400D4 .text:000400D4 loc_400D4 ; CODE XREF: _nl_load_locale+2C8j .text:000400D4 MOV R0, R4 .text:000400D8 BL free .text:000400DC B loc_401D0 .text:000400E0 ; --------------------------------------------------------------------------- .text:000400E0 .text:000400E0 loc_400E0 ; CODE XREF: _nl_load_locale+134j .text:000400E0 BL __errno_location .text:000400E4 LDR R3, [R0] .text:000400E8 CMP R3, #0x26 .text:000400EC BNE loc_40190 .text:000400F0 STR R10, [R11,#var_94] .text:000400F4 LDR R0, [R11,#var_5C] .text:000400F8 BL malloc .text:000400FC SUBS R7, R0, #0 .text:00040100 BEQ loc_40190 .text:00040104 LDR R5, [R11,#var_5C] .text:00040108 MOV R6, R7 .text:0004010C CMP R5, #0 .text:00040110 BLE loc_4015C .text:00040114 MOV R10, #0x16 .text:00040118 .text:00040118 loc_40118 ; CODE XREF: _nl_load_locale+1DCj .text:00040118 MOV R0, R8 .text:0004011C MOV R1, R6 .text:00040120 MOV R2, R5 .text:00040124 BL read .text:00040128 SUBS R4, R0, #0 .text:0004012C BGT loc_4014C .text:00040130 MOV R0, R7 .text:00040134 BL free .text:00040138 CMP R4, #0 .text:0004013C BNE loc_40190 .text:00040140 BL __errno_location .text:00040144 STR R10, [R0] .text:00040148 B loc_40190 .text:0004014C ; --------------------------------------------------------------------------- .text:0004014C .text:0004014C loc_4014C ; CODE XREF: _nl_load_locale+1B0j .text:0004014C ADD R6, R6, R4 .text:00040150 RSB R5, R4, R5 .text:00040154 CMP R5, #0 .text:00040158 BGT loc_40118 .text:0004015C .text:0004015C loc_4015C ; CODE XREF: _nl_load_locale+194j .text:0004015C BL __errno_location .text:00040160 LDR R1, [R11,#var_90] .text:00040164 STR R1, [R0] .text:00040168 .text:00040168 loc_40168 ; CODE XREF: _nl_load_locale+140j .text:00040168 ; _nl_load_locale+150j .text:00040168 MOV R3, #0x820 .text:0004016C LDR R1, [R11,#var_8C] .text:00040170 ADD R3, R3, #0x20000008 .text:00040174 LDR R2, [R7] .text:00040178 EOR R3, R1, R3 .text:0004017C CMP R2, R3 .text:00040180 BEQ loc_4019C .text:00040184 .text:00040184 loc_40184 ; CODE XREF: _nl_load_locale+260j .text:00040184 ; _nl_load_locale+270j .text:00040184 LDR R1, [R11,#var_5C] .text:00040188 MOV R0, R7 .text:0004018C BL munmap .text:00040190 .text:00040190 loc_40190 ; CODE XREF: _nl_load_locale+58j .text:00040190 ; _nl_load_locale+F4j ... .text:00040190 MOV R0, R8 .text:00040194 BL close .text:00040198 B locret_402CC .text:0004019C ; --------------------------------------------------------------------------- .text:0004019C .text:0004019C loc_4019C ; CODE XREF: _nl_load_locale+204j .text:0004019C LDR R1, =_nl_category_num_items .text:000401A0 LDR R3, [R11,#var_8C] .text:000401A4 LDR R0, [R7,#4] .text:000401A8 MOV R2, R3,LSL#2 .text:000401AC LDR R3, [R1,R2] .text:000401B0 MOV R5, R2 .text:000401B4 CMP R0, R3 .text:000401B8 BCC loc_401D0 .text:000401BC MOV R0, R0,LSL#2 .text:000401C0 LDR R2, [R11,#var_5C] .text:000401C4 ADD R3, R0, #8 .text:000401C8 CMP R3, R2 .text:000401CC BCC loc_401E0 .text:000401D0 .text:000401D0 loc_401D0 ; CODE XREF: _nl_load_locale+160j .text:000401D0 ; _nl_load_locale+23Cj .text:000401D0 BL __errno_location .text:000401D4 MOV R3, #0x16 .text:000401D8 STR R3, [R0] .text:000401DC B loc_40184 .text:000401E0 ; --------------------------------------------------------------------------- .text:000401E0 .text:000401E0 loc_401E0 ; CODE XREF: _nl_load_locale+250j .text:000401E0 ADD R0, R0, #0x20 .text:000401E4 BL malloc .text:000401E8 SUBS R4, R0, #0 .text:000401EC BEQ loc_40184 .text:000401F0 MOV R3, #0 .text:000401F4 STMIA R4, {R3,R7} .text:000401F8 LDR R1, [R11,#var_5C] .text:000401FC LDR R2, [R11,#var_94] .text:00040200 STR R3, [R4,#0x10] .text:00040204 STR R3, [R4,#0x14] .text:00040208 STR R3, [R4,#0x18] .text:0004020C STR R2, [R4,#0xC] .text:00040210 STR R1, [R4,#8] .text:00040214 LDR R2, [R7,#4] .text:00040218 MOV R12, R3 .text:0004021C CMP R12, R2 .text:00040220 STR R2, [R4,#0x1C] .text:00040224 BCS loc_402C0 .text:00040228 ADD LR, R4, #0x20 .text:0004022C LDR R6, =_nl_value_types .text:00040230 .text:00040230 loc_40230 ; CODE XREF: _nl_load_locale+340j .text:00040230 MOV R0, R12,LSL#2 .text:00040234 ADD R3, R7, #8 .text:00040238 LDR R1, [R3,R0] .text:0004023C LDR R2, [R4,#8] .text:00040240 CMP R1, R2 .text:00040244 BGT loc_400D4 .text:00040248 LDR R3, [R6,R5] .text:0004024C LDR R2, [R3,R12,LSL#2] .text:00040250 CMP R2, #5 .text:00040254 BNE loc_402A4 .text:00040258 TST R1, #3 .text:0004025C BEQ loc_40274 .text:00040260 LDR R0, =aIdx__alignof__ ; "idx % __alignof__ (u_int32_t) == 0" .text:00040264 LDR R1, =aLoadlocale_c ; "loadlocale.c" .text:00040268 LDR R3, =a_nl_load_local ; "_nl_load_locale" .text:0004026C MOV R2, #0xDD .text:00040270 BL __assert_fail .text:00040274 ; --------------------------------------------------------------------------- .text:00040274 .text:00040274 loc_40274 ; CODE XREF: _nl_load_locale+2E0j .text:00040274 LDR R3, [R4,#4] .text:00040278 LDR R2, [R3,R1] .text:0004027C STR R2, [LR,R0] .text:00040280 B loc_402B0 .text:00040280 ; --------------------------------------------------------------------------- .text:00040284 off_40284 DCD _nl_category_name_sizes ; DATA XREF: _nl_load_locale+80r .text:00040288 off_40288 DCD aSys_ ; DATA XREF: _nl_load_locale+B0r .text:00040288 ; "/SYS_" .text:0004028C off_4028C DCD _nl_category_names ; DATA XREF: _nl_load_locale+BCr .text:00040290 off_40290 DCD _nl_category_num_items .text:00040290 ; DATA XREF: _nl_load_locale:loc_4019Cr .text:00040294 off_40294 DCD _nl_value_types ; DATA XREF: _nl_load_locale+2B0r .text:00040298 off_40298 DCD aIdx__alignof__ ; DATA XREF: _nl_load_locale+2E4r .text:00040298 ; "idx % __alignof__ (u_int32_t) == 0" .text:0004029C off_4029C DCD aLoadlocale_c ; DATA XREF: _nl_load_locale+2E8r .text:0004029C ; "loadlocale.c" .text:000402A0 off_402A0 DCD a_nl_load_local ; DATA XREF: _nl_load_locale+2ECr .text:000402A0 ; "_nl_load_locale" .text:000402A4 ; --------------------------------------------------------------------------- .text:000402A4 .text:000402A4 loc_402A4 ; CODE XREF: _nl_load_locale+2D8j .text:000402A4 LDR R3, [R4,#4] .text:000402A8 ADD R3, R3, R1 .text:000402AC STR R3, [LR,R0] .text:000402B0 .text:000402B0 loc_402B0 ; CODE XREF: _nl_load_locale+304j .text:000402B0 LDR R3, [R4,#0x1C] .text:000402B4 ADD R12, R12, #1 .text:000402B8 CMP R12, R3 .text:000402BC BCC loc_40230 .text:000402C0 .text:000402C0 loc_402C0 ; CODE XREF: _nl_load_locale+2A8j .text:000402C0 MOV R0, R8 .text:000402C4 BL close .text:000402C8 STR R4, [R9,#8] .text:000402CC .text:000402CC locret_402CC ; CODE XREF: _nl_load_locale+3Cj .text:000402CC ; _nl_load_locale+DCj ... .text:000402CC LDMDB R11, {R4-R11,SP,PC} .text:000402CC ; End of function _nl_load_locale .text:000402CC .text:000402D0 .text:000402D0 ; =============== S U B R O U T I N E ======================================= .text:000402D0 .text:000402D0 ; Attributes: bp-based frame .text:000402D0 .text:000402D0 EXPORT _nl_unload_locale .text:000402D0 _nl_unload_locale ; CODE XREF: free_mem_7+80p .text:000402D0 ; free_mem_8+54p .text:000402D0 MOV R12, SP .text:000402D4 STMFD SP!, {R4,R11,R12,LR,PC} .text:000402D8 MOV R4, R0 .text:000402DC LDR R3, [R4,#0xC] .text:000402E0 SUB R11, R12, #4 .text:000402E4 CMP R3, #0 .text:000402E8 BEQ loc_402F8 .text:000402EC LDMIB R4, {R0,R1} .text:000402F0 BL munmap .text:000402F4 B loc_40300 .text:000402F8 ; --------------------------------------------------------------------------- .text:000402F8 .text:000402F8 loc_402F8 ; CODE XREF: _nl_unload_locale+18j .text:000402F8 LDR R0, [R4,#4] .text:000402FC BL free .text:00040300 .text:00040300 loc_40300 ; CODE XREF: _nl_unload_locale+24j .text:00040300 LDR R0, [R4,#0x18] .text:00040304 BL free .text:00040308 LDR R0, [R4] .text:0004030C BL free .text:00040310 MOV R0, R4 .text:00040314 BL free .text:00040318 LDMDB R11, {R4,R11,SP,PC} .text:00040318 ; End of function _nl_unload_locale .text:00040318 .text:0004031C .text:0004031C ; =============== S U B R O U T I N E ======================================= .text:0004031C .text:0004031C ; Attributes: bp-based frame .text:0004031C .text:0004031C WEAK __ctype_get_mb_cur_max .text:0004031C __ctype_get_mb_cur_max ; CODE XREF: vfprintf+128p .text:0004031C ; vfprintf+1724p ... .text:0004031C MOV R12, SP .text:00040320 STMFD SP!, {R11,R12,LR,PC} .text:00040324 LDR R3, =_nl_current_LC_CTYPE .text:00040328 LDR R2, [R3] .text:0004032C SUB R11, R12, #4 .text:00040330 LDR R0, [R2,#0x54] .text:00040334 LDMDB R11, {R11,SP,PC} .text:00040334 ; End of function __ctype_get_mb_cur_max .text:00040334 .text:00040334 ; --------------------------------------------------------------------------- .text:00040338 off_40338 DCD _nl_current_LC_CTYPE .text:00040338 ; DATA XREF: __ctype_get_mb_cur_max+8r .text:0004033C .text:0004033C ; =============== S U B R O U T I N E ======================================= .text:0004033C .text:0004033C ; Attributes: bp-based frame .text:0004033C .text:0004033C EXPORT _nl_postload_ctype .text:0004033C _nl_postload_ctype ; CODE XREF: free_mem_7+64p .text:0004033C MOV R12, SP .text:00040340 STMFD SP!, {R11,R12,LR,PC} .text:00040344 SUB R11, R12, #4 .text:00040348 LDR R12, =_nl_current_LC_CTYPE .text:0004034C LDR R1, [R12] .text:00040350 LDR R3, [R1,#0x20] .text:00040354 LDR R0, =__ctype_b .text:00040358 ADD R3, R3, #0x100 .text:0004035C STR R3, [R0] .text:00040360 LDR R2, [R1,#0x24] .text:00040364 LDR R0, =__ctype_toupper .text:00040368 ADD R2, R2, #0x200 .text:0004036C STR R2, [R0] .text:00040370 LDR R3, [R1,#0x2C] .text:00040374 LDR R2, =__ctype_tolower .text:00040378 ADD R3, R3, #0x200 .text:0004037C STR R3, [R2] .text:00040380 LDR R0, =__ctype32_b .text:00040384 LDR R3, [R1,#0x34] .text:00040388 STR R3, [R0] .text:0004038C LDR R2, =__ctype32_toupper .text:00040390 LDR R3, [R1,#0x5C] .text:00040394 STR R3, [R2] .text:00040398 LDR R0, =__ctype32_tolower .text:0004039C LDR R3, [R1,#0x60] .text:000403A0 STR R3, [R0] .text:000403A4 LDR LR, =__ctype32_wctype .text:000403A8 MOV R0, #0 .text:000403AC LDR R2, [R1,#0x64] .text:000403B0 ADD R1, R1, #0x20 .text:000403B4 MOV R2, R2,LSL#2 .text:000403B8 .text:000403B8 loc_403B8 ; CODE XREF: _nl_postload_ctype+90j .text:000403B8 LDR R3, [R1,R2] .text:000403BC ADD R2, R2, #4 .text:000403C0 STR R3, [LR,R0,LSL#2] .text:000403C4 ADD R0, R0, #1 .text:000403C8 CMP R0, #0xB .text:000403CC BLS loc_403B8 .text:000403D0 LDR LR, =__ctype32_wctrans .text:000403D4 LDR R3, [R12] .text:000403D8 MOV R0, #0 .text:000403DC LDR R2, [R3,#0x68] .text:000403E0 ADD R1, R3, #0x20 .text:000403E4 MOV R2, R2,LSL#2 .text:000403E8 .text:000403E8 loc_403E8 ; CODE XREF: _nl_postload_ctype+C0j .text:000403E8 LDR R3, [R1,R2] .text:000403EC ADD R2, R2, #4 .text:000403F0 STR R3, [LR,R0,LSL#2] .text:000403F4 ADD R0, R0, #1 .text:000403F8 CMP R0, #1 .text:000403FC BLS loc_403E8 .text:00040400 LDR R3, [R12] .text:00040404 LDR R2, =__ctype32_width .text:00040408 LDR R1, [R3,#0x50] .text:0004040C STR R1, [R2] .text:00040410 LDMDB R11, {R11,SP,PC} .text:00040410 ; End of function _nl_postload_ctype .text:00040410 .text:00040410 ; --------------------------------------------------------------------------- .text:00040414 off_40414 DCD _nl_current_LC_CTYPE ; DATA XREF: _nl_postload_ctype+Cr .text:00040418 off_40418 DCD __ctype_b ; DATA XREF: _nl_postload_ctype+18r .text:0004041C off_4041C DCD __ctype_toupper ; DATA XREF: _nl_postload_ctype+28r .text:00040420 off_40420 DCD __ctype_tolower ; DATA XREF: _nl_postload_ctype+38r .text:00040424 off_40424 DCD __ctype32_b ; DATA XREF: _nl_postload_ctype+44r .text:00040428 off_40428 DCD __ctype32_toupper ; DATA XREF: _nl_postload_ctype+50r .text:0004042C off_4042C DCD __ctype32_tolower ; DATA XREF: _nl_postload_ctype+5Cr .text:00040430 off_40430 DCD __ctype32_wctype ; DATA XREF: _nl_postload_ctype+68r .text:00040434 off_40434 DCD __ctype32_wctrans ; DATA XREF: _nl_postload_ctype+94r .text:00040438 off_40438 DCD __ctype32_width ; DATA XREF: _nl_postload_ctype+C8r .text:0004043C .text:0004043C ; =============== S U B R O U T I N E ======================================= .text:0004043C .text:0004043C ; Attributes: bp-based frame .text:0004043C .text:0004043C EXPORT _nl_postload_time .text:0004043C _nl_postload_time .text:0004043C MOV R12, SP .text:00040440 STMFD SP!, {R11,R12,LR,PC} .text:00040444 LDR R2, =era_initialized .text:00040448 MOV R1, #0 .text:0004044C STR R1, [R2] .text:00040450 LDR R3, =alt_digits_initialized .text:00040454 STR R1, [R3] .text:00040458 LDR R2, =walt_digits_initialized .text:0004045C SUB R11, R12, #4 .text:00040460 STR R1, [R2] .text:00040464 LDMDB R11, {R11,SP,PC} .text:00040464 ; End of function _nl_postload_time .text:00040464 .text:00040464 ; --------------------------------------------------------------------------- .text:00040468 off_40468 DCD era_initialized ; DATA XREF: _nl_postload_time+8r .text:0004046C off_4046C DCD alt_digits_initialized ; DATA XREF: _nl_postload_time+14r .text:00040470 off_40470 DCD walt_digits_initialized .text:00040470 ; DATA XREF: _nl_postload_time+1Cr .text:00040474 .text:00040474 ; =============== S U B R O U T I N E ======================================= .text:00040474 .text:00040474 ; Attributes: bp-based frame .text:00040474 .text:00040474 _nl_init_era_entries ; CODE XREF: _nl_get_era_entry+38p .text:00040474 ; _nl_select_era_entry+20p .text:00040474 MOV R12, SP .text:00040478 STMFD SP!, {R4-R12,LR,PC} .text:0004047C LDR R3, =0 .text:00040480 SUB R11, R12, #4 .text:00040484 CMP R3, #0 .text:00040488 BEQ loc_40498 .text:0004048C LDR R0, =__libc_setlocale_lock .text:00040490 MOV LR, PC .text:00040494 MOV PC, R3 .text:00040498 .text:00040498 loc_40498 ; CODE XREF: _nl_init_era_entries+14j .text:00040498 LDR R3, =era_initialized .text:0004049C LDR R4, [R3] .text:000404A0 CMP R4, #0 .text:000404A4 BNE loc_4066C .text:000404A8 LDR R6, =_nl_current_LC_TIME .text:000404AC LDR R3, [R6] .text:000404B0 LDR R5, [R3,#0xE8] .text:000404B4 CMP R5, #0 .text:000404B8 BNE loc_404D0 .text:000404BC LDR R4, =eras .text:000404C0 LDR R0, [R4] .text:000404C4 BL free .text:000404C8 STR R5, [R4] .text:000404CC B loc_40660 .text:000404D0 ; --------------------------------------------------------------------------- .text:000404D0 .text:000404D0 loc_404D0 ; CODE XREF: _nl_init_era_entries+44j .text:000404D0 LDR R2, =num_eras .text:000404D4 LDR R10, =eras .text:000404D8 LDR R3, [R2] .text:000404DC MOV R9, R2 .text:000404E0 CMP R3, R5 .text:000404E4 BEQ loc_40500 .text:000404E8 ADD R1, R5, R5,LSL#1 .text:000404EC ADD R1, R5, R1,LSL#2 .text:000404F0 LDR R0, [R10] .text:000404F4 MOV R1, R1,LSL#2 .text:000404F8 BL realloc .text:000404FC STR R0, [R10] .text:00040500 .text:00040500 loc_40500 ; CODE XREF: _nl_init_era_entries+70j .text:00040500 LDR R3, [R10] .text:00040504 CMP R3, #0 .text:00040508 STREQ R4, [R9] .text:0004050C STREQ R4, [R10] .text:00040510 BEQ loc_40660 .text:00040514 LDR R3, [R6] .text:00040518 MOV R8, R4 .text:0004051C LDR R4, [R3,#0xEC] .text:00040520 CMP R8, R5 .text:00040524 STR R5, [R9] .text:00040528 BCS loc_40660 .text:0004052C MOV R6, R10 .text:00040530 MOV R5, R8 .text:00040534 .text:00040534 loc_40534 ; CODE XREF: _nl_init_era_entries+1E8j .text:00040534 MOV R1, R4 .text:00040538 LDR R0, [R6] .text:0004053C MOV R2, #0x20 .text:00040540 ADD R0, R5, R0 .text:00040544 BL memcpy .text:00040548 LDR R3, [R6] .text:0004054C ADD R1, R5, R3 .text:00040550 LDR R2, [R1,#8] .text:00040554 LDR R3, [R1,#0x14] .text:00040558 MOV R7, R4 .text:0004055C CMP R2, R3 .text:00040560 BLT loc_4058C .text:00040564 BNE loc_405A8 .text:00040568 LDR R2, [R1,#0xC] .text:0004056C LDR R3, [R1,#0x18] .text:00040570 CMP R2, R3 .text:00040574 BLT loc_4058C .text:00040578 BNE loc_405A8 .text:0004057C LDR R2, [R1,#0x10] .text:00040580 LDR R3, [R1,#0x1C] .text:00040584 CMP R2, R3 .text:00040588 BGT loc_405A8 .text:0004058C .text:0004058C loc_4058C ; CODE XREF: _nl_init_era_entries+ECj .text:0004058C ; _nl_init_era_entries+100j .text:0004058C LDR R2, [R10] .text:00040590 LDR R3, [R5,R2] .text:00040594 ADD R2, R5, R2 .text:00040598 CMP R3, #0x2B .text:0004059C BEQ loc_405C0 .text:000405A0 MOV R3, 0xFFFFFFFF .text:000405A4 B loc_405C4 .text:000405A8 ; --------------------------------------------------------------------------- .text:000405A8 .text:000405A8 loc_405A8 ; CODE XREF: _nl_init_era_entries+F0j .text:000405A8 ; _nl_init_era_entries+104j ... .text:000405A8 LDR R2, [R10] .text:000405AC LDR R3, [R5,R2] .text:000405B0 ADD R2, R5, R2 .text:000405B4 CMP R3, #0x2B .text:000405B8 MOV R3, 0xFFFFFFFF .text:000405BC BEQ loc_405C4 .text:000405C0 .text:000405C0 loc_405C0 ; CODE XREF: _nl_init_era_entries+128j .text:000405C0 MOV R3, #1 .text:000405C4 .text:000405C4 loc_405C4 ; CODE XREF: _nl_init_era_entries+130j .text:000405C4 ; _nl_init_era_entries+148j .text:000405C4 STR R3, [R2,#0x30] .text:000405C8 LDR R3, [R6] .text:000405CC ADD R4, R4, #0x20 .text:000405D0 ADD R3, R5, R3 .text:000405D4 STR R4, [R3,#0x20] .text:000405D8 MOV R0, R4 .text:000405DC MOV R1, #0 .text:000405E0 BL rawmemchr .text:000405E4 LDR R3, [R6] .text:000405E8 ADD R4, R0, #1 .text:000405EC ADD R3, R5, R3 .text:000405F0 STR R4, [R3,#0x24] .text:000405F4 MOV R0, R4 .text:000405F8 MOV R1, #0 .text:000405FC BL rawmemchr .text:00040600 ADD R2, R0, #4 .text:00040604 RSB R0, R7, R0 .text:00040608 ADD R0, R0, #4 .text:0004060C AND R0, R0, #3 .text:00040610 LDR R3, [R6] .text:00040614 RSB R4, R0, R2 .text:00040618 ADD R3, R5, R3 .text:0004061C STR R4, [R3,#0x28] .text:00040620 MOV R0, R4 .text:00040624 MOV R1, #0 .text:00040628 BL wcschr .text:0004062C LDR R3, [R6] .text:00040630 ADD R4, R0, #4 .text:00040634 ADD R3, R5, R3 .text:00040638 STR R4, [R3,#0x2C] .text:0004063C ADD R8, R8, #1 .text:00040640 MOV R0, R4 .text:00040644 MOV R1, #0 .text:00040648 BL wcschr .text:0004064C ADD R4, R0, #4 .text:00040650 LDR R3, [R9] .text:00040654 ADD R5, R5, #0x34 .text:00040658 CMP R8, R3 .text:0004065C BCC loc_40534 .text:00040660 .text:00040660 loc_40660 ; CODE XREF: _nl_init_era_entries+58j .text:00040660 ; _nl_init_era_entries+9Cj ... .text:00040660 LDR R2, =era_initialized .text:00040664 MOV R3, #1 .text:00040668 STR R3, [R2] .text:0004066C .text:0004066C loc_4066C ; CODE XREF: _nl_init_era_entries+30j .text:0004066C LDR R3, =0 .text:00040670 CMP R3, #0 .text:00040674 LDMEQDB R11, {R4-R11,SP,PC} .text:00040678 LDR R0, =__libc_setlocale_lock .text:0004067C MOV LR, PC .text:00040680 MOV PC, R3 .text:00040684 LDMDB R11, {R4-R11,SP,PC} .text:00040684 ; End of function _nl_init_era_entries .text:00040684 .text:00040684 ; --------------------------------------------------------------------------- .text:00040688 off_40688 DCD 0 ; DATA XREF: _nl_init_era_entries+8r .text:0004068C off_4068C DCD __libc_setlocale_lock .text:0004068C ; DATA XREF: _nl_init_era_entries+18r .text:0004068C ; _nl_init_era_entries+204r .text:00040690 off_40690 DCD era_initialized ; DATA XREF: _nl_init_era_entries:loc_40498r .text:00040690 ; _nl_init_era_entries:loc_40660r .text:00040694 off_40694 DCD _nl_current_LC_TIME ; DATA XREF: _nl_init_era_entries+34r .text:00040698 off_40698 DCD eras ; DATA XREF: _nl_init_era_entries+48r .text:00040698 ; _nl_init_era_entries+60r .text:0004069C off_4069C DCD num_eras ; DATA XREF: _nl_init_era_entries:loc_404D0r .text:000406A0 off_406A0 DCD 0 ; DATA XREF: _nl_init_era_entries:loc_4066Cr .text:000406A4 .text:000406A4 ; =============== S U B R O U T I N E ======================================= .text:000406A4 .text:000406A4 ; Attributes: bp-based frame .text:000406A4 .text:000406A4 EXPORT _nl_get_era_entry .text:000406A4 _nl_get_era_entry .text:000406A4 .text:000406A4 var_34 = -0x34 .text:000406A4 var_30 = -0x30 .text:000406A4 var_2C = -0x2C .text:000406A4 .text:000406A4 MOV R12, SP .text:000406A8 STMFD SP!, {R4-R12,LR,PC} .text:000406AC SUB SP, SP, #0xC .text:000406B0 LDR R3, [R0,#0x14] .text:000406B4 SUB R11, R12, #4 .text:000406B8 STR R3, [R11,#var_34] .text:000406BC LDR R2, [R0,#0x10] .text:000406C0 STR R2, [R11,#var_30] .text:000406C4 LDR R3, =era_initialized .text:000406C8 LDR R2, [R0,#0xC] .text:000406CC LDR R1, [R3] .text:000406D0 STR R2, [R11,#var_2C] .text:000406D4 CMP R1, #0 .text:000406D8 BNE loc_406E0 .text:000406DC BL _nl_init_era_entries .text:000406E0 .text:000406E0 loc_406E0 ; CODE XREF: _nl_get_era_entry+34j .text:000406E0 LDR R3, =num_eras .text:000406E4 LDR R2, [R3] .text:000406E8 MOV R5, #0 .text:000406EC CMP R5, R2 .text:000406F0 BCS loc_407FC .text:000406F4 LDR R4, [R11,#var_34] .text:000406F8 MOV R9, R2 .text:000406FC LDR LR, [R11,#var_30] .text:00040700 MOV R10, R5 .text:00040704 LDR R12, [R11,#var_2C] .text:00040708 MOV R8, R5 .text:0004070C LDR R6, =eras .text:00040710 MOV R7, R5 .text:00040714 LDR R0, [R6] .text:00040718 .text:00040718 loc_40718 ; CODE XREF: _nl_get_era_entry+154j .text:00040718 LDR R3, [R0,#8] .text:0004071C CMP R3, R4 .text:00040720 BLT loc_40744 .text:00040724 BNE loc_40778 .text:00040728 LDR R3, [R0,#0xC] .text:0004072C CMP R3, LR .text:00040730 BLT loc_40744 .text:00040734 BNE loc_40778 .text:00040738 LDR R3, [R0,#0x10] .text:0004073C CMP R3, R12 .text:00040740 BGT loc_40778 .text:00040744 .text:00040744 loc_40744 ; CODE XREF: _nl_get_era_entry+7Cj .text:00040744 ; _nl_get_era_entry+8Cj .text:00040744 LDR R3, [R6] .text:00040748 ADD R1, R7, R3 .text:0004074C LDR R2, [R1,#0x14] .text:00040750 CMP R4, R2 .text:00040754 BLT loc_407FC .text:00040758 BNE loc_40778 .text:0004075C LDR R3, [R1,#0x18] .text:00040760 CMP LR, R3 .text:00040764 BLT loc_407FC .text:00040768 BNE loc_40778 .text:0004076C LDR R3, [R1,#0x1C] .text:00040770 CMP R12, R3 .text:00040774 BLE loc_407FC .text:00040778 .text:00040778 loc_40778 ; CODE XREF: _nl_get_era_entry+80j .text:00040778 ; _nl_get_era_entry+90j ... .text:00040778 LDR R3, [R6] .text:0004077C ADD R1, R8, R3 .text:00040780 LDR R2, [R1,#0x14] .text:00040784 CMP R2, R4 .text:00040788 BLT loc_407AC .text:0004078C BNE loc_407E0 .text:00040790 LDR R3, [R1,#0x18] .text:00040794 CMP R3, LR .text:00040798 BLT loc_407AC .text:0004079C BNE loc_407E0 .text:000407A0 LDR R3, [R1,#0x1C] .text:000407A4 CMP R3, R12 .text:000407A8 BGT loc_407E0 .text:000407AC .text:000407AC loc_407AC ; CODE XREF: _nl_get_era_entry+E4j .text:000407AC ; _nl_get_era_entry+F4j .text:000407AC LDR R3, [R6] .text:000407B0 ADD R1, R10, R3 .text:000407B4 LDR R2, [R1,#8] .text:000407B8 CMP R4, R2 .text:000407BC BLT loc_407FC .text:000407C0 BNE loc_407E0 .text:000407C4 LDR R3, [R1,#0xC] .text:000407C8 CMP LR, R3 .text:000407CC BLT loc_407FC .text:000407D0 BNE loc_407E0 .text:000407D4 LDR R3, [R1,#0x10] .text:000407D8 CMP R12, R3 .text:000407DC BLE loc_407FC .text:000407E0 .text:000407E0 loc_407E0 ; CODE XREF: _nl_get_era_entry+E8j .text:000407E0 ; _nl_get_era_entry+F8j ... .text:000407E0 ADD R10, R10, #0x34 .text:000407E4 ADD R8, R8, #0x34 .text:000407E8 ADD R7, R7, #0x34 .text:000407EC ADD R0, R0, #0x34 .text:000407F0 ADD R5, R5, #1 .text:000407F4 CMP R5, R9 .text:000407F8 BCC loc_40718 .text:000407FC .text:000407FC loc_407FC ; CODE XREF: _nl_get_era_entry+4Cj .text:000407FC ; _nl_get_era_entry+B0j ... .text:000407FC LDR R2, =num_eras .text:00040800 LDR R3, [R2] .text:00040804 CMP R5, R3 .text:00040808 BCS loc_40830 .text:0004080C LDR R3, =eras .text:00040810 ADD R2, R5, R5,LSL#1 .text:00040814 LDR R1, [R3] .text:00040818 ADD R2, R5, R2,LSL#2 .text:0004081C ADD R0, R1, R2,LSL#2 .text:00040820 B locret_40834 .text:00040820 ; --------------------------------------------------------------------------- .text:00040824 off_40824 DCD era_initialized ; DATA XREF: _nl_get_era_entry+20r .text:00040828 off_40828 DCD num_eras ; DATA XREF: _nl_get_era_entry:loc_406E0r .text:00040828 ; _nl_get_era_entry:loc_407FCr .text:0004082C off_4082C DCD eras ; DATA XREF: _nl_get_era_entry+68r .text:0004082C ; _nl_get_era_entry+168r .text:00040830 ; --------------------------------------------------------------------------- .text:00040830 .text:00040830 loc_40830 ; CODE XREF: _nl_get_era_entry+164j .text:00040830 MOV R0, #0 .text:00040834 .text:00040834 locret_40834 ; CODE XREF: _nl_get_era_entry+17Cj .text:00040834 LDMDB R11, {R4-R11,SP,PC} .text:00040834 ; End of function _nl_get_era_entry .text:00040834 .text:00040838 .text:00040838 ; =============== S U B R O U T I N E ======================================= .text:00040838 .text:00040838 ; Attributes: bp-based frame .text:00040838 .text:00040838 EXPORT _nl_select_era_entry .text:00040838 _nl_select_era_entry .text:00040838 MOV R12, SP .text:0004083C STMFD SP!, {R4,R11,R12,LR,PC} .text:00040840 LDR R3, =era_initialized .text:00040844 SUB R11, R12, #4 .text:00040848 LDR R2, [R3] .text:0004084C MOV R4, R0 .text:00040850 CMP R2, #0 .text:00040854 BNE loc_4085C .text:00040858 BL _nl_init_era_entries .text:0004085C .text:0004085C loc_4085C ; CODE XREF: _nl_select_era_entry+1Cj .text:0004085C LDR R3, =eras .text:00040860 ADD R0, R4, R4,LSL#1 .text:00040864 LDR R2, [R3] .text:00040868 ADD R0, R4, R0,LSL#2 .text:0004086C ADD R0, R2, R0,LSL#2 .text:00040870 LDMDB R11, {R4,R11,SP,PC} .text:00040870 ; End of function _nl_select_era_entry .text:00040870 .text:00040870 ; --------------------------------------------------------------------------- .text:00040874 off_40874 DCD era_initialized ; DATA XREF: _nl_select_era_entry+8r .text:00040878 off_40878 DCD eras ; DATA XREF: _nl_select_era_entry:loc_4085Cr .text:0004087C .text:0004087C ; =============== S U B R O U T I N E ======================================= .text:0004087C .text:0004087C ; Attributes: bp-based frame .text:0004087C .text:0004087C EXPORT _nl_get_alt_digit .text:0004087C _nl_get_alt_digit .text:0004087C MOV R12, SP .text:00040880 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00040884 SUB R11, R12, #4 .text:00040888 LDR R3, =0 .text:0004088C MOV R6, R0 .text:00040890 CMP R3, #0 .text:00040894 BEQ loc_408A4 .text:00040898 LDR R0, =__libc_setlocale_lock .text:0004089C MOV LR, PC .text:000408A0 MOV PC, R3 .text:000408A4 .text:000408A4 loc_408A4 ; CODE XREF: _nl_get_alt_digit+18j .text:000408A4 LDR R2, =alt_digits_initialized .text:000408A8 LDR R5, =alt_digits .text:000408AC LDR R4, [R2] .text:000408B0 LDR R7, =0 .text:000408B4 CMP R4, #0 .text:000408B8 BNE loc_40914 .text:000408BC MOV R3, #1 .text:000408C0 STR R3, [R2] .text:000408C4 LDR R2, [R5] .text:000408C8 CMP R2, #0 .text:000408CC BNE loc_408DC .text:000408D0 MOV R0, #0x190 .text:000408D4 BL malloc .text:000408D8 STR R0, [R5] .text:000408DC .text:000408DC loc_408DC ; CODE XREF: _nl_get_alt_digit+50j .text:000408DC LDR R3, [R5] .text:000408E0 CMP R3, #0 .text:000408E4 BEQ loc_40914 .text:000408E8 LDR R3, =_nl_current_LC_TIME .text:000408EC LDR R2, [R3] .text:000408F0 LDR R0, [R2,#0xDC] .text:000408F4 .text:000408F4 loc_408F4 ; CODE XREF: _nl_get_alt_digit+94j .text:000408F4 LDR R3, [R5] .text:000408F8 STR R0, [R3,R4,LSL#2] .text:000408FC MOV R1, #0 .text:00040900 BL rawmemchr .text:00040904 ADD R0, R0, #1 .text:00040908 ADD R4, R4, #1 .text:0004090C CMP R4, #0x63 .text:00040910 BLS loc_408F4 .text:00040914 .text:00040914 loc_40914 ; CODE XREF: _nl_get_alt_digit+3Cj .text:00040914 ; _nl_get_alt_digit+68j .text:00040914 LDR R2, [R5] .text:00040918 CMP R6, #0x63 .text:0004091C MOVHI R3, #0 .text:00040920 MOVLS R3, #1 .text:00040924 CMP R2, #0 .text:00040928 MOVNE R0, R3 .text:0004092C MOVEQ R0, #0 .text:00040930 CMP R0, #0 .text:00040934 LDRNE R4, [R2,R6,LSL#2] .text:00040938 MOVEQ R4, R0 .text:0004093C CMP R7, #0 .text:00040940 BEQ loc_40950 .text:00040944 LDR R0, =__libc_setlocale_lock .text:00040948 MOV LR, PC .text:0004094C MOV PC, R7 .text:00040950 .text:00040950 loc_40950 ; CODE XREF: _nl_get_alt_digit+C4j .text:00040950 MOV R0, R4 .text:00040954 LDMDB R11, {R4-R7,R11,SP,PC} .text:00040954 ; End of function _nl_get_alt_digit .text:00040954 .text:00040954 ; --------------------------------------------------------------------------- .text:00040958 off_40958 DCD 0 ; DATA XREF: _nl_get_alt_digit+Cr .text:0004095C off_4095C DCD __libc_setlocale_lock ; DATA XREF: _nl_get_alt_digit+1Cr .text:0004095C ; _nl_get_alt_digit+C8r .text:00040960 off_40960 DCD alt_digits_initialized .text:00040960 ; DATA XREF: _nl_get_alt_digit:loc_408A4r .text:00040964 off_40964 DCD alt_digits ; DATA XREF: _nl_get_alt_digit+2Cr .text:00040968 dword_40968 DCD 0 ; DATA XREF: _nl_get_alt_digit+34r .text:0004096C off_4096C DCD _nl_current_LC_TIME ; DATA XREF: _nl_get_alt_digit+6Cr .text:00040970 .text:00040970 ; =============== S U B R O U T I N E ======================================= .text:00040970 .text:00040970 ; Attributes: bp-based frame .text:00040970 .text:00040970 EXPORT _nl_get_walt_digit .text:00040970 _nl_get_walt_digit .text:00040970 MOV R12, SP .text:00040974 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00040978 SUB R11, R12, #4 .text:0004097C LDR R3, =0 .text:00040980 MOV R6, R0 .text:00040984 CMP R3, #0 .text:00040988 BEQ loc_40998 .text:0004098C LDR R0, =__libc_setlocale_lock .text:00040990 MOV LR, PC .text:00040994 MOV PC, R3 .text:00040998 .text:00040998 loc_40998 ; CODE XREF: _nl_get_walt_digit+18j .text:00040998 LDR R2, =walt_digits_initialized .text:0004099C LDR R5, =walt_digits .text:000409A0 LDR R4, [R2] .text:000409A4 LDR R7, =0 .text:000409A8 CMP R4, #0 .text:000409AC BNE loc_40A08 .text:000409B0 MOV R3, #1 .text:000409B4 STR R3, [R2] .text:000409B8 LDR R2, [R5] .text:000409BC CMP R2, #0 .text:000409C0 BNE loc_409D0 .text:000409C4 MOV R0, #0x190 .text:000409C8 BL malloc .text:000409CC STR R0, [R5] .text:000409D0 .text:000409D0 loc_409D0 ; CODE XREF: _nl_get_walt_digit+50j .text:000409D0 LDR R3, [R5] .text:000409D4 CMP R3, #0 .text:000409D8 BEQ loc_40A08 .text:000409DC LDR R3, =_nl_current_LC_TIME .text:000409E0 LDR R2, [R3] .text:000409E4 LDR R0, [R2,#0x1A8] .text:000409E8 .text:000409E8 loc_409E8 ; CODE XREF: _nl_get_walt_digit+94j .text:000409E8 LDR R3, [R5] .text:000409EC STR R0, [R3,R4,LSL#2] .text:000409F0 MOV R1, #0 .text:000409F4 BL wcschr .text:000409F8 ADD R0, R0, #4 .text:000409FC ADD R4, R4, #1 .text:00040A00 CMP R4, #0x63 .text:00040A04 BLS loc_409E8 .text:00040A08 .text:00040A08 loc_40A08 ; CODE XREF: _nl_get_walt_digit+3Cj .text:00040A08 ; _nl_get_walt_digit+68j .text:00040A08 LDR R2, [R5] .text:00040A0C CMP R6, #0x63 .text:00040A10 MOVHI R3, #0 .text:00040A14 MOVLS R3, #1 .text:00040A18 CMP R2, #0 .text:00040A1C MOVNE R0, R3 .text:00040A20 MOVEQ R0, #0 .text:00040A24 CMP R0, #0 .text:00040A28 LDRNE R4, [R2,R6,LSL#2] .text:00040A2C MOVEQ R4, R0 .text:00040A30 CMP R7, #0 .text:00040A34 BEQ loc_40A44 .text:00040A38 LDR R0, =__libc_setlocale_lock .text:00040A3C MOV LR, PC .text:00040A40 MOV PC, R7 .text:00040A44 .text:00040A44 loc_40A44 ; CODE XREF: _nl_get_walt_digit+C4j .text:00040A44 MOV R0, R4 .text:00040A48 LDMDB R11, {R4-R7,R11,SP,PC} .text:00040A48 ; End of function _nl_get_walt_digit .text:00040A48 .text:00040A48 ; --------------------------------------------------------------------------- .text:00040A4C off_40A4C DCD 0 ; DATA XREF: _nl_get_walt_digit+Cr .text:00040A50 off_40A50 DCD __libc_setlocale_lock ; DATA XREF: _nl_get_walt_digit+1Cr .text:00040A50 ; _nl_get_walt_digit+C8r .text:00040A54 off_40A54 DCD walt_digits_initialized .text:00040A54 ; DATA XREF: _nl_get_walt_digit:loc_40998r .text:00040A58 off_40A58 DCD walt_digits ; DATA XREF: _nl_get_walt_digit+2Cr .text:00040A5C dword_40A5C DCD 0 ; DATA XREF: _nl_get_walt_digit+34r .text:00040A60 off_40A60 DCD _nl_current_LC_TIME ; DATA XREF: _nl_get_walt_digit+6Cr .text:00040A64 .text:00040A64 ; =============== S U B R O U T I N E ======================================= .text:00040A64 .text:00040A64 ; Attributes: bp-based frame .text:00040A64 .text:00040A64 free_mem_9 .text:00040A64 MOV R12, SP .text:00040A68 STMFD SP!, {R11,R12,LR,PC} .text:00040A6C LDR R3, =alt_digits .text:00040A70 LDR R0, [R3] .text:00040A74 SUB R11, R12, #4 .text:00040A78 BL free .text:00040A7C LDR R3, =walt_digits .text:00040A80 LDR R0, [R3] .text:00040A84 BL free .text:00040A88 LDMDB R11, {R11,SP,PC} .text:00040A88 ; End of function free_mem_9 .text:00040A88 .text:00040A88 ; --------------------------------------------------------------------------- .text:00040A8C off_40A8C DCD alt_digits ; DATA XREF: free_mem_9+8r .text:00040A90 off_40A90 DCD walt_digits ; DATA XREF: free_mem_9+18r .text:00040A94 .text:00040A94 ; =============== S U B R O U T I N E ======================================= .text:00040A94 .text:00040A94 ; Attributes: bp-based frame .text:00040A94 .text:00040A94 WEAK isinfl .text:00040A94 isinfl ; CODE XREF: __printf_fp+224p .text:00040A94 ; __printf_fphex+118p .text:00040A94 MOV R12, SP ; Alternative name is '__isinfl' .text:00040A98 STMFD SP!, {R11,R12,LR,PC} .text:00040A9C SUB R11, R12, #4 .text:00040AA0 MOV R12, R0 .text:00040AA4 BIC R2, R12, #0x80000000 .text:00040AA8 MOV R3, 0x7FF00000 .text:00040AB0 EOR R2, R2, R3 .text:00040AB4 ORR R2, R1, R2 .text:00040AB8 RSB R3, R2, #0 .text:00040ABC ORR R2, R2, R3 .text:00040AC0 CMP R2, #0 .text:00040AC4 MOVLT R0, #0 .text:00040AC8 MOVGE R0, R12,ASR#30 .text:00040ACC LDMDB R11, {R11,SP,PC} .text:00040ACC ; End of function isinfl .text:00040ACC .text:00040AD0 .text:00040AD0 ; =============== S U B R O U T I N E ======================================= .text:00040AD0 .text:00040AD0 ; Attributes: bp-based frame .text:00040AD0 .text:00040AD0 WEAK isnanl .text:00040AD0 isnanl ; CODE XREF: __printf_fp+1D4p .text:00040AD0 ; __printf_fphex+C0p .text:00040AD0 MOV R12, SP ; Alternative name is '__isnan' .text:00040AD4 STMFD SP!, {R11,R12,LR,PC} .text:00040AD8 SUB R11, R12, #4 .text:00040ADC BIC R3, R0, #0x80000000 .text:00040AE0 RSB R2, R1, #0 .text:00040AE4 ORR R2, R2, R1 .text:00040AE8 ORR R3, R3, R2,LSR#31 .text:00040AEC RSB R3, R3, #0x7F000000 .text:00040AF0 ADD R3, R3, #0xF00000 .text:00040AF4 MOV R0, R3,LSR#31 .text:00040AF8 LDMDB R11, {R11,SP,PC} .text:00040AF8 ; End of function isnanl .text:00040AF8 .text:00040AFC .text:00040AFC ; =============== S U B R O U T I N E ======================================= .text:00040AFC .text:00040AFC ; Attributes: bp-based frame .text:00040AFC .text:00040AFC EXPORT __signbit .text:00040AFC __signbit ; CODE XREF: __printf_fphex+164p .text:00040AFC MOV R12, SP .text:00040B00 STMFD SP!, {R11,R12,LR,PC} .text:00040B04 SUB R11, R12, #4 .text:00040B08 AND R0, R0, #0x80000000 .text:00040B0C LDMDB R11, {R11,SP,PC} .text:00040B0C ; End of function __signbit .text:00040B0C .text:00040B10 .text:00040B10 ; =============== S U B R O U T I N E ======================================= .text:00040B10 .text:00040B10 .text:00040B10 EXPORT __sigsetjmp .text:00040B10 __sigsetjmp ; CODE XREF: _setjmp+4j .text:00040B10 STC p2, c4, [R0],#0x30 .text:00040B14 STMIA R0, {R4-R11,SP,LR} .text:00040B18 SUB R0, R0, #0x30 .text:00040B1C B __sigjmp_save .text:00040B1C ; End of function __sigsetjmp .text:00040B1C .text:00040B20 .text:00040B20 ; =============== S U B R O U T I N E ======================================= .text:00040B20 .text:00040B20 ; Attributes: bp-based frame .text:00040B20 .text:00040B20 EXPORT __sigjmp_save .text:00040B20 __sigjmp_save .text:00040B20 MOV R12, SP .text:00040B24 STMFD SP!, {R4,R11,R12,LR,PC} .text:00040B28 SUB R11, R12, #4 .text:00040B2C MOV R3, #0 .text:00040B30 MOV R4, R0 .text:00040B34 CMP R1, R3 .text:00040B38 BEQ loc_40B58 .text:00040B3C MOV R0, R3 .text:00040B40 MOV R1, R0 .text:00040B44 ADD R2, R4, #0x5C .text:00040B48 BL sigprocmask .text:00040B4C CMP R0, #0 .text:00040B50 MOVNE R3, #0 .text:00040B54 MOVEQ R3, #1 .text:00040B58 .text:00040B58 loc_40B58 ; CODE XREF: __sigjmp_save+18j .text:00040B58 MOV R0, #0 .text:00040B5C STR R3, [R4,#0x58] .text:00040B60 LDMDB R11, {R4,R11,SP,PC} .text:00040B60 ; End of function __sigjmp_save .text:00040B60 .text:00040B64 .text:00040B64 ; =============== S U B R O U T I N E ======================================= .text:00040B64 .text:00040B64 ; Attributes: bp-based frame .text:00040B64 .text:00040B64 EXPORT _quicksort .text:00040B64 _quicksort ; CODE XREF: qsort+E8p .text:00040B64 .text:00040B64 var_140 = -0x140 .text:00040B64 var_13C = -0x13C .text:00040B64 var_138 = -0x138 .text:00040B64 var_134 = -0x134 .text:00040B64 var_130 = -0x130 .text:00040B64 var_12C = -0x12C .text:00040B64 var_128 = -0x128 .text:00040B64 var_120 = -0x120 .text:00040B64 .text:00040B64 MOV R12, SP .text:00040B68 STMFD SP!, {R4-R12,LR,PC} .text:00040B6C SUB R11, R12, #4 .text:00040B70 MOV R6, R2 .text:00040B74 ADD R2, R6, #3 .text:00040B78 BIC R2, R2, #3 .text:00040B7C SUB SP, SP, #0x118 .text:00040B80 STR R0, [R11,#var_12C] .text:00040B84 MOV R9, R3 .text:00040B88 RSB SP, R2, SP .text:00040B8C STR SP, [R11,#var_130] .text:00040B90 CMP R1, #0 .text:00040B94 MOV R2, R6,LSL#2 .text:00040B98 STR R2, [R11,#var_134] .text:00040B9C BEQ locret_40EDC .text:00040BA0 CMP R1, #4 .text:00040BA4 SUB R1, R1, #1 .text:00040BA8 STR R1, [R11,#var_140] .text:00040BAC ADD R3, R0, R6 .text:00040BB0 STR R3, [R11,#var_138] .text:00040BB4 BLS loc_40DC0 .text:00040BB8 MOV R8, R0 .text:00040BBC SUB R7, R11, #-var_120 .text:00040BC0 SUB R3, R11, #-var_128 .text:00040BC4 CMP R3, R7 .text:00040BC8 MOV R10, R0 .text:00040BCC MLA R10, R1, R6, R10 .text:00040BD0 BCS loc_40DC0 .text:00040BD4 .text:00040BD4 loc_40BD4 ; CODE XREF: _quicksort+258j .text:00040BD4 RSB R0, R8, R10 .text:00040BD8 MOV R1, R6 .text:00040BDC BL __udivsi3 .text:00040BE0 MOV R0, R0,LSR#1 .text:00040BE4 MLA R4, R0, R6, R8 .text:00040BE8 MOV R1, R8 .text:00040BEC MOV R0, R4 .text:00040BF0 MOV LR, PC .text:00040BF4 MOV PC, R9 .text:00040BF8 CMP R0, #0 .text:00040BFC ADD R5, R8, R6 .text:00040C00 RSB R1, R6, R10 .text:00040C04 STR R1, [R11,#var_13C] .text:00040C08 BGE loc_40C30 .text:00040C0C MOV R1, R6 .text:00040C10 MOV R12, R4 .text:00040C14 MOV R0, R8 .text:00040C18 .text:00040C18 loc_40C18 ; CODE XREF: _quicksort+C8j .text:00040C18 LDRB R3, [R0] .text:00040C1C LDRB R2, [R12] .text:00040C20 STRB R3, [R12],#1 .text:00040C24 SUBS R1, R1, #1 .text:00040C28 STRB R2, [R0],#1 .text:00040C2C BNE loc_40C18 .text:00040C30 .text:00040C30 loc_40C30 ; CODE XREF: _quicksort+A4j .text:00040C30 MOV R0, R10 .text:00040C34 MOV R1, R4 .text:00040C38 MOV LR, PC .text:00040C3C MOV PC, R9 .text:00040C40 CMP R0, #0 .text:00040C44 BGE loc_40CA8 .text:00040C48 MOV R1, R6 .text:00040C4C MOV R12, R4 .text:00040C50 MOV R0, R10 .text:00040C54 .text:00040C54 loc_40C54 ; CODE XREF: _quicksort+104j .text:00040C54 LDRB R3, [R0] .text:00040C58 LDRB R2, [R12] .text:00040C5C STRB R3, [R12],#1 .text:00040C60 SUBS R1, R1, #1 .text:00040C64 STRB R2, [R0],#1 .text:00040C68 BNE loc_40C54 .text:00040C6C MOV R0, R4 .text:00040C70 MOV R1, R8 .text:00040C74 MOV LR, PC .text:00040C78 MOV PC, R9 .text:00040C7C CMP R0, #0 .text:00040C80 BGE loc_40CA8 .text:00040C84 MOV R1, R6 .text:00040C88 MOV R12, R4 .text:00040C8C MOV R0, R8 .text:00040C90 .text:00040C90 loc_40C90 ; CODE XREF: _quicksort+140j .text:00040C90 LDRB R3, [R0] .text:00040C94 LDRB R2, [R12] .text:00040C98 STRB R3, [R12],#1 .text:00040C9C SUBS R1, R1, #1 .text:00040CA0 STRB R2, [R0],#1 .text:00040CA4 BNE loc_40C90 .text:00040CA8 .text:00040CA8 loc_40CA8 ; CODE XREF: _quicksort+E0j .text:00040CA8 ; _quicksort+11Cj .text:00040CA8 MOV R1, R4 .text:00040CAC LDR R0, [R11,#var_130] .text:00040CB0 MOV R2, R6 .text:00040CB4 LDR R4, [R11,#var_13C] .text:00040CB8 BL memcpy .text:00040CBC B loc_40CC4 .text:00040CC0 ; --------------------------------------------------------------------------- .text:00040CC0 .text:00040CC0 loc_40CC0 ; CODE XREF: _quicksort+174j .text:00040CC0 ADD R5, R5, R6 .text:00040CC4 .text:00040CC4 loc_40CC4 ; CODE XREF: _quicksort+158j .text:00040CC4 ; _quicksort+1DCj .text:00040CC4 LDR R1, [R11,#var_130] .text:00040CC8 MOV R0, R5 .text:00040CCC MOV LR, PC .text:00040CD0 MOV PC, R9 .text:00040CD4 CMP R0, #0 .text:00040CD8 BLT loc_40CC0 .text:00040CDC B loc_40CE4 .text:00040CE0 ; --------------------------------------------------------------------------- .text:00040CE0 .text:00040CE0 loc_40CE0 ; CODE XREF: _quicksort+194j .text:00040CE0 RSB R4, R6, R4 .text:00040CE4 .text:00040CE4 loc_40CE4 ; CODE XREF: _quicksort+178j .text:00040CE4 LDR R0, [R11,#var_130] .text:00040CE8 MOV R1, R4 .text:00040CEC MOV LR, PC .text:00040CF0 MOV PC, R9 .text:00040CF4 CMP R0, #0 .text:00040CF8 BLT loc_40CE0 .text:00040CFC CMP R5, R4 .text:00040D00 BCS loc_40D38 .text:00040D04 MOV R12, R6 .text:00040D08 MOV R0, R5 .text:00040D0C MOV R1, R4 .text:00040D10 ADD LR, R0, R6 .text:00040D14 RSB R4, R6, R1 .text:00040D18 .text:00040D18 loc_40D18 ; CODE XREF: _quicksort+1C8j .text:00040D18 LDRB R3, [R1] .text:00040D1C LDRB R2, [R0] .text:00040D20 STRB R3, [R0],#1 .text:00040D24 SUBS R12, R12, #1 .text:00040D28 STRB R2, [R1],#1 .text:00040D2C BNE loc_40D18 .text:00040D30 MOV R5, LR .text:00040D34 B loc_40D3C .text:00040D38 ; --------------------------------------------------------------------------- .text:00040D38 .text:00040D38 loc_40D38 ; CODE XREF: _quicksort+19Cj .text:00040D38 BEQ loc_40D70 .text:00040D3C .text:00040D3C loc_40D3C ; CODE XREF: _quicksort+1D0j .text:00040D3C CMP R5, R4 .text:00040D40 BLS loc_40CC4 .text:00040D44 .text:00040D44 loc_40D44 ; CODE XREF: _quicksort+214j .text:00040D44 LDR R3, [R11,#var_134] .text:00040D48 RSB R2, R8, R4 .text:00040D4C CMP R2, R3 .text:00040D50 BHI loc_40D7C .text:00040D54 LDR R1, [R11,#var_134] .text:00040D58 RSB R3, R5, R10 .text:00040D5C CMP R3, R1 .text:00040D60 BHI loc_40DA0 .text:00040D64 LDR R8, [R7,#-8]! .text:00040D68 LDR R10, [R7,#4] .text:00040D6C B loc_40DB4 .text:00040D70 ; --------------------------------------------------------------------------- .text:00040D70 .text:00040D70 loc_40D70 ; CODE XREF: _quicksort:loc_40D38j .text:00040D70 ADD R5, R4, R6 .text:00040D74 RSB R4, R6, R4 .text:00040D78 B loc_40D44 .text:00040D7C ; --------------------------------------------------------------------------- .text:00040D7C .text:00040D7C loc_40D7C ; CODE XREF: _quicksort+1ECj .text:00040D7C LDR R1, [R11,#var_134] .text:00040D80 RSB R3, R5, R10 .text:00040D84 CMP R3, R1 .text:00040D88 BLS loc_40DB0 .text:00040D8C CMP R2, R3 .text:00040D90 BLE loc_40DA8 .text:00040D94 STR R8, [R7] .text:00040D98 STR R4, [R7,#4] .text:00040D9C ADD R7, R7, #8 .text:00040DA0 .text:00040DA0 loc_40DA0 ; CODE XREF: _quicksort+1FCj .text:00040DA0 MOV R8, R5 .text:00040DA4 B loc_40DB4 .text:00040DA8 ; --------------------------------------------------------------------------- .text:00040DA8 .text:00040DA8 loc_40DA8 ; CODE XREF: _quicksort+22Cj .text:00040DA8 STMIA R7, {R5,R10} .text:00040DAC ADD R7, R7, #8 .text:00040DB0 .text:00040DB0 loc_40DB0 ; CODE XREF: _quicksort+224j .text:00040DB0 MOV R10, R4 .text:00040DB4 .text:00040DB4 loc_40DB4 ; CODE XREF: _quicksort+208j .text:00040DB4 ; _quicksort+240j .text:00040DB4 SUB R2, R11, #-var_128 .text:00040DB8 CMP R2, R7 .text:00040DBC BCC loc_40BD4 .text:00040DC0 .text:00040DC0 loc_40DC0 ; CODE XREF: _quicksort+50j .text:00040DC0 ; _quicksort+6Cj .text:00040DC0 LDR R8, [R11,#var_12C] .text:00040DC4 LDR R3, [R11,#var_140] .text:00040DC8 MLA R8, R3, R6, R8 .text:00040DCC LDR R4, [R11,#var_12C] .text:00040DD0 LDR R1, [R11,#var_134] .text:00040DD4 ADD R7, R4, R1 .text:00040DD8 ADD R5, R4, R6 .text:00040DDC CMP R7, R8 .text:00040DE0 MOVCS R7, R8 .text:00040DE4 CMP R5, R7 .text:00040DE8 BHI loc_40E10 .text:00040DEC .text:00040DEC loc_40DEC ; CODE XREF: _quicksort+2A8j .text:00040DEC MOV R0, R5 .text:00040DF0 MOV R1, R4 .text:00040DF4 MOV LR, PC .text:00040DF8 MOV PC, R9 .text:00040DFC CMP R0, #0 .text:00040E00 MOVLT R4, R5 .text:00040E04 ADD R5, R5, R6 .text:00040E08 CMP R5, R7 .text:00040E0C BLS loc_40DEC .text:00040E10 .text:00040E10 loc_40E10 ; CODE XREF: _quicksort+284j .text:00040E10 LDR R2, [R11,#var_12C] .text:00040E14 CMP R4, R2 .text:00040E18 BEQ loc_40E40 .text:00040E1C MOV R12, R6 .text:00040E20 MOV R1, R4 .text:00040E24 MOV R0, R2 .text:00040E28 .text:00040E28 loc_40E28 ; CODE XREF: _quicksort+2D8j .text:00040E28 LDRB R3, [R0] .text:00040E2C LDRB R2, [R1] .text:00040E30 STRB R3, [R1],#1 .text:00040E34 SUBS R12, R12, #1 .text:00040E38 STRB R2, [R0],#1 .text:00040E3C BNE loc_40E28 .text:00040E40 .text:00040E40 loc_40E40 ; CODE XREF: _quicksort+2B4j .text:00040E40 LDR R3, [R11,#var_138] .text:00040E44 ADD R5, R3, R6 .text:00040E48 CMP R5, R8 .text:00040E4C BHI locret_40EDC .text:00040E50 .text:00040E50 loc_40E50 ; CODE XREF: _quicksort+374j .text:00040E50 RSB R4, R6, R5 .text:00040E54 ADD R7, R5, R6 .text:00040E58 B loc_40E60 .text:00040E5C ; --------------------------------------------------------------------------- .text:00040E5C .text:00040E5C loc_40E5C ; CODE XREF: _quicksort+310j .text:00040E5C RSB R4, R6, R4 .text:00040E60 .text:00040E60 loc_40E60 ; CODE XREF: _quicksort+2F4j .text:00040E60 MOV R0, R5 .text:00040E64 MOV R1, R4 .text:00040E68 MOV LR, PC .text:00040E6C MOV PC, R9 .text:00040E70 CMP R0, #0 .text:00040E74 BLT loc_40E5C .text:00040E78 ADD R4, R4, R6 .text:00040E7C CMP R4, R5 .text:00040E80 BEQ loc_40ED0 .text:00040E84 SUB R3, R7, #1 .text:00040E88 CMP R3, R5 .text:00040E8C BCC loc_40ED0 .text:00040E90 .text:00040E90 loc_40E90 ; CODE XREF: _quicksort+368j .text:00040E90 MOV R1, R3 .text:00040E94 RSB R2, R6, R1 .text:00040E98 CMP R2, R4 .text:00040E9C SUB R0, R1, #1 .text:00040EA0 LDRB R12, [R3] .text:00040EA4 BCC loc_40EC0 .text:00040EA8 .text:00040EA8 loc_40EA8 ; CODE XREF: _quicksort+358j .text:00040EA8 LDRB R3, [R2] .text:00040EAC STRB R3, [R1] .text:00040EB0 MOV R1, R2 .text:00040EB4 RSB R2, R6, R1 .text:00040EB8 CMP R2, R4 .text:00040EBC BCS loc_40EA8 .text:00040EC0 .text:00040EC0 loc_40EC0 ; CODE XREF: _quicksort+340j .text:00040EC0 MOV R3, R0 .text:00040EC4 CMP R3, R5 .text:00040EC8 STRB R12, [R1] .text:00040ECC BCS loc_40E90 .text:00040ED0 .text:00040ED0 loc_40ED0 ; CODE XREF: _quicksort+31Cj .text:00040ED0 ; _quicksort+328j .text:00040ED0 MOV R5, R7 .text:00040ED4 CMP R5, R8 .text:00040ED8 BLS loc_40E50 .text:00040EDC .text:00040EDC locret_40EDC ; CODE XREF: _quicksort+38j .text:00040EDC ; _quicksort+2E8j .text:00040EDC LDMDB R11, {R4-R11,SP,PC} .text:00040EDC ; End of function _quicksort .text:00040EDC .text:00040EE0 .text:00040EE0 ; =============== S U B R O U T I N E ======================================= .text:00040EE0 .text:00040EE0 ; Attributes: bp-based frame .text:00040EE0 .text:00040EE0 EXPORT __strtoll_internal .text:00040EE0 __strtoll_internal ; CODE XREF: _IO_vfscanf+27F4p .text:00040EE0 ; strtoq+10p .text:00040EE0 .text:00040EE0 var_60 = -0x60 .text:00040EE0 var_54 = -0x54 .text:00040EE0 var_50 = -0x50 .text:00040EE0 var_4C = -0x4C .text:00040EE0 var_48 = -0x48 .text:00040EE0 var_44 = -0x44 .text:00040EE0 var_40 = -0x40 .text:00040EE0 var_3C = -0x3C .text:00040EE0 var_38 = -0x38 .text:00040EE0 var_34 = -0x34 .text:00040EE0 var_30 = -0x30 .text:00040EE0 var_2C = -0x2C .text:00040EE0 .text:00040EE0 MOV R12, SP .text:00040EE4 STMFD SP!, {R4-R12,LR,PC} .text:00040EE8 SUB R11, R12, #4 .text:00040EEC SUB SP, SP, #0x34 .text:00040EF0 STR R2, [R11,#var_34] .text:00040EF4 MOV R2, #0 .text:00040EF8 STR R2, [R11,#var_50] .text:00040EFC STR R0, [R11,#var_2C] .text:00040F00 MOV R9, R2 .text:00040F04 CMP R3, R2 .text:00040F08 STR R1, [R11,#var_30] .text:00040F0C BEQ loc_40F4C .text:00040F10 LDR R3, =_nl_current_LC_NUMERIC .text:00040F14 LDR R2, [R3] .text:00040F18 LDR R3, [R2,#0x28] .text:00040F1C STR R3, [R11,#var_54] .text:00040F20 LDRB R3, [R3] .text:00040F24 CMP R3, #0xFF .text:00040F28 CMPNE R3, #0 .text:00040F2C STREQ R9, [R11,#var_54] .text:00040F30 BEQ loc_40F54 .text:00040F34 LDR R9, [R2,#0x24] .text:00040F38 LDRB R3, [R9] .text:00040F3C CMP R3, #0 .text:00040F40 LDREQ R9, [R11,#var_50] .text:00040F44 STREQ R9, [R11,#var_54] .text:00040F48 B loc_40F54 .text:00040F4C ; --------------------------------------------------------------------------- .text:00040F4C .text:00040F4C loc_40F4C ; CODE XREF: __strtoll_internal+2Cj .text:00040F4C LDR R12, [R11,#var_50] .text:00040F50 STR R12, [R11,#var_54] .text:00040F54 .text:00040F54 loc_40F54 ; CODE XREF: __strtoll_internal+50j .text:00040F54 ; __strtoll_internal+68j .text:00040F54 LDR R0, [R11,#var_34] .text:00040F58 CMP R0, #1 .text:00040F5C MOVEQ R3, #1 .text:00040F60 MOVNE R3, R0,LSR#31 .text:00040F64 CMP R3, #0 .text:00040F68 BNE loc_40F74 .text:00040F6C CMP R0, #0x24 .text:00040F70 BLE loc_40F84 .text:00040F74 .text:00040F74 loc_40F74 ; CODE XREF: __strtoll_internal+88j .text:00040F74 BL __errno_location .text:00040F78 MOV R3, #0x16 .text:00040F7C STR R3, [R0] .text:00040F80 B loc_417BC .text:00040F84 ; --------------------------------------------------------------------------- .text:00040F84 .text:00040F84 loc_40F84 ; CODE XREF: __strtoll_internal+90j .text:00040F84 LDR R1, [R11,#var_2C] .text:00040F88 LDR R6, [R11,#var_2C] .text:00040F8C LDRB R3, [R1] .text:00040F90 LDR R1, =__ctype_b .text:00040F94 LDR R0, [R1] .text:00040F98 MOV R3, R3,LSL#1 .text:00040F9C ADD R3, R3, R0 .text:00040FA0 LDRB R2, [R3,#1] .text:00040FA4 STR R6, [R11,#var_48] .text:00040FA8 TST R2, #0x20 .text:00040FAC BEQ loc_40FCC .text:00040FB0 MOV R1, R0 .text:00040FB4 .text:00040FB4 loc_40FB4 ; CODE XREF: __strtoll_internal+E8j .text:00040FB4 LDRB R3, [R6,#1]! .text:00040FB8 MOV R3, R3,LSL#1 .text:00040FBC ADD R3, R3, R1 .text:00040FC0 LDRB R2, [R3,#1] .text:00040FC4 TST R2, #0x20 .text:00040FC8 BNE loc_40FB4 .text:00040FCC .text:00040FCC loc_40FCC ; CODE XREF: __strtoll_internal+CCj .text:00040FCC LDRB R3, [R6] .text:00040FD0 CMP R3, #0 .text:00040FD4 BEQ loc_41744 .text:00040FD8 CMP R3, #0x2D .text:00040FDC MOVEQ R2, #1 .text:00040FE0 ADDEQ R6, R6, R2 .text:00040FE4 STREQ R2, [R11,#var_38] .text:00040FE8 BEQ loc_41004 .text:00040FEC CMP R3, #0x2B .text:00040FF0 MOVEQ R3, #0 .text:00040FF4 ADDEQ R6, R6, #1 .text:00040FF8 STREQ R3, [R11,#var_38] .text:00040FFC MOVNE R12, #0 .text:00041000 STRNE R12, [R11,#var_38] .text:00041004 .text:00041004 loc_41004 ; CODE XREF: __strtoll_internal+108j .text:00041004 LDRB R3, [R6] .text:00041008 CMP R3, #0x30 .text:0004100C BNE loc_4105C .text:00041010 LDR R0, [R11,#var_34] .text:00041014 CMP R0, #0x10 .text:00041018 CMPNE R0, #0 .text:0004101C BNE loc_41044 .text:00041020 LDR R1, =__ctype_toupper .text:00041024 LDRB R0, [R6,#1] .text:00041028 LDR R3, [R1] .text:0004102C LDR R2, [R3,R0,LSL#2] .text:00041030 CMP R2, #0x58 .text:00041034 ADDEQ R6, R6, #2 .text:00041038 MOVEQ R1, #0x10 .text:0004103C STREQ R1, [R11,#var_34] .text:00041040 BEQ loc_41070 .text:00041044 .text:00041044 loc_41044 ; CODE XREF: __strtoll_internal+13Cj .text:00041044 LDR R2, [R11,#var_34] .text:00041048 MOV R3, R2 .text:0004104C CMP R3, #0 .text:00041050 MOVEQ R2, #8 .text:00041054 STR R2, [R11,#var_34] .text:00041058 B loc_41070 .text:0004105C ; --------------------------------------------------------------------------- .text:0004105C .text:0004105C loc_4105C ; CODE XREF: __strtoll_internal+12Cj .text:0004105C LDR R12, [R11,#var_34] .text:00041060 MOV R0, R12 .text:00041064 CMP R0, #0 .text:00041068 MOVEQ R12, #0xA .text:0004106C STR R12, [R11,#var_34] .text:00041070 .text:00041070 loc_41070 ; CODE XREF: __strtoll_internal+160j .text:00041070 ; __strtoll_internal+178j .text:00041070 STR R6, [R11,#var_48] .text:00041074 LDR R2, [R11,#var_34] .text:00041078 LDR R1, [R11,#var_54] .text:0004107C CMP R2, #0xA .text:00041080 MOVNE R1, #0 .text:00041084 CMP R1, #0 .text:00041088 STR R1, [R11,#var_54] .text:0004108C BEQ loc_413B8 .text:00041090 MOV R0, R9 .text:00041094 BL strlen .text:00041098 STR R0, [R11,#var_50] .text:0004109C MOV R1, #0 .text:000410A0 LDR R2, [R11,#var_34] .text:000410A4 SUB R12, R11, #-var_60 .text:000410A8 LDR R10, [R11,#var_48] .text:000410AC MOV R3, R2,ASR#31 .text:000410B0 STMIB R12, {R2,R3} .text:000410B4 CMP R1, R0 .text:000410B8 BCS loc_410F0 .text:000410BC LDR R12, [R11,#var_48] .text:000410C0 LDRB R2, [R9] .text:000410C4 LDRB R3, [R12] .text:000410C8 CMP R2, R3 .text:000410CC BNE loc_410F0 .text:000410D0 .text:000410D0 loc_410D0 ; CODE XREF: __strtoll_internal+20Cj .text:000410D0 LDR R0, [R11,#var_50] .text:000410D4 ADD R1, R1, #1 .text:000410D8 CMP R1, R0 .text:000410DC BCS loc_410F0 .text:000410E0 LDRB R2, [R9,R1] .text:000410E4 LDRB R3, [R6,R1] .text:000410E8 CMP R2, R3 .text:000410EC BEQ loc_410D0 .text:000410F0 .text:000410F0 loc_410F0 ; CODE XREF: __strtoll_internal+1D8j .text:000410F0 ; __strtoll_internal+1ECj ... .text:000410F0 LDR R2, [R11,#var_50] .text:000410F4 CMP R1, R2 .text:000410F8 BCS loc_413CC .text:000410FC LDRB R5, [R6] .text:00041100 CMP R5, #0 .text:00041104 BEQ loc_411A4 .text:00041108 .text:00041108 loc_41108 ; CODE XREF: __strtoll_internal+2C0j .text:00041108 SUB R3, R5, #0x30 .text:0004110C CMP R3, #9 .text:00041110 BLS loc_41198 .text:00041114 LDR R3, [R11,#var_50] .text:00041118 MOV R1, #0 .text:0004111C CMP R1, R3 .text:00041120 BCS loc_41154 .text:00041124 LDRB R2, [R9] .text:00041128 LDRB R3, [R10] .text:0004112C CMP R2, R3 .text:00041130 BNE loc_41154 .text:00041134 .text:00041134 loc_41134 ; CODE XREF: __strtoll_internal+270j .text:00041134 LDR R12, [R11,#var_50] .text:00041138 ADD R1, R1, #1 .text:0004113C CMP R1, R12 .text:00041140 BCS loc_41154 .text:00041144 LDRB R2, [R9,R1] .text:00041148 LDRB R3, [R10,R1] .text:0004114C CMP R2, R3 .text:00041150 BEQ loc_41134 .text:00041154 .text:00041154 loc_41154 ; CODE XREF: __strtoll_internal+240j .text:00041154 ; __strtoll_internal+250j ... .text:00041154 LDR R0, [R11,#var_50] .text:00041158 CMP R1, R0 .text:0004115C BCS loc_41198 .text:00041160 LDR R1, =__ctype_b .text:00041164 LDR R3, [R1] .text:00041168 MOV R2, R5,LSL#1 .text:0004116C ADD R2, R2, R3 .text:00041170 LDRB R1, [R2,#1] .text:00041174 TST R1, #4 .text:00041178 BEQ loc_411A4 .text:0004117C LDR R3, =__ctype_toupper .text:00041180 LDR R1, [R3] .text:00041184 LDR R2, [R1,R5,LSL#2] .text:00041188 LDR R3, [R11,#var_34] .text:0004118C SUB R2, R2, #0x37 .text:00041190 CMP R2, R3 .text:00041194 BGE loc_411A4 .text:00041198 .text:00041198 loc_41198 ; CODE XREF: __strtoll_internal+230j .text:00041198 ; __strtoll_internal+27Cj .text:00041198 LDRB R5, [R10,#1]! .text:0004119C CMP R5, #0 .text:000411A0 BNE loc_41108 .text:000411A4 .text:000411A4 loc_411A4 ; CODE XREF: __strtoll_internal+224j .text:000411A4 ; __strtoll_internal+298j ... .text:000411A4 LDR R12, [R11,#var_54] .text:000411A8 MOV R7, R10 .text:000411AC CMP R12, #0 .text:000411B0 BEQ loc_413CC .text:000411B4 MOV R0, R9 .text:000411B8 BL strlen .text:000411BC CMP R10, R6 .text:000411C0 BLS loc_413A8 .text:000411C4 .text:000411C4 loc_411C4 ; CODE XREF: __strtoll_internal+4C4j .text:000411C4 SUB R12, R7, #1 .text:000411C8 CMP R12, R6 .text:000411CC LDR R4, [R11,#var_54] .text:000411D0 BCC loc_41244 .text:000411D4 SUB R8, R0, #2 .text:000411D8 LDRB R5, [R9] .text:000411DC .text:000411DC loc_411DC ; CODE XREF: __strtoll_internal+360j .text:000411DC ADD R3, R0, R12 .text:000411E0 LDRB R2, [R3,#-1] .text:000411E4 CMP R2, R5 .text:000411E8 BNE loc_41238 .text:000411EC MOV LR, #1 .text:000411F0 LDRB R2, [R9,LR] .text:000411F4 CMP R2, #0 .text:000411F8 BEQ loc_4122C .text:000411FC LDRB R3, [R12,R8] .text:00041200 CMP R2, R3 .text:00041204 BNE loc_4122C .text:00041208 SUB R1, R0, #2 .text:0004120C .text:0004120C loc_4120C ; CODE XREF: __strtoll_internal+348j .text:0004120C ADD LR, LR, #1 .text:00041210 LDRB R2, [R9,LR] .text:00041214 SUB R1, R1, #1 .text:00041218 CMP R2, #0 .text:0004121C BEQ loc_4122C .text:00041220 LDRB R3, [R12,R1] .text:00041224 CMP R2, R3 .text:00041228 BEQ loc_4120C .text:0004122C .text:0004122C loc_4122C ; CODE XREF: __strtoll_internal+318j .text:0004122C ; __strtoll_internal+324j ... .text:0004122C LDRB R3, [R9,LR] .text:00041230 CMP R3, #0 .text:00041234 BEQ loc_41244 .text:00041238 .text:00041238 loc_41238 ; CODE XREF: __strtoll_internal+308j .text:00041238 SUB R12, R12, #1 .text:0004123C CMP R12, R6 .text:00041240 BCS loc_411DC .text:00041244 .text:00041244 loc_41244 ; CODE XREF: __strtoll_internal+2F0j .text:00041244 ; __strtoll_internal+354j .text:00041244 CMP R12, R6 .text:00041248 BCC loc_412F8 .text:0004124C LDR R2, [R11,#var_54] .text:00041250 LDRB R1, [R2] .text:00041254 RSB R2, R12, R7 .text:00041258 ADD R3, R1, #1 .text:0004125C CMP R2, R3 .text:00041260 BNE loc_41394 .text:00041264 SUB R8, R12, #1 .text:00041268 .text:00041268 loc_41268 ; CODE XREF: __strtoll_internal+414j .text:00041268 ; __strtoll_internal+4A8j .text:00041268 ADD R4, R4, #1 .text:0004126C MOV R3, R4 .text:00041270 LDRB R2, [R3],#-1 .text:00041274 CMP R2, #0 .text:00041278 MOVEQ R4, R3 .text:0004127C LDRB R1, [R4] .text:00041280 SUB R12, R12, #1 .text:00041284 CMP R1, #0xFF .text:00041288 BNE loc_41300 .text:0004128C CMP R12, R6 .text:00041290 BCC loc_412F0 .text:00041294 .text:00041294 loc_41294 ; CODE XREF: __strtoll_internal+40Cj .text:00041294 LDRB R1, [R9] .text:00041298 MOV LR, #0 .text:0004129C CMP R1, LR .text:000412A0 BEQ loc_412D8 .text:000412A4 ADD R2, R0, R12 .text:000412A8 B loc_412CC .text:000412A8 ; --------------------------------------------------------------------------- .text:000412AC off_412AC DCD _nl_current_LC_NUMERIC .text:000412AC ; DATA XREF: __strtoll_internal+30r .text:000412B0 off_412B0 DCD __ctype_b ; DATA XREF: __strtoll_internal+B0r .text:000412B0 ; __strtoll_internal+280r .text:000412B4 off_412B4 DCD __ctype_toupper ; DATA XREF: __strtoll_internal+140r .text:000412B4 ; __strtoll_internal+29Cr .text:000412B8 ; --------------------------------------------------------------------------- .text:000412B8 .text:000412B8 loc_412B8 ; CODE XREF: __strtoll_internal+3F4j .text:000412B8 ADD LR, LR, #1 .text:000412BC LDRB R1, [R9,LR] .text:000412C0 SUB R2, R2, #1 .text:000412C4 CMP R1, #0 .text:000412C8 BEQ loc_412D8 .text:000412CC .text:000412CC loc_412CC ; CODE XREF: __strtoll_internal+3C8j .text:000412CC LDRB R3, [R2,#-1] .text:000412D0 CMP R1, R3 .text:000412D4 BEQ loc_412B8 .text:000412D8 .text:000412D8 loc_412D8 ; CODE XREF: __strtoll_internal+3C0j .text:000412D8 ; __strtoll_internal+3E8j .text:000412D8 LDRB R3, [R9,LR] .text:000412DC CMP R3, #0 .text:000412E0 BEQ loc_412F0 .text:000412E4 SUB R12, R12, #1 .text:000412E8 CMP R12, R6 .text:000412EC BCS loc_41294 .text:000412F0 .text:000412F0 loc_412F0 ; CODE XREF: __strtoll_internal+3B0j .text:000412F0 ; __strtoll_internal+400j .text:000412F0 CMP R12, R6 .text:000412F4 BCS loc_41268 .text:000412F8 .text:000412F8 loc_412F8 ; CODE XREF: __strtoll_internal+368j .text:000412F8 ; __strtoll_internal+490j .text:000412F8 MOV R10, R7 .text:000412FC B loc_413CC .text:00041300 ; --------------------------------------------------------------------------- .text:00041300 .text:00041300 loc_41300 ; CODE XREF: __strtoll_internal+3A8j .text:00041300 CMP R12, R6 .text:00041304 MOV R5, R12 .text:00041308 BCC loc_4135C .text:0004130C .text:0004130C loc_4130C ; CODE XREF: __strtoll_internal+478j .text:0004130C LDRB R1, [R9] .text:00041310 MOV LR, #0 .text:00041314 CMP R1, LR .text:00041318 BEQ loc_41344 .text:0004131C ADD R2, R0, R12 .text:00041320 B loc_41338 .text:00041324 ; --------------------------------------------------------------------------- .text:00041324 .text:00041324 loc_41324 ; CODE XREF: __strtoll_internal+460j .text:00041324 ADD LR, LR, #1 .text:00041328 LDRB R1, [R9,LR] .text:0004132C SUB R2, R2, #1 .text:00041330 CMP R1, #0 .text:00041334 BEQ loc_41344 .text:00041338 .text:00041338 loc_41338 ; CODE XREF: __strtoll_internal+440j .text:00041338 LDRB R3, [R2,#-1] .text:0004133C CMP R1, R3 .text:00041340 BEQ loc_41324 .text:00041344 .text:00041344 loc_41344 ; CODE XREF: __strtoll_internal+438j .text:00041344 ; __strtoll_internal+454j .text:00041344 LDRB R3, [R9,LR] .text:00041348 CMP R3, #0 .text:0004134C BEQ loc_4135C .text:00041350 SUB R12, R12, #1 .text:00041354 CMP R12, R6 .text:00041358 BCS loc_4130C .text:0004135C .text:0004135C loc_4135C ; CODE XREF: __strtoll_internal+428j .text:0004135C ; __strtoll_internal+46Cj .text:0004135C CMP R12, R6 .text:00041360 BCS loc_41374 .text:00041364 LDRB R2, [R4] .text:00041368 RSB R3, R12, R5 .text:0004136C CMP R3, R2 .text:00041370 BLE loc_412F8 .text:00041374 .text:00041374 loc_41374 ; CODE XREF: __strtoll_internal+480j .text:00041374 CMP R12, R6 .text:00041378 BCC loc_4138C .text:0004137C LDRB R2, [R4] .text:00041380 RSB R3, R12, R5 .text:00041384 CMP R3, R2 .text:00041388 BEQ loc_41268 .text:0004138C .text:0004138C loc_4138C ; CODE XREF: __strtoll_internal+498j .text:0004138C MOV R7, R8 .text:00041390 B loc_413A0 .text:00041394 ; --------------------------------------------------------------------------- .text:00041394 .text:00041394 loc_41394 ; CODE XREF: __strtoll_internal+380j .text:00041394 ADDGT R3, R12, R1 .text:00041398 ADDGT R7, R3, #1 .text:0004139C MOVLE R7, R12 .text:000413A0 .text:000413A0 loc_413A0 ; CODE XREF: __strtoll_internal+4B0j .text:000413A0 CMP R7, R6 .text:000413A4 BHI loc_411C4 .text:000413A8 .text:000413A8 loc_413A8 ; CODE XREF: __strtoll_internal+2E0j .text:000413A8 CMP R7, R6 .text:000413AC MOVCS R10, R7 .text:000413B0 MOVCC R10, R6 .text:000413B4 B loc_413CC .text:000413B8 ; --------------------------------------------------------------------------- .text:000413B8 .text:000413B8 loc_413B8 ; CODE XREF: __strtoll_internal+1ACj .text:000413B8 LDR R2, [R11,#var_34] .text:000413BC SUB R12, R11, #-var_60 .text:000413C0 LDR R10, [R11,#var_54] .text:000413C4 MOV R3, R2,ASR#31 .text:000413C8 STMIB R12, {R2,R3} .text:000413CC .text:000413CC loc_413CC ; CODE XREF: __strtoll_internal+218j .text:000413CC ; __strtoll_internal+2D0j ... .text:000413CC MOV R5, 0xFFFFFFFF .text:000413D0 MOV R4, 0xFFFFFFFF .text:000413D4 MOV R1, R5 .text:000413D8 MOV R0, R4 .text:000413DC SUB R12, R11, #-var_60 .text:000413E0 LDMIB R12, {R2,R3} .text:000413E4 BL __udivdi3 .text:000413E8 SUB R2, R11, #-var_40 .text:000413EC STMIA R2, {R0,R1} .text:000413F0 MOV R1, R5 .text:000413F4 MOV R0, R4 .text:000413F8 SUB R12, R11, #-var_60 .text:000413FC LDMIB R12, {R2,R3} .text:00041400 BL __umoddi3 .text:00041404 MOV R1, #0 .text:00041408 STR R1, [R11,#var_4C] .text:0004140C STR R0, [R11,#var_44] .text:00041410 MOV R4, R1 .text:00041414 LDR R1, [R11,#var_34] .text:00041418 MOV R0, 0xFFFFFFFF .text:0004141C LDRB R5, [R6] .text:00041420 BL __udivsi3 .text:00041424 CMP R5, #0 .text:00041428 BEQ loc_41500 .text:0004142C CMP R6, R10 .text:00041430 BEQ loc_41500 .text:00041434 LDR LR, =__ctype_b .text:00041438 LDR R12, =__ctype_toupper .text:0004143C .text:0004143C loc_4143C ; CODE XREF: __strtoll_internal+61Cj .text:0004143C SUB R3, R5, #0x30 .text:00041440 AND R3, R3, #0xFF .text:00041444 CMP R3, #9 .text:00041448 MOVLS R5, R3 .text:0004144C BLS loc_414D4 .text:00041450 LDR R2, [R11,#var_50] .text:00041454 CMP R2, #0 .text:00041458 BEQ loc_414AC .text:0004145C MOV R1, #0 .text:00041460 CMP R1, R2 .text:00041464 BCS loc_41498 .text:00041468 LDRB R2, [R9] .text:0004146C LDRB R3, [R6] .text:00041470 CMP R2, R3 .text:00041474 BNE loc_41498 .text:00041478 .text:00041478 loc_41478 ; CODE XREF: __strtoll_internal+5B4j .text:00041478 LDR R3, [R11,#var_50] .text:0004147C ADD R1, R1, #1 .text:00041480 CMP R1, R3 .text:00041484 BCS loc_41498 .text:00041488 LDRB R2, [R9,R1] .text:0004148C LDRB R3, [R6,R1] .text:00041490 CMP R2, R3 .text:00041494 BEQ loc_41478 .text:00041498 .text:00041498 loc_41498 ; CODE XREF: __strtoll_internal+584j .text:00041498 ; __strtoll_internal+594j ... .text:00041498 LDR R2, [R11,#var_50] .text:0004149C CMP R1, R2 .text:000414A0 SUBEQ R3, R2, #1 .text:000414A4 ADDEQ R6, R6, R3 .text:000414A8 BEQ loc_414EC .text:000414AC .text:000414AC loc_414AC ; CODE XREF: __strtoll_internal+578j .text:000414AC LDR R3, [LR] .text:000414B0 MOV R2, R5,LSL#1 .text:000414B4 ADD R2, R2, R3 .text:000414B8 LDRB R1, [R2,#1] .text:000414BC TST R1, #4 .text:000414C0 BEQ loc_41500 .text:000414C4 LDR R2, [R12] .text:000414C8 LDR R3, [R2,R5,LSL#2] .text:000414CC SUB R3, R3, #0x37 .text:000414D0 AND R5, R3, #0xFF .text:000414D4 .text:000414D4 loc_414D4 ; CODE XREF: __strtoll_internal+56Cj .text:000414D4 LDR R3, [R11,#var_34] .text:000414D8 CMP R5, R3 .text:000414DC BGE loc_41500 .text:000414E0 CMP R4, R0 .text:000414E4 BCS loc_4160C .text:000414E8 MLA R4, R3, R4, R5 .text:000414EC .text:000414EC loc_414EC ; CODE XREF: __strtoll_internal+5C8j .text:000414EC LDRB R5, [R6,#1]! .text:000414F0 CMP R5, #0 .text:000414F4 BEQ loc_41500 .text:000414F8 CMP R6, R10 .text:000414FC BNE loc_4143C .text:00041500 .text:00041500 loc_41500 ; CODE XREF: __strtoll_internal+548j .text:00041500 ; __strtoll_internal+550j ... .text:00041500 MOV R7, R4 .text:00041504 MOV R8, #0 .text:00041508 B loc_4164C .text:0004150C ; --------------------------------------------------------------------------- .text:0004150C .text:0004150C loc_4150C ; CODE XREF: __strtoll_internal+768j .text:0004150C SUB R3, R5, #0x30 .text:00041510 AND R3, R3, #0xFF .text:00041514 CMP R3, #9 .text:00041518 MOVLS R5, R3 .text:0004151C BLS loc_415B4 .text:00041520 LDR R12, [R11,#var_50] .text:00041524 CMP R12, #0 .text:00041528 BEQ loc_41584 .text:0004152C MOV R1, #0 .text:00041530 CMP R1, R12 .text:00041534 BCS loc_41564 .text:00041538 LDRB R3, [R9] .text:0004153C CMP R3, R5 .text:00041540 BNE loc_41564 .text:00041544 .text:00041544 loc_41544 ; CODE XREF: __strtoll_internal+680j .text:00041544 LDR R0, [R11,#var_50] .text:00041548 ADD R1, R1, #1 .text:0004154C CMP R1, R0 .text:00041550 BCS loc_41564 .text:00041554 LDRB R2, [R9,R1] .text:00041558 LDRB R3, [R6,R1] .text:0004155C CMP R2, R3 .text:00041560 BEQ loc_41544 .text:00041564 .text:00041564 loc_41564 ; CODE XREF: __strtoll_internal+654j .text:00041564 ; __strtoll_internal+660j ... .text:00041564 LDR R2, [R11,#var_50] .text:00041568 CMP R1, R2 .text:0004156C SUBEQ R3, R2, #1 .text:00041570 ADDEQ R6, R6, R3 .text:00041574 BEQ loc_41638 .text:00041578 LDR R12, =__ctype_b .text:0004157C LDR R3, [R12] .text:00041580 B loc_4158C .text:00041584 ; --------------------------------------------------------------------------- .text:00041584 .text:00041584 loc_41584 ; CODE XREF: __strtoll_internal+648j .text:00041584 LDR R0, =__ctype_b .text:00041588 LDR R3, [R0] .text:0004158C .text:0004158C loc_4158C ; CODE XREF: __strtoll_internal+6A0j .text:0004158C MOV R2, R5,LSL#1 .text:00041590 ADD R2, R2, R3 .text:00041594 LDRB R1, [R2,#1] .text:00041598 TST R1, #4 .text:0004159C BEQ loc_4164C .text:000415A0 LDR R3, =__ctype_toupper .text:000415A4 LDR R1, [R3] .text:000415A8 LDR R2, [R1,R5,LSL#2] .text:000415AC SUB R2, R2, #0x37 .text:000415B0 AND R5, R2, #0xFF .text:000415B4 .text:000415B4 loc_415B4 ; CODE XREF: __strtoll_internal+63Cj .text:000415B4 LDR R1, [R11,#var_34] .text:000415B8 CMP R5, R1 .text:000415BC BGE loc_4164C .text:000415C0 LDR R2, [R11,#var_3C] .text:000415C4 CMP R8, R2 .text:000415C8 BHI loc_41600 .text:000415CC BNE loc_415DC .text:000415D0 LDR R3, [R11,#var_40] .text:000415D4 CMP R7, R3 .text:000415D8 BHI loc_41600 .text:000415DC .text:000415DC loc_415DC ; CODE XREF: __strtoll_internal+6ECj .text:000415DC LDR R12, [R11,#var_40] .text:000415E0 CMP R7, R12 .text:000415E4 BNE loc_41614 .text:000415E8 LDR R0, [R11,#var_3C] .text:000415EC CMP R8, R0 .text:000415F0 BNE loc_41614 .text:000415F4 LDR R1, [R11,#var_44] .text:000415F8 CMP R5, R1 .text:000415FC BLS loc_41614 .text:00041600 .text:00041600 loc_41600 ; CODE XREF: __strtoll_internal+6E8j .text:00041600 ; __strtoll_internal+6F8j .text:00041600 MOV R2, #1 .text:00041604 STR R2, [R11,#var_4C] .text:00041608 B loc_41638 .text:0004160C ; --------------------------------------------------------------------------- .text:0004160C .text:0004160C loc_4160C ; CODE XREF: __strtoll_internal+604j .text:0004160C MOV R7, R4 .text:00041610 MOV R8, #0 .text:00041614 .text:00041614 loc_41614 ; CODE XREF: __strtoll_internal+704j .text:00041614 ; __strtoll_internal+710j ... .text:00041614 MOV R1, R8 .text:00041618 MOV R0, R7 .text:0004161C SUB R12, R11, #-var_60 .text:00041620 LDMIB R12, {R2,R3} .text:00041624 BL __muldi3 .text:00041628 AND R7, R5, #0xFF .text:0004162C MOV R8, #0 .text:00041630 ADDS R7, R7, R0 .text:00041634 ADC R8, R8, R1 .text:00041638 .text:00041638 loc_41638 ; CODE XREF: __strtoll_internal+694j .text:00041638 ; __strtoll_internal+728j .text:00041638 LDRB R5, [R6,#1]! .text:0004163C CMP R5, #0 .text:00041640 BEQ loc_4164C .text:00041644 CMP R6, R10 .text:00041648 BNE loc_4150C .text:0004164C .text:0004164C loc_4164C ; CODE XREF: __strtoll_internal+628j .text:0004164C ; __strtoll_internal+6BCj ... .text:0004164C LDR R0, [R11,#var_48] .text:00041650 CMP R6, R0 .text:00041654 BEQ loc_41744 .text:00041658 LDR R1, [R11,#var_30] .text:0004165C CMP R1, #0 .text:00041660 STRNE R6, [R1] .text:00041664 LDR R2, [R11,#var_4C] .text:00041668 CMP R2, #0 .text:0004166C BNE loc_416A4 .text:00041670 LDR R3, [R11,#var_38] .text:00041674 CMP R3, #0 .text:00041678 BEQ loc_41694 .text:0004167C CMP R8, #0x80000000 .text:00041680 BHI loc_4169C .text:00041684 BNE loc_416A4 .text:00041688 CMP R7, #0 .text:0004168C BHI loc_4169C .text:00041690 B loc_416A4 .text:00041694 ; --------------------------------------------------------------------------- .text:00041694 .text:00041694 loc_41694 ; CODE XREF: __strtoll_internal+798j .text:00041694 CMN R8, #0x80000001 .text:00041698 BLS loc_416A4 .text:0004169C .text:0004169C loc_4169C ; CODE XREF: __strtoll_internal+7A0j .text:0004169C ; __strtoll_internal+7ACj .text:0004169C MOV R12, #1 .text:000416A0 STR R12, [R11,#var_4C] .text:000416A4 .text:000416A4 loc_416A4 ; CODE XREF: __strtoll_internal+78Cj .text:000416A4 ; __strtoll_internal+7A4j ... .text:000416A4 LDR R0, [R11,#var_4C] .text:000416A8 CMP R0, #0 .text:000416AC BEQ loc_41704 .text:000416B0 BL __errno_location .text:000416B4 MOV R3, #0x22 .text:000416B8 STR R3, [R0] .text:000416BC ADR R7, dword_417A0 .text:000416C0 LDMIA R7, {R7,R8} .text:000416C4 LDR R1, [R11,#var_38] .text:000416C8 ADR R5, dword_417A8 .text:000416CC LDMIA R5, {R5,R6} .text:000416D0 EOR R3, R1, #1 .text:000416D4 MOV R4, #0 .text:000416D8 RSBS R1, R3, #0 .text:000416DC RSC R2, R4, #0 .text:000416E0 AND R7, R7, R1 .text:000416E4 AND R8, R8, R2 .text:000416E8 BIC R5, R5, R1 .text:000416EC BIC R6, R6, R2 .text:000416F0 MOV R1, R8 .text:000416F4 MOV R0, R7 .text:000416F8 ORR R0, R0, R5 .text:000416FC ORR R1, R1, R6 .text:00041700 B locret_417C4 .text:00041704 ; --------------------------------------------------------------------------- .text:00041704 .text:00041704 loc_41704 ; CODE XREF: __strtoll_internal+7CCj .text:00041704 LDR R2, [R11,#var_38] .text:00041708 RSBS R3, R7, #0 .text:0004170C RSC R4, R8, #0 .text:00041710 EOR R1, R2, #1 .text:00041714 MOV R2, #0 .text:00041718 RSBS R5, R1, #0 .text:0004171C RSC R6, R2, #0 .text:00041720 AND R7, R7, R5 .text:00041724 AND R8, R8, R6 .text:00041728 BIC R3, R3, R5 .text:0004172C BIC R4, R4, R6 .text:00041730 MOV R1, R8 .text:00041734 MOV R0, R7 .text:00041738 ORR R0, R0, R3 .text:0004173C ORR R1, R1, R4 .text:00041740 B locret_417C4 .text:00041744 ; --------------------------------------------------------------------------- .text:00041744 .text:00041744 loc_41744 ; CODE XREF: __strtoll_internal+F4j .text:00041744 ; __strtoll_internal+774j .text:00041744 LDR R3, [R11,#var_30] .text:00041748 CMP R3, #0 .text:0004174C BEQ loc_417BC .text:00041750 LDR R12, [R11,#var_48] .text:00041754 LDR R0, [R11,#var_2C] .text:00041758 RSB R3, R0, R12 .text:0004175C CMP R3, #1 .text:00041760 BLE loc_417B0 .text:00041764 LDR R1, =__ctype_toupper .text:00041768 LDRB R0, [R12,#-1] .text:0004176C LDR R3, [R1] .text:00041770 LDR R2, [R3,R0,LSL#2] .text:00041774 CMP R2, #0x58 .text:00041778 BNE loc_417B0 .text:0004177C LDRB R3, [R12,#-2] .text:00041780 CMP R3, #0x30 .text:00041784 BNE loc_417B0 .text:00041788 LDR R1, [R11,#var_30] .text:0004178C SUB R3, R12, #1 .text:00041790 STR R3, [R1] .text:00041794 B loc_417BC .text:00041794 ; --------------------------------------------------------------------------- .text:00041798 off_41798 DCD __ctype_b ; DATA XREF: __strtoll_internal+554r .text:00041798 ; __strtoll_internal+698r ... .text:0004179C off_4179C DCD __ctype_toupper ; DATA XREF: __strtoll_internal+558r .text:0004179C ; __strtoll_internal+6C0r ... .text:000417A0 dword_417A0 DCD 0xFFFFFFFF, 0x7FFFFFFF .text:000417A0 ; DATA XREF: __strtoll_internal+7DCo .text:000417A8 dword_417A8 DCD 0 ; DATA XREF: __strtoll_internal+7E8o .text:000417AC DCD 0x80000000 .text:000417B0 ; --------------------------------------------------------------------------- .text:000417B0 .text:000417B0 loc_417B0 ; CODE XREF: __strtoll_internal+880j .text:000417B0 ; __strtoll_internal+898j ... .text:000417B0 SUB R2, R11, #-var_30 .text:000417B4 LDMIA R2, {R2,R3} .text:000417B8 STR R3, [R2] .text:000417BC .text:000417BC loc_417BC ; CODE XREF: __strtoll_internal+A0j .text:000417BC ; __strtoll_internal+86Cj ... .text:000417BC MOV R1, #0 .text:000417C0 MOV R0, #0 .text:000417C4 .text:000417C4 locret_417C4 ; CODE XREF: __strtoll_internal+820j .text:000417C4 ; __strtoll_internal+860j .text:000417C4 LDMDB R11, {R4-R11,SP,PC} .text:000417C4 ; End of function __strtoll_internal .text:000417C4 .text:000417C8 .text:000417C8 ; =============== S U B R O U T I N E ======================================= .text:000417C8 .text:000417C8 ; Attributes: bp-based frame .text:000417C8 .text:000417C8 WEAK strtoq .text:000417C8 strtoq .text:000417C8 MOV R12, SP .text:000417CC STMFD SP!, {R11,R12,LR,PC} .text:000417D0 SUB R11, R12, #4 .text:000417D4 MOV R3, #0 .text:000417D8 BL __strtoll_internal .text:000417DC LDMDB R11, {R11,SP,PC} .text:000417DC ; End of function strtoq .text:000417DC .text:000417E0 .text:000417E0 ; =============== S U B R O U T I N E ======================================= .text:000417E0 .text:000417E0 ; Attributes: bp-based frame .text:000417E0 .text:000417E0 EXPORT __strtoull_internal .text:000417E0 __strtoull_internal ; CODE XREF: _IO_vfscanf+2818p .text:000417E0 ; strtouq+10p ... .text:000417E0 .text:000417E0 var_60 = -0x60 .text:000417E0 var_54 = -0x54 .text:000417E0 var_50 = -0x50 .text:000417E0 var_4C = -0x4C .text:000417E0 var_48 = -0x48 .text:000417E0 var_44 = -0x44 .text:000417E0 var_40 = -0x40 .text:000417E0 var_3C = -0x3C .text:000417E0 var_38 = -0x38 .text:000417E0 var_34 = -0x34 .text:000417E0 var_30 = -0x30 .text:000417E0 var_2C = -0x2C .text:000417E0 .text:000417E0 MOV R12, SP .text:000417E4 STMFD SP!, {R4-R12,LR,PC} .text:000417E8 SUB R11, R12, #4 .text:000417EC SUB SP, SP, #0x34 .text:000417F0 STR R2, [R11,#var_34] .text:000417F4 MOV R2, #0 .text:000417F8 STR R2, [R11,#var_50] .text:000417FC STR R0, [R11,#var_2C] .text:00041800 MOV R9, R2 .text:00041804 CMP R3, R2 .text:00041808 STR R1, [R11,#var_30] .text:0004180C BEQ loc_4184C .text:00041810 LDR R3, =_nl_current_LC_NUMERIC .text:00041814 LDR R2, [R3] .text:00041818 LDR R3, [R2,#0x28] .text:0004181C STR R3, [R11,#var_54] .text:00041820 LDRB R3, [R3] .text:00041824 CMP R3, #0xFF .text:00041828 CMPNE R3, #0 .text:0004182C STREQ R9, [R11,#var_54] .text:00041830 BEQ loc_41854 .text:00041834 LDR R9, [R2,#0x24] .text:00041838 LDRB R3, [R9] .text:0004183C CMP R3, #0 .text:00041840 LDREQ R9, [R11,#var_50] .text:00041844 STREQ R9, [R11,#var_54] .text:00041848 B loc_41854 .text:0004184C ; --------------------------------------------------------------------------- .text:0004184C .text:0004184C loc_4184C ; CODE XREF: __strtoull_internal+2Cj .text:0004184C LDR R12, [R11,#var_50] .text:00041850 STR R12, [R11,#var_54] .text:00041854 .text:00041854 loc_41854 ; CODE XREF: __strtoull_internal+50j .text:00041854 ; __strtoull_internal+68j .text:00041854 LDR R0, [R11,#var_34] .text:00041858 CMP R0, #1 .text:0004185C MOVEQ R3, #1 .text:00041860 MOVNE R3, R0,LSR#31 .text:00041864 CMP R3, #0 .text:00041868 BNE loc_41874 .text:0004186C CMP R0, #0x24 .text:00041870 BLE loc_41884 .text:00041874 .text:00041874 loc_41874 ; CODE XREF: __strtoull_internal+88j .text:00041874 BL __errno_location .text:00041878 MOV R3, #0x16 .text:0004187C STR R3, [R0] .text:00041880 B loc_42038 .text:00041884 ; --------------------------------------------------------------------------- .text:00041884 .text:00041884 loc_41884 ; CODE XREF: __strtoull_internal+90j .text:00041884 LDR R1, [R11,#var_2C] .text:00041888 LDR R6, [R11,#var_2C] .text:0004188C LDRB R3, [R1] .text:00041890 LDR R1, =__ctype_b .text:00041894 LDR R0, [R1] .text:00041898 MOV R3, R3,LSL#1 .text:0004189C ADD R3, R3, R0 .text:000418A0 LDRB R2, [R3,#1] .text:000418A4 STR R6, [R11,#var_48] .text:000418A8 TST R2, #0x20 .text:000418AC BEQ loc_418CC .text:000418B0 MOV R1, R0 .text:000418B4 .text:000418B4 loc_418B4 ; CODE XREF: __strtoull_internal+E8j .text:000418B4 LDRB R3, [R6,#1]! .text:000418B8 MOV R3, R3,LSL#1 .text:000418BC ADD R3, R3, R1 .text:000418C0 LDRB R2, [R3,#1] .text:000418C4 TST R2, #0x20 .text:000418C8 BNE loc_418B4 .text:000418CC .text:000418CC loc_418CC ; CODE XREF: __strtoull_internal+CCj .text:000418CC LDRB R3, [R6] .text:000418D0 CMP R3, #0 .text:000418D4 BEQ loc_41FC8 .text:000418D8 CMP R3, #0x2D .text:000418DC MOVEQ R2, #1 .text:000418E0 ADDEQ R6, R6, R2 .text:000418E4 STREQ R2, [R11,#var_38] .text:000418E8 BEQ loc_41904 .text:000418EC CMP R3, #0x2B .text:000418F0 MOVEQ R3, #0 .text:000418F4 ADDEQ R6, R6, #1 .text:000418F8 STREQ R3, [R11,#var_38] .text:000418FC MOVNE R12, #0 .text:00041900 STRNE R12, [R11,#var_38] .text:00041904 .text:00041904 loc_41904 ; CODE XREF: __strtoull_internal+108j .text:00041904 LDRB R3, [R6] .text:00041908 CMP R3, #0x30 .text:0004190C BNE loc_4195C .text:00041910 LDR R0, [R11,#var_34] .text:00041914 CMP R0, #0x10 .text:00041918 CMPNE R0, #0 .text:0004191C BNE loc_41944 .text:00041920 LDR R1, =__ctype_toupper .text:00041924 LDRB R0, [R6,#1] .text:00041928 LDR R3, [R1] .text:0004192C LDR R2, [R3,R0,LSL#2] .text:00041930 CMP R2, #0x58 .text:00041934 ADDEQ R6, R6, #2 .text:00041938 MOVEQ R1, #0x10 .text:0004193C STREQ R1, [R11,#var_34] .text:00041940 BEQ loc_41970 .text:00041944 .text:00041944 loc_41944 ; CODE XREF: __strtoull_internal+13Cj .text:00041944 LDR R2, [R11,#var_34] .text:00041948 MOV R3, R2 .text:0004194C CMP R3, #0 .text:00041950 MOVEQ R2, #8 .text:00041954 STR R2, [R11,#var_34] .text:00041958 B loc_41970 .text:0004195C ; --------------------------------------------------------------------------- .text:0004195C .text:0004195C loc_4195C ; CODE XREF: __strtoull_internal+12Cj .text:0004195C LDR R12, [R11,#var_34] .text:00041960 MOV R0, R12 .text:00041964 CMP R0, #0 .text:00041968 MOVEQ R12, #0xA .text:0004196C STR R12, [R11,#var_34] .text:00041970 .text:00041970 loc_41970 ; CODE XREF: __strtoull_internal+160j .text:00041970 ; __strtoull_internal+178j .text:00041970 STR R6, [R11,#var_48] .text:00041974 LDR R2, [R11,#var_34] .text:00041978 LDR R1, [R11,#var_54] .text:0004197C CMP R2, #0xA .text:00041980 MOVNE R1, #0 .text:00041984 CMP R1, #0 .text:00041988 STR R1, [R11,#var_54] .text:0004198C BEQ loc_41CB8 .text:00041990 MOV R0, R9 .text:00041994 BL strlen .text:00041998 STR R0, [R11,#var_50] .text:0004199C MOV R1, #0 .text:000419A0 LDR R2, [R11,#var_34] .text:000419A4 SUB R12, R11, #-var_60 .text:000419A8 LDR R10, [R11,#var_48] .text:000419AC MOV R3, R2,ASR#31 .text:000419B0 STMIB R12, {R2,R3} .text:000419B4 CMP R1, R0 .text:000419B8 BCS loc_419F0 .text:000419BC LDR R12, [R11,#var_48] .text:000419C0 LDRB R2, [R9] .text:000419C4 LDRB R3, [R12] .text:000419C8 CMP R2, R3 .text:000419CC BNE loc_419F0 .text:000419D0 .text:000419D0 loc_419D0 ; CODE XREF: __strtoull_internal+20Cj .text:000419D0 LDR R0, [R11,#var_50] .text:000419D4 ADD R1, R1, #1 .text:000419D8 CMP R1, R0 .text:000419DC BCS loc_419F0 .text:000419E0 LDRB R2, [R9,R1] .text:000419E4 LDRB R3, [R6,R1] .text:000419E8 CMP R2, R3 .text:000419EC BEQ loc_419D0 .text:000419F0 .text:000419F0 loc_419F0 ; CODE XREF: __strtoull_internal+1D8j .text:000419F0 ; __strtoull_internal+1ECj ... .text:000419F0 LDR R2, [R11,#var_50] .text:000419F4 CMP R1, R2 .text:000419F8 BCS loc_41CCC .text:000419FC LDRB R5, [R6] .text:00041A00 CMP R5, #0 .text:00041A04 BEQ loc_41AA4 .text:00041A08 .text:00041A08 loc_41A08 ; CODE XREF: __strtoull_internal+2C0j .text:00041A08 SUB R3, R5, #0x30 .text:00041A0C CMP R3, #9 .text:00041A10 BLS loc_41A98 .text:00041A14 LDR R3, [R11,#var_50] .text:00041A18 MOV R1, #0 .text:00041A1C CMP R1, R3 .text:00041A20 BCS loc_41A54 .text:00041A24 LDRB R2, [R9] .text:00041A28 LDRB R3, [R10] .text:00041A2C CMP R2, R3 .text:00041A30 BNE loc_41A54 .text:00041A34 .text:00041A34 loc_41A34 ; CODE XREF: __strtoull_internal+270j .text:00041A34 LDR R12, [R11,#var_50] .text:00041A38 ADD R1, R1, #1 .text:00041A3C CMP R1, R12 .text:00041A40 BCS loc_41A54 .text:00041A44 LDRB R2, [R9,R1] .text:00041A48 LDRB R3, [R10,R1] .text:00041A4C CMP R2, R3 .text:00041A50 BEQ loc_41A34 .text:00041A54 .text:00041A54 loc_41A54 ; CODE XREF: __strtoull_internal+240j .text:00041A54 ; __strtoull_internal+250j ... .text:00041A54 LDR R0, [R11,#var_50] .text:00041A58 CMP R1, R0 .text:00041A5C BCS loc_41A98 .text:00041A60 LDR R1, =__ctype_b .text:00041A64 LDR R3, [R1] .text:00041A68 MOV R2, R5,LSL#1 .text:00041A6C ADD R2, R2, R3 .text:00041A70 LDRB R1, [R2,#1] .text:00041A74 TST R1, #4 .text:00041A78 BEQ loc_41AA4 .text:00041A7C LDR R3, =__ctype_toupper .text:00041A80 LDR R1, [R3] .text:00041A84 LDR R2, [R1,R5,LSL#2] .text:00041A88 LDR R3, [R11,#var_34] .text:00041A8C SUB R2, R2, #0x37 .text:00041A90 CMP R2, R3 .text:00041A94 BGE loc_41AA4 .text:00041A98 .text:00041A98 loc_41A98 ; CODE XREF: __strtoull_internal+230j .text:00041A98 ; __strtoull_internal+27Cj .text:00041A98 LDRB R5, [R10,#1]! .text:00041A9C CMP R5, #0 .text:00041AA0 BNE loc_41A08 .text:00041AA4 .text:00041AA4 loc_41AA4 ; CODE XREF: __strtoull_internal+224j .text:00041AA4 ; __strtoull_internal+298j ... .text:00041AA4 LDR R12, [R11,#var_54] .text:00041AA8 MOV R7, R10 .text:00041AAC CMP R12, #0 .text:00041AB0 BEQ loc_41CCC .text:00041AB4 MOV R0, R9 .text:00041AB8 BL strlen .text:00041ABC CMP R10, R6 .text:00041AC0 BLS loc_41CA8 .text:00041AC4 .text:00041AC4 loc_41AC4 ; CODE XREF: __strtoull_internal+4C4j .text:00041AC4 SUB R12, R7, #1 .text:00041AC8 CMP R12, R6 .text:00041ACC LDR R4, [R11,#var_54] .text:00041AD0 BCC loc_41B44 .text:00041AD4 SUB R8, R0, #2 .text:00041AD8 LDRB R5, [R9] .text:00041ADC .text:00041ADC loc_41ADC ; CODE XREF: __strtoull_internal+360j .text:00041ADC ADD R3, R0, R12 .text:00041AE0 LDRB R2, [R3,#-1] .text:00041AE4 CMP R2, R5 .text:00041AE8 BNE loc_41B38 .text:00041AEC MOV LR, #1 .text:00041AF0 LDRB R2, [R9,LR] .text:00041AF4 CMP R2, #0 .text:00041AF8 BEQ loc_41B2C .text:00041AFC LDRB R3, [R12,R8] .text:00041B00 CMP R2, R3 .text:00041B04 BNE loc_41B2C .text:00041B08 SUB R1, R0, #2 .text:00041B0C .text:00041B0C loc_41B0C ; CODE XREF: __strtoull_internal+348j .text:00041B0C ADD LR, LR, #1 .text:00041B10 LDRB R2, [R9,LR] .text:00041B14 SUB R1, R1, #1 .text:00041B18 CMP R2, #0 .text:00041B1C BEQ loc_41B2C .text:00041B20 LDRB R3, [R12,R1] .text:00041B24 CMP R2, R3 .text:00041B28 BEQ loc_41B0C .text:00041B2C .text:00041B2C loc_41B2C ; CODE XREF: __strtoull_internal+318j .text:00041B2C ; __strtoull_internal+324j ... .text:00041B2C LDRB R3, [R9,LR] .text:00041B30 CMP R3, #0 .text:00041B34 BEQ loc_41B44 .text:00041B38 .text:00041B38 loc_41B38 ; CODE XREF: __strtoull_internal+308j .text:00041B38 SUB R12, R12, #1 .text:00041B3C CMP R12, R6 .text:00041B40 BCS loc_41ADC .text:00041B44 .text:00041B44 loc_41B44 ; CODE XREF: __strtoull_internal+2F0j .text:00041B44 ; __strtoull_internal+354j .text:00041B44 CMP R12, R6 .text:00041B48 BCC loc_41BF8 .text:00041B4C LDR R2, [R11,#var_54] .text:00041B50 LDRB R1, [R2] .text:00041B54 RSB R2, R12, R7 .text:00041B58 ADD R3, R1, #1 .text:00041B5C CMP R2, R3 .text:00041B60 BNE loc_41C94 .text:00041B64 SUB R8, R12, #1 .text:00041B68 .text:00041B68 loc_41B68 ; CODE XREF: __strtoull_internal+414j .text:00041B68 ; __strtoull_internal+4A8j .text:00041B68 ADD R4, R4, #1 .text:00041B6C MOV R3, R4 .text:00041B70 LDRB R2, [R3],#-1 .text:00041B74 CMP R2, #0 .text:00041B78 MOVEQ R4, R3 .text:00041B7C LDRB R1, [R4] .text:00041B80 SUB R12, R12, #1 .text:00041B84 CMP R1, #0xFF .text:00041B88 BNE loc_41C00 .text:00041B8C CMP R12, R6 .text:00041B90 BCC loc_41BF0 .text:00041B94 .text:00041B94 loc_41B94 ; CODE XREF: __strtoull_internal+40Cj .text:00041B94 LDRB R1, [R9] .text:00041B98 MOV LR, #0 .text:00041B9C CMP R1, LR .text:00041BA0 BEQ loc_41BD8 .text:00041BA4 ADD R2, R0, R12 .text:00041BA8 B loc_41BCC .text:00041BA8 ; --------------------------------------------------------------------------- .text:00041BAC off_41BAC DCD _nl_current_LC_NUMERIC .text:00041BAC ; DATA XREF: __strtoull_internal+30r .text:00041BB0 off_41BB0 DCD __ctype_b ; DATA XREF: __strtoull_internal+B0r .text:00041BB0 ; __strtoull_internal+280r .text:00041BB4 off_41BB4 DCD __ctype_toupper ; DATA XREF: __strtoull_internal+140r .text:00041BB4 ; __strtoull_internal+29Cr .text:00041BB8 ; --------------------------------------------------------------------------- .text:00041BB8 .text:00041BB8 loc_41BB8 ; CODE XREF: __strtoull_internal+3F4j .text:00041BB8 ADD LR, LR, #1 .text:00041BBC LDRB R1, [R9,LR] .text:00041BC0 SUB R2, R2, #1 .text:00041BC4 CMP R1, #0 .text:00041BC8 BEQ loc_41BD8 .text:00041BCC .text:00041BCC loc_41BCC ; CODE XREF: __strtoull_internal+3C8j .text:00041BCC LDRB R3, [R2,#-1] .text:00041BD0 CMP R1, R3 .text:00041BD4 BEQ loc_41BB8 .text:00041BD8 .text:00041BD8 loc_41BD8 ; CODE XREF: __strtoull_internal+3C0j .text:00041BD8 ; __strtoull_internal+3E8j .text:00041BD8 LDRB R3, [R9,LR] .text:00041BDC CMP R3, #0 .text:00041BE0 BEQ loc_41BF0 .text:00041BE4 SUB R12, R12, #1 .text:00041BE8 CMP R12, R6 .text:00041BEC BCS loc_41B94 .text:00041BF0 .text:00041BF0 loc_41BF0 ; CODE XREF: __strtoull_internal+3B0j .text:00041BF0 ; __strtoull_internal+400j .text:00041BF0 CMP R12, R6 .text:00041BF4 BCS loc_41B68 .text:00041BF8 .text:00041BF8 loc_41BF8 ; CODE XREF: __strtoull_internal+368j .text:00041BF8 ; __strtoull_internal+490j .text:00041BF8 MOV R10, R7 .text:00041BFC B loc_41CCC .text:00041C00 ; --------------------------------------------------------------------------- .text:00041C00 .text:00041C00 loc_41C00 ; CODE XREF: __strtoull_internal+3A8j .text:00041C00 CMP R12, R6 .text:00041C04 MOV R5, R12 .text:00041C08 BCC loc_41C5C .text:00041C0C .text:00041C0C loc_41C0C ; CODE XREF: __strtoull_internal+478j .text:00041C0C LDRB R1, [R9] .text:00041C10 MOV LR, #0 .text:00041C14 CMP R1, LR .text:00041C18 BEQ loc_41C44 .text:00041C1C ADD R2, R0, R12 .text:00041C20 B loc_41C38 .text:00041C24 ; --------------------------------------------------------------------------- .text:00041C24 .text:00041C24 loc_41C24 ; CODE XREF: __strtoull_internal+460j .text:00041C24 ADD LR, LR, #1 .text:00041C28 LDRB R1, [R9,LR] .text:00041C2C SUB R2, R2, #1 .text:00041C30 CMP R1, #0 .text:00041C34 BEQ loc_41C44 .text:00041C38 .text:00041C38 loc_41C38 ; CODE XREF: __strtoull_internal+440j .text:00041C38 LDRB R3, [R2,#-1] .text:00041C3C CMP R1, R3 .text:00041C40 BEQ loc_41C24 .text:00041C44 .text:00041C44 loc_41C44 ; CODE XREF: __strtoull_internal+438j .text:00041C44 ; __strtoull_internal+454j .text:00041C44 LDRB R3, [R9,LR] .text:00041C48 CMP R3, #0 .text:00041C4C BEQ loc_41C5C .text:00041C50 SUB R12, R12, #1 .text:00041C54 CMP R12, R6 .text:00041C58 BCS loc_41C0C .text:00041C5C .text:00041C5C loc_41C5C ; CODE XREF: __strtoull_internal+428j .text:00041C5C ; __strtoull_internal+46Cj .text:00041C5C CMP R12, R6 .text:00041C60 BCS loc_41C74 .text:00041C64 LDRB R2, [R4] .text:00041C68 RSB R3, R12, R5 .text:00041C6C CMP R3, R2 .text:00041C70 BLE loc_41BF8 .text:00041C74 .text:00041C74 loc_41C74 ; CODE XREF: __strtoull_internal+480j .text:00041C74 CMP R12, R6 .text:00041C78 BCC loc_41C8C .text:00041C7C LDRB R2, [R4] .text:00041C80 RSB R3, R12, R5 .text:00041C84 CMP R3, R2 .text:00041C88 BEQ loc_41B68 .text:00041C8C .text:00041C8C loc_41C8C ; CODE XREF: __strtoull_internal+498j .text:00041C8C MOV R7, R8 .text:00041C90 B loc_41CA0 .text:00041C94 ; --------------------------------------------------------------------------- .text:00041C94 .text:00041C94 loc_41C94 ; CODE XREF: __strtoull_internal+380j .text:00041C94 ADDGT R3, R12, R1 .text:00041C98 ADDGT R7, R3, #1 .text:00041C9C MOVLE R7, R12 .text:00041CA0 .text:00041CA0 loc_41CA0 ; CODE XREF: __strtoull_internal+4B0j .text:00041CA0 CMP R7, R6 .text:00041CA4 BHI loc_41AC4 .text:00041CA8 .text:00041CA8 loc_41CA8 ; CODE XREF: __strtoull_internal+2E0j .text:00041CA8 CMP R7, R6 .text:00041CAC MOVCS R10, R7 .text:00041CB0 MOVCC R10, R6 .text:00041CB4 B loc_41CCC .text:00041CB8 ; --------------------------------------------------------------------------- .text:00041CB8 .text:00041CB8 loc_41CB8 ; CODE XREF: __strtoull_internal+1ACj .text:00041CB8 LDR R2, [R11,#var_34] .text:00041CBC SUB R12, R11, #-var_60 .text:00041CC0 LDR R10, [R11,#var_54] .text:00041CC4 MOV R3, R2,ASR#31 .text:00041CC8 STMIB R12, {R2,R3} .text:00041CCC .text:00041CCC loc_41CCC ; CODE XREF: __strtoull_internal+218j .text:00041CCC ; __strtoull_internal+2D0j ... .text:00041CCC MOV R5, 0xFFFFFFFF .text:00041CD0 MOV R4, 0xFFFFFFFF .text:00041CD4 MOV R1, R5 .text:00041CD8 MOV R0, R4 .text:00041CDC SUB R12, R11, #-var_60 .text:00041CE0 LDMIB R12, {R2,R3} .text:00041CE4 BL __udivdi3 .text:00041CE8 SUB R2, R11, #-var_40 .text:00041CEC STMIA R2, {R0,R1} .text:00041CF0 MOV R1, R5 .text:00041CF4 MOV R0, R4 .text:00041CF8 SUB R12, R11, #-var_60 .text:00041CFC LDMIB R12, {R2,R3} .text:00041D00 BL __umoddi3 .text:00041D04 MOV R1, #0 .text:00041D08 STR R1, [R11,#var_4C] .text:00041D0C STR R0, [R11,#var_44] .text:00041D10 MOV R4, R1 .text:00041D14 LDR R1, [R11,#var_34] .text:00041D18 MOV R0, 0xFFFFFFFF .text:00041D1C LDRB R5, [R6] .text:00041D20 BL __udivsi3 .text:00041D24 CMP R5, #0 .text:00041D28 BEQ loc_41E00 .text:00041D2C CMP R6, R10 .text:00041D30 BEQ loc_41E00 .text:00041D34 LDR LR, =__ctype_b .text:00041D38 LDR R12, =__ctype_toupper .text:00041D3C .text:00041D3C loc_41D3C ; CODE XREF: __strtoull_internal+61Cj .text:00041D3C SUB R3, R5, #0x30 .text:00041D40 AND R3, R3, #0xFF .text:00041D44 CMP R3, #9 .text:00041D48 MOVLS R5, R3 .text:00041D4C BLS loc_41DD4 .text:00041D50 LDR R2, [R11,#var_50] .text:00041D54 CMP R2, #0 .text:00041D58 BEQ loc_41DAC .text:00041D5C MOV R1, #0 .text:00041D60 CMP R1, R2 .text:00041D64 BCS loc_41D98 .text:00041D68 LDRB R2, [R9] .text:00041D6C LDRB R3, [R6] .text:00041D70 CMP R2, R3 .text:00041D74 BNE loc_41D98 .text:00041D78 .text:00041D78 loc_41D78 ; CODE XREF: __strtoull_internal+5B4j .text:00041D78 LDR R3, [R11,#var_50] .text:00041D7C ADD R1, R1, #1 .text:00041D80 CMP R1, R3 .text:00041D84 BCS loc_41D98 .text:00041D88 LDRB R2, [R9,R1] .text:00041D8C LDRB R3, [R6,R1] .text:00041D90 CMP R2, R3 .text:00041D94 BEQ loc_41D78 .text:00041D98 .text:00041D98 loc_41D98 ; CODE XREF: __strtoull_internal+584j .text:00041D98 ; __strtoull_internal+594j ... .text:00041D98 LDR R2, [R11,#var_50] .text:00041D9C CMP R1, R2 .text:00041DA0 SUBEQ R3, R2, #1 .text:00041DA4 ADDEQ R6, R6, R3 .text:00041DA8 BEQ loc_41DEC .text:00041DAC .text:00041DAC loc_41DAC ; CODE XREF: __strtoull_internal+578j .text:00041DAC LDR R3, [LR] .text:00041DB0 MOV R2, R5,LSL#1 .text:00041DB4 ADD R2, R2, R3 .text:00041DB8 LDRB R1, [R2,#1] .text:00041DBC TST R1, #4 .text:00041DC0 BEQ loc_41E00 .text:00041DC4 LDR R2, [R12] .text:00041DC8 LDR R3, [R2,R5,LSL#2] .text:00041DCC SUB R3, R3, #0x37 .text:00041DD0 AND R5, R3, #0xFF .text:00041DD4 .text:00041DD4 loc_41DD4 ; CODE XREF: __strtoull_internal+56Cj .text:00041DD4 LDR R3, [R11,#var_34] .text:00041DD8 CMP R5, R3 .text:00041DDC BGE loc_41E00 .text:00041DE0 CMP R4, R0 .text:00041DE4 BCS loc_41F0C .text:00041DE8 MLA R4, R3, R4, R5 .text:00041DEC .text:00041DEC loc_41DEC ; CODE XREF: __strtoull_internal+5C8j .text:00041DEC LDRB R5, [R6,#1]! .text:00041DF0 CMP R5, #0 .text:00041DF4 BEQ loc_41E00 .text:00041DF8 CMP R6, R10 .text:00041DFC BNE loc_41D3C .text:00041E00 .text:00041E00 loc_41E00 ; CODE XREF: __strtoull_internal+548j .text:00041E00 ; __strtoull_internal+550j ... .text:00041E00 MOV R7, R4 .text:00041E04 MOV R8, #0 .text:00041E08 B loc_41F4C .text:00041E0C ; --------------------------------------------------------------------------- .text:00041E0C .text:00041E0C loc_41E0C ; CODE XREF: __strtoull_internal+768j .text:00041E0C SUB R3, R5, #0x30 .text:00041E10 AND R3, R3, #0xFF .text:00041E14 CMP R3, #9 .text:00041E18 MOVLS R5, R3 .text:00041E1C BLS loc_41EB4 .text:00041E20 LDR R12, [R11,#var_50] .text:00041E24 CMP R12, #0 .text:00041E28 BEQ loc_41E84 .text:00041E2C MOV R1, #0 .text:00041E30 CMP R1, R12 .text:00041E34 BCS loc_41E64 .text:00041E38 LDRB R3, [R9] .text:00041E3C CMP R3, R5 .text:00041E40 BNE loc_41E64 .text:00041E44 .text:00041E44 loc_41E44 ; CODE XREF: __strtoull_internal+680j .text:00041E44 LDR R0, [R11,#var_50] .text:00041E48 ADD R1, R1, #1 .text:00041E4C CMP R1, R0 .text:00041E50 BCS loc_41E64 .text:00041E54 LDRB R2, [R9,R1] .text:00041E58 LDRB R3, [R6,R1] .text:00041E5C CMP R2, R3 .text:00041E60 BEQ loc_41E44 .text:00041E64 .text:00041E64 loc_41E64 ; CODE XREF: __strtoull_internal+654j .text:00041E64 ; __strtoull_internal+660j ... .text:00041E64 LDR R2, [R11,#var_50] .text:00041E68 CMP R1, R2 .text:00041E6C SUBEQ R3, R2, #1 .text:00041E70 ADDEQ R6, R6, R3 .text:00041E74 BEQ loc_41F38 .text:00041E78 LDR R12, =__ctype_b .text:00041E7C LDR R3, [R12] .text:00041E80 B loc_41E8C .text:00041E84 ; --------------------------------------------------------------------------- .text:00041E84 .text:00041E84 loc_41E84 ; CODE XREF: __strtoull_internal+648j .text:00041E84 LDR R0, =__ctype_b .text:00041E88 LDR R3, [R0] .text:00041E8C .text:00041E8C loc_41E8C ; CODE XREF: __strtoull_internal+6A0j .text:00041E8C MOV R2, R5,LSL#1 .text:00041E90 ADD R2, R2, R3 .text:00041E94 LDRB R1, [R2,#1] .text:00041E98 TST R1, #4 .text:00041E9C BEQ loc_41F4C .text:00041EA0 LDR R3, =__ctype_toupper .text:00041EA4 LDR R1, [R3] .text:00041EA8 LDR R2, [R1,R5,LSL#2] .text:00041EAC SUB R2, R2, #0x37 .text:00041EB0 AND R5, R2, #0xFF .text:00041EB4 .text:00041EB4 loc_41EB4 ; CODE XREF: __strtoull_internal+63Cj .text:00041EB4 LDR R1, [R11,#var_34] .text:00041EB8 CMP R5, R1 .text:00041EBC BGE loc_41F4C .text:00041EC0 LDR R2, [R11,#var_3C] .text:00041EC4 CMP R8, R2 .text:00041EC8 BHI loc_41F00 .text:00041ECC BNE loc_41EDC .text:00041ED0 LDR R3, [R11,#var_40] .text:00041ED4 CMP R7, R3 .text:00041ED8 BHI loc_41F00 .text:00041EDC .text:00041EDC loc_41EDC ; CODE XREF: __strtoull_internal+6ECj .text:00041EDC LDR R12, [R11,#var_40] .text:00041EE0 CMP R7, R12 .text:00041EE4 BNE loc_41F14 .text:00041EE8 LDR R0, [R11,#var_3C] .text:00041EEC CMP R8, R0 .text:00041EF0 BNE loc_41F14 .text:00041EF4 LDR R1, [R11,#var_44] .text:00041EF8 CMP R5, R1 .text:00041EFC BLS loc_41F14 .text:00041F00 .text:00041F00 loc_41F00 ; CODE XREF: __strtoull_internal+6E8j .text:00041F00 ; __strtoull_internal+6F8j .text:00041F00 MOV R2, #1 .text:00041F04 STR R2, [R11,#var_4C] .text:00041F08 B loc_41F38 .text:00041F0C ; --------------------------------------------------------------------------- .text:00041F0C .text:00041F0C loc_41F0C ; CODE XREF: __strtoull_internal+604j .text:00041F0C MOV R7, R4 .text:00041F10 MOV R8, #0 .text:00041F14 .text:00041F14 loc_41F14 ; CODE XREF: __strtoull_internal+704j .text:00041F14 ; __strtoull_internal+710j ... .text:00041F14 MOV R1, R8 .text:00041F18 MOV R0, R7 .text:00041F1C SUB R12, R11, #-var_60 .text:00041F20 LDMIB R12, {R2,R3} .text:00041F24 BL __muldi3 .text:00041F28 AND R7, R5, #0xFF .text:00041F2C MOV R8, #0 .text:00041F30 ADDS R7, R7, R0 .text:00041F34 ADC R8, R8, R1 .text:00041F38 .text:00041F38 loc_41F38 ; CODE XREF: __strtoull_internal+694j .text:00041F38 ; __strtoull_internal+728j .text:00041F38 LDRB R5, [R6,#1]! .text:00041F3C CMP R5, #0 .text:00041F40 BEQ loc_41F4C .text:00041F44 CMP R6, R10 .text:00041F48 BNE loc_41E0C .text:00041F4C .text:00041F4C loc_41F4C ; CODE XREF: __strtoull_internal+628j .text:00041F4C ; __strtoull_internal+6BCj ... .text:00041F4C LDR R0, [R11,#var_48] .text:00041F50 CMP R6, R0 .text:00041F54 BEQ loc_41FC8 .text:00041F58 LDR R1, [R11,#var_30] .text:00041F5C CMP R1, #0 .text:00041F60 STRNE R6, [R1] .text:00041F64 LDR R2, [R11,#var_4C] .text:00041F68 CMP R2, #0 .text:00041F6C BEQ loc_41F88 .text:00041F70 BL __errno_location .text:00041F74 MOV R3, #0x22 .text:00041F78 STR R3, [R0] .text:00041F7C MOV R1, 0xFFFFFFFF .text:00041F80 MOV R0, 0xFFFFFFFF .text:00041F84 B locret_42040 .text:00041F88 ; --------------------------------------------------------------------------- .text:00041F88 .text:00041F88 loc_41F88 ; CODE XREF: __strtoull_internal+78Cj .text:00041F88 LDR R12, [R11,#var_38] .text:00041F8C RSBS R3, R7, #0 .text:00041F90 RSC R4, R8, #0 .text:00041F94 EOR R1, R12, #1 .text:00041F98 MOV R2, #0 .text:00041F9C RSBS R5, R1, #0 .text:00041FA0 RSC R6, R2, #0 .text:00041FA4 AND R7, R7, R5 .text:00041FA8 AND R8, R8, R6 .text:00041FAC BIC R3, R3, R5 .text:00041FB0 BIC R4, R4, R6 .text:00041FB4 MOV R1, R8 .text:00041FB8 MOV R0, R7 .text:00041FBC ORR R0, R0, R3 .text:00041FC0 ORR R1, R1, R4 .text:00041FC4 B locret_42040 .text:00041FC8 ; --------------------------------------------------------------------------- .text:00041FC8 .text:00041FC8 loc_41FC8 ; CODE XREF: __strtoull_internal+F4j .text:00041FC8 ; __strtoull_internal+774j .text:00041FC8 LDR R0, [R11,#var_30] .text:00041FCC CMP R0, #0 .text:00041FD0 BEQ loc_42038 .text:00041FD4 LDR R1, [R11,#var_48] .text:00041FD8 LDR R2, [R11,#var_2C] .text:00041FDC RSB R3, R2, R1 .text:00041FE0 CMP R3, #1 .text:00041FE4 BLE loc_4202C .text:00041FE8 LDR R3, [R11,#var_48] .text:00041FEC LDR R1, =__ctype_toupper .text:00041FF0 LDRB R0, [R3,#-1] .text:00041FF4 LDR R3, [R1] .text:00041FF8 LDR R2, [R3,R0,LSL#2] .text:00041FFC CMP R2, #0x58 .text:00042000 BNE loc_4202C .text:00042004 LDR R12, [R11,#var_48] .text:00042008 LDRB R3, [R12,#-2] .text:0004200C CMP R3, #0x30 .text:00042010 BNE loc_4202C .text:00042014 LDR R0, [R11,#var_30] .text:00042018 SUB R3, R12, #1 .text:0004201C STR R3, [R0] .text:00042020 B loc_42038 .text:00042020 ; --------------------------------------------------------------------------- .text:00042024 off_42024 DCD __ctype_b ; DATA XREF: __strtoull_internal+554r .text:00042024 ; __strtoull_internal+698r ... .text:00042028 off_42028 DCD __ctype_toupper ; DATA XREF: __strtoull_internal+558r .text:00042028 ; __strtoull_internal+6C0r ... .text:0004202C ; --------------------------------------------------------------------------- .text:0004202C .text:0004202C loc_4202C ; CODE XREF: __strtoull_internal+804j .text:0004202C ; __strtoull_internal+820j ... .text:0004202C SUB R1, R11, #-var_30 .text:00042030 LDMIA R1, {R1,R2} .text:00042034 STR R2, [R1] .text:00042038 .text:00042038 loc_42038 ; CODE XREF: __strtoull_internal+A0j .text:00042038 ; __strtoull_internal+7F0j ... .text:00042038 MOV R1, #0 .text:0004203C MOV R0, #0 .text:00042040 .text:00042040 locret_42040 ; CODE XREF: __strtoull_internal+7A4j .text:00042040 ; __strtoull_internal+7E4j .text:00042040 LDMDB R11, {R4-R11,SP,PC} .text:00042040 ; End of function __strtoull_internal .text:00042040 .text:00042044 .text:00042044 ; =============== S U B R O U T I N E ======================================= .text:00042044 .text:00042044 ; Attributes: bp-based frame .text:00042044 .text:00042044 WEAK strtouq .text:00042044 strtouq .text:00042044 MOV R12, SP .text:00042048 STMFD SP!, {R11,R12,LR,PC} .text:0004204C SUB R11, R12, #4 .text:00042050 MOV R3, #0 .text:00042054 BL __strtoull_internal .text:00042058 LDMDB R11, {R11,SP,PC} .text:00042058 ; End of function strtouq .text:00042058 .text:0004205C .text:0004205C ; =============== S U B R O U T I N E ======================================= .text:0004205C .text:0004205C ; Attributes: bp-based frame .text:0004205C .text:0004205C EXPORT __strtof_internal .text:0004205C __strtof_internal ; CODE XREF: _IO_vfscanf+4038p .text:0004205C ; strtof+10p .text:0004205C .text:0004205C var_F0 = -0xF0 .text:0004205C var_EC = -0xEC .text:0004205C var_E8 = -0xE8 .text:0004205C var_E4 = -0xE4 .text:0004205C var_E0 = -0xE0 .text:0004205C var_DC = -0xDC .text:0004205C var_D8 = -0xD8 .text:0004205C var_D4 = -0xD4 .text:0004205C var_D0 = -0xD0 .text:0004205C var_CC = -0xCC .text:0004205C var_C8 = -0xC8 .text:0004205C var_C4 = -0xC4 .text:0004205C var_C0 = -0xC0 .text:0004205C var_BC = -0xBC .text:0004205C var_B8 = -0xB8 .text:0004205C var_B4 = -0xB4 .text:0004205C var_B0 = -0xB0 .text:0004205C var_AC = -0xAC .text:0004205C var_A8 = -0xA8 .text:0004205C var_A4 = -0xA4 .text:0004205C var_A0 = -0xA0 .text:0004205C var_9C = -0x9C .text:0004205C var_98 = -0x98 .text:0004205C var_94 = -0x94 .text:0004205C var_90 = -0x90 .text:0004205C var_8C = -0x8C .text:0004205C var_88 = -0x88 .text:0004205C var_84 = -0x84 .text:0004205C var_80 = -0x80 .text:0004205C var_7C = -0x7C .text:0004205C var_78 = -0x78 .text:0004205C var_74 = -0x74 .text:0004205C var_70 = -0x70 .text:0004205C var_6C = -0x6C .text:0004205C var_68 = -0x68 .text:0004205C var_64 = -0x64 .text:0004205C var_48 = -0x48 .text:0004205C var_44 = -0x44 .text:0004205C .text:0004205C MOV R12, SP .text:00042060 STMFD SP!, {R4-R12,LR,PC} .text:00042064 SUB R11, R12, #4 .text:00042068 MOV R3, #0xA .text:0004206C SUB SP, SP, #0xC4 .text:00042070 STR R3, [R11,#var_88] .text:00042074 MOV R6, #0 .text:00042078 STR R6, [R11,#var_A8] .text:0004207C STR R0, [R11,#var_7C] .text:00042080 CMP R2, R6 .text:00042084 STR R1, [R11,#var_80] .text:00042088 BEQ loc_420CC .text:0004208C LDR R2, =_nl_current_LC_NUMERIC .text:00042090 LDR R1, [R2] .text:00042094 LDR R12, [R1,#0x28] .text:00042098 STR R12, [R11,#var_AC] .text:0004209C LDRB R3, [R12] .text:000420A0 CMP R3, #0xFF .text:000420A4 CMPNE R3, R6 .text:000420A8 STREQ R6, [R11,#var_AC] .text:000420AC BEQ loc_420D8 .text:000420B0 LDR R1, [R1,#0x24] .text:000420B4 STR R1, [R11,#var_A8] .text:000420B8 LDRB R3, [R1] .text:000420BC CMP R3, #0 .text:000420C0 STREQ R3, [R11,#var_A8] .text:000420C4 STREQ R3, [R11,#var_AC] .text:000420C8 B loc_420D8 .text:000420CC ; --------------------------------------------------------------------------- .text:000420CC .text:000420CC loc_420CC ; CODE XREF: __strtof_internal+2Cj .text:000420CC LDR LR, [R11,#var_A8] .text:000420D0 LDR R2, =_nl_current_LC_NUMERIC .text:000420D4 STR LR, [R11,#var_AC] .text:000420D8 .text:000420D8 loc_420D8 ; CODE XREF: __strtof_internal+50j .text:000420D8 ; __strtof_internal+6Cj .text:000420D8 LDR R3, [R2] .text:000420DC LDR R3, [R3,#0x20] .text:000420E0 STR R3, [R11,#var_A0] .text:000420E4 MOV R0, R3 .text:000420E8 BL strlen .text:000420EC MOV R3, #0 .text:000420F0 STR R3, [R11,#var_78] .text:000420F4 STR R3, [R11,#var_84] .text:000420F8 STR R0, [R11,#var_A4] .text:000420FC STR R3, [R11,#var_90] .text:00042100 LDR R1, [R11,#var_7C] .text:00042104 LDR R2, =__ctype_b .text:00042108 SUB R10, R1, #1 .text:0004210C LDR R1, [R2] .text:00042110 .text:00042110 loc_42110 ; CODE XREF: __strtof_internal+C8j .text:00042110 LDRB R6, [R10,#1]! .text:00042114 MOV R3, R6,LSL#1 .text:00042118 ADD R3, R3, R1 .text:0004211C LDRB R2, [R3,#1] .text:00042120 TST R2, #0x20 .text:00042124 BNE loc_42110 .text:00042128 CMP R6, #0x2D .text:0004212C MOVEQ R3, #1 .text:00042130 STREQ R3, [R11,#var_84] .text:00042134 BEQ loc_42140 .text:00042138 CMP R6, #0x2B .text:0004213C BNE loc_42144 .text:00042140 .text:00042140 loc_42140 ; CODE XREF: __strtof_internal+D8j .text:00042140 LDRB R6, [R10,#1]! .text:00042144 .text:00042144 loc_42144 ; CODE XREF: __strtof_internal+E0j .text:00042144 LDR R12, [R11,#var_A0] .text:00042148 LDRB R2, [R12] .text:0004214C MOV R4, #0 .text:00042150 CMP R2, R4 .text:00042154 BEQ loc_42184 .text:00042158 LDRB R3, [R10] .text:0004215C CMP R3, R2 .text:00042160 BNE loc_42184 .text:00042164 .text:00042164 loc_42164 ; CODE XREF: __strtof_internal+124j .text:00042164 LDR LR, [R11,#var_A0] .text:00042168 ADD R4, R4, #1 .text:0004216C LDRB R2, [LR,R4] .text:00042170 CMP R2, #0 .text:00042174 BEQ loc_42184 .text:00042178 LDRB R3, [R10,R4] .text:0004217C CMP R3, R2 .text:00042180 BEQ loc_42164 .text:00042184 .text:00042184 loc_42184 ; CODE XREF: __strtof_internal+F8j .text:00042184 ; __strtof_internal+104j ... .text:00042184 LDR R0, [R11,#var_A0] .text:00042188 LDRB R3, [R0,R4] .text:0004218C CMP R3, #0 .text:00042190 BNE loc_421A8 .text:00042194 LDRB R3, [R10,#1] .text:00042198 CMP R3, #0x2F .text:0004219C BLS loc_421A8 .text:000421A0 CMP R3, #0x39 .text:000421A4 BLS loc_4234C .text:000421A8 .text:000421A8 loc_421A8 ; CODE XREF: __strtof_internal+134j .text:000421A8 ; __strtof_internal+140j .text:000421A8 SUB R3, R6, #0x30 .text:000421AC CMP R3, #9 .text:000421B0 BLS loc_4234C .text:000421B4 LDR R3, =__ctype_tolower .text:000421B8 LDR R2, [R3] .text:000421BC LDR R1, [R2,R6,LSL#2] .text:000421C0 MOV R8, R3 .text:000421C4 CMP R1, #0x69 .text:000421C8 BNE loc_42220 .text:000421CC MOV R0, R10 .text:000421D0 LDR R1, =dword_61AB0 .text:000421D4 MOV R2, #3 .text:000421D8 BL strncasecmp .text:000421DC CMP R0, #0 .text:000421E0 MOV R0, #3 .text:000421E4 BEQ loc_42204 .text:000421E8 MOV R0, R10 .text:000421EC LDR R1, =aInfinity ; "infinity" .text:000421F0 MOV R2, #8 .text:000421F4 BL strncasecmp .text:000421F8 CMP R0, #0 .text:000421FC BNE loc_42220 .text:00042200 MOV R0, #8 .text:00042204 .text:00042204 loc_42204 ; CODE XREF: __strtof_internal+188j .text:00042204 LDR R1, [R11,#var_80] .text:00042208 CMP R1, #0 .text:0004220C ADDNE R3, R10, R0 .text:00042210 STRNE R3, [R1] .text:00042214 LDR R2, [R11,#var_84] .text:00042218 CMP R2, #0 .text:0004221C B loc_43724 .text:00042220 ; --------------------------------------------------------------------------- .text:00042220 .text:00042220 loc_42220 ; CODE XREF: __strtof_internal+16Cj .text:00042220 ; __strtof_internal+1A0j .text:00042220 LDR R3, [R8] .text:00042224 LDR R2, [R3,R6,LSL#2] .text:00042228 CMP R2, #0x6E .text:0004222C BNE loc_42338 .text:00042230 MOV R0, R10 .text:00042234 LDR R1, =aNan_0 ; "nan" .text:00042238 MOV R2, #3 .text:0004223C BL strncasecmp .text:00042240 CMP R0, #0 .text:00042244 BNE loc_42338 .text:00042248 LDRB R3, [R10,#3]! .text:0004224C LDR R5, =0x7FFFFFFF .text:00042250 CMP R3, #0x28 .text:00042254 BNE loc_42320 .text:00042258 MOV R0, R10 .text:0004225C MOV R1, R8 .text:00042260 .text:00042260 loc_42260 ; CODE XREF: __strtof_internal+210j .text:00042260 ; __strtof_internal+22Cj ... .text:00042260 LDRB R3, [R10,#1]! .text:00042264 SUB R3, R3, #0x30 .text:00042268 CMP R3, #9 .text:0004226C BLS loc_42260 .text:00042270 LDRB R2, [R10] .text:00042274 LDR R3, [R1] .text:00042278 LDR R3, [R3,R2,LSL#2] .text:0004227C CMP R3, #0x60 .text:00042280 BLE loc_4228C .text:00042284 CMP R3, #0x7A .text:00042288 BLE loc_42260 .text:0004228C .text:0004228C loc_4228C ; CODE XREF: __strtof_internal+224j .text:0004228C AND R3, R2, #0xFF .text:00042290 CMP R3, #0x5F .text:00042294 BEQ loc_42260 .text:00042298 CMP R3, #0x29 .text:0004229C MOVNE R10, R0 .text:000422A0 BNE loc_42320 .text:000422A4 ADD R0, R0, #1 .text:000422A8 SUB R1, R11, #-var_6C .text:000422AC MOV R2, #0 .text:000422B0 MOV R3, R2 .text:000422B4 BL __strtoull_internal .text:000422B8 LDR R3, [R11,#var_6C] .text:000422BC MOV R8, R1 .text:000422C0 MOV R7, R0 .text:000422C4 CMP R3, R10 .text:000422C8 BNE loc_42320 .text:000422CC ADR R1, dword_42418 .text:000422D0 LDMIA R1, {R1,R2} .text:000422D4 MOV R6, #0 .text:000422D8 MOV R5, #0x400000 .text:000422DC AND R1, R1, R7 .text:000422E0 AND R2, R2, R8 .text:000422E4 ORRS R1, R1, R2 .text:000422E8 MOVEQ R3, #0 .text:000422EC MOVNE R3, #1 .text:000422F0 MOV R4, #0 .text:000422F4 RSBS R1, R3, #0 .text:000422F8 RSC R2, R4, #0 .text:000422FC BIC R5, R5, R1 .text:00042300 BIC R6, R6, R2 .text:00042304 AND R1, R1, R7 .text:00042308 AND R2, R2, R8 .text:0004230C ORR R5, R5, R1 .text:00042310 ORR R6, R6, R2 .text:00042314 BIC R5, R5, #0x80000000 .text:00042318 ORR R5, R5, #0x7F000000 .text:0004231C ORR R5, R5, #0x800000 .text:00042320 .text:00042320 loc_42320 ; CODE XREF: __strtof_internal+1F8j .text:00042320 ; __strtof_internal+244j ... .text:00042320 LDR R3, [R11,#var_80] .text:00042324 CMP R3, #0 .text:00042328 STRNE R10, [R3] .text:0004232C STR R5, [SP,#0xEC+var_F0]! .text:00042330 LDC p1, c0, [SP+0xF0+var_F0],#4 .text:00042334 B locret_45378 .text:00042338 ; --------------------------------------------------------------------------- .text:00042338 .text:00042338 loc_42338 ; CODE XREF: __strtof_internal+1D0j .text:00042338 ; __strtof_internal+1E8j .text:00042338 LDR R6, [R11,#var_80] .text:0004233C CMP R6, #0 .text:00042340 LDRNE R12, [R11,#var_7C] .text:00042344 STRNE R12, [R6] .text:00042348 B loc_427FC .text:0004234C ; --------------------------------------------------------------------------- .text:0004234C .text:0004234C loc_4234C ; CODE XREF: __strtof_internal+148j .text:0004234C ; __strtof_internal+154j .text:0004234C CMP R6, #0x30 .text:00042350 BNE loc_42380 .text:00042354 LDR R1, =__ctype_tolower .text:00042358 LDRB R0, [R10,#1] .text:0004235C LDR R3, [R1] .text:00042360 LDR R2, [R3,R0,LSL#2] .text:00042364 CMP R2, #0x78 .text:00042368 BNE loc_42380 .text:0004236C MOV LR, #0x10 .text:00042370 STR LR, [R11,#var_88] .text:00042374 MOV R0, #0 .text:00042378 STR R0, [R11,#var_AC] .text:0004237C LDRB R6, [R10,#2]! .text:00042380 .text:00042380 loc_42380 ; CODE XREF: __strtof_internal+2F4j .text:00042380 ; __strtof_internal+30Cj .text:00042380 STR R10, [R11,#var_94] .text:00042384 LDR R1, [R11,#var_A8] .text:00042388 CMP R1, #0 .text:0004238C MOV R7, R10 .text:00042390 BNE loc_423AC .text:00042394 CMP R6, #0x30 .text:00042398 BNE loc_42420 .text:0004239C .text:0004239C loc_4239C ; CODE XREF: __strtof_internal+348j .text:0004239C LDRB R6, [R10,#1]! .text:000423A0 CMP R6, #0x30 .text:000423A4 BEQ loc_4239C .text:000423A8 B loc_42420 .text:000423AC ; --------------------------------------------------------------------------- .text:000423AC .text:000423AC loc_423AC ; CODE XREF: __strtof_internal+334j .text:000423AC ; __strtof_internal+39Cj .text:000423AC CMP R6, #0x30 .text:000423B0 BEQ loc_423F4 .text:000423B4 LDR R2, [R11,#var_A8] .text:000423B8 LDRB R3, [R2] .text:000423BC MOV R4, #0 .text:000423C0 CMP R3, R4 .text:000423C4 B loc_423D8 .text:000423C8 ; --------------------------------------------------------------------------- .text:000423C8 .text:000423C8 loc_423C8 ; CODE XREF: __strtof_internal+384j .text:000423C8 LDR R12, [R11,#var_A8] .text:000423CC ADD R4, R4, #1 .text:000423D0 LDRB R3, [R12,R4] .text:000423D4 CMP R3, #0 .text:000423D8 .text:000423D8 loc_423D8 ; CODE XREF: __strtof_internal+368j .text:000423D8 BEQ loc_423E4 .text:000423DC CMP R6, R3 .text:000423E0 BEQ loc_423C8 .text:000423E4 .text:000423E4 loc_423E4 ; CODE XREF: __strtof_internal:loc_423D8j .text:000423E4 LDR LR, [R11,#var_A8] .text:000423E8 LDRB R3, [LR,R4] .text:000423EC CMP R3, #0 .text:000423F0 BNE loc_42420 .text:000423F4 .text:000423F4 loc_423F4 ; CODE XREF: __strtof_internal+354j .text:000423F4 LDRB R6, [R10,#1]! .text:000423F8 B loc_423AC .text:000423F8 ; --------------------------------------------------------------------------- .text:000423FC off_423FC DCD _nl_current_LC_NUMERIC ; DATA XREF: __strtof_internal+30r .text:000423FC ; __strtof_internal+74r .text:00042400 off_42400 DCD __ctype_b ; DATA XREF: __strtof_internal+A8r .text:00042404 off_42404 DCD __ctype_tolower ; DATA XREF: __strtof_internal+158r .text:00042404 ; __strtof_internal+2F8r .text:00042408 off_42408 DCD dword_61AB0 ; DATA XREF: __strtof_internal+174r .text:0004240C off_4240C DCD aInfinity ; DATA XREF: __strtof_internal+190r .text:0004240C ; "infinity" .text:00042410 off_42410 DCD aNan_0 ; DATA XREF: __strtof_internal+1D8r .text:00042410 ; "nan" .text:00042414 dword_42414 DCD 0x7FFFFFFF ; DATA XREF: __strtof_internal+1F0r .text:00042418 dword_42418 DCD 0x7FFFFF, 0 ; DATA XREF: __strtof_internal+270o .text:00042420 ; --------------------------------------------------------------------------- .text:00042420 .text:00042420 loc_42420 ; CODE XREF: __strtof_internal+33Cj .text:00042420 ; __strtof_internal+34Cj ... .text:00042420 SUB R3, R6, #0x30 .text:00042424 CMP R3, #9 .text:00042428 BLS loc_424D0 .text:0004242C LDR R0, [R11,#var_88] .text:00042430 CMP R0, #0x10 .text:00042434 BNE loc_424D0 .text:00042438 LDR R3, =__ctype_tolower .text:0004243C LDR R1, [R3] .text:00042440 LDR R2, [R1,#0x184] .text:00042444 MOV R8, R3 .text:00042448 CMP R6, R2 .text:0004244C BLT loc_4245C .text:00042450 LDR R3, [R1,#0x198] .text:00042454 CMP R6, R3 .text:00042458 BLE loc_424D0 .text:0004245C .text:0004245C loc_4245C ; CODE XREF: __strtof_internal+3F0j .text:0004245C LDR R1, [R11,#var_A0] .text:00042460 LDRB R2, [R1] .text:00042464 MOV R4, #0 .text:00042468 CMP R2, R4 .text:0004246C BEQ loc_4249C .text:00042470 LDRB R3, [R10] .text:00042474 CMP R2, R3 .text:00042478 BNE loc_4249C .text:0004247C .text:0004247C loc_4247C ; CODE XREF: __strtof_internal+43Cj .text:0004247C LDR R3, [R11,#var_A0] .text:00042480 ADD R4, R4, #1 .text:00042484 LDRB R2, [R3,R4] .text:00042488 CMP R2, #0 .text:0004248C BEQ loc_4249C .text:00042490 LDRB R3, [R10,R4] .text:00042494 CMP R2, R3 .text:00042498 BEQ loc_4247C .text:0004249C .text:0004249C loc_4249C ; CODE XREF: __strtof_internal+410j .text:0004249C ; __strtof_internal+41Cj ... .text:0004249C LDR R12, [R11,#var_A0] .text:000424A0 LDRB R3, [R12,R4] .text:000424A4 CMP R3, #0 .text:000424A8 BEQ loc_424D0 .text:000424AC LDR LR, [R11,#var_88] .text:000424B0 CMP LR, #0x10 .text:000424B4 BNE loc_424D0 .text:000424B8 LDR R0, [R11,#var_94] .text:000424BC CMP R10, R0 .text:000424C0 BEQ loc_424D0 .text:000424C4 LDR R3, [R8] .text:000424C8 LDR R2, [R3,R6,LSL#2] .text:000424CC CMP R2, #0x70 .text:000424D0 .text:000424D0 loc_424D0 ; CODE XREF: __strtof_internal+3CCj .text:000424D0 ; __strtof_internal+3D8j ... .text:000424D0 MOV R1, #0 .text:000424D4 STR R1, [R11,#var_98] .text:000424D8 LDR R1, =__ctype_tolower .text:000424DC STR R10, [R11,#var_94] .text:000424E0 .text:000424E0 loc_424E0 ; CODE XREF: __strtof_internal+520j .text:000424E0 SUB R3, R6, #0x30 .text:000424E4 CMP R3, #9 .text:000424E8 BLS loc_42510 .text:000424EC LDR R2, [R11,#var_88] .text:000424F0 CMP R2, #0x10 .text:000424F4 BNE loc_42520 .text:000424F8 LDR R3, [R1] .text:000424FC LDR R3, [R3,R6,LSL#2] .text:00042500 CMP R3, #0x60 .text:00042504 BLE loc_42520 .text:00042508 CMP R3, #0x66 .text:0004250C BGT loc_42520 .text:00042510 .text:00042510 loc_42510 ; CODE XREF: __strtof_internal+48Cj .text:00042510 LDR R3, [R11,#var_98] .text:00042514 ADD R3, R3, #1 .text:00042518 STR R3, [R11,#var_98] .text:0004251C B loc_42578 .text:00042520 ; --------------------------------------------------------------------------- .text:00042520 .text:00042520 loc_42520 ; CODE XREF: __strtof_internal+498j .text:00042520 ; __strtof_internal+4A8j ... .text:00042520 LDR R12, [R11,#var_A8] .text:00042524 CMP R12, #0 .text:00042528 BEQ loc_42580 .text:0004252C LDRB R2, [R12] .text:00042530 MOV R4, #0 .text:00042534 CMP R2, R4 .text:00042538 BEQ loc_42568 .text:0004253C LDRB R3, [R10] .text:00042540 CMP R2, R3 .text:00042544 BNE loc_42568 .text:00042548 .text:00042548 loc_42548 ; CODE XREF: __strtof_internal+508j .text:00042548 LDR LR, [R11,#var_A8] .text:0004254C ADD R4, R4, #1 .text:00042550 LDRB R2, [LR,R4] .text:00042554 CMP R2, #0 .text:00042558 BEQ loc_42568 .text:0004255C LDRB R3, [R10,R4] .text:00042560 CMP R2, R3 .text:00042564 BEQ loc_42548 .text:00042568 .text:00042568 loc_42568 ; CODE XREF: __strtof_internal+4DCj .text:00042568 ; __strtof_internal+4E8j ... .text:00042568 LDR R0, [R11,#var_A8] .text:0004256C LDRB R3, [R0,R4] .text:00042570 CMP R3, #0 .text:00042574 BNE loc_42580 .text:00042578 .text:00042578 loc_42578 ; CODE XREF: __strtof_internal+4C0j .text:00042578 LDRB R6, [R10,#1]! .text:0004257C B loc_424E0 .text:00042580 ; --------------------------------------------------------------------------- .text:00042580 .text:00042580 loc_42580 ; CODE XREF: __strtof_internal+4CCj .text:00042580 ; __strtof_internal+518j .text:00042580 LDR R1, [R11,#var_AC] .text:00042584 LDR R2, [R11,#var_98] .text:00042588 CMP R1, #0 .text:0004258C CMPNE R2, #0 .text:00042590 BLE loc_42850 .text:00042594 MOV R8, R10 .text:00042598 CMP R1, #0 .text:0004259C MOVEQ R2, R10 .text:000425A0 BEQ loc_427C0 .text:000425A4 LDR R0, [R11,#var_A8] .text:000425A8 BL strlen .text:000425AC CMP R10, R7 .text:000425B0 BLS loc_427B4 .text:000425B4 .text:000425B4 loc_425B4 ; CODE XREF: __strtof_internal+754j .text:000425B4 SUB R12, R8, #1 .text:000425B8 CMP R12, R7 .text:000425BC LDR R4, [R11,#var_AC] .text:000425C0 BCC loc_42644 .text:000425C4 LDR R3, [R11,#var_A8] .text:000425C8 SUB R9, R0, #2 .text:000425CC LDRB R5, [R3] .text:000425D0 .text:000425D0 loc_425D0 ; CODE XREF: __strtof_internal+5E4j .text:000425D0 ADD R3, R0, R12 .text:000425D4 LDRB R2, [R3,#-1] .text:000425D8 CMP R2, R5 .text:000425DC BNE loc_42638 .text:000425E0 LDR R1, [R11,#var_A8] .text:000425E4 MOV LR, #1 .text:000425E8 LDRB R2, [R1,LR] .text:000425EC CMP R2, #0 .text:000425F0 BEQ loc_42628 .text:000425F4 LDRB R3, [R12,R9] .text:000425F8 CMP R2, R3 .text:000425FC BNE loc_42628 .text:00042600 SUB R1, R0, #2 .text:00042604 .text:00042604 loc_42604 ; CODE XREF: __strtof_internal+5C8j .text:00042604 LDR R3, [R11,#var_A8] .text:00042608 ADD LR, LR, #1 .text:0004260C LDRB R2, [R3,LR] .text:00042610 SUB R1, R1, #1 .text:00042614 CMP R2, #0 .text:00042618 BEQ loc_42628 .text:0004261C LDRB R3, [R12,R1] .text:00042620 CMP R2, R3 .text:00042624 BEQ loc_42604 .text:00042628 .text:00042628 loc_42628 ; CODE XREF: __strtof_internal+594j .text:00042628 ; __strtof_internal+5A0j ... .text:00042628 LDR R1, [R11,#var_A8] .text:0004262C LDRB R3, [R1,LR] .text:00042630 CMP R3, #0 .text:00042634 BEQ loc_42644 .text:00042638 .text:00042638 loc_42638 ; CODE XREF: __strtof_internal+580j .text:00042638 SUB R12, R12, #1 .text:0004263C CMP R12, R7 .text:00042640 BCS loc_425D0 .text:00042644 .text:00042644 loc_42644 ; CODE XREF: __strtof_internal+564j .text:00042644 ; __strtof_internal+5D8j .text:00042644 CMP R12, R7 .text:00042648 BCC loc_426F8 .text:0004264C LDR R2, [R11,#var_AC] .text:00042650 LDRB R1, [R2] .text:00042654 RSB R2, R12, R8 .text:00042658 ADD R3, R1, #1 .text:0004265C CMP R2, R3 .text:00042660 BNE loc_427A0 .text:00042664 SUB R9, R12, #1 .text:00042668 .text:00042668 loc_42668 ; CODE XREF: __strtof_internal+698j .text:00042668 ; __strtof_internal+738j .text:00042668 ADD R4, R4, #1 .text:0004266C MOV R3, R4 .text:00042670 LDRB R2, [R3],#-1 .text:00042674 CMP R2, #0 .text:00042678 MOVEQ R4, R3 .text:0004267C LDRB R1, [R4] .text:00042680 SUB R12, R12, #1 .text:00042684 CMP R1, #0xFF .text:00042688 BNE loc_42700 .text:0004268C CMP R12, R7 .text:00042690 BCC loc_426F0 .text:00042694 .text:00042694 loc_42694 ; CODE XREF: __strtof_internal+690j .text:00042694 LDR R3, [R11,#var_A8] .text:00042698 LDRB R1, [R3] .text:0004269C MOV LR, #0 .text:000426A0 CMP R1, LR .text:000426A4 BEQ loc_426D4 .text:000426A8 ADD R2, R0, R12 .text:000426AC B loc_426C8 .text:000426B0 ; --------------------------------------------------------------------------- .text:000426B0 .text:000426B0 loc_426B0 ; CODE XREF: __strtof_internal+674j .text:000426B0 LDR R3, [R11,#var_A8] .text:000426B4 ADD LR, LR, #1 .text:000426B8 LDRB R1, [R3,LR] .text:000426BC SUB R2, R2, #1 .text:000426C0 CMP R1, #0 .text:000426C4 BEQ loc_426D4 .text:000426C8 .text:000426C8 loc_426C8 ; CODE XREF: __strtof_internal+650j .text:000426C8 LDRB R3, [R2,#-1] .text:000426CC CMP R1, R3 .text:000426D0 BEQ loc_426B0 .text:000426D4 .text:000426D4 loc_426D4 ; CODE XREF: __strtof_internal+648j .text:000426D4 ; __strtof_internal+668j .text:000426D4 LDR R1, [R11,#var_A8] .text:000426D8 LDRB R3, [R1,LR] .text:000426DC CMP R3, #0 .text:000426E0 BEQ loc_426F0 .text:000426E4 SUB R12, R12, #1 .text:000426E8 CMP R12, R7 .text:000426EC BCS loc_42694 .text:000426F0 .text:000426F0 loc_426F0 ; CODE XREF: __strtof_internal+634j .text:000426F0 ; __strtof_internal+684j .text:000426F0 CMP R12, R7 .text:000426F4 BCS loc_42668 .text:000426F8 .text:000426F8 loc_426F8 ; CODE XREF: __strtof_internal+5ECj .text:000426F8 ; __strtof_internal+720j .text:000426F8 MOV R2, R8 .text:000426FC B loc_427C0 .text:00042700 ; --------------------------------------------------------------------------- .text:00042700 .text:00042700 loc_42700 ; CODE XREF: __strtof_internal+62Cj .text:00042700 CMP R12, R7 .text:00042704 MOV R5, R12 .text:00042708 BCC loc_42768 .text:0004270C .text:0004270C loc_4270C ; CODE XREF: __strtof_internal+708j .text:0004270C LDR R2, [R11,#var_A8] .text:00042710 LDRB R1, [R2] .text:00042714 MOV LR, #0 .text:00042718 CMP R1, LR .text:0004271C BEQ loc_4274C .text:00042720 ADD R2, R0, R12 .text:00042724 B loc_42740 .text:00042728 ; --------------------------------------------------------------------------- .text:00042728 .text:00042728 loc_42728 ; CODE XREF: __strtof_internal+6ECj .text:00042728 LDR R3, [R11,#var_A8] .text:0004272C ADD LR, LR, #1 .text:00042730 LDRB R1, [R3,LR] .text:00042734 SUB R2, R2, #1 .text:00042738 CMP R1, #0 .text:0004273C BEQ loc_4274C .text:00042740 .text:00042740 loc_42740 ; CODE XREF: __strtof_internal+6C8j .text:00042740 LDRB R3, [R2,#-1] .text:00042744 CMP R1, R3 .text:00042748 BEQ loc_42728 .text:0004274C .text:0004274C loc_4274C ; CODE XREF: __strtof_internal+6C0j .text:0004274C ; __strtof_internal+6E0j .text:0004274C LDR R1, [R11,#var_A8] .text:00042750 LDRB R3, [R1,LR] .text:00042754 CMP R3, #0 .text:00042758 BEQ loc_42768 .text:0004275C SUB R12, R12, #1 .text:00042760 CMP R12, R7 .text:00042764 BCS loc_4270C .text:00042768 .text:00042768 loc_42768 ; CODE XREF: __strtof_internal+6ACj .text:00042768 ; __strtof_internal+6FCj .text:00042768 CMP R12, R7 .text:0004276C BCS loc_42780 .text:00042770 LDRB R2, [R4] .text:00042774 RSB R3, R12, R5 .text:00042778 CMP R3, R2 .text:0004277C BLE loc_426F8 .text:00042780 .text:00042780 loc_42780 ; CODE XREF: __strtof_internal+710j .text:00042780 CMP R12, R7 .text:00042784 BCC loc_42798 .text:00042788 LDRB R2, [R4] .text:0004278C RSB R3, R12, R5 .text:00042790 CMP R3, R2 .text:00042794 BEQ loc_42668 .text:00042798 .text:00042798 loc_42798 ; CODE XREF: __strtof_internal+728j .text:00042798 MOV R8, R9 .text:0004279C B loc_427AC .text:000427A0 ; --------------------------------------------------------------------------- .text:000427A0 .text:000427A0 loc_427A0 ; CODE XREF: __strtof_internal+604j .text:000427A0 ADDGT R3, R12, R1 .text:000427A4 ADDGT R8, R3, #1 .text:000427A8 MOVLE R8, R12 .text:000427AC .text:000427AC loc_427AC ; CODE XREF: __strtof_internal+740j .text:000427AC CMP R8, R7 .text:000427B0 BHI loc_425B4 .text:000427B4 .text:000427B4 loc_427B4 ; CODE XREF: __strtof_internal+554j .text:000427B4 CMP R8, R7 .text:000427B8 MOVCS R2, R8 .text:000427BC MOVCC R2, R7 .text:000427C0 .text:000427C0 loc_427C0 ; CODE XREF: __strtof_internal+544j .text:000427C0 ; __strtof_internal+6A0j .text:000427C0 CMP R10, R2 .text:000427C4 BEQ loc_42850 .text:000427C8 CMP R2, R7 .text:000427CC BNE loc_427E4 .text:000427D0 LDR R2, [R11,#var_80] .text:000427D4 CMP R2, #0 .text:000427D8 LDRNE R3, [R11,#var_7C] .text:000427DC STRNE R3, [R2] .text:000427E0 B loc_427FC .text:000427E4 ; --------------------------------------------------------------------------- .text:000427E4 .text:000427E4 loc_427E4 ; CODE XREF: __strtof_internal+770j .text:000427E4 LDR R6, [R11,#var_94] .text:000427E8 CMP R2, R6 .text:000427EC BCS loc_42808 .text:000427F0 LDR R12, [R11,#var_80] .text:000427F4 CMP R12, #0 .text:000427F8 STRNE R2, [R12] .text:000427FC .text:000427FC loc_427FC ; CODE XREF: __strtof_internal+2ECj .text:000427FC ; __strtof_internal+784j .text:000427FC CDP p1, 0, c8,c0,c8, 0 .text:00042800 B locret_45378 .text:00042800 ; --------------------------------------------------------------------------- .text:00042804 off_42804 DCD __ctype_tolower ; DATA XREF: __strtof_internal+3DCr .text:00042804 ; __strtof_internal+47Cr .text:00042808 ; --------------------------------------------------------------------------- .text:00042808 .text:00042808 loc_42808 ; CODE XREF: __strtof_internal+790j .text:00042808 MOV R10, R2 .text:0004280C LDR R2, [R11,#var_94] .text:00042810 MOV LR, #0 .text:00042814 STR LR, [R11,#var_98] .text:00042818 CMP R2, R10 .text:0004281C BCS loc_42840 .text:00042820 .text:00042820 loc_42820 ; CODE XREF: __strtof_internal+7E0j .text:00042820 LDRB R3, [R2],#1 .text:00042824 LDR R0, [R11,#var_98] .text:00042828 SUB R3, R3, #0x30 .text:0004282C CMP R3, #9 .text:00042830 ADDLS R0, R0, #1 .text:00042834 CMP R2, R10 .text:00042838 STR R0, [R11,#var_98] .text:0004283C BCC loc_42820 .text:00042840 .text:00042840 loc_42840 ; CODE XREF: __strtof_internal+7C0j .text:00042840 LDR R1, [R11,#var_98] .text:00042844 MOV LR, #0 .text:00042848 STR R1, [R11,#var_9C] .text:0004284C B loc_42B78 .text:00042850 ; --------------------------------------------------------------------------- .text:00042850 .text:00042850 loc_42850 ; CODE XREF: __strtof_internal+534j .text:00042850 ; __strtof_internal+768j .text:00042850 LDR R2, [R11,#var_98] .text:00042854 STR R2, [R11,#var_9C] .text:00042858 MOV R4, #0 .text:0004285C LDR R3, [R11,#var_A0] .text:00042860 CMP R2, #0 .text:00042864 LDRB R2, [R3] .text:00042868 MOVNE LR, #0 .text:0004286C MOVEQ LR, 0xFFFFFFFF .text:00042870 CMP R2, R4 .text:00042874 BEQ loc_428A4 .text:00042878 LDRB R3, [R10] .text:0004287C CMP R2, R3 .text:00042880 BNE loc_428A4 .text:00042884 .text:00042884 loc_42884 ; CODE XREF: __strtof_internal+844j .text:00042884 LDR R12, [R11,#var_A0] .text:00042888 ADD R4, R4, #1 .text:0004288C LDRB R2, [R12,R4] .text:00042890 CMP R2, #0 .text:00042894 BEQ loc_428A4 .text:00042898 LDRB R3, [R10,R4] .text:0004289C CMP R2, R3 .text:000428A0 BEQ loc_42884 .text:000428A4 .text:000428A4 loc_428A4 ; CODE XREF: __strtof_internal+818j .text:000428A4 ; __strtof_internal+824j ... .text:000428A4 LDR R0, [R11,#var_A0] .text:000428A8 LDRB R3, [R0,R4] .text:000428AC CMP R3, #0 .text:000428B0 BNE loc_4293C .text:000428B4 LDR R1, [R11,#var_A4] .text:000428B8 LDRB R6, [R10,R1]! .text:000428BC SUB R3, R6, #0x30 .text:000428C0 CMP R3, #9 .text:000428C4 BLS loc_428F0 .text:000428C8 LDR R2, [R11,#var_88] .text:000428CC CMP R2, #0x10 .text:000428D0 BNE loc_4293C .text:000428D4 .text:000428D4 loc_428D4 ; CODE XREF: __strtof_internal+8DCj .text:000428D4 LDR R3, =__ctype_tolower .text:000428D8 LDR R2, [R3] .text:000428DC LDR R3, [R2,R6,LSL#2] .text:000428E0 CMP R3, #0x60 .text:000428E4 BLE loc_4293C .text:000428E8 CMP R3, #0x66 .text:000428EC BGT loc_4293C .text:000428F0 .text:000428F0 loc_428F0 ; CODE XREF: __strtof_internal+868j .text:000428F0 ; __strtof_internal+8D0j .text:000428F0 CMN LR, #1 .text:000428F4 MOVNE R3, #0 .text:000428F8 MOVEQ R3, #1 .text:000428FC CMP R6, #0x30 .text:00042900 LDR R6, [R11,#var_98] .text:00042904 MOVEQ R3, #0 .text:00042908 LDR R12, [R11,#var_9C] .text:0004290C CMP R3, #0 .text:00042910 LDR R0, [R11,#var_98] .text:00042914 SUBNE LR, R6, R12 .text:00042918 LDRB R6, [R10,#1]! .text:0004291C ADD R0, R0, #1 .text:00042920 STR R0, [R11,#var_98] .text:00042924 SUB R3, R6, #0x30 .text:00042928 CMP R3, #9 .text:0004292C BLS loc_428F0 .text:00042930 LDR R1, [R11,#var_88] .text:00042934 CMP R1, #0x10 .text:00042938 BEQ loc_428D4 .text:0004293C .text:0004293C loc_4293C ; CODE XREF: __strtof_internal+854j .text:0004293C ; __strtof_internal+874j ... .text:0004293C LDR R2, [R11,#var_88] .text:00042940 MOV R0, R10 .text:00042944 CMP R2, #0x10 .text:00042948 BNE loc_42960 .text:0004294C LDR R3, =__ctype_tolower .text:00042950 LDR R2, [R3] .text:00042954 LDR R1, [R2,R6,LSL#2] .text:00042958 CMP R1, #0x70 .text:0004295C BEQ loc_42980 .text:00042960 .text:00042960 loc_42960 ; CODE XREF: __strtof_internal+8ECj .text:00042960 LDR R3, [R11,#var_88] .text:00042964 CMP R3, #0x10 .text:00042968 BEQ loc_42AB0 .text:0004296C LDR R3, =__ctype_tolower .text:00042970 LDR R2, [R3] .text:00042974 LDR R1, [R2,R6,LSL#2] .text:00042978 CMP R1, #0x65 .text:0004297C BNE loc_42AB0 .text:00042980 .text:00042980 loc_42980 ; CODE XREF: __strtof_internal+900j .text:00042980 LDRB R6, [R10,#1]! .text:00042984 MOV R4, #0 .text:00042988 CMP R6, #0x2D .text:0004298C ADDEQ R4, R4, #1 .text:00042990 BEQ loc_4299C .text:00042994 CMP R6, #0x2B .text:00042998 BNE loc_429A0 .text:0004299C .text:0004299C loc_4299C ; CODE XREF: __strtof_internal+934j .text:0004299C LDRB R6, [R10,#1]! .text:000429A0 .text:000429A0 loc_429A0 ; CODE XREF: __strtof_internal+93Cj .text:000429A0 SUB R3, R6, #0x30 .text:000429A4 CMP R3, #9 .text:000429A8 BHI loc_42AAC .text:000429AC LDR R12, [R11,#var_88] .text:000429B0 CMP R12, #0x10 .text:000429B4 BNE loc_429DC .text:000429B8 CMP R4, #0 .text:000429BC LDRNE R1, [R11,#var_9C] .text:000429C0 MOVNE R3, R1,LSL#2 .text:000429C4 ADDNE R12, R3, #0x95 .text:000429C8 BNE loc_429F4 .text:000429CC LDR R2, [R11,#var_9C] .text:000429D0 ADD R3, LR, #0x80 .text:000429D4 SUB R12, R3, R2,LSL#2 .text:000429D8 B loc_429F4 .text:000429DC ; --------------------------------------------------------------------------- .text:000429DC .text:000429DC loc_429DC ; CODE XREF: __strtof_internal+958j .text:000429DC CMP R4, #0 .text:000429E0 LDRNE R3, [R11,#var_9C] .text:000429E4 ADDNE R12, R3, #0x3D .text:000429E8 LDREQ R1, [R11,#var_9C] .text:000429EC ADDEQ R3, LR, #0x26 .text:000429F0 RSBEQ R12, R1, R3 .text:000429F4 .text:000429F4 loc_429F4 ; CODE XREF: __strtof_internal+96Cj .text:000429F4 ; __strtof_internal+97Cj ... .text:000429F4 LDR R3, [R11,#var_78] .text:000429F8 ADD R3, R3, R3,LSL#2 .text:000429FC MOV R3, R3,LSL#1 .text:00042A00 CMP R3, R12 .text:00042A04 STR R3, [R11,#var_78] .text:00042A08 BLE loc_42A78 .text:00042A0C CMN LR, #1 .text:00042A10 BNE loc_42A28 .text:00042A14 LDR R2, [R11,#var_84] .text:00042A18 CMP R2, #0 .text:00042A1C CDPNE p1, 1, c8,c0,c8, 0 .text:00042A20 CDPEQ p1, 0, c8,c0,c8, 0 .text:00042A24 B loc_42A54 .text:00042A28 ; --------------------------------------------------------------------------- .text:00042A28 .text:00042A28 loc_42A28 ; CODE XREF: __strtof_internal+9B4j .text:00042A28 BL __errno_location .text:00042A2C CMP R4, #0 .text:00042A30 MOV R3, #0x22 .text:00042A34 STR R3, [R0] .text:00042A38 BNE loc_42A50 .text:00042A3C LDR R3, [R11,#var_84] .text:00042A40 CMP R3, #0 .text:00042A44 LDC p1, c0, dword_42C64 .text:00042A48 LDCNE p1, c0, dword_42C68 .text:00042A4C B loc_42A54 .text:00042A50 ; --------------------------------------------------------------------------- .text:00042A50 .text:00042A50 loc_42A50 ; CODE XREF: __strtof_internal+9DCj .text:00042A50 CDP p1, 0, c8,c0,c8, 0 .text:00042A54 .text:00042A54 loc_42A54 ; CODE XREF: __strtof_internal+9C8j .text:00042A54 ; __strtof_internal+9F0j ... .text:00042A54 LDRB R3, [R10,#1]! .text:00042A58 SUB R3, R3, #0x30 .text:00042A5C CMP R3, #9 .text:00042A60 BLS loc_42A54 .text:00042A64 LDR R6, [R11,#var_80] .text:00042A68 CMP R6, #0 .text:00042A6C BEQ locret_45378 .text:00042A70 STR R10, [R6] .text:00042A74 B locret_45378 .text:00042A78 ; --------------------------------------------------------------------------- .text:00042A78 .text:00042A78 loc_42A78 ; CODE XREF: __strtof_internal+9ACj .text:00042A78 LDR R3, [R11,#var_78] .text:00042A7C SUB R3, R3, #0x30 .text:00042A80 ADD R3, R3, R6 .text:00042A84 STR R3, [R11,#var_78] .text:00042A88 LDRB R6, [R10,#1]! .text:00042A8C MOV R1, R3 .text:00042A90 SUB R2, R6, #0x30 .text:00042A94 CMP R2, #9 .text:00042A98 BLS loc_429F4 .text:00042A9C CMP R4, #0 .text:00042AA0 RSBNE R3, R1, #0 .text:00042AA4 STRNE R3, [R11,#var_78] .text:00042AA8 B loc_42AB0 .text:00042AAC ; --------------------------------------------------------------------------- .text:00042AAC .text:00042AAC loc_42AAC ; CODE XREF: __strtof_internal+94Cj .text:00042AAC MOV R10, R0 .text:00042AB0 .text:00042AB0 loc_42AB0 ; CODE XREF: __strtof_internal+90Cj .text:00042AB0 ; __strtof_internal+920j ... .text:00042AB0 SUB R1, R11, #-var_9C .text:00042AB4 LDMIA R1, {R1,R12} .text:00042AB8 CMP R12, R1 .text:00042ABC BLE loc_42AE8 .text:00042AC0 LDRB R3, [R0,#-1] .text:00042AC4 CMP R3, #0x30 .text:00042AC8 BNE loc_42AE8 .text:00042ACC .text:00042ACC loc_42ACC ; CODE XREF: __strtof_internal+A88j .text:00042ACC LDR R2, [R11,#var_98] .text:00042AD0 SUB R0, R0, #1 .text:00042AD4 LDRB R3, [R0,#-1] .text:00042AD8 SUB R2, R2, #1 .text:00042ADC CMP R3, #0x30 .text:00042AE0 STR R2, [R11,#var_98] .text:00042AE4 BEQ loc_42ACC .text:00042AE8 .text:00042AE8 loc_42AE8 ; CODE XREF: __strtof_internal+A60j .text:00042AE8 ; __strtof_internal+A6Cj .text:00042AE8 SUB R6, R11, #-var_9C .text:00042AEC LDMIA R6, {R6,R12} .text:00042AF0 CMP R6, #0 .text:00042AF4 MOVLE R3, #0 .text:00042AF8 MOVGT R3, #1 .text:00042AFC CMP R12, R6 .text:00042B00 MOVNE R3, #0 .text:00042B04 CMP R3, #0 .text:00042B08 BEQ loc_42B78 .text:00042B0C LDR R3, [R11,#var_78] .text:00042B10 CMP R3, #0 .text:00042B14 BGE loc_42B78 .text:00042B18 B loc_42B20 .text:00042B1C ; --------------------------------------------------------------------------- .text:00042B1C .text:00042B1C loc_42B1C ; CODE XREF: __strtof_internal+AD0j .text:00042B1C SUB R0, R0, #1 .text:00042B20 .text:00042B20 loc_42B20 ; CODE XREF: __strtof_internal+ABCj .text:00042B20 ; __strtof_internal+B18j .text:00042B20 LDRB R3, [R0,#-1] .text:00042B24 SUB R3, R3, #0x30 .text:00042B28 CMP R3, #9 .text:00042B2C BHI loc_42B1C .text:00042B30 LDRB R3, [R0,#-1] .text:00042B34 CMP R3, #0x30 .text:00042B38 BNE loc_42B78 .text:00042B3C LDR R1, [R11,#var_98] .text:00042B40 LDR R2, [R11,#var_78] .text:00042B44 SUB R0, R0, #1 .text:00042B48 LDR R3, [R11,#var_9C] .text:00042B4C SUB R1, R1, #1 .text:00042B50 SUB R3, R3, #1 .text:00042B54 STR R1, [R11,#var_98] .text:00042B58 ADD R2, R2, #1 .text:00042B5C CMP R1, #0 .text:00042B60 STR R3, [R11,#var_9C] .text:00042B64 MOVLE R3, #0 .text:00042B68 MOVGT R3, R2,LSR#31 .text:00042B6C CMP R3, #0 .text:00042B70 STR R2, [R11,#var_78] .text:00042B74 BNE loc_42B20 .text:00042B78 .text:00042B78 loc_42B78 ; CODE XREF: __strtof_internal+7F0j .text:00042B78 ; __strtof_internal+AACj ... .text:00042B78 LDR R6, [R11,#var_80] .text:00042B7C CMP R6, #0 .text:00042B80 STRNE R10, [R6] .text:00042B84 LDR R12, [R11,#var_98] .text:00042B88 CMP R12, #0 .text:00042B8C BNE loc_42BA4 .text:00042B90 LDR LR, [R11,#var_84] .text:00042B94 CMP LR, #0 .text:00042B98 CDPNE p1, 1, c8,c0,c8, 0 .text:00042B9C CDPEQ p1, 0, c8,c0,c8, 0 .text:00042BA0 B locret_45378 .text:00042BA4 ; --------------------------------------------------------------------------- .text:00042BA4 .text:00042BA4 loc_42BA4 ; CODE XREF: __strtof_internal+B30j .text:00042BA4 CMP LR, #0 .text:00042BA8 BEQ loc_42C78 .text:00042BAC LDR R0, [R11,#var_A0] .text:00042BB0 LDRB R5, [R0] .text:00042BB4 .text:00042BB4 loc_42BB4 ; CODE XREF: __strtof_internal+BE0j .text:00042BB4 LDR R1, [R11,#var_94] .text:00042BB8 LDRB R3, [R1] .text:00042BBC CMP R3, R5 .text:00042BC0 BNE loc_42C30 .text:00042BC4 LDR R3, [R11,#var_A0] .text:00042BC8 LDR R1, [R11,#var_78] .text:00042BCC LDR R6, [R11,#var_A4] .text:00042BD0 MOV R4, #1 .text:00042BD4 LDRB R2, [R3,R4] .text:00042BD8 ADD R0, LR, R6 .text:00042BDC LDR R3, [R11,#var_98] .text:00042BE0 CMP R2, #0 .text:00042BE4 RSB R12, LR, R3 .text:00042BE8 BEQ loc_42C20 .text:00042BEC LDR R6, [R11,#var_94] .text:00042BF0 LDRB R3, [R6,#1] .text:00042BF4 CMP R2, R3 .text:00042BF8 BNE loc_42C20 .text:00042BFC .text:00042BFC loc_42BFC ; CODE XREF: __strtof_internal+BC0j .text:00042BFC LDR R3, [R11,#var_A0] .text:00042C00 ADD R4, R4, #1 .text:00042C04 LDRB R2, [R3,R4] .text:00042C08 CMP R2, #0 .text:00042C0C BEQ loc_42C20 .text:00042C10 LDR R6, [R11,#var_94] .text:00042C14 LDRB R3, [R6,R4] .text:00042C18 CMP R2, R3 .text:00042C1C BEQ loc_42BFC .text:00042C20 .text:00042C20 loc_42C20 ; CODE XREF: __strtof_internal+B8Cj .text:00042C20 ; __strtof_internal+B9Cj ... .text:00042C20 LDR R2, [R11,#var_A0] .text:00042C24 LDRB R3, [R2,R4] .text:00042C28 CMP R3, #0 .text:00042C2C BEQ loc_42C40 .text:00042C30 .text:00042C30 loc_42C30 ; CODE XREF: __strtof_internal+B64j .text:00042C30 LDR R3, [R11,#var_94] .text:00042C34 ADD R3, R3, #1 .text:00042C38 STR R3, [R11,#var_94] .text:00042C3C B loc_42BB4 .text:00042C40 ; --------------------------------------------------------------------------- .text:00042C40 .text:00042C40 loc_42C40 ; CODE XREF: __strtof_internal+BD0j .text:00042C40 LDR R6, [R11,#var_94] .text:00042C44 ADD R6, R6, R0 .text:00042C48 LDR R0, [R11,#var_88] .text:00042C4C STR R6, [R11,#var_94] .text:00042C50 CMP R0, #0x10 .text:00042C54 BNE loc_42C6C .text:00042C58 SUB R3, R1, LR,LSL#2 .text:00042C5C B loc_42C70 .text:00042C5C ; --------------------------------------------------------------------------- .text:00042C60 off_42C60 DCD __ctype_tolower ; DATA XREF: __strtof_internal:loc_428D4r .text:00042C60 ; __strtof_internal+8F0r ... .text:00042C64 dword_42C64 DCD 0x7F800000 ; DATA XREF: __strtof_internal+9E8r .text:00042C68 dword_42C68 DCD 0xFF800000 ; DATA XREF: __strtof_internal+9ECr .text:00042C6C ; --------------------------------------------------------------------------- .text:00042C6C .text:00042C6C loc_42C6C ; CODE XREF: __strtof_internal+BF8j .text:00042C6C RSB R3, LR, R1 .text:00042C70 .text:00042C70 loc_42C70 ; CODE XREF: __strtof_internal+C00j .text:00042C70 STR R3, [R11,#var_78] .text:00042C74 STR R12, [R11,#var_98] .text:00042C78 .text:00042C78 loc_42C78 ; CODE XREF: __strtof_internal+B4Cj .text:00042C78 LDR R1, [R11,#var_88] .text:00042C7C CMP R1, #0x10 .text:00042C80 BNE loc_432B8 .text:00042C84 LDR R2, [R11,#var_94] .text:00042C88 LDR R6, =__ctype_b .text:00042C8C LDRB R3, [R2] .text:00042C90 MOV R5, #0 .text:00042C94 LDR R1, [R6] .text:00042C98 MOV R3, R3,LSL#1 .text:00042C9C ADD R3, R3, R1 .text:00042CA0 LDRB R2, [R3,#1] .text:00042CA4 SUB R12, R11, #-var_70 .text:00042CA8 LDR LR, [R11,#var_98] .text:00042CAC TST R2, #0x10 .text:00042CB0 LDR R2, [R11,#var_9C] .text:00042CB4 SUB R0, LR, #1 .text:00042CB8 STR R12, [R11,#var_D0] .text:00042CBC SUB R6, R2, #1 .text:00042CC0 BNE loc_42CE4 .text:00042CC4 .text:00042CC4 loc_42CC4 ; CODE XREF: __strtof_internal+C84j .text:00042CC4 LDR R12, [R11,#var_94] .text:00042CC8 LDRB R3, [R12,#1]! .text:00042CCC STR R12, [R11,#var_94] .text:00042CD0 MOV R3, R3,LSL#1 .text:00042CD4 ADD R3, R3, R1 .text:00042CD8 LDRB R2, [R3,#1] .text:00042CDC TST R2, #0x10 .text:00042CE0 BEQ loc_42CC4 .text:00042CE4 .text:00042CE4 loc_42CE4 ; CODE XREF: __strtof_internal+C64j .text:00042CE4 LDR LR, [R11,#var_94] .text:00042CE8 LDRB R3, [LR] .text:00042CEC MOV R4, R5,LSL#2 .text:00042CF0 CMP R3, #0x30 .text:00042CF4 BNE loc_42D0C .text:00042CF8 .text:00042CF8 loc_42CF8 ; CODE XREF: __strtof_internal+CACj .text:00042CF8 LDR R1, [R11,#var_94] .text:00042CFC LDRB R3, [R1,#1]! .text:00042D00 CMP R3, #0x30 .text:00042D04 STR R1, [R11,#var_94] .text:00042D08 BEQ loc_42CF8 .text:00042D0C .text:00042D0C loc_42D0C ; CODE XREF: __strtof_internal+C98j .text:00042D0C LDR R2, [R11,#var_94] .text:00042D10 LDR LR, =__ctype_b .text:00042D14 LDRB R12, [R2] .text:00042D18 LDR R3, [LR] .text:00042D1C MOV R2, R12,LSL#1 .text:00042D20 ADD R2, R2, R3 .text:00042D24 LDRB R1, [R2,#1] .text:00042D28 TST R1, #8 .text:00042D2C BEQ loc_42D44 .text:00042D30 LDR R1, [R11,#var_94] .text:00042D34 SUB LR, R12, #0x30 .text:00042D38 ADD R1, R1, #1 .text:00042D3C STR R1, [R11,#var_94] .text:00042D40 B loc_42D60 .text:00042D44 ; --------------------------------------------------------------------------- .text:00042D44 .text:00042D44 loc_42D44 ; CODE XREF: __strtof_internal+CD0j .text:00042D44 LDR R3, =__ctype_tolower .text:00042D48 LDR R2, [R3] .text:00042D4C LDR R1, [R2,R12,LSL#2] .text:00042D50 LDR R2, [R11,#var_94] .text:00042D54 ADD R2, R2, #1 .text:00042D58 SUB LR, R1, #0x57 .text:00042D5C STR R2, [R11,#var_94] .text:00042D60 .text:00042D60 loc_42D60 ; CODE XREF: __strtof_internal+CE4j .text:00042D60 LDR R3, =nbits.138 .text:00042D64 LDR R3, [R3,LR,LSL#2] .text:00042D68 LDR R12, [R11,#var_D0] .text:00042D6C RSB R2, R3, #0x17 .text:00042D70 STR R3, [R11,#var_90] .text:00042D74 ADD R3, R2, #1 .text:00042D78 MOV R3, LR,LSL R3 .text:00042D7C STR R3, [R4,R12] .text:00042D80 CMP R0, #0 .text:00042D84 STR R0, [R11,#var_98] .text:00042D88 MOV R12, R2 .text:00042D8C MOV R3, R6,LSL#2 .text:00042D90 LDR LR, [R11,#var_90] .text:00042D94 SUB R3, R3, #1 .text:00042D98 LDR R2, [R11,#var_78] .text:00042D9C ADD R3, LR, R3 .text:00042DA0 ADD R2, R2, R3 .text:00042DA4 STR R2, [R11,#var_78] .text:00042DA8 BLE loc_43084 .text:00042DAC CMP R5, #0 .text:00042DB0 BLT loc_43084 .text:00042DB4 MOV R10, #1 .text:00042DB8 MOV R9, 0x7FFFFFFF .text:00042DBC LDR R4, [R11,#var_D0] .text:00042DC0 .text:00042DC0 loc_42DC0 ; CODE XREF: __strtof_internal+1024j .text:00042DC0 LDR R0, [R11,#var_94] .text:00042DC4 LDR R2, =__ctype_b .text:00042DC8 LDR R6, [R11,#var_A4] .text:00042DCC LDRB R3, [R0] .text:00042DD0 LDR R1, [R2] .text:00042DD4 MOV R3, R3,LSL#1 .text:00042DD8 ADD R3, R3, R1 .text:00042DDC LDRB R2, [R3,#1] .text:00042DE0 ADD R3, R0, R6 .text:00042DE4 TST R2, #0x10 .text:00042DE8 MOVEQ R0, R3 .text:00042DEC STR R0, [R11,#var_94] .text:00042DF0 LDRB R0, [R0] .text:00042DF4 MOV R3, R0,LSL#1 .text:00042DF8 ADD R3, R3, R1 .text:00042DFC LDRB R2, [R3,#1] .text:00042E00 TST R2, #8 .text:00042E04 BEQ loc_42E1C .text:00042E08 SUB LR, R0, #0x30 .text:00042E0C LDR R0, [R11,#var_94] .text:00042E10 ADD R0, R0, #1 .text:00042E14 STR R0, [R11,#var_94] .text:00042E18 B loc_42E38 .text:00042E1C ; --------------------------------------------------------------------------- .text:00042E1C .text:00042E1C loc_42E1C ; CODE XREF: __strtof_internal+DA8j .text:00042E1C LDR R3, =__ctype_tolower .text:00042E20 LDR R2, [R3] .text:00042E24 LDR R1, [R2,R0,LSL#2] .text:00042E28 LDR R2, [R11,#var_94] .text:00042E2C ADD R2, R2, #1 .text:00042E30 SUB LR, R1, #0x57 .text:00042E34 STR R2, [R11,#var_94] .text:00042E38 .text:00042E38 loc_42E38 ; CODE XREF: __strtof_internal+DBCj .text:00042E38 ADD R3, R12, #1 .text:00042E3C CMP R3, #3 .text:00042E40 BLE loc_42E60 .text:00042E44 MOV R1, R5,LSL#2 .text:00042E48 SUB R2, R12, #3 .text:00042E4C LDR R3, [R1,R4] .text:00042E50 SUB R12, R12, #4 .text:00042E54 ORR R3, R3, LR,LSL R2 .text:00042E58 STR R3, [R1,R4] .text:00042E5C B loc_43068 .text:00042E60 ; --------------------------------------------------------------------------- .text:00042E60 .text:00042E60 loc_42E60 ; CODE XREF: __strtof_internal+DE4j .text:00042E60 MOV R0, R5,LSL#2 .text:00042E64 SUBS R5, R5, #1 .text:00042E68 RSB R3, R12, #3 .text:00042E6C LDR R1, [R0,R4] .text:00042E70 ADD R2, R12, #0x1D .text:00042E74 ORR R1, R1, LR,LSR R3 .text:00042E78 MOV LR, LR,LSL R2 .text:00042E7C STR R1, [R0,R4] .text:00042E80 BPL loc_4305C .text:00042E84 MOV R7, LR .text:00042E88 LDR R3, [R11,#var_98] .text:00042E8C MOV R8, #0x1F .text:00042E90 LDR R4, [R11,#var_78] .text:00042E94 CMP R3, #0 .text:00042E98 MOVLE R6, #0 .text:00042E9C MOVGT R6, #1 .text:00042EA0 CMN R4, #0x7E .text:00042EA4 BGE loc_42FF8 .text:00042EA8 RSB R12, R4, #0xFC000002 .text:00042EAC ADD R12, R12, #0x3FC0000 .text:00042EB0 ADD R12, R12, #0x3FC00 .text:00042EB4 ADD R12, R12, #0x380 .text:00042EB8 CMP R12, #0x18 .text:00042EBC BGT loc_4513C .text:00042EC0 TST LR, R9 .text:00042EC4 ORRNE R6, R6, #1 .text:00042EC8 CMP R12, #0x18 .text:00042ECC BNE loc_42F14 .text:00042ED0 MOV R8, #0x17 .text:00042ED4 MOV R2, #0 .text:00042ED8 LDR R7, [R11,#var_70] .text:00042EDC .text:00042EDC loc_42EDC ; CODE XREF: __strtof_internal+E98j .text:00042EDC LDR R12, [R11,#var_D0] .text:00042EE0 LDR R3, [R12,R2,LSL#2] .text:00042EE4 ADD R2, R2, #1 .text:00042EE8 CMP R3, #0 .text:00042EEC ORRNE R6, R6, #1 .text:00042EF0 CMP R2, #0 .text:00042EF4 BLE loc_42EDC .text:00042EF8 MOV R1, #0 .text:00042EFC MOV R3, R12 .text:00042F00 MOV R2, R3 .text:00042F04 .text:00042F04 loc_42F04 ; CODE XREF: __strtof_internal+EB0j .text:00042F04 STR R1, [R3],#-4 .text:00042F08 CMP R3, R2 .text:00042F0C BGE loc_42F04 .text:00042F10 B loc_42FF4 .text:00042F14 ; --------------------------------------------------------------------------- .text:00042F14 .text:00042F14 loc_42F14 ; CODE XREF: __strtof_internal+E70j .text:00042F14 CMP R12, #0x1F .text:00042F18 BLE loc_42FD0 .text:00042F1C SUB R3, R12, #1 .text:00042F20 CMP R3, #0 .text:00042F24 ADDLT R2, R3, #0x1F .text:00042F28 MOVGE R2, R3 .text:00042F2C MOV R2, R2,ASR#5 .text:00042F30 SUB R8, R3, R2,LSL#5 .text:00042F34 MOV R1, #0 .text:00042F38 LDR LR, [R11,#var_D0] .text:00042F3C CMP R1, R2 .text:00042F40 LDR R7, [LR,R2,LSL#2] .text:00042F44 MOV LR, R12,ASR#31 .text:00042F48 BGE loc_42F68 .text:00042F4C .text:00042F4C loc_42F4C ; CODE XREF: __strtof_internal+F08j .text:00042F4C LDR R0, [R11,#var_D0] .text:00042F50 LDR R3, [R0,R1,LSL#2] .text:00042F54 ADD R1, R1, #1 .text:00042F58 CMP R3, #0 .text:00042F5C ORRNE R6, R6, #1 .text:00042F60 CMP R1, R2 .text:00042F64 BLT loc_42F4C .text:00042F68 .text:00042F68 loc_42F68 ; CODE XREF: __strtof_internal+EECj .text:00042F68 MOV R3, R10,LSL R8 .text:00042F6C SUB R3, R3, #1 .text:00042F70 TST R7, R3 .text:00042F74 ORRNE R6, R6, #1 .text:00042F78 MOV R3, LR,LSR#27 .text:00042F7C ADD R3, R12, R3 .text:00042F80 MOV R4, R3,ASR#5 .text:00042F84 RSB R5, R4, #1 .text:00042F88 MOV R2, R5 .text:00042F8C LDR R0, [R11,#var_D0] .text:00042F90 SUB R3, R12, R4,LSL#5 .text:00042F94 ADD R1, R0, R4,LSL#2 .text:00042F98 BL __mpn_rshift .text:00042F9C MOV R1, #0 .text:00042FA0 CMP R1, R4 .text:00042FA4 BGE loc_42FF4 .text:00042FA8 MOV R0, R4 .text:00042FAC LDR R3, [R11,#var_D0] .text:00042FB0 MOV R12, R1 .text:00042FB4 ADD R2, R3, R5,LSL#2 .text:00042FB8 .text:00042FB8 loc_42FB8 ; CODE XREF: __strtof_internal+F6Cj .text:00042FB8 MOV R3, R1,LSL#2 .text:00042FBC ADD R1, R1, #1 .text:00042FC0 CMP R1, R0 .text:00042FC4 STR R12, [R3,R2] .text:00042FC8 BLT loc_42FB8 .text:00042FCC B loc_42FF4 .text:00042FD0 ; --------------------------------------------------------------------------- .text:00042FD0 .text:00042FD0 loc_42FD0 ; CODE XREF: __strtof_internal+EBCj .text:00042FD0 CMP R12, #0 .text:00042FD4 BLE loc_42FF4 .text:00042FD8 SUB R8, R12, #1 .text:00042FDC MOV R2, #1 .text:00042FE0 LDR R0, [R11,#var_D0] .text:00042FE4 MOV R3, R12 .text:00042FE8 LDR R7, [R11,#var_70] .text:00042FEC MOV R1, R0 .text:00042FF0 BL __mpn_rshift .text:00042FF4 .text:00042FF4 loc_42FF4 ; CODE XREF: __strtof_internal+EB4j .text:00042FF4 ; __strtof_internal+F48j ... .text:00042FF4 MOV R4, 0xFFFFFF81 .text:00042FF8 .text:00042FF8 loc_42FF8 ; CODE XREF: __strtof_internal+E48j .text:00042FF8 MOV R3, R7,LSR R8 .text:00042FFC TST R3, #1 .text:00043000 BEQ loc_45328 .text:00043004 CMP R6, #0 .text:00043008 LDR R6, [R11,#var_D0] .text:0004300C LDR R2, [R6] .text:00043010 BNE loc_4302C .text:00043014 TST R2, #1 .text:00043018 BNE loc_4302C .text:0004301C MOV R3, R10,LSL R8 .text:00043020 .text:00043020 loc_43020 ; CODE XREF: __strtof_internal+19C8j .text:00043020 ; __strtof_internal+2544j .text:00043020 SUB R3, R3, #1 .text:00043024 TST R7, R3 .text:00043028 BEQ loc_45328 .text:0004302C .text:0004302C loc_4302C ; CODE XREF: __strtof_internal+FB4j .text:0004302C ; __strtof_internal+FBCj ... .text:0004302C ADD R3, R2, #1 .text:00043030 LDR R12, [R11,#var_D0] .text:00043034 CMP R3, R2 .text:00043038 STR R3, [R12] .text:0004303C LDR LR, [R11,#var_D0] .text:00043040 LDR R3, [LR] .text:00043044 TST R3, #0x1000000 .text:00043048 BNE loc_452EC .text:0004304C B loc_45318 .text:0004304C ; --------------------------------------------------------------------------- .text:00043050 off_43050 DCD __ctype_b ; DATA XREF: __strtof_internal+C2Cr .text:00043050 ; __strtof_internal+CB4r ... .text:00043054 off_43054 DCD __ctype_tolower ; DATA XREF: __strtof_internal:loc_42D44r .text:00043054 ; __strtof_internal:loc_42E1Cr .text:00043058 off_43058 DCD nbits.138 ; DATA XREF: __strtof_internal:loc_42D60r .text:0004305C ; --------------------------------------------------------------------------- .text:0004305C .text:0004305C loc_4305C ; CODE XREF: __strtof_internal+E24j .text:0004305C LDR R2, [R11,#var_D0] .text:00043060 ADD R12, R12, #0x1C .text:00043064 STR LR, [R2,R5,LSL#2] .text:00043068 .text:00043068 loc_43068 ; CODE XREF: __strtof_internal+E00j .text:00043068 LDR R3, [R11,#var_98] .text:0004306C SUB R3, R3, #1 .text:00043070 CMP R3, #0 .text:00043074 STR R3, [R11,#var_98] .text:00043078 BLE loc_43084 .text:0004307C CMP R5, #0 .text:00043080 BGE loc_42DC0 .text:00043084 .text:00043084 loc_43084 ; CODE XREF: __strtof_internal+D4Cj .text:00043084 ; __strtof_internal+D54j ... .text:00043084 MOV R2, #0 .text:00043088 CMP R2, R5 .text:0004308C BGE loc_430AC .text:00043090 MOV R0, R2 .text:00043094 LDR R1, [R11,#var_D0] .text:00043098 .text:00043098 loc_43098 ; CODE XREF: __strtof_internal+104Cj .text:00043098 MOV R3, R2,LSL#2 .text:0004309C ADD R2, R2, #1 .text:000430A0 CMP R2, R5 .text:000430A4 STR R0, [R3,R1] .text:000430A8 BLT loc_43098 .text:000430AC .text:000430AC loc_430AC ; CODE XREF: __strtof_internal+1030j .text:000430AC MOV R1, #0 .text:000430B0 MOV R6, R1 .text:000430B4 MOV R8, R6 .text:000430B8 LDR R4, [R11,#var_78] .text:000430BC MOV R7, R6 .text:000430C0 CMN R4, #0x7E .text:000430C4 BGE loc_43214 .text:000430C8 RSB R12, R4, #0xFC000002 .text:000430CC ADD R12, R12, #0x3FC0000 .text:000430D0 ADD R12, R12, #0x3FC00 .text:000430D4 ADD R12, R12, #0x380 .text:000430D8 CMP R12, #0x18 .text:000430DC BGT loc_4513C .text:000430E0 MOV R7, R6 .text:000430E4 CMP R12, #0x18 .text:000430E8 BNE loc_43130 .text:000430EC MOV R8, #0x17 .text:000430F0 MOV R2, R1 .text:000430F4 LDR R6, [R11,#var_70] .text:000430F8 .text:000430F8 loc_430F8 ; CODE XREF: __strtof_internal+10B4j .text:000430F8 LDR R12, [R11,#var_D0] .text:000430FC LDR R3, [R12,R2,LSL#2] .text:00043100 ADD R2, R2, #1 .text:00043104 CMP R3, #0 .text:00043108 ORRNE R7, R7, #1 .text:0004310C CMP R2, #0 .text:00043110 BLE loc_430F8 .text:00043114 MOV R1, #0 .text:00043118 MOV R3, R12 .text:0004311C MOV R2, R3 .text:00043120 .text:00043120 loc_43120 ; CODE XREF: __strtof_internal+10CCj .text:00043120 STR R1, [R3],#-4 .text:00043124 CMP R3, R2 .text:00043128 BGE loc_43120 .text:0004312C B loc_43210 .text:00043130 ; --------------------------------------------------------------------------- .text:00043130 .text:00043130 loc_43130 ; CODE XREF: __strtof_internal+108Cj .text:00043130 CMP R12, #0x1F .text:00043134 BLE loc_431EC .text:00043138 SUB R3, R12, #1 .text:0004313C CMP R3, #0 .text:00043140 ADDLT R2, R3, #0x1F .text:00043144 MOVGE R2, R3 .text:00043148 MOV R2, R2,ASR#5 .text:0004314C SUB R8, R3, R2,LSL#5 .text:00043150 LDR LR, [R11,#var_D0] .text:00043154 CMP R7, R2 .text:00043158 LDR R6, [LR,R2,LSL#2] .text:0004315C MOV LR, R12,ASR#31 .text:00043160 BGE loc_43180 .text:00043164 .text:00043164 loc_43164 ; CODE XREF: __strtof_internal+1120j .text:00043164 LDR R0, [R11,#var_D0] .text:00043168 LDR R3, [R0,R1,LSL#2] .text:0004316C ADD R1, R1, #1 .text:00043170 CMP R3, #0 .text:00043174 ORRNE R7, R7, #1 .text:00043178 CMP R1, R2 .text:0004317C BLT loc_43164 .text:00043180 .text:00043180 loc_43180 ; CODE XREF: __strtof_internal+1104j .text:00043180 MOV R3, #1 .text:00043184 MOV R3, R3,LSL R8 .text:00043188 SUB R3, R3, #1 .text:0004318C TST R6, R3 .text:00043190 ORRNE R7, R7, #1 .text:00043194 MOV R3, LR,LSR#27 .text:00043198 ADD R3, R12, R3 .text:0004319C MOV R4, R3,ASR#5 .text:000431A0 RSB R5, R4, #1 .text:000431A4 MOV R2, R5 .text:000431A8 LDR R0, [R11,#var_D0] .text:000431AC SUB R3, R12, R4,LSL#5 .text:000431B0 ADD R1, R0, R4,LSL#2 .text:000431B4 BL __mpn_rshift .text:000431B8 MOV R1, #0 .text:000431BC CMP R1, R4 .text:000431C0 BGE loc_43210 .text:000431C4 MOV R0, R4 .text:000431C8 LDR R3, [R11,#var_D0] .text:000431CC MOV R12, R1 .text:000431D0 ADD R2, R3, R5,LSL#2 .text:000431D4 .text:000431D4 loc_431D4 ; CODE XREF: __strtof_internal+1188j .text:000431D4 MOV R3, R1,LSL#2 .text:000431D8 ADD R1, R1, #1 .text:000431DC CMP R1, R0 .text:000431E0 STR R12, [R3,R2] .text:000431E4 BLT loc_431D4 .text:000431E8 B loc_43210 .text:000431EC ; --------------------------------------------------------------------------- .text:000431EC .text:000431EC loc_431EC ; CODE XREF: __strtof_internal+10D8j .text:000431EC CMP R12, #0 .text:000431F0 BLE loc_43210 .text:000431F4 SUB R8, R12, #1 .text:000431F8 MOV R2, #1 .text:000431FC LDR R0, [R11,#var_D0] .text:00043200 MOV R3, R12 .text:00043204 LDR R6, [R11,#var_70] .text:00043208 MOV R1, R0 .text:0004320C BL __mpn_rshift .text:00043210 .text:00043210 loc_43210 ; CODE XREF: __strtof_internal+10D0j .text:00043210 ; __strtof_internal+1164j ... .text:00043210 MOV R4, 0xFFFFFF81 .text:00043214 .text:00043214 loc_43214 ; CODE XREF: __strtof_internal+1068j .text:00043214 MOV R3, R6,LSR R8 .text:00043218 TST R3, #1 .text:0004321C BEQ loc_432A4 .text:00043220 LDR R12, [R11,#var_D0] .text:00043224 CMP R7, #0 .text:00043228 LDR R2, [R12] .text:0004322C BNE loc_4324C .text:00043230 TST R2, #1 .text:00043234 BNE loc_4324C .text:00043238 MOV R3, #1 .text:0004323C MOV R3, R3,LSL R8 .text:00043240 SUB R3, R3, #1 .text:00043244 TST R6, R3 .text:00043248 BEQ loc_432A4 .text:0004324C .text:0004324C loc_4324C ; CODE XREF: __strtof_internal+11D0j .text:0004324C ; __strtof_internal+11D8j .text:0004324C ADD R3, R2, #1 .text:00043250 LDR LR, [R11,#var_D0] .text:00043254 CMP R3, R2 .text:00043258 STR R3, [LR] .text:0004325C LDR R0, [R11,#var_D0] .text:00043260 LDR R3, [R0] .text:00043264 TST R3, #0x1000000 .text:00043268 BEQ loc_43294 .text:0004326C MOV R1, R0 .text:00043270 MOV R2, #1 .text:00043274 MOV R3, R2 .text:00043278 BL __mpn_rshift .text:0004327C LDR R1, [R11,#var_D0] .text:00043280 LDR R3, [R1] .text:00043284 ADD R4, R4, #1 .text:00043288 ORR R3, R3, #0x800000 .text:0004328C STR R3, [R1] .text:00043290 B loc_432A4 .text:00043294 ; --------------------------------------------------------------------------- .text:00043294 .text:00043294 loc_43294 ; CODE XREF: __strtof_internal+120Cj .text:00043294 CMN R4, #0x7F .text:00043298 BNE loc_432A4 .text:0004329C TST R3, #0x800000 .text:000432A0 MOVNE R4, 0xFFFFFF82 .text:000432A4 .text:000432A4 loc_432A4 ; CODE XREF: __strtof_internal+11C0j .text:000432A4 ; __strtof_internal+11ECj ... .text:000432A4 CMP R4, #0x80 .text:000432A8 BLE loc_45358 .text:000432AC LDR R2, [R11,#var_84] .text:000432B0 CMP R2, #0 .text:000432B4 B loc_45338 .text:000432B8 ; --------------------------------------------------------------------------- .text:000432B8 .text:000432B8 loc_432B8 ; CODE XREF: __strtof_internal+C24j .text:000432B8 LDR R3, [R11,#var_78] .text:000432BC CMP R3, #0 .text:000432C0 MOV R1, R3 .text:000432C4 BGE loc_432DC .text:000432C8 LDR R6, [R11,#var_9C] .text:000432CC RSB R3, R6, #0 .text:000432D0 CMP R1, R3 .text:000432D4 MOVGE R3, R1 .text:000432D8 B loc_432F0 .text:000432DC ; --------------------------------------------------------------------------- .text:000432DC .text:000432DC loc_432DC ; CODE XREF: __strtof_internal+1268j .text:000432DC LDR R12, [R11,#var_98] .text:000432E0 LDR LR, [R11,#var_9C] .text:000432E4 RSB R3, LR, R12 .text:000432E8 CMP R1, R3 .text:000432EC MOVLT R3, R1 .text:000432F0 .text:000432F0 loc_432F0 ; CODE XREF: __strtof_internal+127Cj .text:000432F0 LDR R0, [R11,#var_9C] .text:000432F4 RSB R2, R3, R1 .text:000432F8 STR R2, [R11,#var_78] .text:000432FC ADD R0, R0, R3 .text:00043300 ADD R3, R0, R2 .text:00043304 CMP R3, #0x27 .text:00043308 STR R0, [R11,#var_9C] .text:0004330C BGT loc_43710 .text:00043310 CMN R2, #0x2C .text:00043314 BGE loc_4332C .text:00043318 BL __errno_location .text:0004331C CDP p1, 0, c8,c0,c8, 0 .text:00043320 MOV R3, #0x22 .text:00043324 STR R3, [R0] .text:00043328 B locret_45378 .text:0004332C ; --------------------------------------------------------------------------- .text:0004332C .text:0004332C loc_4332C ; CODE XREF: __strtof_internal+12B8j .text:0004332C SUB R9, R11, #-var_48 .text:00043330 SUB R10, R11, #-var_74 .text:00043334 LDR R2, [R11,#var_9C] .text:00043338 SUB R3, R11, #-var_78 .text:0004333C STR R3, [R11,#var_CC] .text:00043340 CMP R2, #0 .text:00043344 BLE loc_43D9C .text:00043348 MOV R1, R2 .text:0004334C MOV R7, #0 .text:00043350 MOV R0, R7 .text:00043354 LDR R5, [R11,#var_94] .text:00043358 MOV R6, R10 .text:0004335C STR R7, [R11,#var_74] .text:00043360 .text:00043360 loc_43360 ; CODE XREF: __strtof_internal+147Cj .text:00043360 CMP R0, #9 .text:00043364 SUB R8, R1, #1 .text:00043368 BNE loc_4343C .text:0004336C LDR R2, [R6] .text:00043370 CMP R2, #0 .text:00043374 STREQ R7, [R11,#var_48] .text:00043378 MOVEQ R3, #1 .text:0004337C BEQ loc_43430 .text:00043380 SUB R0, R11, #-var_48 .text:00043384 MOV R1, R0 .text:00043388 MOV R3, 0x3B9ACA00 .text:00043394 BL __mpn_mul_1 .text:00043398 SUB LR, R11, #-var_44 .text:0004339C LDR R1, [R11,#var_48] .text:000433A0 MOV R4, LR .text:000433A4 LDR R12, [R6] .text:000433A8 ADD R3, R7, R1 .text:000433AC CMP R3, R1 .text:000433B0 STR R3, [R11,#var_48] .text:000433B4 BCS loc_433E4 .text:000433B8 SUBS R12, R12, #1 .text:000433BC BEQ loc_433DC .text:000433C0 .text:000433C0 loc_433C0 ; CODE XREF: __strtof_internal+137Cj .text:000433C0 LDR R3, [LR],#4 .text:000433C4 ADD R1, R3, #1 .text:000433C8 CMP R1, #0 .text:000433CC STR R1, [R4],#4 .text:000433D0 BNE loc_433E4 .text:000433D4 SUBS R12, R12, #1 .text:000433D8 BNE loc_433C0 .text:000433DC .text:000433DC loc_433DC ; CODE XREF: __strtof_internal+1360j .text:000433DC MOV R3, #1 .text:000433E0 B loc_43414 .text:000433E4 ; --------------------------------------------------------------------------- .text:000433E4 .text:000433E4 loc_433E4 ; CODE XREF: __strtof_internal+1358j .text:000433E4 ; __strtof_internal+1374j .text:000433E4 CMP R4, LR .text:000433E8 BEQ loc_43410 .text:000433EC MOV R2, #0 .text:000433F0 SUB R1, R12, #1 .text:000433F4 CMP R2, R1 .text:000433F8 BGE loc_43410 .text:000433FC .text:000433FC loc_433FC ; CODE XREF: __strtof_internal+13B0j .text:000433FC LDR R3, [LR,R2,LSL#2] .text:00043400 STR R3, [R4,R2,LSL#2] .text:00043404 ADD R2, R2, #1 .text:00043408 CMP R2, R1 .text:0004340C BLT loc_433FC .text:00043410 .text:00043410 loc_43410 ; CODE XREF: __strtof_internal+138Cj .text:00043410 ; __strtof_internal+139Cj .text:00043410 MOV R3, #0 .text:00043414 .text:00043414 loc_43414 ; CODE XREF: __strtof_internal+1384j .text:00043414 ADDS R0, R0, R3 .text:00043418 BEQ loc_43434 .text:0004341C LDR R2, [R6] .text:00043420 SUB R12, R11, #-var_48 .text:00043424 STR R0, [R12,R2,LSL#2] .text:00043428 LDR R3, [R6] .text:0004342C ADD R3, R3, #1 .text:00043430 .text:00043430 loc_43430 ; CODE XREF: __strtof_internal+1320j .text:00043430 STR R3, [R6] .text:00043434 .text:00043434 loc_43434 ; CODE XREF: __strtof_internal+13BCj .text:00043434 MOV R7, #0 .text:00043438 MOV R0, R7 .text:0004343C .text:0004343C loc_4343C ; CODE XREF: __strtof_internal+130Cj .text:0004343C MOV R2, R7,LSL#2 .text:00043440 LDRB R1, [R5] .text:00043444 ADD R12, R0, #1 .text:00043448 SUB R3, R1, #0x30 .text:0004344C CMP R3, #9 .text:00043450 BLS loc_434C0 .text:00043454 LDR LR, [R11,#var_A8] .text:00043458 CMP LR, #0 .text:0004345C BEQ loc_434B8 .text:00043460 LDRB R3, [LR] .text:00043464 CMP R1, R3 .text:00043468 BNE loc_434B8 .text:0004346C MOV R0, #1 .text:00043470 LDRB R1, [LR,R0] .text:00043474 CMP R1, #0 .text:00043478 BEQ loc_434A8 .text:0004347C LDRB R3, [R5,#1] .text:00043480 CMP R1, R3 .text:00043484 BNE loc_434A8 .text:00043488 .text:00043488 loc_43488 ; CODE XREF: __strtof_internal+1448j .text:00043488 LDR R3, [R11,#var_A8] .text:0004348C ADD R0, R0, #1 .text:00043490 LDRB R1, [R3,R0] .text:00043494 CMP R1, #0 .text:00043498 BEQ loc_434A8 .text:0004349C LDRB R3, [R5,R0] .text:000434A0 CMP R1, R3 .text:000434A4 BEQ loc_43488 .text:000434A8 .text:000434A8 loc_434A8 ; CODE XREF: __strtof_internal+141Cj .text:000434A8 ; __strtof_internal+1428j ... .text:000434A8 LDR LR, [R11,#var_A8] .text:000434AC LDRB R3, [LR,R0] .text:000434B0 CMP R3, #0 .text:000434B4 BEQ loc_434BC .text:000434B8 .text:000434B8 loc_434B8 ; CODE XREF: __strtof_internal+1400j .text:000434B8 ; __strtof_internal+140Cj .text:000434B8 LDR R0, [R11,#var_A4] .text:000434BC .text:000434BC loc_434BC ; CODE XREF: __strtof_internal+1458j .text:000434BC ADD R5, R5, R0 .text:000434C0 .text:000434C0 loc_434C0 ; CODE XREF: __strtof_internal+13F4j .text:000434C0 MOV R0, R12 .text:000434C4 SUBS R1, R8, #0 .text:000434C8 LDRB R3, [R5],#1 .text:000434CC ADD R2, R2, R7 .text:000434D0 ADD R3, R3, R2,LSL#1 .text:000434D4 SUB R7, R3, #0x30 .text:000434D8 BGT loc_43360 .text:000434DC LDR R2, [R11,#var_78] .text:000434E0 CMP R2, #0 .text:000434E4 BLE loc_43510 .text:000434E8 ADD R3, R12, R2 .text:000434EC CMP R3, #9 .text:000434F0 BGT loc_43510 .text:000434F4 LDR R1, =_tens_in_limb .text:000434F8 LDR R12, [R1,R3,LSL#2] .text:000434FC LDR R2, [R1,R2,LSL#2] .text:00043500 MOV R3, #0 .text:00043504 STR R3, [R11,#var_78] .text:00043508 MUL R7, R2, R7 .text:0004350C B loc_43518 .text:00043510 ; --------------------------------------------------------------------------- .text:00043510 .text:00043510 loc_43510 ; CODE XREF: __strtof_internal+1488j .text:00043510 ; __strtof_internal+1494j .text:00043510 LDR R2, =_tens_in_limb .text:00043514 LDR R12, [R2,R12,LSL#2] .text:00043518 .text:00043518 loc_43518 ; CODE XREF: __strtof_internal+14B0j .text:00043518 LDR R2, [R6] .text:0004351C CMP R2, #0 .text:00043520 STREQ R7, [R11,#var_48] .text:00043524 MOVEQ R3, #1 .text:00043528 BEQ loc_435D0 .text:0004352C SUB R0, R11, #-var_48 .text:00043530 MOV R1, R0 .text:00043534 MOV R3, R12 .text:00043538 BL __mpn_mul_1 .text:0004353C SUB LR, R11, #-var_44 .text:00043540 LDR R1, [R11,#var_48] .text:00043544 MOV R4, LR .text:00043548 LDR R12, [R6] .text:0004354C ADD R3, R7, R1 .text:00043550 CMP R3, R1 .text:00043554 STR R3, [R11,#var_48] .text:00043558 BCS loc_43588 .text:0004355C SUBS R12, R12, #1 .text:00043560 BEQ loc_43580 .text:00043564 .text:00043564 loc_43564 ; CODE XREF: __strtof_internal+1520j .text:00043564 LDR R3, [LR],#4 .text:00043568 ADD R1, R3, #1 .text:0004356C CMP R1, #0 .text:00043570 STR R1, [R4],#4 .text:00043574 BNE loc_43588 .text:00043578 SUBS R12, R12, #1 .text:0004357C BNE loc_43564 .text:00043580 .text:00043580 loc_43580 ; CODE XREF: __strtof_internal+1504j .text:00043580 MOV R3, #1 .text:00043584 B loc_435B8 .text:00043588 ; --------------------------------------------------------------------------- .text:00043588 .text:00043588 loc_43588 ; CODE XREF: __strtof_internal+14FCj .text:00043588 ; __strtof_internal+1518j .text:00043588 CMP R4, LR .text:0004358C BEQ loc_435B4 .text:00043590 MOV R2, #0 .text:00043594 SUB R1, R12, #1 .text:00043598 CMP R2, R1 .text:0004359C BGE loc_435B4 .text:000435A0 .text:000435A0 loc_435A0 ; CODE XREF: __strtof_internal+1554j .text:000435A0 LDR R3, [LR,R2,LSL#2] .text:000435A4 STR R3, [R4,R2,LSL#2] .text:000435A8 ADD R2, R2, #1 .text:000435AC CMP R2, R1 .text:000435B0 BLT loc_435A0 .text:000435B4 .text:000435B4 loc_435B4 ; CODE XREF: __strtof_internal+1530j .text:000435B4 ; __strtof_internal+1540j .text:000435B4 MOV R3, #0 .text:000435B8 .text:000435B8 loc_435B8 ; CODE XREF: __strtof_internal+1528j .text:000435B8 ADDS R0, R0, R3 .text:000435BC BEQ loc_435D4 .text:000435C0 LDR R3, [R6] .text:000435C4 SUB R12, R11, #-var_48 .text:000435C8 STR R0, [R12,R3,LSL#2] .text:000435CC ADD R3, R3, #1 .text:000435D0 .text:000435D0 loc_435D0 ; CODE XREF: __strtof_internal+14CCj .text:000435D0 STR R3, [R6] .text:000435D4 .text:000435D4 loc_435D4 ; CODE XREF: __strtof_internal+1560j .text:000435D4 LDR R3, [R11,#var_78] .text:000435D8 STR R5, [R11,#var_94] .text:000435DC CMP R3, #0 .text:000435E0 MOV R1, R3 .text:000435E4 BLE loc_436B8 .text:000435E8 MOV R6, R9 .text:000435EC SUB R5, R11, #-var_68 .text:000435F0 MOV R8, #1 .text:000435F4 LDR R7, =_fpioconst_pow10 .text:000435F8 .text:000435F8 loc_435F8 ; CODE XREF: __strtof_internal+1638j .text:000435F8 TST R1, R8 .text:000435FC BEQ loc_43688 .text:00043600 EOR R3, R1, R8 .text:00043604 STR R3, [R11,#var_78] .text:00043608 LDR R2, [R7,#(_fpioconst_pow10+4 - 0x61E00)] .text:0004360C LDR R12, [R11,#var_74] .text:00043610 SUB R4, R2, #2 .text:00043614 CMP R12, R4 .text:00043618 BLT loc_43640 .text:0004361C STR R4, [SP,#0xEC+var_EC] .text:00043620 MOV R0, R5 .text:00043624 LDR LR, =(__tens+8) .text:00043628 MOV R1, R6 .text:0004362C LDR R3, [R7] .text:00043630 MOV R2, R12 .text:00043634 ADD R3, LR, R3,LSL#2 .text:00043638 BL __mpn_mul .text:0004363C B loc_43660 .text:00043640 ; --------------------------------------------------------------------------- .text:00043640 .text:00043640 loc_43640 ; CODE XREF: __strtof_internal+15BCj .text:00043640 STR R12, [SP,#0xEC+var_EC] .text:00043644 MOV R0, R5 .text:00043648 LDR R12, =(__tens+8) .text:0004364C MOV R2, R4 .text:00043650 LDR R1, [R7] .text:00043654 MOV R3, R6 .text:00043658 ADD R1, R12, R1,LSL#2 .text:0004365C BL __mpn_mul .text:00043660 .text:00043660 loc_43660 ; CODE XREF: __strtof_internal+15E0j .text:00043660 LDR R3, [R11,#var_74] .text:00043664 CMP R0, #0 .text:00043668 ADD R2, R3, R4 .text:0004366C STR R2, [R11,#var_74] .text:00043670 SUBEQ R3, R2, #1 .text:00043674 STREQ R3, [R11,#var_74] .text:00043678 MOV R3, R6 .text:0004367C MOV R6, R5 .text:00043680 MOV R5, R3 .text:00043684 LDR R1, [R11,#var_78] .text:00043688 .text:00043688 loc_43688 ; CODE XREF: __strtof_internal+15A0j .text:00043688 MOV R8, R8,LSL#1 .text:0004368C ADD R7, R7, #0x10 .text:00043690 CMP R1, #0 .text:00043694 BNE loc_435F8 .text:00043698 SUB LR, R11, #-var_68 .text:0004369C CMP R6, LR .text:000436A0 BNE loc_436B8 .text:000436A4 MOV R0, R9 .text:000436A8 LDR R2, [R11,#var_74] .text:000436AC MOV R1, LR .text:000436B0 MOV R2, R2,LSL#2 .text:000436B4 BL memcpy .text:000436B8 .text:000436B8 loc_436B8 ; CODE XREF: __strtof_internal+1588j .text:000436B8 ; __strtof_internal+1644j .text:000436B8 LDR R2, [R11,#var_74] .text:000436BC SUB R3, R2, #1 .text:000436C0 LDR R3, [R9,R3,LSL#2] .text:000436C4 MOV LR, R2 .text:000436C8 CMP R3, #0x10000 .text:000436CC BCS loc_436E0 .text:000436D0 CMP R3, #0xFF .text:000436D4 MOVHI R1, #8 .text:000436D8 MOVLS R1, #0 .text:000436DC B loc_436EC .text:000436E0 ; --------------------------------------------------------------------------- .text:000436E0 .text:000436E0 loc_436E0 ; CODE XREF: __strtof_internal+1670j .text:000436E0 CMP R3, #0x1000000 .text:000436E4 MOVCS R1, #0x18 .text:000436E8 MOVCC R1, #0x10 .text:000436EC .text:000436EC loc_436EC ; CODE XREF: __strtof_internal+1680j .text:000436EC LDR R0, =__clz_tab_1 .text:000436F0 MOV R2, R3,LSR R1 .text:000436F4 LDRB R3, [R0,R2] .text:000436F8 ADD R3, R3, R1 .text:000436FC RSB R3, R3, #0x20 .text:00043700 RSB R3, R3, LR,LSL#5 .text:00043704 CMP R3, #0x80 .text:00043708 STR R3, [R11,#var_90] .text:0004370C BLE loc_43738 .text:00043710 .text:00043710 loc_43710 ; CODE XREF: __strtof_internal+12B0j .text:00043710 BL __errno_location .text:00043714 LDR R1, [R11,#var_84] .text:00043718 MOV R3, #0x22 .text:0004371C STR R3, [R0] .text:00043720 CMP R1, #0 .text:00043724 .text:00043724 loc_43724 ; CODE XREF: __strtof_internal+1C0j .text:00043724 LDR R3, =0x7F800000 .text:00043728 LDRNE R3, =0xFF800000 .text:0004372C STR R3, [SP,#0xEC+var_F0]! .text:00043730 LDC p1, c0, [SP+0xF0+var_F0],#4 .text:00043734 B locret_45378 .text:00043738 ; --------------------------------------------------------------------------- .text:00043738 .text:00043738 loc_43738 ; CODE XREF: __strtof_internal+16B0j .text:00043738 LDR R2, [R11,#var_90] .text:0004373C CMP R2, #0x18 .text:00043740 BLE loc_43A28 .text:00043744 SUB R3, R2, #0x18 .text:00043748 CMP R3, #0 .text:0004374C ADDLT R2, R3, #0x1F .text:00043750 MOVGE R2, R3 .text:00043754 MOV R4, R2,ASR#5 .text:00043758 MOV R7, R4 .text:0004375C SUB R4, R3, R4,LSL#5 .text:00043760 CMP R4, #0 .text:00043764 MOVNE R10, R7 .text:00043768 SUBEQ R10, R7, #1 .text:0004376C SUBNE R3, R4, #1 .text:00043770 MOVEQ R3, #0x1F .text:00043774 STR R3, [R11,#var_B0] .text:00043778 BNE loc_437C0 .text:0004377C LDR R12, [R11,#var_90] .text:00043780 SUB R6, R11, #-var_70 .text:00043784 STR R6, [R11,#var_D0] .text:00043788 SUB R12, R12, #1 .text:0004378C STR R12, [R11,#var_DC] .text:00043790 ADD R3, R11, R7,LSL#2 .text:00043794 SUB R3, R3, #0x28 .text:00043798 LDR R2, [R3,#-0x20] .text:0004379C MOV R0, R10,LSL#2 .text:000437A0 STR R2, [R11,#var_70] .text:000437A4 B loc_43844 .text:000437A4 ; --------------------------------------------------------------------------- .text:000437A8 off_437A8 DCD _tens_in_limb ; DATA XREF: __strtof_internal+1498r .text:000437A8 ; __strtof_internal:loc_43510r .text:000437AC off_437AC DCD _fpioconst_pow10 ; DATA XREF: __strtof_internal+1598r .text:000437B0 off_437B0 DCD __tens+8 ; DATA XREF: __strtof_internal+15C8r .text:000437B0 ; __strtof_internal+15ECr .text:000437B4 off_437B4 DCD __clz_tab_1 ; DATA XREF: __strtof_internal:loc_436ECr .text:000437B8 dword_437B8 DCD 0x7F800000 ; DATA XREF: __strtof_internal:loc_43724r .text:000437BC dword_437BC DCD 0xFF800000 ; DATA XREF: __strtof_internal+16CCr .text:000437C0 ; --------------------------------------------------------------------------- .text:000437C0 .text:000437C0 loc_437C0 ; CODE XREF: __strtof_internal+171Cj .text:000437C0 MOV R12, R7 .text:000437C4 SUB R3, LR, #1 .text:000437C8 LDR R0, [R11,#var_90] .text:000437CC SUB LR, R11, #-var_70 .text:000437D0 STR LR, [R11,#var_D0] .text:000437D4 CMP R12, R3 .text:000437D8 SUB R0, R0, #1 .text:000437DC STR R0, [R11,#var_DC] .text:000437E0 MOV R0, R10,LSL#2 .text:000437E4 BGE loc_43830 .text:000437E8 MOV R1, LR .text:000437EC MOV R5, R9 .text:000437F0 RSB R8, R4, #0x20 .text:000437F4 MOV R3, R12,LSL#2 .text:000437F8 ADD LR, R3, #4 .text:000437FC MOV R6, #0 .text:00043800 .text:00043800 loc_43800 ; CODE XREF: __strtof_internal+17D0j .text:00043800 LDR R3, [R5,LR] .text:00043804 LDR R2, [R5,R12,LSL#2] .text:00043808 MOV R3, R3,LSL R8 .text:0004380C ORR R3, R3, R2,LSR R4 .text:00043810 STR R3, [R6,R1] .text:00043814 ADD LR, LR, #4 .text:00043818 ADD R12, R12, #1 .text:0004381C LDR R3, [R11,#var_74] .text:00043820 ADD R6, R6, #4 .text:00043824 SUB R3, R3, #1 .text:00043828 CMP R12, R3 .text:0004382C BLT loc_43800 .text:00043830 .text:00043830 loc_43830 ; CODE XREF: __strtof_internal+1788j .text:00043830 RSB R3, R7, R12 .text:00043834 CMP R3, #0 .text:00043838 LDRLE R3, [R9,R12,LSL#2] .text:0004383C MOVLE R3, R3,LSR R4 .text:00043840 STRLE R3, [R11,#var_70] .text:00043844 .text:00043844 loc_43844 ; CODE XREF: __strtof_internal+1748j .text:00043844 LDR R3, [R11,#var_48] .text:00043848 MOV R12, #0 .text:0004384C CMP R3, R12 .text:00043850 BNE loc_43868 .text:00043854 MOV R2, R9 .text:00043858 .text:00043858 loc_43858 ; CODE XREF: __strtof_internal+1808j .text:00043858 ADD R12, R12, #1 .text:0004385C LDR R3, [R2,R12,LSL#2] .text:00043860 CMP R3, #0 .text:00043864 BEQ loc_43858 .text:00043868 .text:00043868 loc_43868 ; CODE XREF: __strtof_internal+17F4j .text:00043868 LDR R4, [R11,#var_DC] .text:0004386C LDR R8, [R11,#var_B0] .text:00043870 SUB R1, R11, #-var_9C .text:00043874 LDMIA R1, {R1,R2} .text:00043878 CMP R12, R10 .text:0004387C MOVGE R3, #0 .text:00043880 MOVLT R3, #1 .text:00043884 LDR R7, [R9,R0] .text:00043888 CMP R1, R2 .text:0004388C MOVGE R6, R3 .text:00043890 MOVLT R6, #1 .text:00043894 CMN R4, #0x7E .text:00043898 BGE loc_439F8 .text:0004389C RSB R12, R4, #0xFC000002 .text:000438A0 ADD R12, R12, #0x3FC0000 .text:000438A4 ADD R12, R12, #0x3FC00 .text:000438A8 ADD R12, R12, #0x380 .text:000438AC CMP R12, #0x18 .text:000438B0 BGT loc_4513C .text:000438B4 MOV R2, #1 .text:000438B8 MOV R3, R2,LSL R8 .text:000438BC SUB R3, R3, #1 .text:000438C0 TST R7, R3 .text:000438C4 ORRNE R6, R6, #1 .text:000438C8 CMP R12, #0x18 .text:000438CC BNE loc_43914 .text:000438D0 MOV R8, #0x17 .text:000438D4 SUB R2, R2, #1 .text:000438D8 LDR R7, [R11,#var_70] .text:000438DC .text:000438DC loc_438DC ; CODE XREF: __strtof_internal+1898j .text:000438DC LDR R12, [R11,#var_D0] .text:000438E0 LDR R3, [R12,R2,LSL#2] .text:000438E4 ADD R2, R2, #1 .text:000438E8 CMP R3, #0 .text:000438EC ORRNE R6, R6, #1 .text:000438F0 CMP R2, #0 .text:000438F4 BLE loc_438DC .text:000438F8 MOV R1, #0 .text:000438FC MOV R3, R12 .text:00043900 MOV R2, R3 .text:00043904 .text:00043904 loc_43904 ; CODE XREF: __strtof_internal+18B0j .text:00043904 STR R1, [R3],#-4 .text:00043908 CMP R3, R2 .text:0004390C BGE loc_43904 .text:00043910 B loc_439F4 .text:00043914 ; --------------------------------------------------------------------------- .text:00043914 .text:00043914 loc_43914 ; CODE XREF: __strtof_internal+1870j .text:00043914 CMP R12, #0x1F .text:00043918 BLE loc_439D4 .text:0004391C SUB R3, R12, #1 .text:00043920 CMP R3, #0 .text:00043924 ADDLT R2, R3, #0x1F .text:00043928 MOVGE R2, R3 .text:0004392C MOV R2, R2,ASR#5 .text:00043930 SUB R8, R3, R2,LSL#5 .text:00043934 MOV R1, #0 .text:00043938 LDR LR, [R11,#var_D0] .text:0004393C CMP R1, R2 .text:00043940 LDR R7, [LR,R2,LSL#2] .text:00043944 MOV LR, R12,ASR#31 .text:00043948 BGE loc_43968 .text:0004394C .text:0004394C loc_4394C ; CODE XREF: __strtof_internal+1908j .text:0004394C LDR R0, [R11,#var_D0] .text:00043950 LDR R3, [R0,R1,LSL#2] .text:00043954 ADD R1, R1, #1 .text:00043958 CMP R3, #0 .text:0004395C ORRNE R6, R6, #1 .text:00043960 CMP R1, R2 .text:00043964 BLT loc_4394C .text:00043968 .text:00043968 loc_43968 ; CODE XREF: __strtof_internal+18ECj .text:00043968 MOV R3, #1 .text:0004396C MOV R3, R3,LSL R8 .text:00043970 SUB R3, R3, #1 .text:00043974 TST R7, R3 .text:00043978 ORRNE R6, R6, #1 .text:0004397C MOV R3, LR,LSR#27 .text:00043980 ADD R3, R12, R3 .text:00043984 MOV R4, R3,ASR#5 .text:00043988 RSB R5, R4, #1 .text:0004398C MOV R2, R5 .text:00043990 LDR R0, [R11,#var_D0] .text:00043994 SUB R3, R12, R4,LSL#5 .text:00043998 ADD R1, R0, R4,LSL#2 .text:0004399C BL __mpn_rshift .text:000439A0 MOV R1, #0 .text:000439A4 CMP R1, R4 .text:000439A8 BGE loc_439F4 .text:000439AC MOV R0, R4 .text:000439B0 LDR R3, [R11,#var_D0] .text:000439B4 MOV R12, R1 .text:000439B8 ADD R2, R3, R5,LSL#2 .text:000439BC .text:000439BC loc_439BC ; CODE XREF: __strtof_internal+1970j .text:000439BC MOV R3, R1,LSL#2 .text:000439C0 ADD R1, R1, #1 .text:000439C4 CMP R1, R0 .text:000439C8 STR R12, [R3,R2] .text:000439CC BLT loc_439BC .text:000439D0 B loc_439F4 .text:000439D4 ; --------------------------------------------------------------------------- .text:000439D4 .text:000439D4 loc_439D4 ; CODE XREF: __strtof_internal+18BCj .text:000439D4 CMP R12, #0 .text:000439D8 BLE loc_439F4 .text:000439DC SUB R8, R12, #1 .text:000439E0 LDR R0, [R11,#var_D0] .text:000439E4 MOV R3, R12 .text:000439E8 LDR R7, [R11,#var_70] .text:000439EC MOV R1, R0 .text:000439F0 BL __mpn_rshift .text:000439F4 .text:000439F4 loc_439F4 ; CODE XREF: __strtof_internal+18B4j .text:000439F4 ; __strtof_internal+194Cj ... .text:000439F4 MOV R4, 0xFFFFFF81 .text:000439F8 .text:000439F8 loc_439F8 ; CODE XREF: __strtof_internal+183Cj .text:000439F8 MOV R3, R7,LSR R8 .text:000439FC TST R3, #1 .text:00043A00 BEQ loc_45328 .text:00043A04 CMP R6, #0 .text:00043A08 LDR R6, [R11,#var_D0] .text:00043A0C LDR R2, [R6] .text:00043A10 BNE loc_4302C .text:00043A14 TST R2, #1 .text:00043A18 BNE loc_4302C .text:00043A1C MOV R3, #1 .text:00043A20 MOV R3, R3,LSL R8 .text:00043A24 B loc_43020 .text:00043A28 ; --------------------------------------------------------------------------- .text:00043A28 .text:00043A28 loc_43A28 ; CODE XREF: __strtof_internal+16E4j .text:00043A28 LDR R2, [R11,#var_98] .text:00043A2C LDR R3, [R11,#var_9C] .text:00043A30 CMP R2, R3 .text:00043A34 BNE loc_43D8C .text:00043A38 LDR R6, [R11,#var_90] .text:00043A3C SUB R2, R6, #1 .text:00043A40 CMP R2, #0 .text:00043A44 ADDLT R3, R2, #0x1F .text:00043A48 MOVGE R3, R2 .text:00043A4C BIC R3, R3, #0x1F .text:00043A50 RSB R3, R3, R2 .text:00043A54 CMP R3, #0x17 .text:00043A58 STR R2, [R11,#var_DC] .text:00043A5C BNE loc_43AB8 .text:00043A60 RSB R0, LR, #1 .text:00043A64 SUB R4, R11, #-var_70 .text:00043A68 ADD R0, R4, R0,LSL#2 .text:00043A6C MOV R1, R9 .text:00043A70 MOV R2, LR,LSL#2 .text:00043A74 BL memcpy .text:00043A78 MOV R1, #0 .text:00043A7C LDR R3, [R11,#var_74] .text:00043A80 STR R4, [R11,#var_D0] .text:00043A84 RSB R3, R3, #1 .text:00043A88 CMP R1, R3 .text:00043A8C BGE loc_43B80 .text:00043A90 MOV R12, R4 .text:00043A94 MOV R0, R1 .text:00043A98 .text:00043A98 loc_43A98 ; CODE XREF: __strtof_internal+1A54j .text:00043A98 MOV R3, R1,LSL#2 .text:00043A9C STR R0, [R3,R12] .text:00043AA0 LDR R2, [R11,#var_74] .text:00043AA4 ADD R1, R1, #1 .text:00043AA8 RSB R2, R2, #1 .text:00043AAC CMP R1, R2 .text:00043AB0 BLT loc_43A98 .text:00043AB4 B loc_43B80 .text:00043AB8 ; --------------------------------------------------------------------------- .text:00043AB8 .text:00043AB8 loc_43AB8 ; CODE XREF: __strtof_internal+1A00j .text:00043AB8 CMP R3, #0x16 .text:00043ABC BGT loc_43B1C .text:00043AC0 RSB R0, LR, #1 .text:00043AC4 SUB R4, R11, #-var_70 .text:00043AC8 ADD R0, R4, R0,LSL#2 .text:00043ACC MOV R1, R9 .text:00043AD0 MOV R2, LR .text:00043AD4 RSB R3, R3, #0x17 .text:00043AD8 BL __mpn_lshift .text:00043ADC MOV R1, #0 .text:00043AE0 LDR R3, [R11,#var_74] .text:00043AE4 STR R4, [R11,#var_D0] .text:00043AE8 RSB R3, R3, #1 .text:00043AEC CMP R1, R3 .text:00043AF0 BGE loc_43B80 .text:00043AF4 MOV R12, R4 .text:00043AF8 MOV R0, R1 .text:00043AFC .text:00043AFC loc_43AFC ; CODE XREF: __strtof_internal+1AB8j .text:00043AFC MOV R3, R1,LSL#2 .text:00043B00 STR R0, [R3,R12] .text:00043B04 LDR R2, [R11,#var_74] .text:00043B08 ADD R1, R1, #1 .text:00043B0C RSB R2, R2, #1 .text:00043B10 CMP R1, R2 .text:00043B14 BLT loc_43AFC .text:00043B18 B loc_43B80 .text:00043B1C ; --------------------------------------------------------------------------- .text:00043B1C .text:00043B1C loc_43B1C ; CODE XREF: __strtof_internal+1A60j .text:00043B1C RSB R0, LR, #1 .text:00043B20 SUB R4, R11, #-var_70 .text:00043B24 ADD R0, R4, R0,LSL#2 .text:00043B28 MOV R1, R9 .text:00043B2C MOV R2, LR .text:00043B30 SUB R3, R3, #0x17 .text:00043B34 BL __mpn_rshift .text:00043B38 LDR R3, [R11,#var_74] .text:00043B3C RSB R3, R3, #0 .text:00043B40 STR R0, [R4,R3,LSL#2] .text:00043B44 MOV R1, #0 .text:00043B48 LDR R3, [R11,#var_74] .text:00043B4C STR R4, [R11,#var_D0] .text:00043B50 RSB R3, R3, #0 .text:00043B54 CMP R1, R3 .text:00043B58 BGE loc_43B80 .text:00043B5C MOV R12, R4 .text:00043B60 MOV R0, R1 .text:00043B64 .text:00043B64 loc_43B64 ; CODE XREF: __strtof_internal+1B20j .text:00043B64 MOV R3, R1,LSL#2 .text:00043B68 STR R0, [R3,R12] .text:00043B6C LDR R2, [R11,#var_74] .text:00043B70 ADD R1, R1, #1 .text:00043B74 RSB R2, R2, #0 .text:00043B78 CMP R1, R2 .text:00043B7C BLT loc_43B64 .text:00043B80 .text:00043B80 loc_43B80 ; CODE XREF: __strtof_internal+1A30j .text:00043B80 ; __strtof_internal+1A58j ... .text:00043B80 MOV R1, #0 .text:00043B84 MOV R6, R1 .text:00043B88 MOV R8, R6 .text:00043B8C LDR R4, [R11,#var_DC] .text:00043B90 MOV R7, R6 .text:00043B94 CMN R4, #0x7E .text:00043B98 BGE loc_43CE8 .text:00043B9C RSB R12, R4, #0xFC000002 .text:00043BA0 ADD R12, R12, #0x3FC0000 .text:00043BA4 ADD R12, R12, #0x3FC00 .text:00043BA8 ADD R12, R12, #0x380 .text:00043BAC CMP R12, #0x18 .text:00043BB0 BGT loc_4513C .text:00043BB4 MOV R7, R6 .text:00043BB8 CMP R12, #0x18 .text:00043BBC BNE loc_43C04 .text:00043BC0 MOV R8, #0x17 .text:00043BC4 MOV R2, R1 .text:00043BC8 LDR R6, [R11,#var_70] .text:00043BCC .text:00043BCC loc_43BCC ; CODE XREF: __strtof_internal+1B88j .text:00043BCC LDR R12, [R11,#var_D0] .text:00043BD0 LDR R3, [R12,R2,LSL#2] .text:00043BD4 ADD R2, R2, #1 .text:00043BD8 CMP R3, #0 .text:00043BDC ORRNE R7, R7, #1 .text:00043BE0 CMP R2, #0 .text:00043BE4 BLE loc_43BCC .text:00043BE8 MOV R1, #0 .text:00043BEC MOV R3, R12 .text:00043BF0 MOV R2, R3 .text:00043BF4 .text:00043BF4 loc_43BF4 ; CODE XREF: __strtof_internal+1BA0j .text:00043BF4 STR R1, [R3],#-4 .text:00043BF8 CMP R3, R2 .text:00043BFC BGE loc_43BF4 .text:00043C00 B loc_43CE4 .text:00043C04 ; --------------------------------------------------------------------------- .text:00043C04 .text:00043C04 loc_43C04 ; CODE XREF: __strtof_internal+1B60j .text:00043C04 CMP R12, #0x1F .text:00043C08 BLE loc_43CC0 .text:00043C0C SUB R3, R12, #1 .text:00043C10 CMP R3, #0 .text:00043C14 ADDLT R2, R3, #0x1F .text:00043C18 MOVGE R2, R3 .text:00043C1C MOV R2, R2,ASR#5 .text:00043C20 SUB R8, R3, R2,LSL#5 .text:00043C24 LDR LR, [R11,#var_D0] .text:00043C28 CMP R7, R2 .text:00043C2C LDR R6, [LR,R2,LSL#2] .text:00043C30 MOV LR, R12,ASR#31 .text:00043C34 BGE loc_43C54 .text:00043C38 .text:00043C38 loc_43C38 ; CODE XREF: __strtof_internal+1BF4j .text:00043C38 LDR R0, [R11,#var_D0] .text:00043C3C LDR R3, [R0,R1,LSL#2] .text:00043C40 ADD R1, R1, #1 .text:00043C44 CMP R3, #0 .text:00043C48 ORRNE R7, R7, #1 .text:00043C4C CMP R1, R2 .text:00043C50 BLT loc_43C38 .text:00043C54 .text:00043C54 loc_43C54 ; CODE XREF: __strtof_internal+1BD8j .text:00043C54 MOV R3, #1 .text:00043C58 MOV R3, R3,LSL R8 .text:00043C5C SUB R3, R3, #1 .text:00043C60 TST R6, R3 .text:00043C64 ORRNE R7, R7, #1 .text:00043C68 MOV R3, LR,LSR#27 .text:00043C6C ADD R3, R12, R3 .text:00043C70 MOV R4, R3,ASR#5 .text:00043C74 RSB R5, R4, #1 .text:00043C78 MOV R2, R5 .text:00043C7C LDR R0, [R11,#var_D0] .text:00043C80 SUB R3, R12, R4,LSL#5 .text:00043C84 ADD R1, R0, R4,LSL#2 .text:00043C88 BL __mpn_rshift .text:00043C8C MOV R1, #0 .text:00043C90 CMP R1, R4 .text:00043C94 BGE loc_43CE4 .text:00043C98 MOV R0, R4 .text:00043C9C LDR R3, [R11,#var_D0] .text:00043CA0 MOV R12, R1 .text:00043CA4 ADD R2, R3, R5,LSL#2 .text:00043CA8 .text:00043CA8 loc_43CA8 ; CODE XREF: __strtof_internal+1C5Cj .text:00043CA8 MOV R3, R1,LSL#2 .text:00043CAC ADD R1, R1, #1 .text:00043CB0 CMP R1, R0 .text:00043CB4 STR R12, [R3,R2] .text:00043CB8 BLT loc_43CA8 .text:00043CBC B loc_43CE4 .text:00043CC0 ; --------------------------------------------------------------------------- .text:00043CC0 .text:00043CC0 loc_43CC0 ; CODE XREF: __strtof_internal+1BACj .text:00043CC0 CMP R12, #0 .text:00043CC4 BLE loc_43CE4 .text:00043CC8 SUB R8, R12, #1 .text:00043CCC MOV R2, #1 .text:00043CD0 LDR R0, [R11,#var_D0] .text:00043CD4 MOV R3, R12 .text:00043CD8 LDR R6, [R11,#var_70] .text:00043CDC MOV R1, R0 .text:00043CE0 BL __mpn_rshift .text:00043CE4 .text:00043CE4 loc_43CE4 ; CODE XREF: __strtof_internal+1BA4j .text:00043CE4 ; __strtof_internal+1C38j ... .text:00043CE4 MOV R4, 0xFFFFFF81 .text:00043CE8 .text:00043CE8 loc_43CE8 ; CODE XREF: __strtof_internal+1B3Cj .text:00043CE8 MOV R3, R6,LSR R8 .text:00043CEC TST R3, #1 .text:00043CF0 BEQ loc_43D78 .text:00043CF4 LDR R12, [R11,#var_D0] .text:00043CF8 CMP R7, #0 .text:00043CFC LDR R2, [R12] .text:00043D00 BNE loc_43D20 .text:00043D04 TST R2, #1 .text:00043D08 BNE loc_43D20 .text:00043D0C MOV R3, #1 .text:00043D10 MOV R3, R3,LSL R8 .text:00043D14 SUB R3, R3, #1 .text:00043D18 TST R6, R3 .text:00043D1C BEQ loc_43D78 .text:00043D20 .text:00043D20 loc_43D20 ; CODE XREF: __strtof_internal+1CA4j .text:00043D20 ; __strtof_internal+1CACj .text:00043D20 ADD R3, R2, #1 .text:00043D24 LDR LR, [R11,#var_D0] .text:00043D28 CMP R3, R2 .text:00043D2C STR R3, [LR] .text:00043D30 LDR R0, [R11,#var_D0] .text:00043D34 LDR R3, [R0] .text:00043D38 TST R3, #0x1000000 .text:00043D3C BEQ loc_43D68 .text:00043D40 MOV R1, R0 .text:00043D44 MOV R2, #1 .text:00043D48 MOV R3, R2 .text:00043D4C BL __mpn_rshift .text:00043D50 LDR R1, [R11,#var_D0] .text:00043D54 LDR R3, [R1] .text:00043D58 ADD R4, R4, #1 .text:00043D5C ORR R3, R3, #0x800000 .text:00043D60 STR R3, [R1] .text:00043D64 B loc_43D78 .text:00043D68 ; --------------------------------------------------------------------------- .text:00043D68 .text:00043D68 loc_43D68 ; CODE XREF: __strtof_internal+1CE0j .text:00043D68 CMN R4, #0x7F .text:00043D6C BNE loc_43D78 .text:00043D70 TST R3, #0x800000 .text:00043D74 MOVNE R4, 0xFFFFFF82 .text:00043D78 .text:00043D78 loc_43D78 ; CODE XREF: __strtof_internal+1C94j .text:00043D78 ; __strtof_internal+1CC0j ... .text:00043D78 CMP R4, #0x80 .text:00043D7C BLE loc_45358 .text:00043D80 LDR R2, [R11,#var_84] .text:00043D84 CMP R2, #0 .text:00043D88 B loc_45338 .text:00043D8C ; --------------------------------------------------------------------------- .text:00043D8C .text:00043D8C loc_43D8C ; CODE XREF: __strtof_internal+19D8j .text:00043D8C SUB R0, R11, #-var_70 .text:00043D90 MOV R1, R9 .text:00043D94 MOV R2, LR,LSL#2 .text:00043D98 BL memcpy .text:00043D9C .text:00043D9C loc_43D9C ; CODE XREF: __strtof_internal+12E8j .text:00043D9C SUB R4, R11, #-var_68 .text:00043DA0 LDR R3, [R11,#var_90] .text:00043DA4 MOV R1, #3 .text:00043DA8 RSB R5, R3, #0x1A .text:00043DAC MOV R0, R5 .text:00043DB0 BL __divsi3 .text:00043DB4 LDR R6, [R11,#var_98] .text:00043DB8 MOV R8, R9 .text:00043DBC LDR R12, [R11,#var_9C] .text:00043DC0 ADD R0, R0, #1 .text:00043DC4 RSB R3, R12, R6 .text:00043DC8 CMP R3, R0 .text:00043DCC LDR R6, =_fpioconst_pow10 .text:00043DD0 BLE loc_43DFC .text:00043DD4 MOV R0, R5 .text:00043DD8 MOV R1, #3 .text:00043DDC BL __divsi3 .text:00043DE0 LDR LR, [R11,#var_9C] .text:00043DE4 ADD R0, LR, R0 .text:00043DE8 ADD R0, R0, #1 .text:00043DEC STR R0, [R11,#var_98] .text:00043DF0 MOV R0, #1 .text:00043DF4 STR R0, [R11,#var_B4] .text:00043DF8 B loc_43E04 .text:00043DFC ; --------------------------------------------------------------------------- .text:00043DFC .text:00043DFC loc_43DFC ; CODE XREF: __strtof_internal+1D74j .text:00043DFC MOV R1, #0 .text:00043E00 STR R1, [R11,#var_B4] .text:00043E04 .text:00043E04 loc_43E04 ; CODE XREF: __strtof_internal+1D9Cj .text:00043E04 MOV R2, #0 .text:00043E08 STR R2, [R11,#var_8C] .text:00043E0C SUB LR, R11, #-var_70 .text:00043E10 STR LR, [R11,#var_D0] .text:00043E14 LDR R3, [R11,#var_98] .text:00043E18 LDR R12, [R11,#var_9C] .text:00043E1C RSB R2, R12, R3 .text:00043E20 LDR R3, [R11,#var_78] .text:00043E24 MOV R7, #1 .text:00043E28 STR R2, [R11,#var_E4] .text:00043E2C RSB R5, R3, R2 .text:00043E30 .text:00043E30 loc_43E30 ; CODE XREF: __strtof_internal+1E6Cj .text:00043E30 TST R5, R7 .text:00043E34 BEQ loc_43EBC .text:00043E38 LDR R0, [R11,#var_8C] .text:00043E3C EOR R5, R5, R7 .text:00043E40 CMP R0, #0 .text:00043E44 BNE loc_43E6C .text:00043E48 LDMIA R6, {R1,R3} .text:00043E4C SUB R3, R3, #2 .text:00043E50 STR R3, [R11,#var_8C] .text:00043E54 LDR R2, =(__tens+8) .text:00043E58 MOV R0, R4 .text:00043E5C ADD R1, R2, R1,LSL#2 .text:00043E60 MOV R2, R3,LSL#2 .text:00043E64 BL memcpy .text:00043E68 B loc_43EBC .text:00043E6C ; --------------------------------------------------------------------------- .text:00043E6C .text:00043E6C loc_43E6C ; CODE XREF: __strtof_internal+1DE8j .text:00043E6C LDR R3, [R11,#var_8C] .text:00043E70 STR R3, [SP,#0xEC+var_EC] .text:00043E74 LDR R12, =(__tens+8) .text:00043E78 MOV R0, R8 .text:00043E7C LDR R1, [R6] .text:00043E80 MOV R3, R4 .text:00043E84 LDR R2, [R6,#4] .text:00043E88 ADD R1, R12, R1,LSL#2 .text:00043E8C SUB R2, R2, #2 .text:00043E90 BL __mpn_mul .text:00043E94 MOV R3, R4 .text:00043E98 MOV R4, R8 .text:00043E9C LDR LR, [R11,#var_8C] .text:00043EA0 MOV R8, R3 .text:00043EA4 LDR R2, [R6,#4] .text:00043EA8 SUB R3, LR, #2 .text:00043EAC ADD R3, R3, R2 .text:00043EB0 CMP R0, #0 .text:00043EB4 SUBEQ R3, R3, #1 .text:00043EB8 STR R3, [R11,#var_8C] .text:00043EBC .text:00043EBC loc_43EBC ; CODE XREF: __strtof_internal+1DD8j .text:00043EBC ; __strtof_internal+1E0Cj .text:00043EBC MOV R7, R7,LSL#1 .text:00043EC0 ADD R6, R6, #0x10 .text:00043EC4 CMP R5, #0 .text:00043EC8 BNE loc_43E30 .text:00043ECC CMP R4, R9 .text:00043ED0 BNE loc_43EE8 .text:00043ED4 SUB R0, R11, #-var_68 .text:00043ED8 LDR R3, [R11,#var_8C] .text:00043EDC MOV R1, R9 .text:00043EE0 MOV R2, R3,LSL#2 .text:00043EE4 BL memcpy .text:00043EE8 .text:00043EE8 loc_43EE8 ; CODE XREF: __strtof_internal+1E74j .text:00043EE8 MOV R6, R5 .text:00043EEC STR R6, [R11,#var_74] .text:00043EF0 LDR R4, [R11,#var_94] .text:00043EF4 LDR R12, [R11,#var_8C] .text:00043EF8 MOV R0, R6 .text:00043EFC LDR R1, [R11,#var_E4] .text:00043F00 SUB R12, R12, #1 .text:00043F04 STR R12, [R11,#var_D8] .text:00043F08 .text:00043F08 loc_43F08 ; CODE XREF: __strtof_internal+2020j .text:00043F08 CMP R0, #9 .text:00043F0C SUB R7, R1, #1 .text:00043F10 BNE loc_43FE0 .text:00043F14 LDR R2, [R10] .text:00043F18 CMP R2, #0 .text:00043F1C STREQ R6, [R11,#var_48] .text:00043F20 MOVEQ R3, #1 .text:00043F24 BEQ loc_43FD4 .text:00043F28 SUB R0, R11, #-var_48 .text:00043F2C MOV R1, R0 .text:00043F30 MOV R3, 0x3B9ACA00 .text:00043F3C BL __mpn_mul_1 .text:00043F40 SUB LR, R11, #-var_44 .text:00043F44 LDR R1, [R11,#var_48] .text:00043F48 MOV R5, LR .text:00043F4C LDR R12, [R10] .text:00043F50 ADD R3, R6, R1 .text:00043F54 CMP R3, R1 .text:00043F58 STR R3, [R11,#var_48] .text:00043F5C BCS loc_43F8C .text:00043F60 SUBS R12, R12, #1 .text:00043F64 BEQ loc_43F84 .text:00043F68 .text:00043F68 loc_43F68 ; CODE XREF: __strtof_internal+1F24j .text:00043F68 LDR R3, [LR],#4 .text:00043F6C ADD R1, R3, #1 .text:00043F70 CMP R1, #0 .text:00043F74 STR R1, [R5],#4 .text:00043F78 BNE loc_43F8C .text:00043F7C SUBS R12, R12, #1 .text:00043F80 BNE loc_43F68 .text:00043F84 .text:00043F84 loc_43F84 ; CODE XREF: __strtof_internal+1F08j .text:00043F84 MOV R3, #1 .text:00043F88 B loc_43FBC .text:00043F8C ; --------------------------------------------------------------------------- .text:00043F8C .text:00043F8C loc_43F8C ; CODE XREF: __strtof_internal+1F00j .text:00043F8C ; __strtof_internal+1F1Cj .text:00043F8C CMP R5, LR .text:00043F90 BEQ loc_43FB8 .text:00043F94 MOV R2, #0 .text:00043F98 SUB R1, R12, #1 .text:00043F9C CMP R2, R1 .text:00043FA0 BGE loc_43FB8 .text:00043FA4 .text:00043FA4 loc_43FA4 ; CODE XREF: __strtof_internal+1F58j .text:00043FA4 LDR R3, [LR,R2,LSL#2] .text:00043FA8 STR R3, [R5,R2,LSL#2] .text:00043FAC ADD R2, R2, #1 .text:00043FB0 CMP R2, R1 .text:00043FB4 BLT loc_43FA4 .text:00043FB8 .text:00043FB8 loc_43FB8 ; CODE XREF: __strtof_internal+1F34j .text:00043FB8 ; __strtof_internal+1F44j .text:00043FB8 MOV R3, #0 .text:00043FBC .text:00043FBC loc_43FBC ; CODE XREF: __strtof_internal+1F2Cj .text:00043FBC ADDS R0, R0, R3 .text:00043FC0 BEQ loc_43FD8 .text:00043FC4 LDR R2, [R10] .text:00043FC8 STR R0, [R9,R2,LSL#2] .text:00043FCC LDR R3, [R10] .text:00043FD0 ADD R3, R3, #1 .text:00043FD4 .text:00043FD4 loc_43FD4 ; CODE XREF: __strtof_internal+1EC8j .text:00043FD4 STR R3, [R10] .text:00043FD8 .text:00043FD8 loc_43FD8 ; CODE XREF: __strtof_internal+1F64j .text:00043FD8 MOV R6, #0 .text:00043FDC MOV R0, R6 .text:00043FE0 .text:00043FE0 loc_43FE0 ; CODE XREF: __strtof_internal+1EB4j .text:00043FE0 MOV R2, R6,LSL#2 .text:00043FE4 LDRB R1, [R4] .text:00043FE8 ADD R12, R0, #1 .text:00043FEC SUB R3, R1, #0x30 .text:00043FF0 CMP R3, #9 .text:00043FF4 BLS loc_44064 .text:00043FF8 LDR LR, [R11,#var_A8] .text:00043FFC CMP LR, #0 .text:00044000 BEQ loc_4405C .text:00044004 LDRB R3, [LR] .text:00044008 CMP R1, R3 .text:0004400C BNE loc_4405C .text:00044010 MOV R0, #1 .text:00044014 LDRB R1, [LR,R0] .text:00044018 CMP R1, #0 .text:0004401C BEQ loc_4404C .text:00044020 LDRB R3, [R4,#1] .text:00044024 CMP R1, R3 .text:00044028 BNE loc_4404C .text:0004402C .text:0004402C loc_4402C ; CODE XREF: __strtof_internal+1FECj .text:0004402C LDR R3, [R11,#var_A8] .text:00044030 ADD R0, R0, #1 .text:00044034 LDRB R1, [R3,R0] .text:00044038 CMP R1, #0 .text:0004403C BEQ loc_4404C .text:00044040 LDRB R3, [R4,R0] .text:00044044 CMP R1, R3 .text:00044048 BEQ loc_4402C .text:0004404C .text:0004404C loc_4404C ; CODE XREF: __strtof_internal+1FC0j .text:0004404C ; __strtof_internal+1FCCj ... .text:0004404C LDR LR, [R11,#var_A8] .text:00044050 LDRB R3, [LR,R0] .text:00044054 CMP R3, #0 .text:00044058 BEQ loc_44060 .text:0004405C .text:0004405C loc_4405C ; CODE XREF: __strtof_internal+1FA4j .text:0004405C ; __strtof_internal+1FB0j .text:0004405C LDR R0, [R11,#var_A4] .text:00044060 .text:00044060 loc_44060 ; CODE XREF: __strtof_internal+1FFCj .text:00044060 ADD R4, R4, R0 .text:00044064 .text:00044064 loc_44064 ; CODE XREF: __strtof_internal+1F98j .text:00044064 MOV R0, R12 .text:00044068 SUBS R1, R7, #0 .text:0004406C LDRB R3, [R4],#1 .text:00044070 ADD R2, R2, R6 .text:00044074 ADD R3, R3, R2,LSL#1 .text:00044078 SUB R6, R3, #0x30 .text:0004407C BGT loc_43F08 .text:00044080 LDR R1, [R11,#var_CC] .text:00044084 LDR R2, [R1] .text:00044088 CMP R2, #0 .text:0004408C BLE loc_440B8 .text:00044090 ADD R3, R12, R2 .text:00044094 CMP R3, #9 .text:00044098 BGT loc_440B8 .text:0004409C LDR LR, =_tens_in_limb .text:000440A0 LDR R12, [LR,R3,LSL#2] .text:000440A4 LDR R2, [LR,R2,LSL#2] .text:000440A8 MOV R3, #0 .text:000440AC STR R3, [R1] .text:000440B0 MUL R6, R2, R6 .text:000440B4 B loc_440C0 .text:000440B8 ; --------------------------------------------------------------------------- .text:000440B8 .text:000440B8 loc_440B8 ; CODE XREF: __strtof_internal+2030j .text:000440B8 ; __strtof_internal+203Cj .text:000440B8 LDR R0, =_tens_in_limb .text:000440BC LDR R12, [R0,R12,LSL#2] .text:000440C0 .text:000440C0 loc_440C0 ; CODE XREF: __strtof_internal+2058j .text:000440C0 LDR R2, [R10] .text:000440C4 CMP R2, #0 .text:000440C8 STREQ R6, [R11,#var_48] .text:000440CC MOVEQ R3, #1 .text:000440D0 BEQ loc_44174 .text:000440D4 SUB R0, R11, #-var_48 .text:000440D8 MOV R1, R0 .text:000440DC MOV R3, R12 .text:000440E0 BL __mpn_mul_1 .text:000440E4 SUB LR, R11, #-var_44 .text:000440E8 LDR R1, [R11,#var_48] .text:000440EC MOV R4, LR .text:000440F0 LDR R12, [R10] .text:000440F4 ADD R3, R6, R1 .text:000440F8 CMP R3, R1 .text:000440FC STR R3, [R11,#var_48] .text:00044100 BCS loc_44130 .text:00044104 SUBS R12, R12, #1 .text:00044108 BEQ loc_44128 .text:0004410C .text:0004410C loc_4410C ; CODE XREF: __strtof_internal+20C8j .text:0004410C LDR R3, [LR],#4 .text:00044110 ADD R1, R3, #1 .text:00044114 CMP R1, #0 .text:00044118 STR R1, [R4],#4 .text:0004411C BNE loc_44130 .text:00044120 SUBS R12, R12, #1 .text:00044124 BNE loc_4410C .text:00044128 .text:00044128 loc_44128 ; CODE XREF: __strtof_internal+20ACj .text:00044128 MOV R3, #1 .text:0004412C B loc_44160 .text:00044130 ; --------------------------------------------------------------------------- .text:00044130 .text:00044130 loc_44130 ; CODE XREF: __strtof_internal+20A4j .text:00044130 ; __strtof_internal+20C0j .text:00044130 CMP R4, LR .text:00044134 BEQ loc_4415C .text:00044138 MOV R2, #0 .text:0004413C SUB R1, R12, #1 .text:00044140 CMP R2, R1 .text:00044144 BGE loc_4415C .text:00044148 .text:00044148 loc_44148 ; CODE XREF: __strtof_internal+20FCj .text:00044148 LDR R3, [LR,R2,LSL#2] .text:0004414C STR R3, [R4,R2,LSL#2] .text:00044150 ADD R2, R2, #1 .text:00044154 CMP R2, R1 .text:00044158 BLT loc_44148 .text:0004415C .text:0004415C loc_4415C ; CODE XREF: __strtof_internal+20D8j .text:0004415C ; __strtof_internal+20E8j .text:0004415C MOV R3, #0 .text:00044160 .text:00044160 loc_44160 ; CODE XREF: __strtof_internal+20D0j .text:00044160 ADDS R0, R0, R3 .text:00044164 BEQ loc_44178 .text:00044168 LDR R3, [R10] .text:0004416C STR R0, [R9,R3,LSL#2] .text:00044170 ADD R3, R3, #1 .text:00044174 .text:00044174 loc_44174 ; CODE XREF: __strtof_internal+2074j .text:00044174 STR R3, [R10] .text:00044178 .text:00044178 loc_44178 ; CODE XREF: __strtof_internal+2108j .text:00044178 LDR R3, [R11,#var_D8] .text:0004417C SUB R1, R11, #-var_68 .text:00044180 LDR R2, [R1,R3,LSL#2] .text:00044184 CMP R2, #0x10000 .text:00044188 BCS loc_441A8 .text:0004418C CMP R2, #0xFF .text:00044190 MOVHI R1, #8 .text:00044194 MOVLS R1, #0 .text:00044198 B loc_441B4 .text:00044198 ; --------------------------------------------------------------------------- .text:0004419C off_4419C DCD _fpioconst_pow10 ; DATA XREF: __strtof_internal+1D70r .text:000441A0 off_441A0 DCD __tens+8 ; DATA XREF: __strtof_internal+1DF8r .text:000441A0 ; __strtof_internal+1E18r .text:000441A4 off_441A4 DCD _tens_in_limb ; DATA XREF: __strtof_internal+2040r .text:000441A4 ; __strtof_internal:loc_440B8r .text:000441A8 ; --------------------------------------------------------------------------- .text:000441A8 .text:000441A8 loc_441A8 ; CODE XREF: __strtof_internal+212Cj .text:000441A8 CMP R2, #0x1000000 .text:000441AC MOVCS R1, #0x18 .text:000441B0 MOVCC R1, #0x10 .text:000441B4 .text:000441B4 loc_441B4 ; CODE XREF: __strtof_internal+213Cj .text:000441B4 LDR R6, =__clz_tab_1 .text:000441B8 MOV R2, R2,LSR R1 .text:000441BC LDRB R3, [R6,R2] .text:000441C0 ADD R3, R3, R1 .text:000441C4 RSB R4, R3, #0x20 .text:000441C8 CMP R4, #0 .text:000441CC BLE loc_4420C .text:000441D0 SUB R0, R11, #-var_68 .text:000441D4 MOV R1, R0 .text:000441D8 LDR R2, [R11,#var_8C] .text:000441DC MOV R3, R4 .text:000441E0 BL __mpn_lshift .text:000441E4 MOV R0, R9 .text:000441E8 MOV R1, R9 .text:000441EC LDR R2, [R11,#var_74] .text:000441F0 MOV R3, R4 .text:000441F4 BL __mpn_lshift .text:000441F8 CMP R0, #0 .text:000441FC LDRNE R3, [R11,#var_74] .text:00044200 STRNE R0, [R9,R3,LSL#2] .text:00044204 ADDNE R3, R3, #1 .text:00044208 STRNE R3, [R11,#var_74] .text:0004420C .text:0004420C loc_4420C ; CODE XREF: __strtof_internal+2170j .text:0004420C LDR R12, [R11,#var_8C] .text:00044210 LDR LR, [R11,#var_90] .text:00044214 CMP R12, #1 .text:00044218 STR LR, [R11,#var_78] .text:0004421C BEQ loc_4422C .text:00044220 CMP R12, #2 .text:00044224 BEQ loc_445A4 .text:00044228 B loc_44B40 .text:0004422C ; --------------------------------------------------------------------------- .text:0004422C .text:0004422C loc_4422C ; CODE XREF: __strtof_internal+21C0j .text:0004422C LDR R7, [R11,#var_68] .text:00044230 MOV R9, #0 .text:00044234 LDR R8, [R11,#var_48] .text:00044238 MOV R10, R7,LSR#16 .text:0004423C MOV R0, R7,LSL#16 .text:00044240 MOV R0, R0,LSR#16 .text:00044244 STR R0, [R11,#var_B8] .text:00044248 .text:00044248 loc_44248 ; CODE XREF: __strtof_internal+238Cj .text:00044248 MOV R0, R8 .text:0004424C MOV R1, R10 .text:00044250 BL __umodsi3 .text:00044254 MOV R4, R0 .text:00044258 MOV R0, R8 .text:0004425C MOV R1, R10 .text:00044260 BL __udivsi3 .text:00044264 LDR R3, [R11,#var_B8] .text:00044268 MOV R6, R0 .text:0004426C MUL R3, R6, R3 .text:00044270 MOV R4, R4,LSL#16 .text:00044274 CMP R4, R3 .text:00044278 BCS loc_44294 .text:0004427C SUB R6, R6, #1 .text:00044280 ADDS R4, R4, R7 .text:00044284 BCS loc_44294 .text:00044288 CMP R4, R3 .text:0004428C SUBCC R6, R6, #1 .text:00044290 ADDCC R4, R4, R7 .text:00044294 .text:00044294 loc_44294 ; CODE XREF: __strtof_internal+221Cj .text:00044294 ; __strtof_internal+2228j .text:00044294 RSB R4, R3, R4 .text:00044298 MOV R0, R4 .text:0004429C MOV R1, R10 .text:000442A0 BL __umodsi3 .text:000442A4 MOV R5, R0 .text:000442A8 MOV R0, R4 .text:000442AC MOV R1, R10 .text:000442B0 BL __udivsi3 .text:000442B4 LDR R3, [R11,#var_B8] .text:000442B8 MUL R3, R0, R3 .text:000442BC MOV R5, R5,LSL#16 .text:000442C0 CMP R5, R3 .text:000442C4 BCS loc_442E0 .text:000442C8 SUB R0, R0, #1 .text:000442CC ADDS R5, R5, R7 .text:000442D0 BCS loc_442E0 .text:000442D4 CMP R5, R3 .text:000442D8 SUBCC R0, R0, #1 .text:000442DC ADDCC R5, R5, R7 .text:000442E0 .text:000442E0 loc_442E0 ; CODE XREF: __strtof_internal+2268j .text:000442E0 ; __strtof_internal+2274j .text:000442E0 RSB R5, R3, R5 .text:000442E4 MOV R8, R5 .text:000442E8 ORR R4, R0, R6,LSL#16 .text:000442EC LDR R1, [R11,#var_90] .text:000442F0 CMP R1, #0 .text:000442F4 BNE loc_4437C .text:000442F8 CMP R4, #0 .text:000442FC MOVEQ R1, #0x20 .text:00044300 BEQ loc_4433C .text:00044304 CMP R4, #0x10000 .text:00044308 BCS loc_4431C .text:0004430C CMP R4, #0xFF .text:00044310 MOVHI R1, #8 .text:00044314 MOVLS R1, #0 .text:00044318 B loc_44328 .text:0004431C ; --------------------------------------------------------------------------- .text:0004431C .text:0004431C loc_4431C ; CODE XREF: __strtof_internal+22ACj .text:0004431C CMP R4, #0x1000000 .text:00044320 MOVCS R1, #0x18 .text:00044324 MOVCC R1, #0x10 .text:00044328 .text:00044328 loc_44328 ; CODE XREF: __strtof_internal+22BCj .text:00044328 LDR R6, =__clz_tab_1 .text:0004432C MOV R2, R4,LSR R1 .text:00044330 LDRB R3, [R6,R2] .text:00044334 ADD R3, R3, R1 .text:00044338 RSB R1, R3, #0x20 .text:0004433C .text:0004433C loc_4433C ; CODE XREF: __strtof_internal+22A4j .text:0004433C RSB R2, R1, #0x20 .text:00044340 LDR R3, [R11,#var_78] .text:00044344 CMP R2, #0x18 .text:00044348 RSB R3, R1, R3 .text:0004434C STR R3, [R11,#var_78] .text:00044350 BLE loc_4436C .text:00044354 ADD R9, R1, #0x18 .text:00044358 MOV R12, #0x19 .text:0004435C STR R12, [R11,#var_90] .text:00044360 RSB R3, R9, #0x20 .text:00044364 MOV R3, R4,LSR R3 .text:00044368 B loc_443D4 .text:0004436C ; --------------------------------------------------------------------------- .text:0004436C .text:0004436C loc_4436C ; CODE XREF: __strtof_internal+22F4j .text:0004436C RSB R1, R1, #0 .text:00044370 STR R1, [R11,#var_90] .text:00044374 STR R4, [R11,#var_70] .text:00044378 B loc_443D8 .text:0004437C ; --------------------------------------------------------------------------- .text:0004437C .text:0004437C loc_4437C ; CODE XREF: __strtof_internal+2298j .text:0004437C LDR LR, [R11,#var_90] .text:00044380 ADD R3, LR, #0x20 .text:00044384 CMP R3, #0x18 .text:00044388 LDRLE R0, [R11,#var_D0] .text:0004438C STRLE R4, [R0] .text:00044390 BLE loc_443D8 .text:00044394 LDR R1, [R11,#var_90] .text:00044398 RSB R9, R1, #0x18 .text:0004439C CMP R9, #0 .text:000443A0 BLE loc_443D8 .text:000443A4 CMP R9, #0x20 .text:000443A8 LDREQ R2, [R11,#var_D0] .text:000443AC STREQ R4, [R2] .text:000443B0 BEQ loc_443D8 .text:000443B4 MOV R2, #1 .text:000443B8 LDR R0, [R11,#var_D0] .text:000443BC MOV R3, R9 .text:000443C0 MOV R1, R0 .text:000443C4 BL __mpn_lshift .text:000443C8 LDR R3, [R11,#var_70] .text:000443CC RSB R2, R9, #0x20 .text:000443D0 ORR R3, R3, R4,LSR R2 .text:000443D4 .text:000443D4 loc_443D4 ; CODE XREF: __strtof_internal+230Cj .text:000443D4 STR R3, [R11,#var_70] .text:000443D8 .text:000443D8 loc_443D8 ; CODE XREF: __strtof_internal+231Cj .text:000443D8 ; __strtof_internal+2334j ... .text:000443D8 LDR R3, [R11,#var_90] .text:000443DC ADD R3, R3, #0x20 .text:000443E0 CMP R3, #0x18 .text:000443E4 STR R3, [R11,#var_90] .text:000443E8 BLE loc_44248 .text:000443EC MOV R7, R4 .text:000443F0 RSB R8, R9, #0x1F .text:000443F4 LDR R12, [R11,#var_B4] .text:000443F8 SUBS R3, R5, #0 .text:000443FC MOVNE R3, #1 .text:00044400 LDR R2, [R11,#var_78] .text:00044404 ORR R6, R12, R3 .text:00044408 SUB R4, R2, #1 .text:0004440C CMN R4, #0x7E .text:00044410 BGE loc_44574 .text:00044414 RSB R12, R4, #0xFC000002 .text:00044418 ADD R12, R12, #0x3FC0000 .text:0004441C ADD R12, R12, #0x3FC00 .text:00044420 ADD R12, R12, #0x380 .text:00044424 CMP R12, #0x18 .text:00044428 BGT loc_4513C .text:0004442C MOV R2, #1 .text:00044430 MOV R3, R2,LSL R8 .text:00044434 SUB R3, R3, #1 .text:00044438 TST R7, R3 .text:0004443C ORRNE R6, R6, #1 .text:00044440 CMP R12, #0x18 .text:00044444 BNE loc_4448C .text:00044448 MOV R8, #0x17 .text:0004444C SUB R2, R2, #1 .text:00044450 LDR R7, [R11,#var_70] .text:00044454 .text:00044454 loc_44454 ; CODE XREF: __strtof_internal+2410j .text:00044454 LDR LR, [R11,#var_D0] .text:00044458 LDR R3, [LR,R2,LSL#2] .text:0004445C ADD R2, R2, #1 .text:00044460 CMP R3, #0 .text:00044464 ORRNE R6, R6, #1 .text:00044468 CMP R2, #0 .text:0004446C BLE loc_44454 .text:00044470 MOV R1, #0 .text:00044474 MOV R3, LR .text:00044478 MOV R2, R3 .text:0004447C .text:0004447C loc_4447C ; CODE XREF: __strtof_internal+2428j .text:0004447C STR R1, [R3],#-4 .text:00044480 CMP R3, R2 .text:00044484 BGE loc_4447C .text:00044488 B loc_44570 .text:0004448C ; --------------------------------------------------------------------------- .text:0004448C .text:0004448C loc_4448C ; CODE XREF: __strtof_internal+23E8j .text:0004448C CMP R12, #0x1F .text:00044490 BLE loc_44550 .text:00044494 SUB R3, R12, #1 .text:00044498 CMP R3, #0 .text:0004449C ADDLT R2, R3, #0x1F .text:000444A0 MOVGE R2, R3 .text:000444A4 MOV R2, R2,ASR#5 .text:000444A8 SUB R8, R3, R2,LSL#5 .text:000444AC MOV R1, #0 .text:000444B0 CMP R1, R2 .text:000444B4 LDR R0, [R11,#var_D0] .text:000444B8 MOV LR, R12,ASR#31 .text:000444BC LDR R7, [R0,R2,LSL#2] .text:000444C0 BGE loc_444E0 .text:000444C4 .text:000444C4 loc_444C4 ; CODE XREF: __strtof_internal+2480j .text:000444C4 LDR R0, [R11,#var_D0] .text:000444C8 LDR R3, [R0,R1,LSL#2] .text:000444CC ADD R1, R1, #1 .text:000444D0 CMP R3, #0 .text:000444D4 ORRNE R6, R6, #1 .text:000444D8 CMP R1, R2 .text:000444DC BLT loc_444C4 .text:000444E0 .text:000444E0 loc_444E0 ; CODE XREF: __strtof_internal+2464j .text:000444E0 MOV R3, #1 .text:000444E4 MOV R3, R3,LSL R8 .text:000444E8 SUB R3, R3, #1 .text:000444EC TST R7, R3 .text:000444F0 ORRNE R6, R6, #1 .text:000444F4 MOV R3, LR,LSR#27 .text:000444F8 ADD R3, R12, R3 .text:000444FC MOV R4, R3,ASR#5 .text:00044500 RSB R5, R4, #1 .text:00044504 MOV R2, R5 .text:00044508 LDR R0, [R11,#var_D0] .text:0004450C SUB R3, R12, R4,LSL#5 .text:00044510 ADD R1, R0, R4,LSL#2 .text:00044514 BL __mpn_rshift .text:00044518 MOV R1, #0 .text:0004451C CMP R1, R4 .text:00044520 BGE loc_44570 .text:00044524 MOV R0, R4 .text:00044528 LDR R3, [R11,#var_D0] .text:0004452C MOV R12, R1 .text:00044530 ADD R2, R3, R5,LSL#2 .text:00044534 .text:00044534 loc_44534 ; CODE XREF: __strtof_internal+24E8j .text:00044534 MOV R3, R1,LSL#2 .text:00044538 ADD R1, R1, #1 .text:0004453C CMP R1, R0 .text:00044540 STR R12, [R3,R2] .text:00044544 BLT loc_44534 .text:00044548 B loc_44570 .text:00044548 ; --------------------------------------------------------------------------- .text:0004454C off_4454C DCD __clz_tab_1 ; DATA XREF: __strtof_internal:loc_441B4r .text:0004454C ; __strtof_internal:loc_44328r .text:00044550 ; --------------------------------------------------------------------------- .text:00044550 .text:00044550 loc_44550 ; CODE XREF: __strtof_internal+2434j .text:00044550 CMP R12, #0 .text:00044554 BLE loc_44570 .text:00044558 SUB R8, R12, #1 .text:0004455C LDR R0, [R11,#var_D0] .text:00044560 MOV R3, R12 .text:00044564 LDR R7, [R11,#var_70] .text:00044568 MOV R1, R0 .text:0004456C BL __mpn_rshift .text:00044570 .text:00044570 loc_44570 ; CODE XREF: __strtof_internal+242Cj .text:00044570 ; __strtof_internal+24C4j ... .text:00044570 MOV R4, 0xFFFFFF81 .text:00044574 .text:00044574 loc_44574 ; CODE XREF: __strtof_internal+23B4j .text:00044574 MOV R3, R7,LSR R8 .text:00044578 TST R3, #1 .text:0004457C BEQ loc_45328 .text:00044580 CMP R6, #0 .text:00044584 LDR R6, [R11,#var_D0] .text:00044588 LDR R2, [R6] .text:0004458C BNE loc_4302C .text:00044590 TST R2, #1 .text:00044594 BNE loc_4302C .text:00044598 MOV R3, #1 .text:0004459C MOV R3, R3,LSL R8 .text:000445A0 B loc_43020 .text:000445A4 ; --------------------------------------------------------------------------- .text:000445A4 .text:000445A4 loc_445A4 ; CODE XREF: __strtof_internal+21C8j .text:000445A4 MOV R4, #0 .text:000445A8 STR R4, [R11,#var_BC] .text:000445AC LDR R3, [R11,#var_74] .text:000445B0 LDR R12, [R11,#var_68] .text:000445B4 LDR R2, [R11,#var_8C] .text:000445B8 LDR R9, [R11,#var_64] .text:000445BC CMP R3, R2 .text:000445C0 BGE loc_44658 .text:000445C4 LDR R3, [R11,#var_48] .text:000445C8 CMP R3, R9 .text:000445CC MOVCS R5, R4 .text:000445D0 MOVCS R8, R3 .text:000445D4 BCS loc_44660 .text:000445D8 LDR R3, [R11,#var_90] .text:000445DC CMP R3, #0 .text:000445E0 SUBLE R3, R3, #0x20 .text:000445E4 STRLE R3, [R11,#var_78] .text:000445E8 BLE loc_4464C .text:000445EC LDR R6, [R11,#var_90] .text:000445F0 ADD R3, R6, #0x20 .text:000445F4 CMP R3, #0x18 .text:000445F8 MOV R5, R3 .text:000445FC LDRLE LR, [R11,#var_D0] .text:00044600 STRLE R4, [LR] .text:00044604 BLE loc_44648 .text:00044608 LDR R0, [R11,#var_90] .text:0004460C RSB R0, R0, #0x18 .text:00044610 CMP R0, #0 .text:00044614 STR R0, [R11,#var_BC] .text:00044618 BLE loc_44648 .text:0004461C CMP R0, #0x20 .text:00044620 LDREQ R1, [R11,#var_D0] .text:00044624 STREQ R4, [R1] .text:00044628 BEQ loc_44648 .text:0004462C STR R12, [R11,#var_E8] .text:00044630 LDR R0, [R11,#var_D0] .text:00044634 MOV R2, #1 .text:00044638 LDR R3, [R11,#var_BC] .text:0004463C MOV R1, R0 .text:00044640 BL __mpn_lshift .text:00044644 LDR R12, [R11,#var_E8] .text:00044648 .text:00044648 loc_44648 ; CODE XREF: __strtof_internal+25A8j .text:00044648 ; __strtof_internal+25BCj ... .text:00044648 STR R5, [R11,#var_90] .text:0004464C .text:0004464C loc_4464C ; CODE XREF: __strtof_internal+258Cj .text:0004464C MOV R8, #0 .text:00044650 LDR R5, [R11,#var_48] .text:00044654 B loc_44660 .text:00044658 ; --------------------------------------------------------------------------- .text:00044658 .text:00044658 loc_44658 ; CODE XREF: __strtof_internal+2564j .text:00044658 LDR R5, [R11,#var_44] .text:0004465C LDR R8, [R11,#var_48] .text:00044660 .text:00044660 loc_44660 ; CODE XREF: __strtof_internal+2578j .text:00044660 ; __strtof_internal+25F8j .text:00044660 LDR R2, [R11,#var_90] .text:00044664 CMP R2, #0x18 .text:00044668 BGT loc_448EC .text:0004466C .text:0004466C loc_4466C ; CODE XREF: __strtof_internal+288Cj .text:0004466C CMP R5, R9 .text:00044670 BNE loc_446A4 .text:00044674 MOV R4, 0xFFFFFFFF .text:00044678 ADDS R0, R8, R5 .text:0004467C BCC loc_44690 .text:00044680 RSB R3, R12, R0 .text:00044684 MOVS R8, R12 .text:00044688 ADC R5, R3, #0 .text:0004468C B loc_447D8 .text:00044690 ; --------------------------------------------------------------------------- .text:00044690 .text:00044690 loc_44690 ; CODE XREF: __strtof_internal+2620j .text:00044690 CMP R12, #0 .text:00044694 MOVEQ R5, R12 .text:00044698 SUBNE R5, R12, #1 .text:0004469C RSB R8, R12, #0 .text:000446A0 B loc_44794 .text:000446A4 ; --------------------------------------------------------------------------- .text:000446A4 .text:000446A4 loc_446A4 ; CODE XREF: __strtof_internal+2614j .text:000446A4 MOV R10, R9,LSL#16 .text:000446A8 STR R12, [R11,#var_E8] .text:000446AC MOV R10, R10,LSR#16 .text:000446B0 MOV R0, R5 .text:000446B4 MOV R7, R9,LSR#16 .text:000446B8 MOV R1, R7 .text:000446BC BL __umodsi3 .text:000446C0 MOV R4, R0 .text:000446C4 MOV R0, R5 .text:000446C8 MOV R1, R7 .text:000446CC BL __udivsi3 .text:000446D0 MOV R6, R0 .text:000446D4 MUL R2, R10, R6 .text:000446D8 MOV R3, R8,LSR#16 .text:000446DC ORR R4, R3, R4,LSL#16 .text:000446E0 LDR R12, [R11,#var_E8] .text:000446E4 CMP R4, R2 .text:000446E8 BCS loc_44704 .text:000446EC SUB R6, R6, #1 .text:000446F0 ADDS R4, R4, R9 .text:000446F4 BCS loc_44704 .text:000446F8 CMP R4, R2 .text:000446FC SUBCC R6, R6, #1 .text:00044700 ADDCC R4, R4, R9 .text:00044704 .text:00044704 loc_44704 ; CODE XREF: __strtof_internal+268Cj .text:00044704 ; __strtof_internal+2698j .text:00044704 STR R12, [R11,#var_E8] .text:00044708 RSB R4, R2, R4 .text:0004470C MOV R0, R4 .text:00044710 MOV R1, R7 .text:00044714 BL __umodsi3 .text:00044718 MOV R5, R0 .text:0004471C MOV R0, R4 .text:00044720 MOV R1, R7 .text:00044724 BL __udivsi3 .text:00044728 MUL R2, R10, R0 .text:0004472C MOV R3, R8,LSL#16 .text:00044730 MOV R3, R3,LSR#16 .text:00044734 ORR R5, R3, R5,LSL#16 .text:00044738 LDR R12, [R11,#var_E8] .text:0004473C CMP R5, R2 .text:00044740 BCS loc_4475C .text:00044744 SUB R0, R0, #1 .text:00044748 ADDS R5, R5, R9 .text:0004474C BCS loc_4475C .text:00044750 CMP R5, R2 .text:00044754 SUBCC R0, R0, #1 .text:00044758 ADDCC R5, R5, R9 .text:0004475C .text:0004475C loc_4475C ; CODE XREF: __strtof_internal+26E4j .text:0004475C ; __strtof_internal+26F0j .text:0004475C ORR R4, R0, R6,LSL#16 .text:00044760 RSB R0, R2, R5 .text:00044764 MOV R1, R12,LSR#16 .text:00044768 MOV R5, R4,LSR#16 .text:0004476C BIC R2, R12, R1,LSL#16 .text:00044770 BIC R3, R4, R5,LSL#16 .text:00044774 MUL R8, R2, R3 .text:00044778 MUL R3, R1, R3 .text:0004477C MUL R2, R5, R2 .text:00044780 MUL R5, R1, R5 .text:00044784 ADDS R2, R3, R2 .text:00044788 ADDCS R5, R5, #0x10000 .text:0004478C ADDS R8, R8, R2,LSL#16 .text:00044790 ADC R5, R5, R2,LSR#16 .text:00044794 .text:00044794 loc_44794 ; CODE XREF: __strtof_internal+2644j .text:00044794 ; __strtof_internal+2768j .text:00044794 CMP R5, R0 .text:00044798 BHI loc_447B0 .text:0004479C MOVNE R3, #0 .text:000447A0 MOVEQ R3, #1 .text:000447A4 CMP R3, #0 .text:000447A8 CMPNE R8, #0 .text:000447AC BEQ loc_447C8 .text:000447B0 .text:000447B0 loc_447B0 ; CODE XREF: __strtof_internal+273Cj .text:000447B0 SUB R4, R4, #1 .text:000447B4 SUBS R3, R8, R12 .text:000447B8 SBC R5, R5, #0 .text:000447BC MOV R8, R3 .text:000447C0 ADDS R0, R0, R9 .text:000447C4 BCC loc_44794 .text:000447C8 .text:000447C8 loc_447C8 ; CODE XREF: __strtof_internal+2750j .text:000447C8 MOV LR, #0 .text:000447CC SUBS R6, LR, R8 .text:000447D0 SBC R5, R0, R5 .text:000447D4 MOV R8, R6 .text:000447D8 .text:000447D8 loc_447D8 ; CODE XREF: __strtof_internal+2630j .text:000447D8 LDR R0, [R11,#var_90] .text:000447DC CMP R0, #0 .text:000447E0 BNE loc_4486C .text:000447E4 CMP R4, #0 .text:000447E8 MOVEQ R1, #0x20 .text:000447EC BEQ loc_44828 .text:000447F0 CMP R4, #0x10000 .text:000447F4 BCS loc_44808 .text:000447F8 CMP R4, #0xFF .text:000447FC MOVHI R1, #8 .text:00044800 MOVLS R1, #0 .text:00044804 B loc_44814 .text:00044808 ; --------------------------------------------------------------------------- .text:00044808 .text:00044808 loc_44808 ; CODE XREF: __strtof_internal+2798j .text:00044808 CMP R4, #0x1000000 .text:0004480C MOVCS R1, #0x18 .text:00044810 MOVCC R1, #0x10 .text:00044814 .text:00044814 loc_44814 ; CODE XREF: __strtof_internal+27A8j .text:00044814 LDR R6, =__clz_tab_1 .text:00044818 MOV R2, R4,LSR R1 .text:0004481C LDRB R3, [R6,R2] .text:00044820 ADD R3, R3, R1 .text:00044824 RSB R1, R3, #0x20 .text:00044828 .text:00044828 loc_44828 ; CODE XREF: __strtof_internal+2790j .text:00044828 RSB R2, R1, #0x20 .text:0004482C LDR R3, [R11,#var_78] .text:00044830 CMP R2, #0x18 .text:00044834 RSB R3, R1, R3 .text:00044838 STR R3, [R11,#var_78] .text:0004483C BLE loc_4485C .text:00044840 ADD R1, R1, #0x18 .text:00044844 STR R1, [R11,#var_BC] .text:00044848 MOV LR, #0x19 .text:0004484C STR LR, [R11,#var_90] .text:00044850 RSB R3, R1, #0x20 .text:00044854 MOV R3, R4,LSR R3 .text:00044858 B loc_448D4 .text:0004485C ; --------------------------------------------------------------------------- .text:0004485C .text:0004485C loc_4485C ; CODE XREF: __strtof_internal+27E0j .text:0004485C RSB R1, R1, #0 .text:00044860 STR R1, [R11,#var_90] .text:00044864 STR R4, [R11,#var_70] .text:00044868 B loc_448D8 .text:0004486C ; --------------------------------------------------------------------------- .text:0004486C .text:0004486C loc_4486C ; CODE XREF: __strtof_internal+2784j .text:0004486C LDR R0, [R11,#var_90] .text:00044870 ADD R3, R0, #0x20 .text:00044874 CMP R3, #0x18 .text:00044878 LDRLE R1, [R11,#var_D0] .text:0004487C STRLE R4, [R1] .text:00044880 BLE loc_448D8 .text:00044884 LDR R2, [R11,#var_90] .text:00044888 RSB R2, R2, #0x18 .text:0004488C CMP R2, #0 .text:00044890 STR R2, [R11,#var_BC] .text:00044894 BLE loc_448D8 .text:00044898 CMP R2, #0x20 .text:0004489C LDREQ R3, [R11,#var_D0] .text:000448A0 STREQ R4, [R3] .text:000448A4 BEQ loc_448D8 .text:000448A8 STR R12, [R11,#var_E8] .text:000448AC LDR R0, [R11,#var_D0] .text:000448B0 MOV R2, #1 .text:000448B4 LDR R3, [R11,#var_BC] .text:000448B8 MOV R1, R0 .text:000448BC BL __mpn_lshift .text:000448C0 LDR R3, [R11,#var_70] .text:000448C4 LDR R6, [R11,#var_BC] .text:000448C8 LDR R12, [R11,#var_E8] .text:000448CC RSB R2, R6, #0x20 .text:000448D0 ORR R3, R3, R4,LSR R2 .text:000448D4 .text:000448D4 loc_448D4 ; CODE XREF: __strtof_internal+27FCj .text:000448D4 STR R3, [R11,#var_70] .text:000448D8 .text:000448D8 loc_448D8 ; CODE XREF: __strtof_internal+280Cj .text:000448D8 ; __strtof_internal+2824j ... .text:000448D8 LDR LR, [R11,#var_90] .text:000448DC ADD LR, LR, #0x20 .text:000448E0 CMP LR, #0x18 .text:000448E4 STR LR, [R11,#var_90] .text:000448E8 BLE loc_4466C .text:000448EC .text:000448EC loc_448EC ; CODE XREF: __strtof_internal+260Cj .text:000448EC LDR R3, [R11,#var_78] .text:000448F0 LDR R0, [R11,#var_B4] .text:000448F4 MOV R2, #0 .text:000448F8 LDR R6, [R11,#var_BC] .text:000448FC CMP R5, R2 .text:00044900 CMPEQ R0, R2 .text:00044904 SUB R1, R3, #1 .text:00044908 RSB R3, R6, #0x1F .text:0004490C BNE loc_44918 .text:00044910 CMP R8, R2 .text:00044914 BEQ loc_4491C .text:00044918 .text:00044918 loc_44918 ; CODE XREF: __strtof_internal+28B0j .text:00044918 MOV R2, #1 .text:0004491C .text:0004491C loc_4491C ; CODE XREF: __strtof_internal+28B8j .text:0004491C MOV R5, R1 .text:00044920 MOV R7, R4 .text:00044924 MOV R8, R3 .text:00044928 MOV R6, R2 .text:0004492C CMN R5, #0x7E .text:00044930 BGE loc_44A90 .text:00044934 RSB R12, R5, #0xFC000002 .text:00044938 ADD R12, R12, #0x3FC0000 .text:0004493C ADD R12, R12, #0x3FC00 .text:00044940 ADD R12, R12, #0x380 .text:00044944 CMP R12, #0x18 .text:00044948 BGT loc_4513C .text:0004494C MOV R2, #1 .text:00044950 MOV R3, R2,LSL R8 .text:00044954 SUB R3, R3, #1 .text:00044958 TST R7, R3 .text:0004495C ORRNE R6, R6, #1 .text:00044960 CMP R12, #0x18 .text:00044964 BNE loc_449AC .text:00044968 MOV R8, #0x17 .text:0004496C SUB R2, R2, #1 .text:00044970 LDR R7, [R11,#var_70] .text:00044974 .text:00044974 loc_44974 ; CODE XREF: __strtof_internal+2930j .text:00044974 LDR R12, [R11,#var_D0] .text:00044978 LDR R3, [R12,R2,LSL#2] .text:0004497C ADD R2, R2, #1 .text:00044980 CMP R3, #0 .text:00044984 ORRNE R6, R6, #1 .text:00044988 CMP R2, #0 .text:0004498C BLE loc_44974 .text:00044990 MOV R1, #0 .text:00044994 MOV R3, R12 .text:00044998 MOV R2, R3 .text:0004499C .text:0004499C loc_4499C ; CODE XREF: __strtof_internal+2948j .text:0004499C STR R1, [R3],#-4 .text:000449A0 CMP R3, R2 .text:000449A4 BGE loc_4499C .text:000449A8 B loc_44A8C .text:000449AC ; --------------------------------------------------------------------------- .text:000449AC .text:000449AC loc_449AC ; CODE XREF: __strtof_internal+2908j .text:000449AC CMP R12, #0x1F .text:000449B0 BLE loc_44A6C .text:000449B4 SUB R3, R12, #1 .text:000449B8 CMP R3, #0 .text:000449BC ADDLT R2, R3, #0x1F .text:000449C0 MOVGE R2, R3 .text:000449C4 MOV R2, R2,ASR#5 .text:000449C8 SUB R8, R3, R2,LSL#5 .text:000449CC MOV R1, #0 .text:000449D0 LDR LR, [R11,#var_D0] .text:000449D4 CMP R1, R2 .text:000449D8 LDR R7, [LR,R2,LSL#2] .text:000449DC MOV LR, R12,ASR#31 .text:000449E0 BGE loc_44A00 .text:000449E4 .text:000449E4 loc_449E4 ; CODE XREF: __strtof_internal+29A0j .text:000449E4 LDR R0, [R11,#var_D0] .text:000449E8 LDR R3, [R0,R1,LSL#2] .text:000449EC ADD R1, R1, #1 .text:000449F0 CMP R3, #0 .text:000449F4 ORRNE R6, R6, #1 .text:000449F8 CMP R1, R2 .text:000449FC BLT loc_449E4 .text:00044A00 .text:00044A00 loc_44A00 ; CODE XREF: __strtof_internal+2984j .text:00044A00 MOV R3, #1 .text:00044A04 MOV R3, R3,LSL R8 .text:00044A08 SUB R3, R3, #1 .text:00044A0C TST R7, R3 .text:00044A10 ORRNE R6, R6, #1 .text:00044A14 MOV R3, LR,LSR#27 .text:00044A18 ADD R3, R12, R3 .text:00044A1C MOV R4, R3,ASR#5 .text:00044A20 RSB R5, R4, #1 .text:00044A24 MOV R2, R5 .text:00044A28 LDR R0, [R11,#var_D0] .text:00044A2C SUB R3, R12, R4,LSL#5 .text:00044A30 ADD R1, R0, R4,LSL#2 .text:00044A34 BL __mpn_rshift .text:00044A38 MOV R1, #0 .text:00044A3C CMP R1, R4 .text:00044A40 BGE loc_44A8C .text:00044A44 MOV R0, R4 .text:00044A48 LDR R3, [R11,#var_D0] .text:00044A4C MOV R12, R1 .text:00044A50 ADD R2, R3, R5,LSL#2 .text:00044A54 .text:00044A54 loc_44A54 ; CODE XREF: __strtof_internal+2A08j .text:00044A54 MOV R3, R1,LSL#2 .text:00044A58 ADD R1, R1, #1 .text:00044A5C CMP R1, R0 .text:00044A60 STR R12, [R3,R2] .text:00044A64 BLT loc_44A54 .text:00044A68 B loc_44A8C .text:00044A6C ; --------------------------------------------------------------------------- .text:00044A6C .text:00044A6C loc_44A6C ; CODE XREF: __strtof_internal+2954j .text:00044A6C CMP R12, #0 .text:00044A70 BLE loc_44A8C .text:00044A74 SUB R8, R12, #1 .text:00044A78 LDR R0, [R11,#var_D0] .text:00044A7C MOV R3, R12 .text:00044A80 LDR R7, [R11,#var_70] .text:00044A84 MOV R1, R0 .text:00044A88 BL __mpn_rshift .text:00044A8C .text:00044A8C loc_44A8C ; CODE XREF: __strtof_internal+294Cj .text:00044A8C ; __strtof_internal+29E4j ... .text:00044A8C MOV R5, 0xFFFFFF81 .text:00044A90 .text:00044A90 loc_44A90 ; CODE XREF: __strtof_internal+28D4j .text:00044A90 MOV R3, R7,LSR R8 .text:00044A94 TST R3, #1 .text:00044A98 BEQ loc_44B24 .text:00044A9C CMP R6, #0 .text:00044AA0 LDR R6, [R11,#var_D0] .text:00044AA4 LDR R2, [R6] .text:00044AA8 BNE loc_44AC8 .text:00044AAC TST R2, #1 .text:00044AB0 BNE loc_44AC8 .text:00044AB4 MOV R3, #1 .text:00044AB8 MOV R3, R3,LSL R8 .text:00044ABC SUB R3, R3, #1 .text:00044AC0 TST R7, R3 .text:00044AC4 BEQ loc_44B24 .text:00044AC8 .text:00044AC8 loc_44AC8 ; CODE XREF: __strtof_internal+2A4Cj .text:00044AC8 ; __strtof_internal+2A54j .text:00044AC8 ADD R3, R2, #1 .text:00044ACC LDR R12, [R11,#var_D0] .text:00044AD0 CMP R3, R2 .text:00044AD4 STR R3, [R12] .text:00044AD8 LDR LR, [R11,#var_D0] .text:00044ADC LDR R3, [LR] .text:00044AE0 TST R3, #0x1000000 .text:00044AE4 BEQ loc_44B14 .text:00044AE8 MOV R0, LR .text:00044AEC MOV R1, R0 .text:00044AF0 MOV R2, #1 .text:00044AF4 MOV R3, R2 .text:00044AF8 BL __mpn_rshift .text:00044AFC LDR R0, [R11,#var_D0] .text:00044B00 LDR R3, [R0] .text:00044B04 ADD R5, R5, #1 .text:00044B08 ORR R3, R3, #0x800000 .text:00044B0C STR R3, [R0] .text:00044B10 B loc_44B24 .text:00044B14 ; --------------------------------------------------------------------------- .text:00044B14 .text:00044B14 loc_44B14 ; CODE XREF: __strtof_internal+2A88j .text:00044B14 CMN R5, #0x7F .text:00044B18 BNE loc_44B24 .text:00044B1C TST R3, #0x800000 .text:00044B20 MOVNE R5, 0xFFFFFF82 .text:00044B24 .text:00044B24 loc_44B24 ; CODE XREF: __strtof_internal+2A3Cj .text:00044B24 ; __strtof_internal+2A68j ... .text:00044B24 CMP R5, #0x80 .text:00044B28 BGT loc_45330 .text:00044B2C LDR R0, [R11,#var_D0] .text:00044B30 LDR R2, [R11,#var_84] .text:00044B34 MOV R1, R5 .text:00044B38 B loc_45364 .text:00044B38 ; --------------------------------------------------------------------------- .text:00044B3C off_44B3C DCD __clz_tab_1 ; DATA XREF: __strtof_internal:loc_44814r .text:00044B40 ; --------------------------------------------------------------------------- .text:00044B40 .text:00044B40 loc_44B40 ; CODE XREF: __strtof_internal+21CCj .text:00044B40 MOV R6, #0 .text:00044B44 STR R6, [R11,#var_C4] .text:00044B48 LDR R2, [R11,#var_74] .text:00044B4C LDR R3, [R11,#var_8C] .text:00044B50 RSB R1, R2, R3 .text:00044B54 ADD R12, R11, R1,LSL#2 .text:00044B58 SUB R12, R12, #0x68 .text:00044B5C LDR R3, [R11,#var_D8] .text:00044B60 MOV R1, R12 .text:00044B64 LDR R12, [R11,#var_8C] .text:00044B68 SUB LR, R11, #-var_68 .text:00044B6C LDR R10, [LR,R3,LSL#2] .text:00044B70 SUB R4, R12, #2 .text:00044B74 LDR LR, [LR,R4,LSL#2] .text:00044B78 STR LR, [R11,#var_C0] .text:00044B7C MOV R0, R9 .text:00044B80 BL __mpn_cmp .text:00044B84 CMP R0, R6 .text:00044B88 STR R4, [R11,#var_D4] .text:00044B8C BLE loc_44BA4 .text:00044B90 LDR R3, [R11,#var_74] .text:00044B94 MOV R2, R3,LSL#2 .text:00044B98 STR R6, [R9,R2] .text:00044B9C ADD R3, R3, #1 .text:00044BA0 STR R3, [R11,#var_74] .text:00044BA4 .text:00044BA4 loc_44BA4 ; CODE XREF: __strtof_internal+2B30j .text:00044BA4 LDR R2, [R11,#var_74] .text:00044BA8 LDR R0, [R11,#var_8C] .text:00044BAC CMP R2, R0 .text:00044BB0 BGE loc_44D94 .text:00044BB4 LDR R1, [R11,#var_90] .text:00044BB8 RSB LR, R2, R0 .text:00044BBC CMP R1, #0 .text:00044BC0 BGT loc_44C48 .text:00044BC4 SUBS R0, R2, #0 .text:00044BC8 ADD R12, LR, #1 .text:00044BCC LDR R3, [R11,#var_8C] .text:00044BD0 MOV R5, LR,LSL#5 .text:00044BD4 MOV R3, R3,LSL#2 .text:00044BD8 STR R3, [R11,#var_E0] .text:00044BDC BLE loc_44C10 .text:00044BE0 MOV R4, R9 .text:00044BE4 MOV R3, R2,LSL#2 .text:00044BE8 SUB R1, R3, #4 .text:00044BEC ADD R2, R2, LR .text:00044BF0 MOV R2, R2,LSL#2 .text:00044BF4 .text:00044BF4 loc_44BF4 ; CODE XREF: __strtof_internal+2BB0j .text:00044BF4 LDR R3, [R4,R1] .text:00044BF8 SUB R1, R1, #4 .text:00044BFC SUB R0, R0, #1 .text:00044C00 CMP R0, #0 .text:00044C04 STR R3, [R4,R2] .text:00044C08 SUB R2, R2, #4 .text:00044C0C BGT loc_44BF4 .text:00044C10 .text:00044C10 loc_44C10 ; CODE XREF: __strtof_internal+2B80j .text:00044C10 MOV R2, #0 .text:00044C14 CMP R2, R12 .text:00044C18 BGE loc_44C38 .text:00044C1C MOV R1, R9 .text:00044C20 MOV R0, R2 .text:00044C24 .text:00044C24 loc_44C24 ; CODE XREF: __strtof_internal+2BD8j .text:00044C24 MOV R3, R2,LSL#2 .text:00044C28 ADD R2, R2, #1 .text:00044C2C CMP R2, R12 .text:00044C30 STR R0, [R1,R3] .text:00044C34 BLT loc_44C24 .text:00044C38 .text:00044C38 loc_44C38 ; CODE XREF: __strtof_internal+2BBCj .text:00044C38 LDR R3, [R11,#var_78] .text:00044C3C RSB R3, R5, R3 .text:00044C40 STR R3, [R11,#var_78] .text:00044C44 B loc_44DCC .text:00044C48 ; --------------------------------------------------------------------------- .text:00044C48 .text:00044C48 loc_44C48 ; CODE XREF: __strtof_internal+2B64j .text:00044C48 MOV R2, LR,LSL#5 .text:00044C4C LDR R12, [R11,#var_90] .text:00044C50 MOV R5, R2 .text:00044C54 ADD R3, R12, R2 .text:00044C58 CMP R3, #0x18 .text:00044C5C BGT loc_44CE0 .text:00044C60 LDR R0, [R11,#var_D0] .text:00044C64 STR R6, [R0] .text:00044C68 LDR R1, [R11,#var_8C] .text:00044C6C MOV R1, R1,LSL#2 .text:00044C70 STR R1, [R11,#var_E0] .text:00044C74 LDR R1, [R11,#var_74] .text:00044C78 ADD R12, LR, #1 .text:00044C7C CMP R1, #0 .text:00044C80 BLE loc_44CB4 .text:00044C84 MOV R4, R9 .text:00044C88 MOV R3, R1,LSL#2 .text:00044C8C SUB R0, R3, #4 .text:00044C90 ADD R2, R1, LR .text:00044C94 MOV R2, R2,LSL#2 .text:00044C98 .text:00044C98 loc_44C98 ; CODE XREF: __strtof_internal+2C54j .text:00044C98 LDR R3, [R4,R0] .text:00044C9C SUB R0, R0, #4 .text:00044CA0 SUB R1, R1, #1 .text:00044CA4 CMP R1, #0 .text:00044CA8 STR R3, [R4,R2] .text:00044CAC SUB R2, R2, #4 .text:00044CB0 BGT loc_44C98 .text:00044CB4 .text:00044CB4 loc_44CB4 ; CODE XREF: __strtof_internal+2C24j .text:00044CB4 MOV R2, #0 .text:00044CB8 CMP R2, R12 .text:00044CBC BGE loc_44D84 .text:00044CC0 MOV R1, R9 .text:00044CC4 MOV R0, R2 .text:00044CC8 .text:00044CC8 loc_44CC8 ; CODE XREF: __strtof_internal+2C7Cj .text:00044CC8 MOV R3, R2,LSL#2 .text:00044CCC ADD R2, R2, #1 .text:00044CD0 CMP R2, R12 .text:00044CD4 STR R0, [R1,R3] .text:00044CD8 BLT loc_44CC8 .text:00044CDC B loc_44D84 .text:00044CE0 ; --------------------------------------------------------------------------- .text:00044CE0 .text:00044CE0 loc_44CE0 ; CODE XREF: __strtof_internal+2C00j .text:00044CE0 LDR R2, [R11,#var_90] .text:00044CE4 RSB R2, R2, #0x18 .text:00044CE8 CMP R2, #0x1F .text:00044CEC STR R2, [R11,#var_C4] .text:00044CF0 BLE loc_44D48 .text:00044CF4 SUBS R4, R2, #0 .text:00044CF8 ADDLT R4, R2, #0x1F .text:00044CFC MOV R4, R4,ASR#5 .text:00044D00 LDR R3, [R11,#var_D0] .text:00044D04 MOV R2, #1 .text:00044D08 LDR R12, [R11,#var_C4] .text:00044D0C ADD R0, R3, R4,LSL#2 .text:00044D10 MOV R1, R3 .text:00044D14 SUB R3, R12, R4,LSL#5 .text:00044D18 BL __mpn_lshift .text:00044D1C LDR LR, [R11,#var_8C] .text:00044D20 CMP R4, #0 .text:00044D24 MOV LR, LR,LSL#2 .text:00044D28 STR LR, [R11,#var_E0] .text:00044D2C BLT loc_44D84 .text:00044D30 MOV R3, R6 .text:00044D34 LDR R2, [R11,#var_D0] .text:00044D38 .text:00044D38 loc_44D38 ; CODE XREF: __strtof_internal+2CE4j .text:00044D38 STR R3, [R2,R4,LSL#2] .text:00044D3C SUBS R4, R4, #1 .text:00044D40 BPL loc_44D38 .text:00044D44 B loc_44D84 .text:00044D48 ; --------------------------------------------------------------------------- .text:00044D48 .text:00044D48 loc_44D48 ; CODE XREF: __strtof_internal+2C94j .text:00044D48 LDR R0, [R11,#var_C4] .text:00044D4C LDR R1, [R11,#var_8C] .text:00044D50 CMP R0, #0 .text:00044D54 MOV R1, R1,LSL#2 .text:00044D58 STR R1, [R11,#var_E0] .text:00044D5C BLE loc_44D84 .text:00044D60 CMP R0, #0x20 .text:00044D64 LDREQ R2, [R11,#var_D0] .text:00044D68 STREQ R6, [R2] .text:00044D6C BEQ loc_44D84 .text:00044D70 LDR R0, [R11,#var_D0] .text:00044D74 MOV R2, #1 .text:00044D78 LDR R3, [R11,#var_C4] .text:00044D7C MOV R1, R0 .text:00044D80 BL __mpn_lshift .text:00044D84 .text:00044D84 loc_44D84 ; CODE XREF: __strtof_internal+2C60j .text:00044D84 ; __strtof_internal+2C80j ... .text:00044D84 LDR R3, [R11,#var_90] .text:00044D88 ADD R3, R3, R5 .text:00044D8C STR R3, [R11,#var_90] .text:00044D90 B loc_44DCC .text:00044D94 ; --------------------------------------------------------------------------- .text:00044D94 .text:00044D94 loc_44D94 ; CODE XREF: __strtof_internal+2B54j .text:00044D94 LDR R12, [R11,#var_8C] .text:00044D98 CMP R2, #0 .text:00044D9C MOV R12, R12,LSL#2 .text:00044DA0 STR R12, [R11,#var_E0] .text:00044DA4 BLE loc_44DCC .text:00044DA8 MOV R0, R9 .text:00044DAC MOV R3, R2,LSL#2 .text:00044DB0 SUB R1, R3, #4 .text:00044DB4 .text:00044DB4 loc_44DB4 ; CODE XREF: __strtof_internal+2D6Cj .text:00044DB4 LDR R3, [R0,R1] .text:00044DB8 SUB R1, R1, #4 .text:00044DBC STR R3, [R0,R2,LSL#2] .text:00044DC0 SUB R2, R2, #1 .text:00044DC4 CMP R2, #0 .text:00044DC8 BGT loc_44DB4 .text:00044DCC .text:00044DCC loc_44DCC ; CODE XREF: __strtof_internal+2BE8j .text:00044DCC ; __strtof_internal+2D34j ... .text:00044DCC MOV R3, #0 .text:00044DD0 LDR R0, [R11,#var_E0] .text:00044DD4 SUB LR, R11, #-var_68 .text:00044DD8 STR R3, [LR,R0] .text:00044DDC LDR R1, [R11,#var_90] .text:00044DE0 CMP R1, #0x18 .text:00044DE4 LDR R5, [R9,R0] .text:00044DE8 BGT loc_450C8 .text:00044DEC STR R9, [R11,#var_C8] .text:00044DF0 .text:00044DF0 loc_44DF0 ; CODE XREF: __strtof_internal+3068j .text:00044DF0 CMP R5, R10 .text:00044DF4 LDREQ R3, [R11,#var_8C] .text:00044DF8 MOVEQ R6, 0xFFFFFFFF .text:00044DFC ADDEQ R2, R3, #1 .text:00044E00 BEQ loc_44F3C .text:00044E04 MOV R8, R10,LSL#16 .text:00044E08 MOV R8, R8,LSR#16 .text:00044E0C MOV R0, R5 .text:00044E10 MOV R7, R10,LSR#16 .text:00044E14 MOV R1, R7 .text:00044E18 BL __umodsi3 .text:00044E1C MOV R4, R0 .text:00044E20 MOV R0, R5 .text:00044E24 MOV R1, R7 .text:00044E28 BL __udivsi3 .text:00044E2C MOV R6, R0 .text:00044E30 MUL R2, R8, R6 .text:00044E34 LDR R12, [R11,#var_D8] .text:00044E38 LDR R3, [R9,R12,LSL#2] .text:00044E3C MOV R3, R3,LSR#16 .text:00044E40 ORR R4, R3, R4,LSL#16 .text:00044E44 CMP R4, R2 .text:00044E48 BCS loc_44E64 .text:00044E4C SUB R6, R6, #1 .text:00044E50 ADDS R4, R4, R10 .text:00044E54 BCS loc_44E64 .text:00044E58 CMP R4, R2 .text:00044E5C SUBCC R6, R6, #1 .text:00044E60 ADDCC R4, R4, R10 .text:00044E64 .text:00044E64 loc_44E64 ; CODE XREF: __strtof_internal+2DECj .text:00044E64 ; __strtof_internal+2DF8j .text:00044E64 RSB R4, R2, R4 .text:00044E68 MOV R0, R4 .text:00044E6C MOV R1, R7 .text:00044E70 BL __umodsi3 .text:00044E74 MOV R5, R0 .text:00044E78 MOV R0, R4 .text:00044E7C MOV R1, R7 .text:00044E80 BL __udivsi3 .text:00044E84 MUL R2, R8, R0 .text:00044E88 LDR LR, [R11,#var_D8] .text:00044E8C LDR R3, [R9,LR,LSL#2] .text:00044E90 MOV R3, R3,LSL#16 .text:00044E94 MOV R3, R3,LSR#16 .text:00044E98 ORR R5, R3, R5,LSL#16 .text:00044E9C CMP R5, R2 .text:00044EA0 BCS loc_44EBC .text:00044EA4 SUB R0, R0, #1 .text:00044EA8 ADDS R5, R5, R10 .text:00044EAC BCS loc_44EBC .text:00044EB0 CMP R5, R2 .text:00044EB4 SUBCC R0, R0, #1 .text:00044EB8 ADDCC R5, R5, R10 .text:00044EBC .text:00044EBC loc_44EBC ; CODE XREF: __strtof_internal+2E44j .text:00044EBC ; __strtof_internal+2E50j .text:00044EBC ORR R6, R0, R6,LSL#16 .text:00044EC0 RSB R0, R2, R5 .text:00044EC4 LDR LR, [R11,#var_C0] .text:00044EC8 MOV R1, LR,LSR#16 .text:00044ECC MOV R12, R6,LSR#16 .text:00044ED0 BIC R2, LR, R1,LSL#16 .text:00044ED4 BIC R3, R6, R12,LSL#16 .text:00044ED8 MUL R5, R2, R3 .text:00044EDC MUL R3, R1, R3 .text:00044EE0 MUL R2, R12, R2 .text:00044EE4 MUL R12, R1, R12 .text:00044EE8 ADDS R2, R3, R2 .text:00044EEC ADDCS R12, R12, #0x10000 .text:00044EF0 ADDS R5, R5, R2,LSL#16 .text:00044EF4 ADC R12, R12, R2,LSR#16 .text:00044EF8 LDR R1, [R11,#var_8C] .text:00044EFC ADD R2, R1, #1 .text:00044F00 B loc_44F14 .text:00044F04 ; --------------------------------------------------------------------------- .text:00044F04 .text:00044F04 loc_44F04 ; CODE XREF: __strtof_internal+2EDCj .text:00044F04 LDR R3, [R11,#var_C0] .text:00044F08 CMP R5, R3 .text:00044F0C SUBCC R12, R12, #1 .text:00044F10 RSB R5, R3, R5 .text:00044F14 .text:00044F14 loc_44F14 ; CODE XREF: __strtof_internal+2EA4j .text:00044F14 CMP R12, R0 .text:00044F18 BHI loc_44F30 .text:00044F1C BNE loc_44F3C .text:00044F20 LDR LR, [R11,#var_D4] .text:00044F24 LDR R3, [R9,LR,LSL#2] .text:00044F28 CMP R5, R3 .text:00044F2C BLS loc_44F3C .text:00044F30 .text:00044F30 loc_44F30 ; CODE XREF: __strtof_internal+2EBCj .text:00044F30 SUB R6, R6, #1 .text:00044F34 ADDS R0, R0, R10 .text:00044F38 BCC loc_44F04 .text:00044F3C .text:00044F3C loc_44F3C ; CODE XREF: __strtof_internal+2DA4j .text:00044F3C ; __strtof_internal+2EC0j ... .text:00044F3C SUB R1, R11, #-var_68 .text:00044F40 LDR R0, [R11,#var_C8] .text:00044F44 MOV R3, R6 .text:00044F48 BL __mpn_submul_1 .text:00044F4C LDR R1, [R11,#var_C8] .text:00044F50 LDR R2, [R11,#var_E0] .text:00044F54 LDR R3, [R1,R2] .text:00044F58 CMP R3, R0 .text:00044F5C BEQ loc_44F78 .text:00044F60 MOV R0, R9 .text:00044F64 MOV R1, R9 .text:00044F68 SUB R2, R11, #-var_68 .text:00044F6C LDR R3, [R11,#var_8C] .text:00044F70 SUB R6, R6, #1 .text:00044F74 BL __mpn_add_n .text:00044F78 .text:00044F78 loc_44F78 ; CODE XREF: __strtof_internal+2F00j .text:00044F78 LDR R3, [R11,#var_D8] .text:00044F7C LDR R12, [R11,#var_D8] .text:00044F80 LDR LR, [R11,#var_E0] .text:00044F84 MOV R2, R3,LSL#2 .text:00044F88 LDR R3, [R9,R2] .text:00044F8C CMP R12, #0 .text:00044F90 MOV R5, R3 .text:00044F94 STR R3, [R9,LR] .text:00044F98 BLE loc_44FBC .text:00044F9C MOV R1, R9 .text:00044FA0 SUB R2, R2, #4 .text:00044FA4 .text:00044FA4 loc_44FA4 ; CODE XREF: __strtof_internal+2F5Cj .text:00044FA4 LDR R3, [R1,R2] .text:00044FA8 SUB R2, R2, #4 .text:00044FAC STR R3, [R1,R12,LSL#2] .text:00044FB0 SUB R12, R12, #1 .text:00044FB4 CMP R12, #0 .text:00044FB8 BGT loc_44FA4 .text:00044FBC .text:00044FBC loc_44FBC ; CODE XREF: __strtof_internal+2F3Cj .text:00044FBC LDR R0, [R11,#var_90] .text:00044FC0 CMP R0, #0 .text:00044FC4 BNE loc_45050 .text:00044FC8 CMP R6, #0 .text:00044FCC MOVEQ R1, #0x20 .text:00044FD0 BEQ loc_4500C .text:00044FD4 CMP R6, #0x10000 .text:00044FD8 BCS loc_44FEC .text:00044FDC CMP R6, #0xFF .text:00044FE0 MOVHI R1, #8 .text:00044FE4 MOVLS R1, #0 .text:00044FE8 B loc_44FF8 .text:00044FEC ; --------------------------------------------------------------------------- .text:00044FEC .text:00044FEC loc_44FEC ; CODE XREF: __strtof_internal+2F7Cj .text:00044FEC CMP R6, #0x1000000 .text:00044FF0 MOVCS R1, #0x18 .text:00044FF4 MOVCC R1, #0x10 .text:00044FF8 .text:00044FF8 loc_44FF8 ; CODE XREF: __strtof_internal+2F8Cj .text:00044FF8 LDR R12, =__clz_tab_1 .text:00044FFC MOV R2, R6,LSR R1 .text:00045000 LDRB R3, [R12,R2] .text:00045004 ADD R3, R3, R1 .text:00045008 RSB R1, R3, #0x20 .text:0004500C .text:0004500C loc_4500C ; CODE XREF: __strtof_internal+2F74j .text:0004500C RSB R2, R1, #0x20 .text:00045010 LDR R3, [R11,#var_78] .text:00045014 CMP R2, #0x18 .text:00045018 RSB R3, R1, R3 .text:0004501C STR R3, [R11,#var_78] .text:00045020 BLE loc_45040 .text:00045024 ADD R1, R1, #0x18 .text:00045028 STR R1, [R11,#var_C4] .text:0004502C MOV LR, #0x19 .text:00045030 STR LR, [R11,#var_90] .text:00045034 RSB R3, R1, #0x20 .text:00045038 MOV R3, R6,LSR R3 .text:0004503C B loc_450B0 .text:00045040 ; --------------------------------------------------------------------------- .text:00045040 .text:00045040 loc_45040 ; CODE XREF: __strtof_internal+2FC4j .text:00045040 RSB R1, R1, #0 .text:00045044 STR R1, [R11,#var_90] .text:00045048 STR R6, [R11,#var_70] .text:0004504C B loc_450B4 .text:00045050 ; --------------------------------------------------------------------------- .text:00045050 .text:00045050 loc_45050 ; CODE XREF: __strtof_internal+2F68j .text:00045050 LDR R0, [R11,#var_90] .text:00045054 ADD R3, R0, #0x20 .text:00045058 CMP R3, #0x18 .text:0004505C LDRLE R1, [R11,#var_D0] .text:00045060 STRLE R6, [R1] .text:00045064 BLE loc_450B4 .text:00045068 LDR R2, [R11,#var_90] .text:0004506C RSB R2, R2, #0x18 .text:00045070 CMP R2, #0 .text:00045074 STR R2, [R11,#var_C4] .text:00045078 BLE loc_450B4 .text:0004507C CMP R2, #0x20 .text:00045080 LDREQ R3, [R11,#var_D0] .text:00045084 STREQ R6, [R3] .text:00045088 BEQ loc_450B4 .text:0004508C LDR R0, [R11,#var_D0] .text:00045090 MOV R2, #1 .text:00045094 LDR R3, [R11,#var_C4] .text:00045098 MOV R1, R0 .text:0004509C BL __mpn_lshift .text:000450A0 LDR R12, [R11,#var_C4] .text:000450A4 LDR R3, [R11,#var_70] .text:000450A8 RSB R2, R12, #0x20 .text:000450AC ORR R3, R3, R6,LSR R2 .text:000450B0 .text:000450B0 loc_450B0 ; CODE XREF: __strtof_internal+2FE0j .text:000450B0 STR R3, [R11,#var_70] .text:000450B4 .text:000450B4 loc_450B4 ; CODE XREF: __strtof_internal+2FF0j .text:000450B4 ; __strtof_internal+3008j ... .text:000450B4 LDR LR, [R11,#var_90] .text:000450B8 ADD LR, LR, #0x20 .text:000450BC CMP LR, #0x18 .text:000450C0 STR LR, [R11,#var_90] .text:000450C4 BLE loc_44DF0 .text:000450C8 .text:000450C8 loc_450C8 ; CODE XREF: __strtof_internal+2D8Cj .text:000450C8 LDR R12, [R11,#var_8C] .text:000450CC LDR R1, [R11,#var_78] .text:000450D0 LDR R0, [R11,#var_C4] .text:000450D4 LDR R3, [R9,R12,LSL#2] .text:000450D8 RSB R2, R0, #0x1F .text:000450DC CMP R12, #0 .text:000450E0 CMPGE R3, #0 .text:000450E4 BNE loc_45100 .text:000450E8 MOV R0, R9 .text:000450EC .text:000450EC loc_450EC ; CODE XREF: __strtof_internal+30A0j .text:000450EC SUB R12, R12, #1 .text:000450F0 LDR R3, [R0,R12,LSL#2] .text:000450F4 CMP R12, #0 .text:000450F8 CMPGE R3, #0 .text:000450FC BEQ loc_450EC .text:00045100 .text:00045100 loc_45100 ; CODE XREF: __strtof_internal+3088j .text:00045100 SUB R4, R1, #1 .text:00045104 MOV R7, R6 .text:00045108 MOV R8, R2 .text:0004510C MVN R3, R12 .text:00045110 MOV R3, R3,LSR#31 .text:00045114 LDR R1, [R11,#var_B4] .text:00045118 CMN R4, #0x7E .text:0004511C ORR R6, R1, R3 .text:00045120 BGE loc_45294 .text:00045124 RSB R12, R4, #0xFC000002 .text:00045128 ADD R12, R12, #0x3FC0000 .text:0004512C ADD R12, R12, #0x3FC00 .text:00045130 ADD R12, R12, #0x380 .text:00045134 CMP R12, #0x18 .text:00045138 BLE loc_45150 .text:0004513C .text:0004513C loc_4513C ; CODE XREF: __strtof_internal+E60j .text:0004513C ; __strtof_internal+1080j ... .text:0004513C BL __errno_location .text:00045140 MOV R3, #0x21 .text:00045144 STR R3, [R0] .text:00045148 LDR R2, =0 .text:0004514C B loc_45370 .text:00045150 ; --------------------------------------------------------------------------- .text:00045150 .text:00045150 loc_45150 ; CODE XREF: __strtof_internal+30DCj .text:00045150 MOV R2, #1 .text:00045154 MOV R3, R2,LSL R8 .text:00045158 SUB R3, R3, #1 .text:0004515C TST R7, R3 .text:00045160 ORRNE R6, R6, #1 .text:00045164 CMP R12, #0x18 .text:00045168 BNE loc_451B0 .text:0004516C MOV R8, #0x17 .text:00045170 SUB R2, R2, #1 .text:00045174 LDR R7, [R11,#var_70] .text:00045178 .text:00045178 loc_45178 ; CODE XREF: __strtof_internal+3134j .text:00045178 LDR R12, [R11,#var_D0] .text:0004517C LDR R3, [R12,R2,LSL#2] .text:00045180 ADD R2, R2, #1 .text:00045184 CMP R3, #0 .text:00045188 ORRNE R6, R6, #1 .text:0004518C CMP R2, #0 .text:00045190 BLE loc_45178 .text:00045194 MOV R1, #0 .text:00045198 MOV R3, R12 .text:0004519C MOV R2, R3 .text:000451A0 .text:000451A0 loc_451A0 ; CODE XREF: __strtof_internal+314Cj .text:000451A0 STR R1, [R3],#-4 .text:000451A4 CMP R3, R2 .text:000451A8 BGE loc_451A0 .text:000451AC B loc_45290 .text:000451B0 ; --------------------------------------------------------------------------- .text:000451B0 .text:000451B0 loc_451B0 ; CODE XREF: __strtof_internal+310Cj .text:000451B0 CMP R12, #0x1F .text:000451B4 BLE loc_45270 .text:000451B8 SUB R3, R12, #1 .text:000451BC CMP R3, #0 .text:000451C0 ADDLT R2, R3, #0x1F .text:000451C4 MOVGE R2, R3 .text:000451C8 MOV R2, R2,ASR#5 .text:000451CC SUB R8, R3, R2,LSL#5 .text:000451D0 MOV R1, #0 .text:000451D4 LDR LR, [R11,#var_D0] .text:000451D8 CMP R1, R2 .text:000451DC LDR R7, [LR,R2,LSL#2] .text:000451E0 MOV LR, R12,ASR#31 .text:000451E4 BGE loc_45204 .text:000451E8 .text:000451E8 loc_451E8 ; CODE XREF: __strtof_internal+31A4j .text:000451E8 LDR R0, [R11,#var_D0] .text:000451EC LDR R3, [R0,R1,LSL#2] .text:000451F0 ADD R1, R1, #1 .text:000451F4 CMP R3, #0 .text:000451F8 ORRNE R6, R6, #1 .text:000451FC CMP R1, R2 .text:00045200 BLT loc_451E8 .text:00045204 .text:00045204 loc_45204 ; CODE XREF: __strtof_internal+3188j .text:00045204 MOV R3, #1 .text:00045208 MOV R3, R3,LSL R8 .text:0004520C SUB R3, R3, #1 .text:00045210 TST R7, R3 .text:00045214 ORRNE R6, R6, #1 .text:00045218 MOV R3, LR,LSR#27 .text:0004521C ADD R3, R12, R3 .text:00045220 MOV R4, R3,ASR#5 .text:00045224 RSB R5, R4, #1 .text:00045228 MOV R2, R5 .text:0004522C LDR R0, [R11,#var_D0] .text:00045230 SUB R3, R12, R4,LSL#5 .text:00045234 ADD R1, R0, R4,LSL#2 .text:00045238 BL __mpn_rshift .text:0004523C MOV R1, #0 .text:00045240 CMP R1, R4 .text:00045244 BGE loc_45290 .text:00045248 MOV R0, R4 .text:0004524C LDR R3, [R11,#var_D0] .text:00045250 MOV R12, R1 .text:00045254 ADD R2, R3, R5,LSL#2 .text:00045258 .text:00045258 loc_45258 ; CODE XREF: __strtof_internal+320Cj .text:00045258 MOV R3, R1,LSL#2 .text:0004525C ADD R1, R1, #1 .text:00045260 CMP R1, R0 .text:00045264 STR R12, [R3,R2] .text:00045268 BLT loc_45258 .text:0004526C B loc_45290 .text:00045270 ; --------------------------------------------------------------------------- .text:00045270 .text:00045270 loc_45270 ; CODE XREF: __strtof_internal+3158j .text:00045270 CMP R12, #0 .text:00045274 BLE loc_45290 .text:00045278 SUB R8, R12, #1 .text:0004527C LDR R0, [R11,#var_D0] .text:00045280 MOV R3, R12 .text:00045284 LDR R7, [R11,#var_70] .text:00045288 MOV R1, R0 .text:0004528C BL __mpn_rshift .text:00045290 .text:00045290 loc_45290 ; CODE XREF: __strtof_internal+3150j .text:00045290 ; __strtof_internal+31E8j ... .text:00045290 MOV R4, 0xFFFFFF81 .text:00045294 .text:00045294 loc_45294 ; CODE XREF: __strtof_internal+30C4j .text:00045294 MOV R3, R7,LSR R8 .text:00045298 TST R3, #1 .text:0004529C BEQ loc_45328 .text:000452A0 CMP R6, #0 .text:000452A4 LDR R6, [R11,#var_D0] .text:000452A8 LDR R2, [R6] .text:000452AC BNE loc_452CC .text:000452B0 TST R2, #1 .text:000452B4 BNE loc_452CC .text:000452B8 MOV R3, #1 .text:000452BC MOV R3, R3,LSL R8 .text:000452C0 SUB R3, R3, #1 .text:000452C4 TST R7, R3 .text:000452C8 BEQ loc_45328 .text:000452CC .text:000452CC loc_452CC ; CODE XREF: __strtof_internal+3250j .text:000452CC ; __strtof_internal+3258j .text:000452CC ADD R3, R2, #1 .text:000452D0 LDR R12, [R11,#var_D0] .text:000452D4 CMP R3, R2 .text:000452D8 STR R3, [R12] .text:000452DC LDR LR, [R11,#var_D0] .text:000452E0 LDR R3, [LR] .text:000452E4 TST R3, #0x1000000 .text:000452E8 BEQ loc_45318 .text:000452EC .text:000452EC loc_452EC ; CODE XREF: __strtof_internal+FECj .text:000452EC MOV R0, LR .text:000452F0 MOV R1, R0 .text:000452F4 MOV R2, #1 .text:000452F8 MOV R3, R2 .text:000452FC BL __mpn_rshift .text:00045300 LDR R0, [R11,#var_D0] .text:00045304 LDR R3, [R0] .text:00045308 ADD R4, R4, #1 .text:0004530C ORR R3, R3, #0x800000 .text:00045310 STR R3, [R0] .text:00045314 B loc_45328 .text:00045318 ; --------------------------------------------------------------------------- .text:00045318 .text:00045318 loc_45318 ; CODE XREF: __strtof_internal+FF0j .text:00045318 ; __strtof_internal+328Cj .text:00045318 CMN R4, #0x7F .text:0004531C BNE loc_45328 .text:00045320 TST R3, #0x800000 .text:00045324 MOVNE R4, 0xFFFFFF82 .text:00045328 .text:00045328 loc_45328 ; CODE XREF: __strtof_internal+FA4j .text:00045328 ; __strtof_internal+FCCj ... .text:00045328 CMP R4, #0x80 .text:0004532C BLE loc_45358 .text:00045330 .text:00045330 loc_45330 ; CODE XREF: __strtof_internal+2ACCj .text:00045330 LDR R1, [R11,#var_84] .text:00045334 CMP R1, #0 .text:00045338 .text:00045338 loc_45338 ; CODE XREF: __strtof_internal+1258j .text:00045338 ; __strtof_internal+1D2Cj .text:00045338 LDR R3, =0x7F800000 .text:0004533C LDRNE R3, =0xFF800000 .text:00045340 MOV R2, R3 .text:00045344 B loc_45370 .text:00045344 ; --------------------------------------------------------------------------- .text:00045348 off_45348 DCD __clz_tab_1 ; DATA XREF: __strtof_internal:loc_44FF8r .text:0004534C dword_4534C DCD 0 ; DATA XREF: __strtof_internal+30ECr .text:00045350 dword_45350 DCD 0x7F800000 ; DATA XREF: __strtof_internal:loc_45338r .text:00045354 dword_45354 DCD 0xFF800000 ; DATA XREF: __strtof_internal+32E0r .text:00045358 ; --------------------------------------------------------------------------- .text:00045358 .text:00045358 loc_45358 ; CODE XREF: __strtof_internal+124Cj .text:00045358 ; __strtof_internal+1D20j ... .text:00045358 LDR R0, [R11,#var_D0] .text:0004535C LDR R2, [R11,#var_84] .text:00045360 MOV R1, R4 .text:00045364 .text:00045364 loc_45364 ; CODE XREF: __strtof_internal+2ADCj .text:00045364 BL __mpn_construct_float .text:00045368 STC p1, c0, [SP,#0xEC+var_F0]! .text:0004536C LDR R2, [SP+0xF0+var_F0],#4 .text:00045370 .text:00045370 loc_45370 ; CODE XREF: __strtof_internal+30F0j .text:00045370 ; __strtof_internal+32E8j .text:00045370 STR R2, [SP,#0xEC+var_F0]! .text:00045374 LDC p1, c0, [SP+0xF0+var_F0],#4 .text:00045378 .text:00045378 locret_45378 ; CODE XREF: __strtof_internal+2D8j .text:00045378 ; __strtof_internal+7A4j ... .text:00045378 LDMDB R11, {R4-R11,SP,PC} .text:00045378 ; End of function __strtof_internal .text:00045378 .text:0004537C .text:0004537C ; =============== S U B R O U T I N E ======================================= .text:0004537C .text:0004537C ; Attributes: bp-based frame .text:0004537C .text:0004537C WEAK strtof .text:0004537C strtof .text:0004537C MOV R12, SP .text:00045380 STMFD SP!, {R11,R12,LR,PC} .text:00045384 SUB R11, R12, #4 .text:00045388 MOV R2, #0 .text:0004538C BL __strtof_internal .text:00045390 LDMDB R11, {R11,SP,PC} .text:00045390 ; End of function strtof .text:00045390 .text:00045394 .text:00045394 ; =============== S U B R O U T I N E ======================================= .text:00045394 .text:00045394 ; Attributes: bp-based frame .text:00045394 .text:00045394 EXPORT __strtod_internal .text:00045394 __strtod_internal ; CODE XREF: _IO_vfscanf+3FA4p .text:00045394 ; strtod+10p ... .text:00045394 .text:00045394 var_1FC = -0x1FC .text:00045394 var_1F4 = -0x1F4 .text:00045394 var_1F0 = -0x1F0 .text:00045394 var_1EC = -0x1EC .text:00045394 var_1E8 = -0x1E8 .text:00045394 var_1E4 = -0x1E4 .text:00045394 var_1E0 = -0x1E0 .text:00045394 var_1DC = -0x1DC .text:00045394 var_1D8 = -0x1D8 .text:00045394 var_1D4 = -0x1D4 .text:00045394 var_1D0 = -0x1D0 .text:00045394 var_1CC = -0x1CC .text:00045394 var_1C8 = -0x1C8 .text:00045394 var_1C4 = -0x1C4 .text:00045394 var_1C0 = -0x1C0 .text:00045394 var_1BC = -0x1BC .text:00045394 var_1B8 = -0x1B8 .text:00045394 var_1B4 = -0x1B4 .text:00045394 var_1B0 = -0x1B0 .text:00045394 var_1AC = -0x1AC .text:00045394 var_1A0 = -0x1A0 .text:00045394 var_19C = -0x19C .text:00045394 var_198 = -0x198 .text:00045394 var_194 = -0x194 .text:00045394 var_190 = -0x190 .text:00045394 var_18C = -0x18C .text:00045394 var_188 = -0x188 .text:00045394 var_184 = -0x184 .text:00045394 var_180 = -0x180 .text:00045394 var_17C = -0x17C .text:00045394 var_178 = -0x178 .text:00045394 var_174 = -0x174 .text:00045394 var_170 = -0x170 .text:00045394 var_16C = -0x16C .text:00045394 var_168 = -0x168 .text:00045394 var_164 = -0x164 .text:00045394 var_15C = -0x15C .text:00045394 var_158 = -0x158 .text:00045394 var_154 = -0x154 .text:00045394 var_C0 = -0xC0 .text:00045394 var_BC = -0xBC .text:00045394 .text:00045394 MOV R12, SP .text:00045398 STMFD SP!, {R4-R12,LR,PC} .text:0004539C SUB R11, R12, #4 .text:000453A0 MOV R3, #0xA .text:000453A4 SUB SP, SP, #0x1CC .text:000453A8 STR R3, [R11,#var_17C] .text:000453AC MOV R4, #0 .text:000453B0 STR R4, [R11,#var_19C] .text:000453B4 STR R0, [R11,#var_170] .text:000453B8 CMP R2, R4 .text:000453BC STR R1, [R11,#var_174] .text:000453C0 BEQ loc_45404 .text:000453C4 LDR R2, =_nl_current_LC_NUMERIC .text:000453C8 LDR R1, [R2] .text:000453CC LDR R12, [R1,#0x28] .text:000453D0 STR R12, [R11,#var_1A0] .text:000453D4 LDRB R3, [R12] .text:000453D8 CMP R3, #0xFF .text:000453DC CMPNE R3, R4 .text:000453E0 STREQ R4, [R11,#var_1A0] .text:000453E4 BEQ loc_45410 .text:000453E8 LDR R1, [R1,#0x24] .text:000453EC STR R1, [R11,#var_19C] .text:000453F0 LDRB R3, [R1] .text:000453F4 CMP R3, #0 .text:000453F8 STREQ R3, [R11,#var_19C] .text:000453FC STREQ R3, [R11,#var_1A0] .text:00045400 B loc_45410 .text:00045404 ; --------------------------------------------------------------------------- .text:00045404 .text:00045404 loc_45404 ; CODE XREF: __strtod_internal+2Cj .text:00045404 LDR LR, [R11,#var_19C] .text:00045408 LDR R2, =_nl_current_LC_NUMERIC .text:0004540C STR LR, [R11,#var_1A0] .text:00045410 .text:00045410 loc_45410 ; CODE XREF: __strtod_internal+50j .text:00045410 ; __strtod_internal+6Cj .text:00045410 LDR R3, [R2] .text:00045414 LDR R3, [R3,#0x20] .text:00045418 STR R3, [R11,#var_194] .text:0004541C MOV R0, R3 .text:00045420 BL strlen .text:00045424 MOV R3, #0 .text:00045428 STR R3, [R11,#var_16C] .text:0004542C STR R0, [R11,#var_198] .text:00045430 LDR R1, [R11,#var_170] .text:00045434 STR R3, [R11,#var_178] .text:00045438 SUB R1, R1, #1 .text:0004543C STR R1, [R11,#var_188] .text:00045440 STR R3, [R11,#var_184] .text:00045444 LDR R2, =__ctype_b .text:00045448 LDR R1, [R2] .text:0004544C .text:0004544C loc_4544C ; CODE XREF: __strtod_internal+D4j .text:0004544C LDR R3, [R11,#var_188] .text:00045450 LDRB R6, [R3,#1]! .text:00045454 STR R3, [R11,#var_188] .text:00045458 MOV R3, R6,LSL#1 .text:0004545C ADD R3, R3, R1 .text:00045460 LDRB R2, [R3,#1] .text:00045464 TST R2, #0x20 .text:00045468 BNE loc_4544C .text:0004546C CMP R6, #0x2D .text:00045470 BNE loc_4548C .text:00045474 MOV R4, #1 .text:00045478 STR R4, [R11,#var_178] .text:0004547C LDR R12, [R11,#var_188] .text:00045480 LDRB R6, [R12,#1]! .text:00045484 STR R12, [R11,#var_188] .text:00045488 B loc_4549C .text:0004548C ; --------------------------------------------------------------------------- .text:0004548C .text:0004548C loc_4548C ; CODE XREF: __strtod_internal+DCj .text:0004548C CMP R6, #0x2B .text:00045490 LDREQ LR, [R11,#var_188] .text:00045494 LDREQB R6, [LR,#1]! .text:00045498 STREQ LR, [R11,#var_188] .text:0004549C .text:0004549C loc_4549C ; CODE XREF: __strtod_internal+F4j .text:0004549C LDR R0, [R11,#var_194] .text:000454A0 LDRB R2, [R0] .text:000454A4 MOV R4, #0 .text:000454A8 CMP R2, R4 .text:000454AC BEQ loc_454E4 .text:000454B0 LDR R1, [R11,#var_188] .text:000454B4 LDRB R3, [R1] .text:000454B8 CMP R3, R2 .text:000454BC BNE loc_454E4 .text:000454C0 .text:000454C0 loc_454C0 ; CODE XREF: __strtod_internal+14Cj .text:000454C0 LDR R3, [R11,#var_194] .text:000454C4 ADD R4, R4, #1 .text:000454C8 LDRB R2, [R3,R4] .text:000454CC CMP R2, #0 .text:000454D0 BEQ loc_454E4 .text:000454D4 LDR R12, [R11,#var_188] .text:000454D8 LDRB R3, [R12,R4] .text:000454DC CMP R3, R2 .text:000454E0 BEQ loc_454C0 .text:000454E4 .text:000454E4 loc_454E4 ; CODE XREF: __strtod_internal+118j .text:000454E4 ; __strtod_internal+128j ... .text:000454E4 LDR LR, [R11,#var_194] .text:000454E8 LDRB R3, [LR,R4] .text:000454EC CMP R3, #0 .text:000454F0 BNE loc_4550C .text:000454F4 LDR R0, [R11,#var_188] .text:000454F8 LDRB R3, [R0,#1] .text:000454FC CMP R3, #0x2F .text:00045500 BLS loc_4550C .text:00045504 CMP R3, #0x39 .text:00045508 BLS loc_45748 .text:0004550C .text:0004550C loc_4550C ; CODE XREF: __strtod_internal+15Cj .text:0004550C ; __strtod_internal+16Cj .text:0004550C SUB R3, R6, #0x30 .text:00045510 CMP R3, #9 .text:00045514 BLS loc_45748 .text:00045518 LDR R3, =__ctype_tolower .text:0004551C LDR R2, [R3] .text:00045520 LDR R1, [R2,R6,LSL#2] .text:00045524 MOV R5, R3 .text:00045528 CMP R1, #0x69 .text:0004552C BNE loc_455A4 .text:00045530 LDR R0, [R11,#var_188] .text:00045534 LDR R1, =dword_61B3C .text:00045538 MOV R2, #3 .text:0004553C BL strncasecmp .text:00045540 CMP R0, #0 .text:00045544 MOV R0, #3 .text:00045548 BEQ loc_45568 .text:0004554C LDR R0, [R11,#var_188] .text:00045550 LDR R1, =aInfinity_0 ; "infinity" .text:00045554 MOV R2, #8 .text:00045558 BL strncasecmp .text:0004555C CMP R0, #0 .text:00045560 BNE loc_455A4 .text:00045564 MOV R0, #8 .text:00045568 .text:00045568 loc_45568 ; CODE XREF: __strtod_internal+1B4j .text:00045568 LDR R1, [R11,#var_174] .text:0004556C CMP R1, #0 .text:00045570 LDRNE R2, [R11,#var_188] .text:00045574 ADDNE R3, R2, R0 .text:00045578 STRNE R3, [R1] .text:0004557C LDR R3, [R11,#var_178] .text:00045580 CMP R3, #0 .text:00045584 BEQ loc_45598 .text:00045588 LDR R3, =dword_61B4C .text:0004558C .text:0004558C loc_4558C ; CODE XREF: __strtod_internal+14D0j .text:0004558C ; __strtod_internal+1914j .text:0004558C LDC p1, c8, [R3] .text:00045590 CDP p1, 1, c8,c0,c0, 4 .text:00045594 B locret_48E2C .text:00045598 ; --------------------------------------------------------------------------- .text:00045598 .text:00045598 loc_45598 ; CODE XREF: __strtod_internal+1F0j .text:00045598 LDR R3, =dword_61B54 .text:0004559C LDC p1, c8, [R3] .text:000455A0 B locret_48E2C .text:000455A4 ; --------------------------------------------------------------------------- .text:000455A4 .text:000455A4 loc_455A4 ; CODE XREF: __strtod_internal+198j .text:000455A4 ; __strtod_internal+1CCj .text:000455A4 LDR R3, [R5] .text:000455A8 LDR R2, [R3,R6,LSL#2] .text:000455AC CMP R2, #0x6E .text:000455B0 BNE loc_456FC .text:000455B4 LDR R0, [R11,#var_188] .text:000455B8 LDR R1, =dword_61B5C .text:000455BC MOV R2, #3 .text:000455C0 BL strncasecmp .text:000455C4 CMP R0, #0 .text:000455C8 BNE loc_456FC .text:000455CC LDR R4, [R11,#var_188] .text:000455D0 LDRB R3, [R4,#3]! .text:000455D4 ADR R9, dword_45730 .text:000455D8 LDMIA R9, {R9,R10} .text:000455DC CMP R3, #0x28 .text:000455E0 STR R4, [R11,#var_188] .text:000455E4 BNE loc_456E0 .text:000455E8 MOV R0, R4 .text:000455EC MOV R1, R5 .text:000455F0 .text:000455F0 loc_455F0 ; CODE XREF: __strtod_internal+270j .text:000455F0 ; __strtod_internal+28Cj ... .text:000455F0 LDR R12, [R11,#var_188] .text:000455F4 LDRB R3, [R12,#1]! .text:000455F8 SUB R3, R3, #0x30 .text:000455FC CMP R3, #9 .text:00045600 STR R12, [R11,#var_188] .text:00045604 BLS loc_455F0 .text:00045608 LDRB R2, [R12] .text:0004560C LDR R3, [R1] .text:00045610 LDR R3, [R3,R2,LSL#2] .text:00045614 CMP R3, #0x60 .text:00045618 BLE loc_45624 .text:0004561C CMP R3, #0x7A .text:00045620 BLE loc_455F0 .text:00045624 .text:00045624 loc_45624 ; CODE XREF: __strtod_internal+284j .text:00045624 AND R3, R2, #0xFF .text:00045628 CMP R3, #0x5F .text:0004562C BEQ loc_455F0 .text:00045630 CMP R3, #0x29 .text:00045634 STRNE R0, [R11,#var_188] .text:00045638 BNE loc_456E0 .text:0004563C ADD R0, R0, #1 .text:00045640 SUB R1, R11, #-var_15C .text:00045644 MOV R2, #0 .text:00045648 MOV R3, R2 .text:0004564C BL __strtoull_internal .text:00045650 LDR R3, [R11,#var_15C] .text:00045654 LDR LR, [R11,#var_188] .text:00045658 SUB R2, R11, #-var_1A0 .text:0004565C STMDB R2, {R0,R1} .text:00045660 CMP R3, LR .text:00045664 BNE loc_456E0 .text:00045668 ADR R9, dword_45730 .text:0004566C LDMIA R9, {R9,R10} .text:00045670 ADR R1, dword_45738 .text:00045674 LDMIA R1, {R1,R2} .text:00045678 SUB R4, R11, #-var_1A0 .text:0004567C LDMDB R4, {R3,R4} .text:00045680 SUB R12, R11, #-var_1A0 .text:00045684 ADR R7, dword_45740 .text:00045688 LDMIA R7, {R7,R8} .text:0004568C AND R1, R1, R3 .text:00045690 AND R2, R2, R4 .text:00045694 ORRS R1, R1, R2 .text:00045698 MOVEQ R3, #0 .text:0004569C MOVNE R3, #1 .text:000456A0 MOV R4, #0 .text:000456A4 RSBS R1, R3, #0 .text:000456A8 RSC R2, R4, #0 .text:000456AC LDMDB R12, {R3,R4} .text:000456B0 BIC R7, R7, R1 .text:000456B4 BIC R8, R8, R2 .text:000456B8 AND R3, R3, R1 .text:000456BC AND R4, R4, R2 .text:000456C0 ORR R3, R3, R7 .text:000456C4 ORR R4, R4, R8 .text:000456C8 MOV R5, R4 .text:000456CC MOV R5, R5,LSL#12 .text:000456D0 ORR R5, R5, R9,LSR#20 .text:000456D4 MOV R5, R5,ROR#12 .text:000456D8 MOV R9, R5 .text:000456DC MOV R10, R3 .text:000456E0 .text:000456E0 loc_456E0 ; CODE XREF: __strtod_internal+250j .text:000456E0 ; __strtod_internal+2A4j ... .text:000456E0 LDR LR, [R11,#var_174] .text:000456E4 CMP LR, #0 .text:000456E8 LDRNE R0, [R11,#var_188] .text:000456EC STRNE R0, [LR] .text:000456F0 STMFD SP!, {R9,R10} .text:000456F4 LDC p1, c8, [SP+0x1FC+var_1FC],#8 .text:000456F8 B locret_48E2C .text:000456FC ; --------------------------------------------------------------------------- .text:000456FC .text:000456FC loc_456FC ; CODE XREF: __strtod_internal+21Cj .text:000456FC ; __strtod_internal+234j .text:000456FC LDR R1, [R11,#var_174] .text:00045700 CMP R1, #0 .text:00045704 LDRNE R2, [R11,#var_170] .text:00045708 STRNE R2, [R1] .text:0004570C B loc_45C10 .text:0004570C ; --------------------------------------------------------------------------- .text:00045710 off_45710 DCD _nl_current_LC_NUMERIC ; DATA XREF: __strtod_internal+30r .text:00045710 ; __strtod_internal+74r .text:00045714 off_45714 DCD __ctype_b ; DATA XREF: __strtod_internal+B0r .text:00045718 off_45718 DCD __ctype_tolower ; DATA XREF: __strtod_internal+184r .text:0004571C off_4571C DCD dword_61B3C ; DATA XREF: __strtod_internal+1A0r .text:00045720 off_45720 DCD aInfinity_0 ; DATA XREF: __strtod_internal+1BCr .text:00045720 ; "infinity" .text:00045724 off_45724 DCD dword_61B4C ; DATA XREF: __strtod_internal+1F4r .text:00045728 off_45728 DCD dword_61B54 ; DATA XREF: __strtod_internal:loc_45598r .text:0004572C off_4572C DCD dword_61B5C ; DATA XREF: __strtod_internal+224r .text:00045730 dword_45730 DCD 0x7FFFFFFF, 0xFFFFFFFF .text:00045730 ; DATA XREF: __strtod_internal+240o .text:00045730 ; __strtod_internal+2D4o .text:00045738 dword_45738 DCD 0xFFFFFFFF, 0xFFFFF ; DATA XREF: __strtod_internal+2DCo .text:00045740 dword_45740 DCD 0 ; DATA XREF: __strtod_internal+2F0o .text:00045744 DCD 0x80000 .text:00045748 ; --------------------------------------------------------------------------- .text:00045748 .text:00045748 loc_45748 ; CODE XREF: __strtod_internal+174j .text:00045748 ; __strtod_internal+180j .text:00045748 CMP R6, #0x30 .text:0004574C BNE loc_45788 .text:00045750 LDR R3, [R11,#var_188] .text:00045754 LDR R1, =__ctype_tolower .text:00045758 LDRB R0, [R3,#1] .text:0004575C LDR R3, [R1] .text:00045760 LDR R2, [R3,R0,LSL#2] .text:00045764 CMP R2, #0x78 .text:00045768 BNE loc_45788 .text:0004576C MOV R4, #0x10 .text:00045770 STR R4, [R11,#var_17C] .text:00045774 MOV R12, #0 .text:00045778 STR R12, [R11,#var_1A0] .text:0004577C LDR LR, [R11,#var_188] .text:00045780 LDRB R6, [LR,#2]! .text:00045784 STR LR, [R11,#var_188] .text:00045788 .text:00045788 loc_45788 ; CODE XREF: __strtod_internal+3B8j .text:00045788 ; __strtod_internal+3D4j .text:00045788 LDR R0, [R11,#var_19C] .text:0004578C LDR R9, [R11,#var_188] .text:00045790 CMP R0, #0 .text:00045794 MOV R7, R9 .text:00045798 BNE loc_457BC .text:0004579C CMP R6, #0x30 .text:000457A0 BNE loc_45814 .text:000457A4 .text:000457A4 loc_457A4 ; CODE XREF: __strtod_internal+420j .text:000457A4 LDR R1, [R11,#var_188] .text:000457A8 LDRB R6, [R1,#1]! .text:000457AC CMP R6, #0x30 .text:000457B0 STR R1, [R11,#var_188] .text:000457B4 BEQ loc_457A4 .text:000457B8 B loc_45814 .text:000457BC ; --------------------------------------------------------------------------- .text:000457BC .text:000457BC loc_457BC ; CODE XREF: __strtod_internal+404j .text:000457BC ; __strtod_internal+47Cj .text:000457BC CMP R6, #0x30 .text:000457C0 BEQ loc_45804 .text:000457C4 LDR R2, [R11,#var_19C] .text:000457C8 LDRB R3, [R2] .text:000457CC MOV R4, #0 .text:000457D0 CMP R3, R4 .text:000457D4 B loc_457E8 .text:000457D8 ; --------------------------------------------------------------------------- .text:000457D8 .text:000457D8 loc_457D8 ; CODE XREF: __strtod_internal+45Cj .text:000457D8 LDR R12, [R11,#var_19C] .text:000457DC ADD R4, R4, #1 .text:000457E0 LDRB R3, [R12,R4] .text:000457E4 CMP R3, #0 .text:000457E8 .text:000457E8 loc_457E8 ; CODE XREF: __strtod_internal+440j .text:000457E8 BEQ loc_457F4 .text:000457EC CMP R6, R3 .text:000457F0 BEQ loc_457D8 .text:000457F4 .text:000457F4 loc_457F4 ; CODE XREF: __strtod_internal:loc_457E8j .text:000457F4 LDR LR, [R11,#var_19C] .text:000457F8 LDRB R3, [LR,R4] .text:000457FC CMP R3, #0 .text:00045800 BNE loc_45814 .text:00045804 .text:00045804 loc_45804 ; CODE XREF: __strtod_internal+42Cj .text:00045804 LDR R0, [R11,#var_188] .text:00045808 LDRB R6, [R0,#1]! .text:0004580C STR R0, [R11,#var_188] .text:00045810 B loc_457BC .text:00045814 ; --------------------------------------------------------------------------- .text:00045814 .text:00045814 loc_45814 ; CODE XREF: __strtod_internal+40Cj .text:00045814 ; __strtod_internal+424j ... .text:00045814 SUB R3, R6, #0x30 .text:00045818 CMP R3, #9 .text:0004581C BLS loc_458CC .text:00045820 LDR R1, [R11,#var_17C] .text:00045824 CMP R1, #0x10 .text:00045828 BNE loc_458CC .text:0004582C LDR R3, =__ctype_tolower .text:00045830 LDR R1, [R3] .text:00045834 LDR R2, [R1,#0x184] .text:00045838 MOV R5, R3 .text:0004583C CMP R6, R2 .text:00045840 BLT loc_45850 .text:00045844 LDR R3, [R1,#0x198] .text:00045848 CMP R6, R3 .text:0004584C BLE loc_458CC .text:00045850 .text:00045850 loc_45850 ; CODE XREF: __strtod_internal+4ACj .text:00045850 LDR R3, [R11,#var_194] .text:00045854 LDRB R2, [R3] .text:00045858 MOV R4, #0 .text:0004585C CMP R2, R4 .text:00045860 BEQ loc_45898 .text:00045864 LDR R12, [R11,#var_188] .text:00045868 LDRB R3, [R12] .text:0004586C CMP R2, R3 .text:00045870 BNE loc_45898 .text:00045874 .text:00045874 loc_45874 ; CODE XREF: __strtod_internal+500j .text:00045874 LDR LR, [R11,#var_194] .text:00045878 ADD R4, R4, #1 .text:0004587C LDRB R2, [LR,R4] .text:00045880 CMP R2, #0 .text:00045884 BEQ loc_45898 .text:00045888 LDR R0, [R11,#var_188] .text:0004588C LDRB R3, [R0,R4] .text:00045890 CMP R2, R3 .text:00045894 BEQ loc_45874 .text:00045898 .text:00045898 loc_45898 ; CODE XREF: __strtod_internal+4CCj .text:00045898 ; __strtod_internal+4DCj ... .text:00045898 LDR R1, [R11,#var_194] .text:0004589C LDRB R3, [R1,R4] .text:000458A0 CMP R3, #0 .text:000458A4 BEQ loc_458CC .text:000458A8 LDR R2, [R11,#var_17C] .text:000458AC CMP R2, #0x10 .text:000458B0 BNE loc_458CC .text:000458B4 LDR R3, [R11,#var_188] .text:000458B8 CMP R3, R9 .text:000458BC BEQ loc_458CC .text:000458C0 LDR R3, [R5] .text:000458C4 LDR R2, [R3,R6,LSL#2] .text:000458C8 CMP R2, #0x70 .text:000458CC .text:000458CC loc_458CC ; CODE XREF: __strtod_internal+488j .text:000458CC ; __strtod_internal+494j ... .text:000458CC MOV R4, #0 .text:000458D0 STR R4, [R11,#var_18C] .text:000458D4 LDR R9, [R11,#var_188] .text:000458D8 LDR R1, =__ctype_tolower .text:000458DC .text:000458DC loc_458DC ; CODE XREF: __strtod_internal+5F4j .text:000458DC SUB R3, R6, #0x30 .text:000458E0 CMP R3, #9 .text:000458E4 BLS loc_4590C .text:000458E8 LDR R12, [R11,#var_17C] .text:000458EC CMP R12, #0x10 .text:000458F0 BNE loc_4591C .text:000458F4 LDR R3, [R1] .text:000458F8 LDR R3, [R3,R6,LSL#2] .text:000458FC CMP R3, #0x60 .text:00045900 BLE loc_4591C .text:00045904 CMP R3, #0x66 .text:00045908 BGT loc_4591C .text:0004590C .text:0004590C loc_4590C ; CODE XREF: __strtod_internal+550j .text:0004590C LDR LR, [R11,#var_18C] .text:00045910 ADD LR, LR, #1 .text:00045914 STR LR, [R11,#var_18C] .text:00045918 B loc_4597C .text:0004591C ; --------------------------------------------------------------------------- .text:0004591C .text:0004591C loc_4591C ; CODE XREF: __strtod_internal+55Cj .text:0004591C ; __strtod_internal+56Cj ... .text:0004591C LDR R0, [R11,#var_19C] .text:00045920 CMP R0, #0 .text:00045924 BEQ loc_4598C .text:00045928 LDRB R2, [R0] .text:0004592C MOV R4, #0 .text:00045930 CMP R2, R4 .text:00045934 BEQ loc_4596C .text:00045938 LDR R12, [R11,#var_188] .text:0004593C LDRB R3, [R12] .text:00045940 CMP R2, R3 .text:00045944 BNE loc_4596C .text:00045948 .text:00045948 loc_45948 ; CODE XREF: __strtod_internal+5D4j .text:00045948 LDR LR, [R11,#var_19C] .text:0004594C ADD R4, R4, #1 .text:00045950 LDRB R2, [LR,R4] .text:00045954 CMP R2, #0 .text:00045958 BEQ loc_4596C .text:0004595C LDR R0, [R11,#var_188] .text:00045960 LDRB R3, [R0,R4] .text:00045964 CMP R2, R3 .text:00045968 BEQ loc_45948 .text:0004596C .text:0004596C loc_4596C ; CODE XREF: __strtod_internal+5A0j .text:0004596C ; __strtod_internal+5B0j ... .text:0004596C LDR R2, [R11,#var_19C] .text:00045970 LDRB R3, [R2,R4] .text:00045974 CMP R3, #0 .text:00045978 BNE loc_4598C .text:0004597C .text:0004597C loc_4597C ; CODE XREF: __strtod_internal+584j .text:0004597C LDR R3, [R11,#var_188] .text:00045980 LDRB R6, [R3,#1]! .text:00045984 STR R3, [R11,#var_188] .text:00045988 B loc_458DC .text:0004598C ; --------------------------------------------------------------------------- .text:0004598C .text:0004598C loc_4598C ; CODE XREF: __strtod_internal+590j .text:0004598C ; __strtod_internal+5E4j .text:0004598C LDR R4, [R11,#var_1A0] .text:00045990 LDR R12, [R11,#var_18C] .text:00045994 CMP R4, #0 .text:00045998 CMPNE R12, #0 .text:0004599C BLE loc_45C68 .text:000459A0 CMP R4, #0 .text:000459A4 LDR R8, [R11,#var_188] .text:000459A8 BNE loc_459B4 .text:000459AC .text:000459AC loc_459AC ; CODE XREF: __strtod_internal+6C8j .text:000459AC ; __strtod_internal+778j ... .text:000459AC MOV R2, R8 .text:000459B0 B loc_45BD4 .text:000459B4 ; --------------------------------------------------------------------------- .text:000459B4 .text:000459B4 loc_459B4 ; CODE XREF: __strtod_internal+614j .text:000459B4 LDR R0, [R11,#var_19C] .text:000459B8 BL strlen .text:000459BC LDR LR, [R11,#var_188] .text:000459C0 CMP LR, R7 .text:000459C4 BLS loc_45BC8 .text:000459C8 .text:000459C8 loc_459C8 ; CODE XREF: __strtod_internal+830j .text:000459C8 SUB R12, R8, #1 .text:000459CC CMP R12, R7 .text:000459D0 LDR R4, [R11,#var_1A0] .text:000459D4 BCC loc_45A58 .text:000459D8 LDR R1, [R11,#var_19C] .text:000459DC SUB R10, R0, #2 .text:000459E0 LDRB R5, [R1] .text:000459E4 .text:000459E4 loc_459E4 ; CODE XREF: __strtod_internal+6C0j .text:000459E4 ADD R3, R0, R12 .text:000459E8 LDRB R2, [R3,#-1] .text:000459EC CMP R2, R5 .text:000459F0 BNE loc_45A4C .text:000459F4 LDR R3, [R11,#var_19C] .text:000459F8 MOV LR, #1 .text:000459FC LDRB R2, [R3,LR] .text:00045A00 CMP R2, #0 .text:00045A04 BEQ loc_45A3C .text:00045A08 LDRB R3, [R12,R10] .text:00045A0C CMP R2, R3 .text:00045A10 BNE loc_45A3C .text:00045A14 SUB R1, R0, #2 .text:00045A18 .text:00045A18 loc_45A18 ; CODE XREF: __strtod_internal+6A4j .text:00045A18 LDR R3, [R11,#var_19C] .text:00045A1C ADD LR, LR, #1 .text:00045A20 LDRB R2, [R3,LR] .text:00045A24 SUB R1, R1, #1 .text:00045A28 CMP R2, #0 .text:00045A2C BEQ loc_45A3C .text:00045A30 LDRB R3, [R12,R1] .text:00045A34 CMP R2, R3 .text:00045A38 BEQ loc_45A18 .text:00045A3C .text:00045A3C loc_45A3C ; CODE XREF: __strtod_internal+670j .text:00045A3C ; __strtod_internal+67Cj ... .text:00045A3C LDR R1, [R11,#var_19C] .text:00045A40 LDRB R3, [R1,LR] .text:00045A44 CMP R3, #0 .text:00045A48 BEQ loc_45A58 .text:00045A4C .text:00045A4C loc_45A4C ; CODE XREF: __strtod_internal+65Cj .text:00045A4C SUB R12, R12, #1 .text:00045A50 CMP R12, R7 .text:00045A54 BCS loc_459E4 .text:00045A58 .text:00045A58 loc_45A58 ; CODE XREF: __strtod_internal+640j .text:00045A58 ; __strtod_internal+6B4j .text:00045A58 CMP R12, R7 .text:00045A5C BCC loc_459AC .text:00045A60 LDR R2, [R11,#var_1A0] .text:00045A64 LDRB R1, [R2] .text:00045A68 RSB R2, R12, R8 .text:00045A6C ADD R3, R1, #1 .text:00045A70 CMP R2, R3 .text:00045A74 BNE loc_45BB4 .text:00045A78 SUB R10, R12, #1 .text:00045A7C .text:00045A7C loc_45A7C ; CODE XREF: __strtod_internal+774j .text:00045A7C ; __strtod_internal+814j .text:00045A7C ADD R4, R4, #1 .text:00045A80 MOV R3, R4 .text:00045A84 LDRB R2, [R3],#-1 .text:00045A88 CMP R2, #0 .text:00045A8C MOVEQ R4, R3 .text:00045A90 LDRB R1, [R4] .text:00045A94 SUB R12, R12, #1 .text:00045A98 CMP R1, #0xFF .text:00045A9C BNE loc_45B10 .text:00045AA0 CMP R12, R7 .text:00045AA4 BCC loc_45B04 .text:00045AA8 .text:00045AA8 loc_45AA8 ; CODE XREF: __strtod_internal+76Cj .text:00045AA8 LDR R3, [R11,#var_19C] .text:00045AAC LDRB R1, [R3] .text:00045AB0 MOV LR, #0 .text:00045AB4 CMP R1, LR .text:00045AB8 BEQ loc_45AE8 .text:00045ABC ADD R2, R0, R12 .text:00045AC0 B loc_45ADC .text:00045AC4 ; --------------------------------------------------------------------------- .text:00045AC4 .text:00045AC4 loc_45AC4 ; CODE XREF: __strtod_internal+750j .text:00045AC4 LDR R3, [R11,#var_19C] .text:00045AC8 ADD LR, LR, #1 .text:00045ACC LDRB R1, [R3,LR] .text:00045AD0 SUB R2, R2, #1 .text:00045AD4 CMP R1, #0 .text:00045AD8 BEQ loc_45AE8 .text:00045ADC .text:00045ADC loc_45ADC ; CODE XREF: __strtod_internal+72Cj .text:00045ADC LDRB R3, [R2,#-1] .text:00045AE0 CMP R1, R3 .text:00045AE4 BEQ loc_45AC4 .text:00045AE8 .text:00045AE8 loc_45AE8 ; CODE XREF: __strtod_internal+724j .text:00045AE8 ; __strtod_internal+744j .text:00045AE8 LDR R1, [R11,#var_19C] .text:00045AEC LDRB R3, [R1,LR] .text:00045AF0 CMP R3, #0 .text:00045AF4 BEQ loc_45B04 .text:00045AF8 SUB R12, R12, #1 .text:00045AFC CMP R12, R7 .text:00045B00 BCS loc_45AA8 .text:00045B04 .text:00045B04 loc_45B04 ; CODE XREF: __strtod_internal+710j .text:00045B04 ; __strtod_internal+760j .text:00045B04 CMP R12, R7 .text:00045B08 BCS loc_45A7C .text:00045B0C B loc_459AC .text:00045B10 ; --------------------------------------------------------------------------- .text:00045B10 .text:00045B10 loc_45B10 ; CODE XREF: __strtod_internal+708j .text:00045B10 CMP R12, R7 .text:00045B14 MOV R5, R12 .text:00045B18 BCC loc_45B7C .text:00045B1C .text:00045B1C loc_45B1C ; CODE XREF: __strtod_internal+7E4j .text:00045B1C LDR R2, [R11,#var_19C] .text:00045B20 LDRB R1, [R2] .text:00045B24 MOV LR, #0 .text:00045B28 CMP R1, LR .text:00045B2C BEQ loc_45B60 .text:00045B30 ADD R2, R0, R12 .text:00045B34 B loc_45B54 .text:00045B34 ; --------------------------------------------------------------------------- .text:00045B38 off_45B38 DCD __ctype_tolower ; DATA XREF: __strtod_internal+3C0r .text:00045B38 ; __strtod_internal+498r ... .text:00045B3C ; --------------------------------------------------------------------------- .text:00045B3C .text:00045B3C loc_45B3C ; CODE XREF: __strtod_internal+7C8j .text:00045B3C LDR R3, [R11,#var_19C] .text:00045B40 ADD LR, LR, #1 .text:00045B44 LDRB R1, [R3,LR] .text:00045B48 SUB R2, R2, #1 .text:00045B4C CMP R1, #0 .text:00045B50 BEQ loc_45B60 .text:00045B54 .text:00045B54 loc_45B54 ; CODE XREF: __strtod_internal+7A0j .text:00045B54 LDRB R3, [R2,#-1] .text:00045B58 CMP R1, R3 .text:00045B5C BEQ loc_45B3C .text:00045B60 .text:00045B60 loc_45B60 ; CODE XREF: __strtod_internal+798j .text:00045B60 ; __strtod_internal+7BCj .text:00045B60 LDR R1, [R11,#var_19C] .text:00045B64 LDRB R3, [R1,LR] .text:00045B68 CMP R3, #0 .text:00045B6C BEQ loc_45B7C .text:00045B70 SUB R12, R12, #1 .text:00045B74 CMP R12, R7 .text:00045B78 BCS loc_45B1C .text:00045B7C .text:00045B7C loc_45B7C ; CODE XREF: __strtod_internal+784j .text:00045B7C ; __strtod_internal+7D8j .text:00045B7C CMP R12, R7 .text:00045B80 BCS loc_45B94 .text:00045B84 LDRB R2, [R4] .text:00045B88 RSB R3, R12, R5 .text:00045B8C CMP R3, R2 .text:00045B90 BLE loc_459AC .text:00045B94 .text:00045B94 loc_45B94 ; CODE XREF: __strtod_internal+7ECj .text:00045B94 CMP R12, R7 .text:00045B98 BCC loc_45BAC .text:00045B9C LDRB R2, [R4] .text:00045BA0 RSB R3, R12, R5 .text:00045BA4 CMP R3, R2 .text:00045BA8 BEQ loc_45A7C .text:00045BAC .text:00045BAC loc_45BAC ; CODE XREF: __strtod_internal+804j .text:00045BAC MOV R8, R10 .text:00045BB0 B loc_45BC0 .text:00045BB4 ; --------------------------------------------------------------------------- .text:00045BB4 .text:00045BB4 loc_45BB4 ; CODE XREF: __strtod_internal+6E0j .text:00045BB4 ADDGT R3, R12, R1 .text:00045BB8 ADDGT R8, R3, #1 .text:00045BBC MOVLE R8, R12 .text:00045BC0 .text:00045BC0 loc_45BC0 ; CODE XREF: __strtod_internal+81Cj .text:00045BC0 CMP R8, R7 .text:00045BC4 BHI loc_459C8 .text:00045BC8 .text:00045BC8 loc_45BC8 ; CODE XREF: __strtod_internal+630j .text:00045BC8 CMP R8, R7 .text:00045BCC MOVCS R2, R8 .text:00045BD0 MOVCC R2, R7 .text:00045BD4 .text:00045BD4 loc_45BD4 ; CODE XREF: __strtod_internal+61Cj .text:00045BD4 LDR R3, [R11,#var_188] .text:00045BD8 CMP R3, R2 .text:00045BDC BEQ loc_45C68 .text:00045BE0 CMP R2, R7 .text:00045BE4 BNE loc_45BFC .text:00045BE8 LDR R4, [R11,#var_174] .text:00045BEC CMP R4, #0 .text:00045BF0 LDRNE R12, [R11,#var_170] .text:00045BF4 STRNE R12, [R4] .text:00045BF8 B loc_45C10 .text:00045BFC ; --------------------------------------------------------------------------- .text:00045BFC .text:00045BFC loc_45BFC ; CODE XREF: __strtod_internal+850j .text:00045BFC CMP R2, R9 .text:00045C00 BCS loc_45C18 .text:00045C04 LDR LR, [R11,#var_174] .text:00045C08 CMP LR, #0 .text:00045C0C STRNE R2, [LR] .text:00045C10 .text:00045C10 loc_45C10 ; CODE XREF: __strtod_internal+378j .text:00045C10 ; __strtod_internal+864j .text:00045C10 CDP p1, 0, c8,c0,c8, 4 .text:00045C14 B locret_48E2C .text:00045C18 ; --------------------------------------------------------------------------- .text:00045C18 .text:00045C18 loc_45C18 ; CODE XREF: __strtod_internal+86Cj .text:00045C18 STR R2, [R11,#var_188] .text:00045C1C MOV R0, #0 .text:00045C20 LDR R1, [R11,#var_188] .text:00045C24 MOV R2, R9 .text:00045C28 STR R0, [R11,#var_18C] .text:00045C2C CMP R9, R1 .text:00045C30 BCS loc_45C58 .text:00045C34 .text:00045C34 loc_45C34 ; CODE XREF: __strtod_internal+8C0j .text:00045C34 LDRB R3, [R2],#1 .text:00045C38 SUB R4, R11, #-var_18C .text:00045C3C LDMIA R4, {R4,R12} .text:00045C40 SUB R3, R3, #0x30 .text:00045C44 CMP R3, #9 .text:00045C48 ADDLS R4, R4, #1 .text:00045C4C CMP R2, R12 .text:00045C50 STR R4, [R11,#var_18C] .text:00045C54 BCC loc_45C34 .text:00045C58 .text:00045C58 loc_45C58 ; CODE XREF: __strtod_internal+89Cj .text:00045C58 LDR LR, [R11,#var_18C] .text:00045C5C STR LR, [R11,#var_190] .text:00045C60 MOV LR, #0 .text:00045C64 B loc_45FE4 .text:00045C68 ; --------------------------------------------------------------------------- .text:00045C68 .text:00045C68 loc_45C68 ; CODE XREF: __strtod_internal+608j .text:00045C68 ; __strtod_internal+848j .text:00045C68 LDR R0, [R11,#var_18C] .text:00045C6C STR R0, [R11,#var_190] .text:00045C70 MOV R4, #0 .text:00045C74 LDR R1, [R11,#var_194] .text:00045C78 CMP R0, #0 .text:00045C7C LDRB R2, [R1] .text:00045C80 MOVNE LR, #0 .text:00045C84 MOVEQ LR, 0xFFFFFFFF .text:00045C88 CMP R2, R4 .text:00045C8C BEQ loc_45CC4 .text:00045C90 LDR R12, [R11,#var_188] .text:00045C94 LDRB R3, [R12] .text:00045C98 CMP R2, R3 .text:00045C9C BNE loc_45CC4 .text:00045CA0 .text:00045CA0 loc_45CA0 ; CODE XREF: __strtod_internal+92Cj .text:00045CA0 LDR R0, [R11,#var_194] .text:00045CA4 ADD R4, R4, #1 .text:00045CA8 LDRB R2, [R0,R4] .text:00045CAC CMP R2, #0 .text:00045CB0 BEQ loc_45CC4 .text:00045CB4 LDR R1, [R11,#var_188] .text:00045CB8 LDRB R3, [R1,R4] .text:00045CBC CMP R2, R3 .text:00045CC0 BEQ loc_45CA0 .text:00045CC4 .text:00045CC4 loc_45CC4 ; CODE XREF: __strtod_internal+8F8j .text:00045CC4 ; __strtod_internal+908j ... .text:00045CC4 LDR R2, [R11,#var_194] .text:00045CC8 LDRB R3, [R2,R4] .text:00045CCC CMP R3, #0 .text:00045CD0 BNE loc_45D68 .text:00045CD4 LDR R3, [R11,#var_188] .text:00045CD8 LDR R4, [R11,#var_198] .text:00045CDC LDRB R6, [R3,R4]! .text:00045CE0 STR R3, [R11,#var_188] .text:00045CE4 SUB R3, R6, #0x30 .text:00045CE8 CMP R3, #9 .text:00045CEC BLS loc_45D18 .text:00045CF0 LDR R12, [R11,#var_17C] .text:00045CF4 CMP R12, #0x10 .text:00045CF8 BNE loc_45D68 .text:00045CFC .text:00045CFC loc_45CFC ; CODE XREF: __strtod_internal+9D0j .text:00045CFC LDR R3, =__ctype_tolower .text:00045D00 LDR R2, [R3] .text:00045D04 LDR R3, [R2,R6,LSL#2] .text:00045D08 CMP R3, #0x60 .text:00045D0C BLE loc_45D68 .text:00045D10 CMP R3, #0x66 .text:00045D14 BGT loc_45D68 .text:00045D18 .text:00045D18 loc_45D18 ; CODE XREF: __strtod_internal+958j .text:00045D18 ; __strtod_internal+9C4j .text:00045D18 CMN LR, #1 .text:00045D1C MOVNE R3, #0 .text:00045D20 MOVEQ R3, #1 .text:00045D24 CMP R6, #0x30 .text:00045D28 LDR R0, [R11,#var_18C] .text:00045D2C MOVEQ R3, #0 .text:00045D30 LDR R1, [R11,#var_190] .text:00045D34 CMP R3, #0 .text:00045D38 LDR R2, [R11,#var_188] .text:00045D3C SUBNE LR, R0, R1 .text:00045D40 LDRB R6, [R2,#1]! .text:00045D44 ADD R0, R0, #1 .text:00045D48 STR R0, [R11,#var_18C] .text:00045D4C SUB R3, R6, #0x30 .text:00045D50 CMP R3, #9 .text:00045D54 STR R2, [R11,#var_188] .text:00045D58 BLS loc_45D18 .text:00045D5C LDR R3, [R11,#var_17C] .text:00045D60 CMP R3, #0x10 .text:00045D64 BEQ loc_45CFC .text:00045D68 .text:00045D68 loc_45D68 ; CODE XREF: __strtod_internal+93Cj .text:00045D68 ; __strtod_internal+964j ... .text:00045D68 LDR R4, [R11,#var_17C] .text:00045D6C LDR R0, [R11,#var_188] .text:00045D70 CMP R4, #0x10 .text:00045D74 BNE loc_45D8C .text:00045D78 LDR R3, =__ctype_tolower .text:00045D7C LDR R2, [R3] .text:00045D80 LDR R1, [R2,R6,LSL#2] .text:00045D84 CMP R1, #0x70 .text:00045D88 BEQ loc_45DAC .text:00045D8C .text:00045D8C loc_45D8C ; CODE XREF: __strtod_internal+9E0j .text:00045D8C LDR R12, [R11,#var_17C] .text:00045D90 CMP R12, #0x10 .text:00045D94 BEQ loc_45F18 .text:00045D98 LDR R3, =__ctype_tolower .text:00045D9C LDR R2, [R3] .text:00045DA0 LDR R1, [R2,R6,LSL#2] .text:00045DA4 CMP R1, #0x65 .text:00045DA8 BNE loc_45F18 .text:00045DAC .text:00045DAC loc_45DAC ; CODE XREF: __strtod_internal+9F4j .text:00045DAC LDR R1, [R11,#var_188] .text:00045DB0 LDRB R6, [R1,#1]! .text:00045DB4 MOV R4, #0 .text:00045DB8 CMP R6, #0x2D .text:00045DBC STR R1, [R11,#var_188] .text:00045DC0 LDREQB R6, [R1,#1]! .text:00045DC4 ADDEQ R4, R4, #1 .text:00045DC8 STREQ R1, [R11,#var_188] .text:00045DCC BEQ loc_45DE0 .text:00045DD0 CMP R6, #0x2B .text:00045DD4 LDREQ R2, [R11,#var_188] .text:00045DD8 LDREQB R6, [R2,#1]! .text:00045DDC STREQ R2, [R11,#var_188] .text:00045DE0 .text:00045DE0 loc_45DE0 ; CODE XREF: __strtod_internal+A38j .text:00045DE0 SUB R3, R6, #0x30 .text:00045DE4 CMP R3, #9 .text:00045DE8 BHI loc_45F14 .text:00045DEC LDR R3, [R11,#var_17C] .text:00045DF0 CMP R3, #0x10 .text:00045DF4 BNE loc_45E24 .text:00045DF8 CMP R4, #0 .text:00045DFC BEQ loc_45E14 .text:00045E00 MOV R3, #0x430 .text:00045E04 LDR R1, [R11,#var_190] .text:00045E08 ADD R3, R3, #2 .text:00045E0C ADD R12, R3, R1,LSL#2 .text:00045E10 B loc_45E3C .text:00045E14 ; --------------------------------------------------------------------------- .text:00045E14 .text:00045E14 loc_45E14 ; CODE XREF: __strtod_internal+A68j .text:00045E14 LDR R2, [R11,#var_190] .text:00045E18 ADD R3, LR, #0x400 .text:00045E1C SUB R12, R3, R2,LSL#2 .text:00045E20 B loc_45E3C .text:00045E24 ; --------------------------------------------------------------------------- .text:00045E24 .text:00045E24 loc_45E24 ; CODE XREF: __strtod_internal+A60j .text:00045E24 CMP R4, #0 .text:00045E28 LDRNE R3, [R11,#var_190] .text:00045E2C ADDNE R12, R3, #0x168 .text:00045E30 LDREQ R1, [R11,#var_190] .text:00045E34 ADDEQ R3, LR, #0x134 .text:00045E38 RSBEQ R12, R1, R3 .text:00045E3C .text:00045E3C loc_45E3C ; CODE XREF: __strtod_internal+A7Cj .text:00045E3C ; __strtod_internal+A8Cj ... .text:00045E3C LDR R3, [R11,#var_16C] .text:00045E40 ADD R3, R3, R3,LSL#2 .text:00045E44 MOV R3, R3,LSL#1 .text:00045E48 CMP R3, R12 .text:00045E4C STR R3, [R11,#var_16C] .text:00045E50 BLE loc_45ED8 .text:00045E54 CMN LR, #1 .text:00045E58 BNE loc_45E70 .text:00045E5C LDR R2, [R11,#var_178] .text:00045E60 CMP R2, #0 .text:00045E64 CDPNE p1, 1, c8,c0,c8, 4 .text:00045E68 CDPEQ p1, 0, c8,c0,c8, 4 .text:00045E6C B loc_45EAC .text:00045E70 ; --------------------------------------------------------------------------- .text:00045E70 .text:00045E70 loc_45E70 ; CODE XREF: __strtod_internal+AC4j .text:00045E70 BL __errno_location .text:00045E74 CMP R4, #0 .text:00045E78 MOV R3, #0x22 .text:00045E7C STR R3, [R0] .text:00045E80 BNE loc_45EA8 .text:00045E84 LDR R3, [R11,#var_178] .text:00045E88 CMP R3, #0 .text:00045E8C LDRNE R3, =dword_61B60 .text:00045E90 LDCNE p1, c8, [R3] .text:00045E94 CDPNE p1, 1, c8,c0,c0, 4 .text:00045E98 BNE loc_45EAC .text:00045E9C LDR R3, =dword_61B68 .text:00045EA0 LDC p1, c8, [R3] .text:00045EA4 B loc_45EAC .text:00045EA8 ; --------------------------------------------------------------------------- .text:00045EA8 .text:00045EA8 loc_45EA8 ; CODE XREF: __strtod_internal+AECj .text:00045EA8 CDP p1, 0, c8,c0,c8, 4 .text:00045EAC .text:00045EAC loc_45EAC ; CODE XREF: __strtod_internal+AD8j .text:00045EAC ; __strtod_internal+B04j ... .text:00045EAC LDR R4, [R11,#var_188] .text:00045EB0 LDRB R3, [R4,#1]! .text:00045EB4 SUB R3, R3, #0x30 .text:00045EB8 CMP R3, #9 .text:00045EBC STR R4, [R11,#var_188] .text:00045EC0 BLS loc_45EAC .text:00045EC4 LDR R12, [R11,#var_174] .text:00045EC8 CMP R12, #0 .text:00045ECC BEQ locret_48E2C .text:00045ED0 STR R4, [R12] .text:00045ED4 B locret_48E2C .text:00045ED8 ; --------------------------------------------------------------------------- .text:00045ED8 .text:00045ED8 loc_45ED8 ; CODE XREF: __strtod_internal+ABCj .text:00045ED8 LDR R3, [R11,#var_16C] .text:00045EDC SUB R3, R3, #0x30 .text:00045EE0 ADD R3, R3, R6 .text:00045EE4 STR R3, [R11,#var_16C] .text:00045EE8 LDR R1, [R11,#var_188] .text:00045EEC LDRB R6, [R1,#1]! .text:00045EF0 STR R1, [R11,#var_188] .text:00045EF4 MOV R1, R3 .text:00045EF8 SUB R2, R6, #0x30 .text:00045EFC CMP R2, #9 .text:00045F00 BLS loc_45E3C .text:00045F04 CMP R4, #0 .text:00045F08 RSBNE R3, R1, #0 .text:00045F0C STRNE R3, [R11,#var_16C] .text:00045F10 B loc_45F18 .text:00045F14 ; --------------------------------------------------------------------------- .text:00045F14 .text:00045F14 loc_45F14 ; CODE XREF: __strtod_internal+A54j .text:00045F14 STR R0, [R11,#var_188] .text:00045F18 .text:00045F18 loc_45F18 ; CODE XREF: __strtod_internal+A00j .text:00045F18 ; __strtod_internal+A14j ... .text:00045F18 LDR R2, [R11,#var_18C] .text:00045F1C LDR R3, [R11,#var_190] .text:00045F20 CMP R2, R3 .text:00045F24 BLE loc_45F50 .text:00045F28 LDRB R3, [R0,#-1] .text:00045F2C CMP R3, #0x30 .text:00045F30 BNE loc_45F50 .text:00045F34 .text:00045F34 loc_45F34 ; CODE XREF: __strtod_internal+BB8j .text:00045F34 LDR R4, [R11,#var_18C] .text:00045F38 SUB R0, R0, #1 .text:00045F3C LDRB R3, [R0,#-1] .text:00045F40 SUB R4, R4, #1 .text:00045F44 CMP R3, #0x30 .text:00045F48 STR R4, [R11,#var_18C] .text:00045F4C BEQ loc_45F34 .text:00045F50 .text:00045F50 loc_45F50 ; CODE XREF: __strtod_internal+B90j .text:00045F50 ; __strtod_internal+B9Cj .text:00045F50 LDR R12, [R11,#var_190] .text:00045F54 LDR R1, [R11,#var_18C] .text:00045F58 CMP R12, #0 .text:00045F5C MOVLE R3, #0 .text:00045F60 MOVGT R3, #1 .text:00045F64 CMP R1, R12 .text:00045F68 MOVNE R3, #0 .text:00045F6C CMP R3, #0 .text:00045F70 BEQ loc_45FE4 .text:00045F74 LDR R3, [R11,#var_16C] .text:00045F78 CMP R3, #0 .text:00045F7C BGE loc_45FE4 .text:00045F80 B loc_45F88 .text:00045F84 ; --------------------------------------------------------------------------- .text:00045F84 .text:00045F84 loc_45F84 ; CODE XREF: __strtod_internal+C00j .text:00045F84 SUB R0, R0, #1 .text:00045F88 .text:00045F88 loc_45F88 ; CODE XREF: __strtod_internal+BECj .text:00045F88 ; __strtod_internal+C4Cj .text:00045F88 LDRB R3, [R0,#-1] .text:00045F8C SUB R3, R3, #0x30 .text:00045F90 CMP R3, #9 .text:00045F94 BHI loc_45F84 .text:00045F98 LDRB R3, [R0,#-1] .text:00045F9C CMP R3, #0x30 .text:00045FA0 BNE loc_45FE4 .text:00045FA4 LDR R2, [R11,#var_18C] .text:00045FA8 LDR R3, [R11,#var_190] .text:00045FAC SUB R2, R2, #1 .text:00045FB0 STR R2, [R11,#var_18C] .text:00045FB4 SUB R3, R3, #1 .text:00045FB8 STR R3, [R11,#var_190] .text:00045FBC LDR R2, [R11,#var_16C] .text:00045FC0 SUB R0, R0, #1 .text:00045FC4 LDR R4, [R11,#var_18C] .text:00045FC8 ADD R2, R2, #1 .text:00045FCC CMP R4, #0 .text:00045FD0 MOVLE R3, #0 .text:00045FD4 MOVGT R3, R2,LSR#31 .text:00045FD8 CMP R3, #0 .text:00045FDC STR R2, [R11,#var_16C] .text:00045FE0 BNE loc_45F88 .text:00045FE4 .text:00045FE4 loc_45FE4 ; CODE XREF: __strtod_internal+8D0j .text:00045FE4 ; __strtod_internal+BDCj ... .text:00045FE4 LDR R12, [R11,#var_174] .text:00045FE8 CMP R12, #0 .text:00045FEC LDRNE R0, [R11,#var_188] .text:00045FF0 STRNE R0, [R12] .text:00045FF4 LDR R1, [R11,#var_18C] .text:00045FF8 CMP R1, #0 .text:00045FFC BNE loc_46014 .text:00046000 LDR R2, [R11,#var_178] .text:00046004 CMP R2, #0 .text:00046008 CDPNE p1, 1, c8,c0,c8, 4 .text:0004600C CDPEQ p1, 0, c8,c0,c8, 4 .text:00046010 B locret_48E2C .text:00046014 ; --------------------------------------------------------------------------- .text:00046014 .text:00046014 loc_46014 ; CODE XREF: __strtod_internal+C68j .text:00046014 CMP LR, #0 .text:00046018 BEQ loc_460CC .text:0004601C LDR R3, [R11,#var_194] .text:00046020 LDRB R5, [R3] .text:00046024 .text:00046024 loc_46024 ; CODE XREF: __strtod_internal+D04j .text:00046024 LDRB R3, [R9] .text:00046028 CMP R3, R5 .text:0004602C BNE loc_46094 .text:00046030 LDR R12, [R11,#var_194] .text:00046034 LDR R1, [R11,#var_16C] .text:00046038 LDR R3, [R11,#var_198] .text:0004603C MOV R4, #1 .text:00046040 LDRB R2, [R12,R4] .text:00046044 ADD R0, LR, R3 .text:00046048 LDR R3, [R11,#var_18C] .text:0004604C CMP R2, #0 .text:00046050 RSB R12, LR, R3 .text:00046054 BEQ loc_46084 .text:00046058 LDRB R3, [R9,#1] .text:0004605C CMP R2, R3 .text:00046060 BNE loc_46084 .text:00046064 .text:00046064 loc_46064 ; CODE XREF: __strtod_internal+CECj .text:00046064 LDR R3, [R11,#var_194] .text:00046068 ADD R4, R4, #1 .text:0004606C LDRB R2, [R3,R4] .text:00046070 CMP R2, #0 .text:00046074 BEQ loc_46084 .text:00046078 LDRB R3, [R9,R4] .text:0004607C CMP R2, R3 .text:00046080 BEQ loc_46064 .text:00046084 .text:00046084 loc_46084 ; CODE XREF: __strtod_internal+CC0j .text:00046084 ; __strtod_internal+CCCj ... .text:00046084 LDR R2, [R11,#var_194] .text:00046088 LDRB R3, [R2,R4] .text:0004608C CMP R3, #0 .text:00046090 BEQ loc_4609C .text:00046094 .text:00046094 loc_46094 ; CODE XREF: __strtod_internal+C98j .text:00046094 ADD R9, R9, #1 .text:00046098 B loc_46024 .text:0004609C ; --------------------------------------------------------------------------- .text:0004609C .text:0004609C loc_4609C ; CODE XREF: __strtod_internal+CFCj .text:0004609C LDR R3, [R11,#var_17C] .text:000460A0 ADD R9, R9, R0 .text:000460A4 CMP R3, #0x10 .text:000460A8 BNE loc_460C0 .text:000460AC SUB R3, R1, LR,LSL#2 .text:000460B0 B loc_460C4 .text:000460B0 ; --------------------------------------------------------------------------- .text:000460B4 off_460B4 DCD __ctype_tolower ; DATA XREF: __strtod_internal:loc_45CFCr .text:000460B4 ; __strtod_internal+9E4r ... .text:000460B8 off_460B8 DCD dword_61B60 ; DATA XREF: __strtod_internal+AF8r .text:000460BC off_460BC DCD dword_61B68 ; DATA XREF: __strtod_internal+B08r .text:000460C0 ; --------------------------------------------------------------------------- .text:000460C0 .text:000460C0 loc_460C0 ; CODE XREF: __strtod_internal+D14j .text:000460C0 RSB R3, LR, R1 .text:000460C4 .text:000460C4 loc_460C4 ; CODE XREF: __strtod_internal+D1Cj .text:000460C4 STR R3, [R11,#var_16C] .text:000460C8 STR R12, [R11,#var_18C] .text:000460CC .text:000460CC loc_460CC ; CODE XREF: __strtod_internal+C84j .text:000460CC LDR R4, [R11,#var_17C] .text:000460D0 CMP R4, #0x10 .text:000460D4 BNE loc_467E4 .text:000460D8 LDRB R3, [R9] .text:000460DC LDR R12, =__ctype_b .text:000460E0 MOV R5, #1 .text:000460E4 LDR R1, [R12] .text:000460E8 MOV R3, R3,LSL R5 .text:000460EC ADD R3, R3, R1 .text:000460F0 LDRB R2, [R3,#1] .text:000460F4 SUB R10, R11, #-var_164 .text:000460F8 LDR LR, [R11,#var_18C] .text:000460FC TST R2, #0x10 .text:00046100 LDR R2, [R11,#var_190] .text:00046104 SUB R0, LR, #1 .text:00046108 SUB R6, R2, #1 .text:0004610C BNE loc_46128 .text:00046110 .text:00046110 loc_46110 ; CODE XREF: __strtod_internal+D90j .text:00046110 LDRB R3, [R9,#1]! .text:00046114 MOV R3, R3,LSL#1 .text:00046118 ADD R3, R3, R1 .text:0004611C LDRB R2, [R3,#1] .text:00046120 TST R2, #0x10 .text:00046124 BEQ loc_46110 .text:00046128 .text:00046128 loc_46128 ; CODE XREF: __strtod_internal+D78j .text:00046128 LDRB R3, [R9] .text:0004612C MOV R4, R5,LSL#2 .text:00046130 CMP R3, #0x30 .text:00046134 BNE loc_46144 .text:00046138 .text:00046138 loc_46138 ; CODE XREF: __strtod_internal+DACj .text:00046138 LDRB R3, [R9,#1]! .text:0004613C CMP R3, #0x30 .text:00046140 BEQ loc_46138 .text:00046144 .text:00046144 loc_46144 ; CODE XREF: __strtod_internal+DA0j .text:00046144 LDR LR, =__ctype_b .text:00046148 LDRB R12, [R9] .text:0004614C LDR R3, [LR] .text:00046150 MOV R2, R12,LSL#1 .text:00046154 ADD R2, R2, R3 .text:00046158 LDRB R1, [R2,#1] .text:0004615C TST R1, #8 .text:00046160 SUBNE LR, R12, #0x30 .text:00046164 ADDNE R9, R9, #1 .text:00046168 BNE loc_46180 .text:0004616C LDR R3, =__ctype_tolower .text:00046170 LDR R2, [R3] .text:00046174 LDR R1, [R2,R12,LSL#2] .text:00046178 ADD R9, R9, #1 .text:0004617C SUB LR, R1, #0x57 .text:00046180 .text:00046180 loc_46180 ; CODE XREF: __strtod_internal+DD4j .text:00046180 LDR R3, =nbits.138_0 .text:00046184 LDR R3, [R3,LR,LSL#2] .text:00046188 RSB R2, R3, #0x14 .text:0004618C STR R3, [R11,#var_184] .text:00046190 ADD R3, R2, #1 .text:00046194 MOV R3, LR,LSL R3 .text:00046198 STR R3, [R4,R10] .text:0004619C CMP R0, #0 .text:000461A0 STR R0, [R11,#var_18C] .text:000461A4 MOV R12, R2 .text:000461A8 MOV R3, R6,LSL#2 .text:000461AC LDR R0, [R11,#var_184] .text:000461B0 SUB R3, R3, #1 .text:000461B4 LDR R2, [R11,#var_16C] .text:000461B8 ADD R3, R0, R3 .text:000461BC ADD R2, R2, R3 .text:000461C0 STR R2, [R11,#var_16C] .text:000461C4 BLE loc_4653C .text:000461C8 CMP R5, #0 .text:000461CC BLT loc_4653C .text:000461D0 MOV R4, R10 .text:000461D4 .text:000461D4 loc_461D4 ; CODE XREF: __strtod_internal+11A4j .text:000461D4 LDRB R3, [R9] .text:000461D8 LDR R2, =__ctype_b .text:000461DC LDR LR, [R11,#var_198] .text:000461E0 LDR R1, [R2] .text:000461E4 MOV R3, R3,LSL#1 .text:000461E8 ADD R3, R3, R1 .text:000461EC LDRB R2, [R3,#1] .text:000461F0 ADD R3, R9, LR .text:000461F4 TST R2, #0x10 .text:000461F8 MOVEQ R9, R3 .text:000461FC LDRB R0, [R9] .text:00046200 MOV R3, R0,LSL#1 .text:00046204 ADD R3, R3, R1 .text:00046208 LDRB R2, [R3,#1] .text:0004620C TST R2, #8 .text:00046210 SUBNE LR, R0, #0x30 .text:00046214 ADDNE R9, R9, #1 .text:00046218 BNE loc_46230 .text:0004621C LDR R3, =__ctype_tolower .text:00046220 LDR R2, [R3] .text:00046224 LDR R1, [R2,R0,LSL#2] .text:00046228 ADD R9, R9, #1 .text:0004622C SUB LR, R1, #0x57 .text:00046230 .text:00046230 loc_46230 ; CODE XREF: __strtod_internal+E84j .text:00046230 ADD R3, R12, #1 .text:00046234 CMP R3, #3 .text:00046238 BLE loc_46258 .text:0004623C MOV R1, R5,LSL#2 .text:00046240 SUB R2, R12, #3 .text:00046244 LDR R3, [R1,R4] .text:00046248 SUB R12, R12, #4 .text:0004624C ORR R3, R3, LR,LSL R2 .text:00046250 STR R3, [R1,R4] .text:00046254 B loc_46520 .text:00046258 ; --------------------------------------------------------------------------- .text:00046258 .text:00046258 loc_46258 ; CODE XREF: __strtod_internal+EA4j .text:00046258 MOV R0, R5,LSL#2 .text:0004625C SUBS R5, R5, #1 .text:00046260 RSB R3, R12, #3 .text:00046264 LDR R1, [R0,R4] .text:00046268 ADD R2, R12, #0x1D .text:0004626C ORR R1, R1, LR,LSR R3 .text:00046270 MOV LR, LR,LSL R2 .text:00046274 STR R1, [R0,R4] .text:00046278 BPL loc_46518 .text:0004627C MOV R7, LR .text:00046280 MOV R8, #0x1F .text:00046284 MOV R3, 0xFFFFFC03 .text:00046288 LDR R0, [R11,#var_18C] .text:0004628C SUB R3, R3, #1 .text:00046290 LDR R4, [R11,#var_16C] .text:00046294 CMP R0, #0 .text:00046298 MOVLE R6, #0 .text:0004629C MOVGT R6, #1 .text:000462A0 CMP R4, R3 .text:000462A4 BGE loc_463EC .text:000462A8 RSB R12, R4, #0xFC000002 .text:000462AC ADD R12, R12, #0x3FC0000 .text:000462B0 ADD R12, R12, #0x3FC00 .text:000462B4 CMP R12, #0x35 .text:000462B8 BGT loc_48B84 .text:000462BC BICS R1, LR, #0x80000000 .text:000462C0 ORRNE R6, R6, #1 .text:000462C4 CMP R12, #0x35 .text:000462C8 BNE loc_4630C .text:000462CC MOV R8, #0x14 .text:000462D0 MOV R2, #0 .text:000462D4 LDR R7, [R10,#4] .text:000462D8 .text:000462D8 loc_462D8 ; CODE XREF: __strtod_internal+F58j .text:000462D8 LDR R3, [R10,R2,LSL#2] .text:000462DC ADD R2, R2, #1 .text:000462E0 CMP R3, #0 .text:000462E4 ORRNE R6, R6, #1 .text:000462E8 CMP R2, #1 .text:000462EC BLE loc_462D8 .text:000462F0 MOV R1, #0 .text:000462F4 ADD R3, R10, #4 .text:000462F8 MOV R2, R10 .text:000462FC .text:000462FC loc_462FC ; CODE XREF: __strtod_internal+F70j .text:000462FC STR R1, [R3],#-4 .text:00046300 CMP R3, R2 .text:00046304 BGE loc_462FC .text:00046308 B loc_463E4 .text:0004630C ; --------------------------------------------------------------------------- .text:0004630C .text:0004630C loc_4630C ; CODE XREF: __strtod_internal+F34j .text:0004630C CMP R12, #0x1F .text:00046310 BLE loc_463C0 .text:00046314 SUB R3, R12, #1 .text:00046318 CMP R3, #0 .text:0004631C ADDLT R2, R3, #0x1F .text:00046320 MOVGE R2, R3 .text:00046324 MOV R2, R2,ASR#5 .text:00046328 SUB R8, R3, R2,LSL#5 .text:0004632C MOV R1, #0 .text:00046330 CMP R1, R2 .text:00046334 MOV LR, R12,ASR#31 .text:00046338 LDR R7, [R10,R2,LSL#2] .text:0004633C BGE loc_46358 .text:00046340 .text:00046340 loc_46340 ; CODE XREF: __strtod_internal+FC0j .text:00046340 LDR R3, [R10,R1,LSL#2] .text:00046344 ADD R1, R1, #1 .text:00046348 CMP R3, #0 .text:0004634C ORRNE R6, R6, #1 .text:00046350 CMP R1, R2 .text:00046354 BLT loc_46340 .text:00046358 .text:00046358 loc_46358 ; CODE XREF: __strtod_internal+FA8j .text:00046358 MOV R2, #1 .text:0004635C MOV R3, R2,LSL R8 .text:00046360 SUB R3, R3, #1 .text:00046364 TST R7, R3 .text:00046368 ORRNE R6, R6, #1 .text:0004636C MOV R0, R10 .text:00046370 MOV R3, LR,LSR#27 .text:00046374 ADD R3, R12, R3 .text:00046378 MOV R4, R3,ASR#5 .text:0004637C ADD R1, R10, R4,LSL#2 .text:00046380 RSB R5, R4, #2 .text:00046384 MOV R2, R5 .text:00046388 SUB R3, R12, R4,LSL#5 .text:0004638C BL __mpn_rshift .text:00046390 MOV R1, #0 .text:00046394 CMP R1, R4 .text:00046398 BGE loc_463E4 .text:0004639C MOV R0, R4 .text:000463A0 ADD R2, R10, R5,LSL#2 .text:000463A4 MOV R12, R1 .text:000463A8 .text:000463A8 loc_463A8 ; CODE XREF: __strtod_internal+1024j .text:000463A8 MOV R3, R1,LSL#2 .text:000463AC ADD R1, R1, #1 .text:000463B0 CMP R1, R0 .text:000463B4 STR R12, [R3,R2] .text:000463B8 BLT loc_463A8 .text:000463BC B loc_463E4 .text:000463C0 ; --------------------------------------------------------------------------- .text:000463C0 .text:000463C0 loc_463C0 ; CODE XREF: __strtod_internal+F7Cj .text:000463C0 CMP R12, #0 .text:000463C4 BLE loc_463E4 .text:000463C8 SUB R8, R12, #1 .text:000463CC MOV R0, R10 .text:000463D0 MOV R1, R10 .text:000463D4 MOV R2, #2 .text:000463D8 MOV R3, R12 .text:000463DC LDR R7, [R11,#var_164] .text:000463E0 BL __mpn_rshift .text:000463E4 .text:000463E4 loc_463E4 ; CODE XREF: __strtod_internal+F74j .text:000463E4 ; __strtod_internal+1004j ... .text:000463E4 MOV R4, 0xFFFFFC01 .text:000463EC .text:000463EC loc_463EC ; CODE XREF: __strtod_internal+F10j .text:000463EC MOV R3, R7,LSR R8 .text:000463F0 TST R3, #1 .text:000463F4 BEQ loc_464EC .text:000463F8 CMP R6, #0 .text:000463FC LDR R2, [R10] .text:00046400 BNE loc_46420 .text:00046404 TST R2, #1 .text:00046408 BNE loc_46420 .text:0004640C MOV R12, #1 .text:00046410 MOV R3, R12,LSL R8 .text:00046414 SUB R3, R3, #1 .text:00046418 TST R7, R3 .text:0004641C BEQ loc_464EC .text:00046420 .text:00046420 loc_46420 ; CODE XREF: __strtod_internal+106Cj .text:00046420 ; __strtod_internal+1074j .text:00046420 MOV R1, #2 .text:00046424 ADD R0, R10, #4 .text:00046428 MOV R12, R0 .text:0004642C ADD R3, R2, #1 .text:00046430 CMP R3, R2 .text:00046434 STR R3, [R10] .text:00046438 BCS loc_4646C .text:0004643C SUB R1, R1, #1 .text:00046440 .text:00046440 loc_46440 ; CODE XREF: __strtod_internal+10C4j .text:00046440 LDR R3, [R0],#4 .text:00046444 ADD R2, R3, #1 .text:00046448 CMP R2, #0 .text:0004644C STR R2, [R12],#4 .text:00046450 BNE loc_4646C .text:00046454 SUBS R1, R1, #1 .text:00046458 BNE loc_46440 .text:0004645C B loc_46498 .text:0004645C ; --------------------------------------------------------------------------- .text:00046460 off_46460 DCD __ctype_b ; DATA XREF: __strtod_internal+D48r .text:00046460 ; __strtod_internal:loc_46144r ... .text:00046464 off_46464 DCD __ctype_tolower ; DATA XREF: __strtod_internal+DD8r .text:00046464 ; __strtod_internal+E88r .text:00046468 off_46468 DCD nbits.138_0 ; DATA XREF: __strtod_internal:loc_46180r .text:0004646C ; --------------------------------------------------------------------------- .text:0004646C .text:0004646C loc_4646C ; CODE XREF: __strtod_internal+10A4j .text:0004646C ; __strtod_internal+10BCj .text:0004646C CMP R12, R0 .text:00046470 BEQ loc_46498 .text:00046474 MOV R2, #0 .text:00046478 SUB R1, R1, #1 .text:0004647C CMP R2, R1 .text:00046480 BGE loc_46498 .text:00046484 .text:00046484 loc_46484 ; CODE XREF: __strtod_internal+1100j .text:00046484 LDR R3, [R0,R2,LSL#2] .text:00046488 STR R3, [R12,R2,LSL#2] .text:0004648C ADD R2, R2, #1 .text:00046490 CMP R2, R1 .text:00046494 BLT loc_46484 .text:00046498 .text:00046498 loc_46498 ; CODE XREF: __strtod_internal+10C8j .text:00046498 ; __strtod_internal+10DCj ... .text:00046498 LDR R2, [R10,#4] .text:0004649C TST R2, #0x200000 .text:000464A0 BEQ loc_464CC .text:000464A4 MOV R0, R10 .text:000464A8 MOV R1, R10 .text:000464AC MOV R2, #2 .text:000464B0 MOV R3, #1 .text:000464B4 BL __mpn_rshift .text:000464B8 LDR R3, [R10,#4] .text:000464BC ADD R4, R4, #1 .text:000464C0 ORR R3, R3, #0x100000 .text:000464C4 STR R3, [R10,#4] .text:000464C8 B loc_464EC .text:000464CC ; --------------------------------------------------------------------------- .text:000464CC .text:000464CC loc_464CC ; CODE XREF: __strtod_internal+110Cj .text:000464CC MOV R3, 0xFFFFFC01 .text:000464D4 CMP R4, R3 .text:000464D8 BNE loc_464EC .text:000464DC TST R2, #0x100000 .text:000464E0 MOV R3, 0xFFFFFC02 .text:000464E8 MOVNE R4, R3 .text:000464EC .text:000464EC loc_464EC ; CODE XREF: __strtod_internal+1060j .text:000464EC ; __strtod_internal+1088j ... .text:000464EC CMP R4, #0x400 .text:000464F0 BLE loc_48E0C .text:000464F4 LDR LR, [R11,#var_178] .text:000464F8 CMP LR, #0 .text:000464FC LDRNE R3, =dword_61B2C .text:00046500 LDCNE p1, c8, [R3] .text:00046504 CDPNE p1, 1, c8,c0,c0, 4 .text:00046508 BNE loc_48E1C .text:0004650C LDR R3, =dword_61B34 .text:00046510 LDC p1, c8, [R3] .text:00046514 B loc_48E1C .text:00046518 ; --------------------------------------------------------------------------- .text:00046518 .text:00046518 loc_46518 ; CODE XREF: __strtod_internal+EE4j .text:00046518 ADD R12, R12, #0x1C .text:0004651C STR LR, [R10,R5,LSL#2] .text:00046520 .text:00046520 loc_46520 ; CODE XREF: __strtod_internal+EC0j .text:00046520 LDR R0, [R11,#var_18C] .text:00046524 SUB R0, R0, #1 .text:00046528 CMP R0, #0 .text:0004652C STR R0, [R11,#var_18C] .text:00046530 BLE loc_4653C .text:00046534 CMP R5, #0 .text:00046538 BGE loc_461D4 .text:0004653C .text:0004653C loc_4653C ; CODE XREF: __strtod_internal+E30j .text:0004653C ; __strtod_internal+E38j ... .text:0004653C MOV R2, #0 .text:00046540 CMP R2, R5 .text:00046544 BGE loc_46564 .text:00046548 MOV R1, R10 .text:0004654C MOV R0, R2 .text:00046550 .text:00046550 loc_46550 ; CODE XREF: __strtod_internal+11CCj .text:00046550 MOV R3, R2,LSL#2 .text:00046554 ADD R2, R2, #1 .text:00046558 CMP R2, R5 .text:0004655C STR R0, [R3,R1] .text:00046560 BLT loc_46550 .text:00046564 .text:00046564 loc_46564 ; CODE XREF: __strtod_internal+11B0j .text:00046564 MOV R1, #0 .text:00046568 MOV R6, R1 .text:0004656C MOV R8, R6 .text:00046570 MOV R7, R6 .text:00046574 MOV R3, 0xFFFFFC03 .text:00046578 LDR R4, [R11,#var_16C] .text:0004657C SUB R3, R3, #1 .text:00046580 CMP R4, R3 .text:00046584 BGE loc_466C4 .text:00046588 RSB R12, R4, #0xFC000002 .text:0004658C ADD R12, R12, #0x3FC0000 .text:00046590 ADD R12, R12, #0x3FC00 .text:00046594 CMP R12, #0x35 .text:00046598 BGT loc_48B84 .text:0004659C MOV R7, R6 .text:000465A0 CMP R12, #0x35 .text:000465A4 BNE loc_465E8 .text:000465A8 MOV R8, #0x14 .text:000465AC MOV R2, R1 .text:000465B0 LDR R6, [R10,#4] .text:000465B4 .text:000465B4 loc_465B4 ; CODE XREF: __strtod_internal+1234j .text:000465B4 LDR R3, [R10,R2,LSL#2] .text:000465B8 ADD R2, R2, #1 .text:000465BC CMP R3, #0 .text:000465C0 ORRNE R7, R7, #1 .text:000465C4 CMP R2, #1 .text:000465C8 BLE loc_465B4 .text:000465CC MOV R1, #0 .text:000465D0 ADD R3, R10, #4 .text:000465D4 MOV R2, R10 .text:000465D8 .text:000465D8 loc_465D8 ; CODE XREF: __strtod_internal+124Cj .text:000465D8 STR R1, [R3],#-4 .text:000465DC CMP R3, R2 .text:000465E0 BGE loc_465D8 .text:000465E4 B loc_466BC .text:000465E8 ; --------------------------------------------------------------------------- .text:000465E8 .text:000465E8 loc_465E8 ; CODE XREF: __strtod_internal+1210j .text:000465E8 CMP R12, #0x1F .text:000465EC BLE loc_46698 .text:000465F0 SUB R3, R12, #1 .text:000465F4 CMP R3, #0 .text:000465F8 ADDLT R2, R3, #0x1F .text:000465FC MOVGE R2, R3 .text:00046600 MOV R2, R2,ASR#5 .text:00046604 SUB R8, R3, R2,LSL#5 .text:00046608 CMP R7, R2 .text:0004660C MOV LR, R12,ASR#31 .text:00046610 LDR R6, [R10,R2,LSL#2] .text:00046614 BGE loc_46630 .text:00046618 .text:00046618 loc_46618 ; CODE XREF: __strtod_internal+1298j .text:00046618 LDR R3, [R10,R1,LSL#2] .text:0004661C ADD R1, R1, #1 .text:00046620 CMP R3, #0 .text:00046624 ORRNE R7, R7, #1 .text:00046628 CMP R1, R2 .text:0004662C BLT loc_46618 .text:00046630 .text:00046630 loc_46630 ; CODE XREF: __strtod_internal+1280j .text:00046630 MOV R3, #1 .text:00046634 MOV R3, R3,LSL R8 .text:00046638 SUB R3, R3, #1 .text:0004663C TST R6, R3 .text:00046640 ORRNE R7, R7, #1 .text:00046644 MOV R0, R10 .text:00046648 MOV R3, LR,LSR#27 .text:0004664C ADD R3, R12, R3 .text:00046650 MOV R4, R3,ASR#5 .text:00046654 ADD R1, R10, R4,LSL#2 .text:00046658 RSB R5, R4, #2 .text:0004665C MOV R2, R5 .text:00046660 SUB R3, R12, R4,LSL#5 .text:00046664 BL __mpn_rshift .text:00046668 MOV R1, #0 .text:0004666C CMP R1, R4 .text:00046670 BGE loc_466BC .text:00046674 MOV R0, R4 .text:00046678 ADD R2, R10, R5,LSL#2 .text:0004667C MOV R12, R1 .text:00046680 .text:00046680 loc_46680 ; CODE XREF: __strtod_internal+12FCj .text:00046680 MOV R3, R1,LSL#2 .text:00046684 ADD R1, R1, #1 .text:00046688 CMP R1, R0 .text:0004668C STR R12, [R3,R2] .text:00046690 BLT loc_46680 .text:00046694 B loc_466BC .text:00046698 ; --------------------------------------------------------------------------- .text:00046698 .text:00046698 loc_46698 ; CODE XREF: __strtod_internal+1258j .text:00046698 CMP R12, #0 .text:0004669C BLE loc_466BC .text:000466A0 SUB R8, R12, #1 .text:000466A4 MOV R0, R10 .text:000466A8 MOV R1, R10 .text:000466AC MOV R2, #2 .text:000466B0 MOV R3, R12 .text:000466B4 LDR R6, [R11,#var_164] .text:000466B8 BL __mpn_rshift .text:000466BC .text:000466BC loc_466BC ; CODE XREF: __strtod_internal+1250j .text:000466BC ; __strtod_internal+12DCj ... .text:000466BC MOV R4, 0xFFFFFC01 .text:000466C4 .text:000466C4 loc_466C4 ; CODE XREF: __strtod_internal+11F0j .text:000466C4 MOV R3, R6,LSR R8 .text:000466C8 TST R3, #1 .text:000466CC BEQ loc_467B8 .text:000466D0 CMP R7, #0 .text:000466D4 LDR R2, [R10] .text:000466D8 BNE loc_466F8 .text:000466DC TST R2, #1 .text:000466E0 BNE loc_466F8 .text:000466E4 MOV R3, #1 .text:000466E8 MOV R3, R3,LSL R8 .text:000466EC SUB R3, R3, #1 .text:000466F0 TST R6, R3 .text:000466F4 BEQ loc_467B8 .text:000466F8 .text:000466F8 loc_466F8 ; CODE XREF: __strtod_internal+1344j .text:000466F8 ; __strtod_internal+134Cj .text:000466F8 MOV R1, #2 .text:000466FC ADD R0, R10, #4 .text:00046700 MOV R12, R0 .text:00046704 ADD R3, R2, #1 .text:00046708 CMP R3, R2 .text:0004670C STR R3, [R10] .text:00046710 BCS loc_46738 .text:00046714 SUB R1, R1, #1 .text:00046718 .text:00046718 loc_46718 ; CODE XREF: __strtod_internal+139Cj .text:00046718 LDR R3, [R0],#4 .text:0004671C ADD R2, R3, #1 .text:00046720 CMP R2, #0 .text:00046724 STR R2, [R12],#4 .text:00046728 BNE loc_46738 .text:0004672C SUBS R1, R1, #1 .text:00046730 BNE loc_46718 .text:00046734 B loc_46764 .text:00046738 ; --------------------------------------------------------------------------- .text:00046738 .text:00046738 loc_46738 ; CODE XREF: __strtod_internal+137Cj .text:00046738 ; __strtod_internal+1394j .text:00046738 CMP R12, R0 .text:0004673C BEQ loc_46764 .text:00046740 MOV R2, #0 .text:00046744 SUB R1, R1, #1 .text:00046748 CMP R2, R1 .text:0004674C BGE loc_46764 .text:00046750 .text:00046750 loc_46750 ; CODE XREF: __strtod_internal+13CCj .text:00046750 LDR R3, [R0,R2,LSL#2] .text:00046754 STR R3, [R12,R2,LSL#2] .text:00046758 ADD R2, R2, #1 .text:0004675C CMP R2, R1 .text:00046760 BLT loc_46750 .text:00046764 .text:00046764 loc_46764 ; CODE XREF: __strtod_internal+13A0j .text:00046764 ; __strtod_internal+13A8j ... .text:00046764 LDR R2, [R10,#4] .text:00046768 TST R2, #0x200000 .text:0004676C BEQ loc_46798 .text:00046770 MOV R0, R10 .text:00046774 MOV R1, R10 .text:00046778 MOV R2, #2 .text:0004677C MOV R3, #1 .text:00046780 BL __mpn_rshift .text:00046784 LDR R3, [R10,#4] .text:00046788 ADD R4, R4, #1 .text:0004678C ORR R3, R3, #0x100000 .text:00046790 STR R3, [R10,#4] .text:00046794 B loc_467B8 .text:00046798 ; --------------------------------------------------------------------------- .text:00046798 .text:00046798 loc_46798 ; CODE XREF: __strtod_internal+13D8j .text:00046798 MOV R3, 0xFFFFFC01 .text:000467A0 CMP R4, R3 .text:000467A4 BNE loc_467B8 .text:000467A8 TST R2, #0x100000 .text:000467AC MOV R3, 0xFFFFFC02 .text:000467B4 MOVNE R4, R3 .text:000467B8 .text:000467B8 loc_467B8 ; CODE XREF: __strtod_internal+1338j .text:000467B8 ; __strtod_internal+1360j ... .text:000467B8 CMP R4, #0x400 .text:000467BC BLE loc_48E0C .text:000467C0 LDR R1, [R11,#var_178] .text:000467C4 CMP R1, #0 .text:000467C8 LDRNE R3, =dword_61B2C .text:000467CC LDCNE p1, c8, [R3] .text:000467D0 CDPNE p1, 1, c8,c0,c0, 4 .text:000467D4 BNE loc_48E1C .text:000467D8 LDR R3, =dword_61B34 .text:000467DC LDC p1, c8, [R3] .text:000467E0 B loc_48E1C .text:000467E4 ; --------------------------------------------------------------------------- .text:000467E4 .text:000467E4 loc_467E4 ; CODE XREF: __strtod_internal+D40j .text:000467E4 LDR R3, [R11,#var_16C] .text:000467E8 CMP R3, #0 .text:000467EC MOV R1, R3 .text:000467F0 BGE loc_4680C .text:000467F4 LDR R2, [R11,#var_190] .text:000467F8 RSB R3, R2, #0 .text:000467FC CMP R1, R3 .text:00046800 MOVGE R2, R1 .text:00046804 MOVLT R2, R3 .text:00046808 B loc_46824 .text:0004680C ; --------------------------------------------------------------------------- .text:0004680C .text:0004680C loc_4680C ; CODE XREF: __strtod_internal+145Cj .text:0004680C LDR R4, [R11,#var_18C] .text:00046810 LDR R12, [R11,#var_190] .text:00046814 RSB R3, R12, R4 .text:00046818 CMP R1, R3 .text:0004681C MOVLT R2, R1 .text:00046820 MOVGE R2, R3 .text:00046824 .text:00046824 loc_46824 ; CODE XREF: __strtod_internal+1474j .text:00046824 MOV R3, 0x135 .text:0004682C LDR LR, [R11,#var_190] .text:00046830 RSB R1, R2, R1 .text:00046834 STR R1, [R11,#var_16C] .text:00046838 ADD LR, LR, R2 .text:0004683C ADD R2, LR, R1 .text:00046840 CMP R2, R3 .text:00046844 STR LR, [R11,#var_190] .text:00046848 BLE loc_46874 .text:0004684C BL __errno_location .text:00046850 LDR R1, [R11,#var_178] .text:00046854 MOV R3, #0x22 .text:00046858 STR R3, [R0] .text:0004685C CMP R1, #0 .text:00046860 LDR R3, =dword_61BB0 .text:00046864 BNE loc_4558C .text:00046868 LDR R3, =dword_61BB8 .text:0004686C LDC p1, c8, [R3] .text:00046870 B locret_48E2C .text:00046874 ; --------------------------------------------------------------------------- .text:00046874 .text:00046874 loc_46874 ; CODE XREF: __strtod_internal+14B4j .text:00046874 CMN R1, #0x144 .text:00046878 BGT loc_468A0 .text:0004687C BL __errno_location .text:00046880 CDP p1, 0, c8,c0,c8, 4 .text:00046884 MOV R3, #0x22 .text:00046888 STR R3, [R0] .text:0004688C B locret_48E2C .text:0004688C ; --------------------------------------------------------------------------- .text:00046890 off_46890 DCD dword_61B2C ; DATA XREF: __strtod_internal+1168r .text:00046890 ; __strtod_internal+1434r .text:00046894 off_46894 DCD dword_61B34 ; DATA XREF: __strtod_internal+1178r .text:00046894 ; __strtod_internal+1444r .text:00046898 off_46898 DCD dword_61BB0 ; DATA XREF: __strtod_internal+14CCr .text:0004689C off_4689C DCD dword_61BB8 ; DATA XREF: __strtod_internal+14D4r .text:000468A0 ; --------------------------------------------------------------------------- .text:000468A0 .text:000468A0 loc_468A0 ; CODE XREF: __strtod_internal+14E4j .text:000468A0 SUB R3, R11, #-var_C0 .text:000468A4 STR R3, [R11,#var_1D8] .text:000468A8 SUB R4, R11, #-var_168 .text:000468AC STR R4, [R11,#var_1D4] .text:000468B0 LDR R2, [R11,#var_190] .text:000468B4 SUB R12, R11, #-var_16C .text:000468B8 STR R12, [R11,#var_1D0] .text:000468BC CMP R2, #0 .text:000468C0 BLE loc_474A0 .text:000468C4 MOV R5, R9 .text:000468C8 MOV R1, R2 .text:000468CC MOV R7, #0 .text:000468D0 MOV R0, R7 .text:000468D4 MOV R10, R3 .text:000468D8 MOV R6, R4 .text:000468DC MOV R9, R12 .text:000468E0 STR R7, [R11,#var_168] .text:000468E4 .text:000468E4 loc_468E4 ; CODE XREF: __strtod_internal+16C8j .text:000468E4 CMP R0, #9 .text:000468E8 SUB R8, R1, #1 .text:000468EC BNE loc_469BC .text:000468F0 LDR R2, [R6] .text:000468F4 CMP R2, #0 .text:000468F8 STREQ R7, [R11,#var_C0] .text:000468FC MOVEQ R3, #1 .text:00046900 BEQ loc_469B0 .text:00046904 SUB R0, R11, #-var_C0 .text:00046908 MOV R1, R0 .text:0004690C MOV R3, 0x3B9ACA00 .text:00046918 BL __mpn_mul_1 .text:0004691C SUB LR, R11, #-var_BC .text:00046920 LDR R1, [R11,#var_C0] .text:00046924 MOV R4, LR .text:00046928 LDR R12, [R6] .text:0004692C ADD R3, R7, R1 .text:00046930 CMP R3, R1 .text:00046934 STR R3, [R11,#var_C0] .text:00046938 BCS loc_46968 .text:0004693C SUBS R12, R12, #1 .text:00046940 BEQ loc_46960 .text:00046944 .text:00046944 loc_46944 ; CODE XREF: __strtod_internal+15C8j .text:00046944 LDR R3, [LR],#4 .text:00046948 ADD R1, R3, #1 .text:0004694C CMP R1, #0 .text:00046950 STR R1, [R4],#4 .text:00046954 BNE loc_46968 .text:00046958 SUBS R12, R12, #1 .text:0004695C BNE loc_46944 .text:00046960 .text:00046960 loc_46960 ; CODE XREF: __strtod_internal+15ACj .text:00046960 MOV R3, #1 .text:00046964 B loc_46998 .text:00046968 ; --------------------------------------------------------------------------- .text:00046968 .text:00046968 loc_46968 ; CODE XREF: __strtod_internal+15A4j .text:00046968 ; __strtod_internal+15C0j .text:00046968 CMP R4, LR .text:0004696C BEQ loc_46994 .text:00046970 MOV R2, #0 .text:00046974 SUB R1, R12, #1 .text:00046978 CMP R2, R1 .text:0004697C BGE loc_46994 .text:00046980 .text:00046980 loc_46980 ; CODE XREF: __strtod_internal+15FCj .text:00046980 LDR R3, [LR,R2,LSL#2] .text:00046984 STR R3, [R4,R2,LSL#2] .text:00046988 ADD R2, R2, #1 .text:0004698C CMP R2, R1 .text:00046990 BLT loc_46980 .text:00046994 .text:00046994 loc_46994 ; CODE XREF: __strtod_internal+15D8j .text:00046994 ; __strtod_internal+15E8j .text:00046994 MOV R3, #0 .text:00046998 .text:00046998 loc_46998 ; CODE XREF: __strtod_internal+15D0j .text:00046998 ADDS R0, R0, R3 .text:0004699C BEQ loc_469B4 .text:000469A0 LDR R2, [R6] .text:000469A4 STR R0, [R10,R2,LSL#2] .text:000469A8 LDR R3, [R6] .text:000469AC ADD R3, R3, #1 .text:000469B0 .text:000469B0 loc_469B0 ; CODE XREF: __strtod_internal+156Cj .text:000469B0 STR R3, [R6] .text:000469B4 .text:000469B4 loc_469B4 ; CODE XREF: __strtod_internal+1608j .text:000469B4 MOV R7, #0 .text:000469B8 MOV R0, R7 .text:000469BC .text:000469BC loc_469BC ; CODE XREF: __strtod_internal+1558j .text:000469BC MOV R2, R7,LSL#2 .text:000469C0 LDRB R1, [R5] .text:000469C4 ADD R12, R0, #1 .text:000469C8 SUB R3, R1, #0x30 .text:000469CC CMP R3, #9 .text:000469D0 BLS loc_46A44 .text:000469D4 LDR LR, [R11,#var_19C] .text:000469D8 CMP LR, #0 .text:000469DC BEQ loc_46A3C .text:000469E0 LDRB R3, [LR] .text:000469E4 CMP R1, R3 .text:000469E8 BNE loc_46A3C .text:000469EC MOV R0, #1 .text:000469F0 LDRB R1, [LR,R0] .text:000469F4 CMP R1, #0 .text:000469F8 BEQ loc_46A28 .text:000469FC LDRB R3, [R5,#1] .text:00046A00 CMP R1, R3 .text:00046A04 BNE loc_46A28 .text:00046A08 .text:00046A08 loc_46A08 ; CODE XREF: __strtod_internal+1690j .text:00046A08 LDR R3, [R11,#var_19C] .text:00046A0C ADD R0, R0, #1 .text:00046A10 LDRB R1, [R3,R0] .text:00046A14 CMP R1, #0 .text:00046A18 BEQ loc_46A28 .text:00046A1C LDRB R3, [R5,R0] .text:00046A20 CMP R1, R3 .text:00046A24 BEQ loc_46A08 .text:00046A28 .text:00046A28 loc_46A28 ; CODE XREF: __strtod_internal+1664j .text:00046A28 ; __strtod_internal+1670j ... .text:00046A28 LDR R4, [R11,#var_19C] .text:00046A2C LDRB R3, [R4,R0] .text:00046A30 CMP R3, #0 .text:00046A34 ADDEQ R5, R5, R0 .text:00046A38 BEQ loc_46A44 .text:00046A3C .text:00046A3C loc_46A3C ; CODE XREF: __strtod_internal+1648j .text:00046A3C ; __strtod_internal+1654j .text:00046A3C LDR LR, [R11,#var_198] .text:00046A40 ADD R5, R5, LR .text:00046A44 .text:00046A44 loc_46A44 ; CODE XREF: __strtod_internal+163Cj .text:00046A44 ; __strtod_internal+16A4j .text:00046A44 MOV R0, R12 .text:00046A48 SUBS R1, R8, #0 .text:00046A4C LDRB R3, [R5],#1 .text:00046A50 ADD R2, R2, R7 .text:00046A54 ADD R3, R3, R2,LSL#1 .text:00046A58 SUB R7, R3, #0x30 .text:00046A5C BGT loc_468E4 .text:00046A60 LDR R2, [R9] .text:00046A64 CMP R2, #0 .text:00046A68 BLE loc_46A94 .text:00046A6C ADD R3, R12, R2 .text:00046A70 CMP R3, #9 .text:00046A74 BGT loc_46A94 .text:00046A78 LDR R0, =_tens_in_limb_0 .text:00046A7C LDR R12, [R0,R3,LSL#2] .text:00046A80 LDR R2, [R0,R2,LSL#2] .text:00046A84 MOV R3, #0 .text:00046A88 STR R3, [R9] .text:00046A8C MUL R7, R2, R7 .text:00046A90 B loc_46A9C .text:00046A94 ; --------------------------------------------------------------------------- .text:00046A94 .text:00046A94 loc_46A94 ; CODE XREF: __strtod_internal+16D4j .text:00046A94 ; __strtod_internal+16E0j .text:00046A94 LDR R1, =_tens_in_limb_0 .text:00046A98 LDR R12, [R1,R12,LSL#2] .text:00046A9C .text:00046A9C loc_46A9C ; CODE XREF: __strtod_internal+16FCj .text:00046A9C LDR R2, [R6] .text:00046AA0 CMP R2, #0 .text:00046AA4 STREQ R7, [R11,#var_C0] .text:00046AA8 MOVEQ R3, #1 .text:00046AAC BEQ loc_46B50 .text:00046AB0 SUB R0, R11, #-var_C0 .text:00046AB4 MOV R1, R0 .text:00046AB8 MOV R3, R12 .text:00046ABC BL __mpn_mul_1 .text:00046AC0 SUB LR, R11, #-var_BC .text:00046AC4 LDR R1, [R11,#var_C0] .text:00046AC8 MOV R4, LR .text:00046ACC LDR R12, [R6] .text:00046AD0 ADD R3, R7, R1 .text:00046AD4 CMP R3, R1 .text:00046AD8 STR R3, [R11,#var_C0] .text:00046ADC BCS loc_46B0C .text:00046AE0 SUBS R12, R12, #1 .text:00046AE4 BEQ loc_46B04 .text:00046AE8 .text:00046AE8 loc_46AE8 ; CODE XREF: __strtod_internal+176Cj .text:00046AE8 LDR R3, [LR],#4 .text:00046AEC ADD R1, R3, #1 .text:00046AF0 CMP R1, #0 .text:00046AF4 STR R1, [R4],#4 .text:00046AF8 BNE loc_46B0C .text:00046AFC SUBS R12, R12, #1 .text:00046B00 BNE loc_46AE8 .text:00046B04 .text:00046B04 loc_46B04 ; CODE XREF: __strtod_internal+1750j .text:00046B04 MOV R3, #1 .text:00046B08 B loc_46B3C .text:00046B0C ; --------------------------------------------------------------------------- .text:00046B0C .text:00046B0C loc_46B0C ; CODE XREF: __strtod_internal+1748j .text:00046B0C ; __strtod_internal+1764j .text:00046B0C CMP R4, LR .text:00046B10 BEQ loc_46B38 .text:00046B14 MOV R2, #0 .text:00046B18 SUB R1, R12, #1 .text:00046B1C CMP R2, R1 .text:00046B20 BGE loc_46B38 .text:00046B24 .text:00046B24 loc_46B24 ; CODE XREF: __strtod_internal+17A0j .text:00046B24 LDR R3, [LR,R2,LSL#2] .text:00046B28 STR R3, [R4,R2,LSL#2] .text:00046B2C ADD R2, R2, #1 .text:00046B30 CMP R2, R1 .text:00046B34 BLT loc_46B24 .text:00046B38 .text:00046B38 loc_46B38 ; CODE XREF: __strtod_internal+177Cj .text:00046B38 ; __strtod_internal+178Cj .text:00046B38 MOV R3, #0 .text:00046B3C .text:00046B3C loc_46B3C ; CODE XREF: __strtod_internal+1774j .text:00046B3C ADDS R0, R0, R3 .text:00046B40 BEQ loc_46B54 .text:00046B44 LDR R3, [R6] .text:00046B48 STR R0, [R10,R3,LSL#2] .text:00046B4C ADD R3, R3, #1 .text:00046B50 .text:00046B50 loc_46B50 ; CODE XREF: __strtod_internal+1718j .text:00046B50 STR R3, [R6] .text:00046B54 .text:00046B54 loc_46B54 ; CODE XREF: __strtod_internal+17ACj .text:00046B54 LDR R3, [R11,#var_16C] .text:00046B58 MOV R9, R5 .text:00046B5C CMP R3, #0 .text:00046B60 MOV R1, R3 .text:00046B64 BLE loc_46C34 .text:00046B68 LDR R6, [R11,#var_1D8] .text:00046B6C SUB R5, R11, #-var_158 .text:00046B70 LDR R7, =_fpioconst_pow10 .text:00046B74 MOV R8, #1 .text:00046B78 LDR R10, =(__tens+8) .text:00046B7C .text:00046B7C loc_46B7C ; CODE XREF: __strtod_internal+187Cj .text:00046B7C TST R1, R8 .text:00046B80 BEQ loc_46C04 .text:00046B84 EOR R3, R1, R8 .text:00046B88 STR R3, [R11,#var_16C] .text:00046B8C LDR R2, [R7,#(_fpioconst_pow10+4 - 0x61E00)] .text:00046B90 LDR R12, [R11,#var_168] .text:00046B94 SUB R4, R2, #2 .text:00046B98 CMP R12, R4 .text:00046B9C BLT loc_46BC0 .text:00046BA0 STR R4, [SP,#0x1F4+var_1F4] .text:00046BA4 MOV R0, R5 .text:00046BA8 MOV R1, R6 .text:00046BAC LDR R3, [R7] .text:00046BB0 MOV R2, R12 .text:00046BB4 ADD R3, R10, R3,LSL#2 .text:00046BB8 BL __mpn_mul .text:00046BBC B loc_46BDC .text:00046BC0 ; --------------------------------------------------------------------------- .text:00046BC0 .text:00046BC0 loc_46BC0 ; CODE XREF: __strtod_internal+1808j .text:00046BC0 STR R12, [SP,#0x1F4+var_1F4] .text:00046BC4 MOV R0, R5 .text:00046BC8 MOV R2, R4 .text:00046BCC LDR R1, [R7] .text:00046BD0 MOV R3, R6 .text:00046BD4 ADD R1, R10, R1,LSL#2 .text:00046BD8 BL __mpn_mul .text:00046BDC .text:00046BDC loc_46BDC ; CODE XREF: __strtod_internal+1828j .text:00046BDC LDR R3, [R11,#var_168] .text:00046BE0 CMP R0, #0 .text:00046BE4 ADD R2, R3, R4 .text:00046BE8 STR R2, [R11,#var_168] .text:00046BEC SUBEQ R3, R2, #1 .text:00046BF0 STREQ R3, [R11,#var_168] .text:00046BF4 MOV R3, R6 .text:00046BF8 MOV R6, R5 .text:00046BFC MOV R5, R3 .text:00046C00 LDR R1, [R11,#var_16C] .text:00046C04 .text:00046C04 loc_46C04 ; CODE XREF: __strtod_internal+17ECj .text:00046C04 MOV R8, R8,LSL#1 .text:00046C08 ADD R7, R7, #0x10 .text:00046C0C CMP R1, #0 .text:00046C10 BNE loc_46B7C .text:00046C14 SUB R2, R11, #-var_158 .text:00046C18 CMP R6, R2 .text:00046C1C BNE loc_46C34 .text:00046C20 LDR R2, [R11,#var_168] .text:00046C24 SUB R1, R11, #-var_158 .text:00046C28 LDR R0, [R11,#var_1D8] .text:00046C2C MOV R2, R2,LSL#2 .text:00046C30 BL memcpy .text:00046C34 .text:00046C34 loc_46C34 ; CODE XREF: __strtod_internal+17D0j .text:00046C34 ; __strtod_internal+1888j .text:00046C34 LDR R2, [R11,#var_168] .text:00046C38 LDR R4, [R11,#var_1D8] .text:00046C3C SUB R3, R2, #1 .text:00046C40 LDR R3, [R4,R3,LSL#2] .text:00046C44 MOV LR, R2 .text:00046C48 CMP R3, #0x10000 .text:00046C4C BCS loc_46C60 .text:00046C50 CMP R3, #0xFF .text:00046C54 MOVHI R1, #8 .text:00046C58 MOVLS R1, #0 .text:00046C5C B loc_46C6C .text:00046C60 ; --------------------------------------------------------------------------- .text:00046C60 .text:00046C60 loc_46C60 ; CODE XREF: __strtod_internal+18B8j .text:00046C60 CMP R3, #0x1000000 .text:00046C64 MOVCS R1, #0x18 .text:00046C68 MOVCC R1, #0x10 .text:00046C6C .text:00046C6C loc_46C6C ; CODE XREF: __strtod_internal+18C8j .text:00046C6C LDR R12, =__clz_tab_1 .text:00046C70 MOV R2, R3,LSR R1 .text:00046C74 LDRB R3, [R12,R2] .text:00046C78 ADD R3, R3, R1 .text:00046C7C RSB R3, R3, #0x20 .text:00046C80 RSB R3, R3, LR,LSL#5 .text:00046C84 CMP R3, #0x400 .text:00046C88 STR R3, [R11,#var_184] .text:00046C8C BLE loc_46CB8 .text:00046C90 BL __errno_location .text:00046C94 LDR LR, [R11,#var_178] .text:00046C98 MOV R3, #0x22 .text:00046C9C STR R3, [R0] .text:00046CA0 CMP LR, #0 .text:00046CA4 LDR R3, =dword_61BC0 .text:00046CA8 BNE loc_4558C .text:00046CAC LDR R3, =dword_61BC8 .text:00046CB0 LDC p1, c8, [R3] .text:00046CB4 B locret_48E2C .text:00046CB8 ; --------------------------------------------------------------------------- .text:00046CB8 .text:00046CB8 loc_46CB8 ; CODE XREF: __strtod_internal+18F8j .text:00046CB8 LDR R0, [R11,#var_184] .text:00046CBC CMP R0, #0x35 .text:00046CC0 BLE loc_4709C .text:00046CC4 SUB R3, R0, #0x35 .text:00046CC8 CMP R3, #0 .text:00046CCC ADDLT R2, R3, #0x1F .text:00046CD0 MOVGE R2, R3 .text:00046CD4 MOV R12, R2,ASR#5 .text:00046CD8 MOV R5, R12 .text:00046CDC SUB R12, R3, R12,LSL#5 .text:00046CE0 CMP R12, #0 .text:00046CE4 MOVNE R7, R5 .text:00046CE8 SUBEQ R7, R5, #1 .text:00046CEC SUBNE R1, R12, #1 .text:00046CF0 MOVEQ R1, #0x1F .text:00046CF4 STR R1, [R11,#var_1AC] .text:00046CF8 BNE loc_46D40 .text:00046CFC SUB R9, R0, #1 .text:00046D00 ADD R3, R11, R5,LSL#2 .text:00046D04 SUB R3, R3, #0x28 .text:00046D08 SUB R3, R3, #0x98 .text:00046D0C LDMIA R3, {R0,R1} .text:00046D10 MOV R3, R7,LSL#2 .text:00046D14 STR R3, [R11,#var_1EC] .text:00046D18 SUB R2, R11, #-var_164 .text:00046D1C MOV R10, R2 .text:00046D20 STMIA R2, {R0,R1} .text:00046D24 B loc_46DC4 .text:00046D24 ; --------------------------------------------------------------------------- .text:00046D28 off_46D28 DCD _tens_in_limb_0 ; DATA XREF: __strtod_internal+16E4r .text:00046D28 ; __strtod_internal:loc_46A94r .text:00046D2C off_46D2C DCD _fpioconst_pow10 ; DATA XREF: __strtod_internal+17DCr .text:00046D30 off_46D30 DCD __tens+8 ; DATA XREF: __strtod_internal+17E4r .text:00046D34 off_46D34 DCD __clz_tab_1 ; DATA XREF: __strtod_internal:loc_46C6Cr .text:00046D38 off_46D38 DCD dword_61BC0 ; DATA XREF: __strtod_internal+1910r .text:00046D3C off_46D3C DCD dword_61BC8 ; DATA XREF: __strtod_internal+1918r .text:00046D40 ; --------------------------------------------------------------------------- .text:00046D40 .text:00046D40 loc_46D40 ; CODE XREF: __strtod_internal+1964j .text:00046D40 MOV R1, R5 .text:00046D44 SUB R3, LR, #1 .text:00046D48 CMP R1, R3 .text:00046D4C SUB R10, R11, #-var_164 .text:00046D50 LDR R4, [R11,#var_184] .text:00046D54 MOV LR, R7,LSL#2 .text:00046D58 STR LR, [R11,#var_1EC] .text:00046D5C SUB R9, R4, #1 .text:00046D60 BGE loc_46DAC .text:00046D64 MOV R8, R10 .text:00046D68 RSB R6, R12, #0x20 .text:00046D6C MOV R3, R1,LSL#2 .text:00046D70 ADD R0, R3, #4 .text:00046D74 MOV R4, #0 .text:00046D78 LDR LR, [R11,#var_1D8] .text:00046D7C .text:00046D7C loc_46D7C ; CODE XREF: __strtod_internal+1A14j .text:00046D7C LDR R3, [LR,R0] .text:00046D80 LDR R2, [LR,R1,LSL#2] .text:00046D84 MOV R3, R3,LSL R6 .text:00046D88 ORR R3, R3, R2,LSR R12 .text:00046D8C STR R3, [R4,R8] .text:00046D90 ADD R0, R0, #4 .text:00046D94 ADD R1, R1, #1 .text:00046D98 LDR R3, [R11,#var_168] .text:00046D9C ADD R4, R4, #4 .text:00046DA0 SUB R3, R3, #1 .text:00046DA4 CMP R1, R3 .text:00046DA8 BLT loc_46D7C .text:00046DAC .text:00046DAC loc_46DAC ; CODE XREF: __strtod_internal+19CCj .text:00046DAC RSB R3, R5, R1 .text:00046DB0 CMP R3, #1 .text:00046DB4 LDRLE R0, [R11,#var_1D8] .text:00046DB8 LDRLE R3, [R0,R1,LSL#2] .text:00046DBC MOVLE R3, R3,LSR R12 .text:00046DC0 STRLE R3, [R10,#4] .text:00046DC4 .text:00046DC4 loc_46DC4 ; CODE XREF: __strtod_internal+1990j .text:00046DC4 LDR R3, [R11,#var_C0] .text:00046DC8 MOV R1, #0 .text:00046DCC CMP R3, R1 .text:00046DD0 BNE loc_46DE8 .text:00046DD4 LDR R2, [R11,#var_1D8] .text:00046DD8 .text:00046DD8 loc_46DD8 ; CODE XREF: __strtod_internal+1A50j .text:00046DD8 ADD R1, R1, #1 .text:00046DDC LDR R3, [R2,R1,LSL#2] .text:00046DE0 CMP R3, #0 .text:00046DE4 BEQ loc_46DD8 .text:00046DE8 .text:00046DE8 loc_46DE8 ; CODE XREF: __strtod_internal+1A3Cj .text:00046DE8 LDR R8, [R11,#var_1AC] .text:00046DEC CMP R1, R7 .text:00046DF0 MOVGE R2, #0 .text:00046DF4 MOVLT R2, #1 .text:00046DF8 SUB R1, R11, #-var_190 .text:00046DFC LDMIA R1, {R1,R3} .text:00046E00 LDR R12, [R11,#var_1D8] .text:00046E04 MOV R4, R9 .text:00046E08 LDR LR, [R11,#var_1EC] .text:00046E0C CMP R1, R3 .text:00046E10 MOVGE R6, R2 .text:00046E14 MOVLT R6, #1 .text:00046E18 MOV R3, 0xFFFFFC02 .text:00046E20 CMP R9, R3 .text:00046E24 LDR R7, [R12,LR] .text:00046E28 BGE loc_46F7C .text:00046E2C RSB R12, R9, #0xFC000002 .text:00046E30 ADD R12, R12, #0x3FC0000 .text:00046E34 ADD R12, R12, #0x3FC00 .text:00046E38 CMP R12, #0x35 .text:00046E3C BGT loc_48B84 .text:00046E40 MOV R3, #1 .text:00046E44 MOV R3, R3,LSL R8 .text:00046E48 SUB R3, R3, #1 .text:00046E4C TST R7, R3 .text:00046E50 ORRNE R6, R6, #1 .text:00046E54 CMP R12, #0x35 .text:00046E58 BNE loc_46E9C .text:00046E5C MOV R8, #0x14 .text:00046E60 MOV R2, #0 .text:00046E64 LDR R7, [R10,#4] .text:00046E68 .text:00046E68 loc_46E68 ; CODE XREF: __strtod_internal+1AE8j .text:00046E68 LDR R3, [R10,R2,LSL#2] .text:00046E6C ADD R2, R2, #1 .text:00046E70 CMP R3, #0 .text:00046E74 ORRNE R6, R6, #1 .text:00046E78 CMP R2, #1 .text:00046E7C BLE loc_46E68 .text:00046E80 MOV R1, #0 .text:00046E84 ADD R3, R10, #4 .text:00046E88 MOV R2, R10 .text:00046E8C .text:00046E8C loc_46E8C ; CODE XREF: __strtod_internal+1B00j .text:00046E8C STR R1, [R3],#-4 .text:00046E90 CMP R3, R2 .text:00046E94 BGE loc_46E8C .text:00046E98 B loc_46F74 .text:00046E9C ; --------------------------------------------------------------------------- .text:00046E9C .text:00046E9C loc_46E9C ; CODE XREF: __strtod_internal+1AC4j .text:00046E9C CMP R12, #0x1F .text:00046EA0 BLE loc_46F50 .text:00046EA4 SUB R3, R12, #1 .text:00046EA8 CMP R3, #0 .text:00046EAC ADDLT R2, R3, #0x1F .text:00046EB0 MOVGE R2, R3 .text:00046EB4 MOV R2, R2,ASR#5 .text:00046EB8 SUB R8, R3, R2,LSL#5 .text:00046EBC MOV R1, #0 .text:00046EC0 CMP R1, R2 .text:00046EC4 MOV LR, R12,ASR#31 .text:00046EC8 LDR R7, [R10,R2,LSL#2] .text:00046ECC BGE loc_46EE8 .text:00046ED0 .text:00046ED0 loc_46ED0 ; CODE XREF: __strtod_internal+1B50j .text:00046ED0 LDR R3, [R10,R1,LSL#2] .text:00046ED4 ADD R1, R1, #1 .text:00046ED8 CMP R3, #0 .text:00046EDC ORRNE R6, R6, #1 .text:00046EE0 CMP R1, R2 .text:00046EE4 BLT loc_46ED0 .text:00046EE8 .text:00046EE8 loc_46EE8 ; CODE XREF: __strtod_internal+1B38j .text:00046EE8 MOV R3, #1 .text:00046EEC MOV R3, R3,LSL R8 .text:00046EF0 SUB R3, R3, #1 .text:00046EF4 TST R7, R3 .text:00046EF8 ORRNE R6, R6, #1 .text:00046EFC MOV R0, R10 .text:00046F00 MOV R3, LR,LSR#27 .text:00046F04 ADD R3, R12, R3 .text:00046F08 MOV R4, R3,ASR#5 .text:00046F0C ADD R1, R10, R4,LSL#2 .text:00046F10 RSB R5, R4, #2 .text:00046F14 MOV R2, R5 .text:00046F18 SUB R3, R12, R4,LSL#5 .text:00046F1C BL __mpn_rshift .text:00046F20 MOV R1, #0 .text:00046F24 CMP R1, R4 .text:00046F28 BGE loc_46F74 .text:00046F2C MOV R0, R4 .text:00046F30 ADD R2, R10, R5,LSL#2 .text:00046F34 MOV R12, R1 .text:00046F38 .text:00046F38 loc_46F38 ; CODE XREF: __strtod_internal+1BB4j .text:00046F38 MOV R3, R1,LSL#2 .text:00046F3C ADD R1, R1, #1 .text:00046F40 CMP R1, R0 .text:00046F44 STR R12, [R3,R2] .text:00046F48 BLT loc_46F38 .text:00046F4C B loc_46F74 .text:00046F50 ; --------------------------------------------------------------------------- .text:00046F50 .text:00046F50 loc_46F50 ; CODE XREF: __strtod_internal+1B0Cj .text:00046F50 CMP R12, #0 .text:00046F54 BLE loc_46F74 .text:00046F58 SUB R8, R12, #1 .text:00046F5C MOV R0, R10 .text:00046F60 MOV R1, R10 .text:00046F64 MOV R2, #2 .text:00046F68 MOV R3, R12 .text:00046F6C LDR R7, [R11,#var_164] .text:00046F70 BL __mpn_rshift .text:00046F74 .text:00046F74 loc_46F74 ; CODE XREF: __strtod_internal+1B04j .text:00046F74 ; __strtod_internal+1B94j ... .text:00046F74 MOV R4, 0xFFFFFC01 .text:00046F7C .text:00046F7C loc_46F7C ; CODE XREF: __strtod_internal+1A94j .text:00046F7C MOV R3, R7,LSR R8 .text:00046F80 TST R3, #1 .text:00046F84 BEQ loc_47070 .text:00046F88 CMP R6, #0 .text:00046F8C LDR R2, [R10] .text:00046F90 BNE loc_46FB0 .text:00046F94 TST R2, #1 .text:00046F98 BNE loc_46FB0 .text:00046F9C MOV R3, #1 .text:00046FA0 MOV R3, R3,LSL R8 .text:00046FA4 SUB R3, R3, #1 .text:00046FA8 TST R7, R3 .text:00046FAC BEQ loc_47070 .text:00046FB0 .text:00046FB0 loc_46FB0 ; CODE XREF: __strtod_internal+1BFCj .text:00046FB0 ; __strtod_internal+1C04j .text:00046FB0 MOV R1, #2 .text:00046FB4 ADD R0, R10, #4 .text:00046FB8 MOV R12, R0 .text:00046FBC ADD R3, R2, #1 .text:00046FC0 CMP R3, R2 .text:00046FC4 STR R3, [R10] .text:00046FC8 BCS loc_46FF0 .text:00046FCC SUB R1, R1, #1 .text:00046FD0 .text:00046FD0 loc_46FD0 ; CODE XREF: __strtod_internal+1C54j .text:00046FD0 LDR R3, [R0],#4 .text:00046FD4 ADD R2, R3, #1 .text:00046FD8 CMP R2, #0 .text:00046FDC STR R2, [R12],#4 .text:00046FE0 BNE loc_46FF0 .text:00046FE4 SUBS R1, R1, #1 .text:00046FE8 BNE loc_46FD0 .text:00046FEC B loc_4701C .text:00046FF0 ; --------------------------------------------------------------------------- .text:00046FF0 .text:00046FF0 loc_46FF0 ; CODE XREF: __strtod_internal+1C34j .text:00046FF0 ; __strtod_internal+1C4Cj .text:00046FF0 CMP R12, R0 .text:00046FF4 BEQ loc_4701C .text:00046FF8 MOV R2, #0 .text:00046FFC SUB R1, R1, #1 .text:00047000 CMP R2, R1 .text:00047004 BGE loc_4701C .text:00047008 .text:00047008 loc_47008 ; CODE XREF: __strtod_internal+1C84j .text:00047008 LDR R3, [R0,R2,LSL#2] .text:0004700C STR R3, [R12,R2,LSL#2] .text:00047010 ADD R2, R2, #1 .text:00047014 CMP R2, R1 .text:00047018 BLT loc_47008 .text:0004701C .text:0004701C loc_4701C ; CODE XREF: __strtod_internal+1C58j .text:0004701C ; __strtod_internal+1C60j ... .text:0004701C LDR R2, [R10,#4] .text:00047020 TST R2, #0x200000 .text:00047024 BEQ loc_47050 .text:00047028 MOV R0, R10 .text:0004702C MOV R1, R10 .text:00047030 MOV R2, #2 .text:00047034 MOV R3, #1 .text:00047038 BL __mpn_rshift .text:0004703C LDR R3, [R10,#4] .text:00047040 ADD R4, R4, #1 .text:00047044 ORR R3, R3, #0x100000 .text:00047048 STR R3, [R10,#4] .text:0004704C B loc_47070 .text:00047050 ; --------------------------------------------------------------------------- .text:00047050 .text:00047050 loc_47050 ; CODE XREF: __strtod_internal+1C90j .text:00047050 MOV R3, 0xFFFFFC01 .text:00047058 CMP R4, R3 .text:0004705C BNE loc_47070 .text:00047060 TST R2, #0x100000 .text:00047064 MOV R3, 0xFFFFFC02 .text:0004706C MOVNE R4, R3 .text:00047070 .text:00047070 loc_47070 ; CODE XREF: __strtod_internal+1BF0j .text:00047070 ; __strtod_internal+1C18j ... .text:00047070 CMP R4, #0x400 .text:00047074 BLE loc_48E0C .text:00047078 LDR R0, [R11,#var_178] .text:0004707C CMP R0, #0 .text:00047080 LDRNE R3, =dword_61B2C .text:00047084 LDCNE p1, c8, [R3] .text:00047088 CDPNE p1, 1, c8,c0,c0, 4 .text:0004708C BNE loc_48E1C .text:00047090 LDR R3, =dword_61B34 .text:00047094 LDC p1, c8, [R3] .text:00047098 B loc_48E1C .text:0004709C ; --------------------------------------------------------------------------- .text:0004709C .text:0004709C loc_4709C ; CODE XREF: __strtod_internal+192Cj .text:0004709C LDR R1, [R11,#var_18C] .text:000470A0 LDR R2, [R11,#var_190] .text:000470A4 CMP R1, R2 .text:000470A8 BNE loc_4747C .text:000470AC LDR R3, [R11,#var_184] .text:000470B0 SUB R2, R3, #1 .text:000470B4 CMP R2, #0 .text:000470B8 ADDLT R3, R2, #0x1F .text:000470BC MOVGE R3, R2 .text:000470C0 BIC R3, R3, #0x1F .text:000470C4 RSB R3, R3, R2 .text:000470C8 CMP R3, #0x14 .text:000470CC MOV R9, R2 .text:000470D0 BNE loc_4712C .text:000470D4 RSB R0, LR, #2 .text:000470D8 SUB R4, R11, #-var_164 .text:000470DC ADD R0, R4, R0,LSL#2 .text:000470E0 LDR R1, [R11,#var_1D8] .text:000470E4 MOV R2, LR,LSL#2 .text:000470E8 BL memcpy .text:000470EC MOV R1, #0 .text:000470F0 LDR R3, [R11,#var_168] .text:000470F4 MOV R10, R4 .text:000470F8 RSB R3, R3, #2 .text:000470FC CMP R1, R3 .text:00047100 BGE loc_471F4 .text:00047104 MOV R12, R10 .text:00047108 MOV R0, R1 .text:0004710C .text:0004710C loc_4710C ; CODE XREF: __strtod_internal+1D90j .text:0004710C MOV R3, R1,LSL#2 .text:00047110 STR R0, [R3,R12] .text:00047114 LDR R2, [R11,#var_168] .text:00047118 ADD R1, R1, #1 .text:0004711C RSB R2, R2, #2 .text:00047120 CMP R1, R2 .text:00047124 BLT loc_4710C .text:00047128 B loc_471F4 .text:0004712C ; --------------------------------------------------------------------------- .text:0004712C .text:0004712C loc_4712C ; CODE XREF: __strtod_internal+1D3Cj .text:0004712C CMP R3, #0x13 .text:00047130 BGT loc_47190 .text:00047134 RSB R0, LR, #2 .text:00047138 SUB R4, R11, #-var_164 .text:0004713C ADD R0, R4, R0,LSL#2 .text:00047140 MOV R2, LR .text:00047144 LDR R1, [R11,#var_1D8] .text:00047148 RSB R3, R3, #0x14 .text:0004714C BL __mpn_lshift .text:00047150 MOV R1, #0 .text:00047154 LDR R3, [R11,#var_168] .text:00047158 MOV R10, R4 .text:0004715C RSB R3, R3, #2 .text:00047160 CMP R1, R3 .text:00047164 BGE loc_471F4 .text:00047168 MOV R12, R10 .text:0004716C MOV R0, R1 .text:00047170 .text:00047170 loc_47170 ; CODE XREF: __strtod_internal+1DF4j .text:00047170 MOV R3, R1,LSL#2 .text:00047174 STR R0, [R3,R12] .text:00047178 LDR R2, [R11,#var_168] .text:0004717C ADD R1, R1, #1 .text:00047180 RSB R2, R2, #2 .text:00047184 CMP R1, R2 .text:00047188 BLT loc_47170 .text:0004718C B loc_471F4 .text:00047190 ; --------------------------------------------------------------------------- .text:00047190 .text:00047190 loc_47190 ; CODE XREF: __strtod_internal+1D9Cj .text:00047190 RSB R0, LR, #2 .text:00047194 SUB R4, R11, #-var_164 .text:00047198 ADD R0, R4, R0,LSL#2 .text:0004719C MOV R2, LR .text:000471A0 LDR R1, [R11,#var_1D8] .text:000471A4 SUB R3, R3, #0x14 .text:000471A8 BL __mpn_rshift .text:000471AC LDR R3, [R11,#var_168] .text:000471B0 RSB R3, R3, #1 .text:000471B4 STR R0, [R4,R3,LSL#2] .text:000471B8 MOV R1, #0 .text:000471BC LDR R3, [R11,#var_168] .text:000471C0 MOV R10, R4 .text:000471C4 RSB R3, R3, #1 .text:000471C8 CMP R1, R3 .text:000471CC BGE loc_471F4 .text:000471D0 MOV R12, R10 .text:000471D4 MOV R0, R1 .text:000471D8 .text:000471D8 loc_471D8 ; CODE XREF: __strtod_internal+1E5Cj .text:000471D8 MOV R3, R1,LSL#2 .text:000471DC STR R0, [R3,R12] .text:000471E0 LDR R2, [R11,#var_168] .text:000471E4 ADD R1, R1, #1 .text:000471E8 RSB R2, R2, #1 .text:000471EC CMP R1, R2 .text:000471F0 BLT loc_471D8 .text:000471F4 .text:000471F4 loc_471F4 ; CODE XREF: __strtod_internal+1D6Cj .text:000471F4 ; __strtod_internal+1D94j ... .text:000471F4 MOV R4, R9 .text:000471F8 MOV R1, #0 .text:000471FC MOV R6, R1 .text:00047200 MOV R8, R6 .text:00047204 MOV R7, R6 .text:00047208 MOV R3, 0xFFFFFC02 .text:00047210 CMP R4, R3 .text:00047214 BGE loc_47354 .text:00047218 RSB R12, R4, #0xFC000002 .text:0004721C ADD R12, R12, #0x3FC0000 .text:00047220 ADD R12, R12, #0x3FC00 .text:00047224 CMP R12, #0x35 .text:00047228 BGT loc_48B84 .text:0004722C MOV R7, R6 .text:00047230 CMP R12, #0x35 .text:00047234 BNE loc_47278 .text:00047238 MOV R8, #0x14 .text:0004723C MOV R2, R1 .text:00047240 LDR R6, [R10,#4] .text:00047244 .text:00047244 loc_47244 ; CODE XREF: __strtod_internal+1EC4j .text:00047244 LDR R3, [R10,R2,LSL#2] .text:00047248 ADD R2, R2, #1 .text:0004724C CMP R3, #0 .text:00047250 ORRNE R7, R7, #1 .text:00047254 CMP R2, #1 .text:00047258 BLE loc_47244 .text:0004725C MOV R1, #0 .text:00047260 ADD R3, R10, #4 .text:00047264 MOV R2, R10 .text:00047268 .text:00047268 loc_47268 ; CODE XREF: __strtod_internal+1EDCj .text:00047268 STR R1, [R3],#-4 .text:0004726C CMP R3, R2 .text:00047270 BGE loc_47268 .text:00047274 B loc_4734C .text:00047278 ; --------------------------------------------------------------------------- .text:00047278 .text:00047278 loc_47278 ; CODE XREF: __strtod_internal+1EA0j .text:00047278 CMP R12, #0x1F .text:0004727C BLE loc_47328 .text:00047280 SUB R3, R12, #1 .text:00047284 CMP R3, #0 .text:00047288 ADDLT R2, R3, #0x1F .text:0004728C MOVGE R2, R3 .text:00047290 MOV R2, R2,ASR#5 .text:00047294 SUB R8, R3, R2,LSL#5 .text:00047298 CMP R7, R2 .text:0004729C MOV LR, R12,ASR#31 .text:000472A0 LDR R6, [R10,R2,LSL#2] .text:000472A4 BGE loc_472C0 .text:000472A8 .text:000472A8 loc_472A8 ; CODE XREF: __strtod_internal+1F28j .text:000472A8 LDR R3, [R10,R1,LSL#2] .text:000472AC ADD R1, R1, #1 .text:000472B0 CMP R3, #0 .text:000472B4 ORRNE R7, R7, #1 .text:000472B8 CMP R1, R2 .text:000472BC BLT loc_472A8 .text:000472C0 .text:000472C0 loc_472C0 ; CODE XREF: __strtod_internal+1F10j .text:000472C0 MOV R3, #1 .text:000472C4 MOV R3, R3,LSL R8 .text:000472C8 SUB R3, R3, #1 .text:000472CC TST R6, R3 .text:000472D0 ORRNE R7, R7, #1 .text:000472D4 MOV R0, R10 .text:000472D8 MOV R3, LR,LSR#27 .text:000472DC ADD R3, R12, R3 .text:000472E0 MOV R4, R3,ASR#5 .text:000472E4 ADD R1, R10, R4,LSL#2 .text:000472E8 RSB R5, R4, #2 .text:000472EC MOV R2, R5 .text:000472F0 SUB R3, R12, R4,LSL#5 .text:000472F4 BL __mpn_rshift .text:000472F8 MOV R1, #0 .text:000472FC CMP R1, R4 .text:00047300 BGE loc_4734C .text:00047304 MOV R0, R4 .text:00047308 ADD R2, R10, R5,LSL#2 .text:0004730C MOV R12, R1 .text:00047310 .text:00047310 loc_47310 ; CODE XREF: __strtod_internal+1F8Cj .text:00047310 MOV R3, R1,LSL#2 .text:00047314 ADD R1, R1, #1 .text:00047318 CMP R1, R0 .text:0004731C STR R12, [R3,R2] .text:00047320 BLT loc_47310 .text:00047324 B loc_4734C .text:00047328 ; --------------------------------------------------------------------------- .text:00047328 .text:00047328 loc_47328 ; CODE XREF: __strtod_internal+1EE8j .text:00047328 CMP R12, #0 .text:0004732C BLE loc_4734C .text:00047330 SUB R8, R12, #1 .text:00047334 MOV R0, R10 .text:00047338 MOV R1, R10 .text:0004733C MOV R2, #2 .text:00047340 MOV R3, R12 .text:00047344 LDR R6, [R11,#var_164] .text:00047348 BL __mpn_rshift .text:0004734C .text:0004734C loc_4734C ; CODE XREF: __strtod_internal+1EE0j .text:0004734C ; __strtod_internal+1F6Cj ... .text:0004734C MOV R4, 0xFFFFFC01 .text:00047354 .text:00047354 loc_47354 ; CODE XREF: __strtod_internal+1E80j .text:00047354 MOV R3, R6,LSR R8 .text:00047358 TST R3, #1 .text:0004735C BEQ loc_47450 .text:00047360 CMP R7, #0 .text:00047364 LDR R2, [R10] .text:00047368 BNE loc_47388 .text:0004736C TST R2, #1 .text:00047370 BNE loc_47388 .text:00047374 MOV R3, #1 .text:00047378 MOV R3, R3,LSL R8 .text:0004737C SUB R3, R3, #1 .text:00047380 TST R6, R3 .text:00047384 BEQ loc_47450 .text:00047388 .text:00047388 loc_47388 ; CODE XREF: __strtod_internal+1FD4j .text:00047388 ; __strtod_internal+1FDCj .text:00047388 MOV R1, #2 .text:0004738C ADD R0, R10, #4 .text:00047390 MOV R12, R0 .text:00047394 ADD R3, R2, #1 .text:00047398 CMP R3, R2 .text:0004739C STR R3, [R10] .text:000473A0 BCS loc_473C8 .text:000473A4 SUB R1, R1, #1 .text:000473A8 .text:000473A8 loc_473A8 ; CODE XREF: __strtod_internal+202Cj .text:000473A8 LDR R3, [R0],#4 .text:000473AC ADD R2, R3, #1 .text:000473B0 CMP R2, #0 .text:000473B4 STR R2, [R12],#4 .text:000473B8 BNE loc_473C8 .text:000473BC SUBS R1, R1, #1 .text:000473C0 BNE loc_473A8 .text:000473C4 B loc_473F4 .text:000473C8 ; --------------------------------------------------------------------------- .text:000473C8 .text:000473C8 loc_473C8 ; CODE XREF: __strtod_internal+200Cj .text:000473C8 ; __strtod_internal+2024j .text:000473C8 CMP R12, R0 .text:000473CC BEQ loc_473F4 .text:000473D0 MOV R2, #0 .text:000473D4 SUB R1, R1, #1 .text:000473D8 CMP R2, R1 .text:000473DC BGE loc_473F4 .text:000473E0 .text:000473E0 loc_473E0 ; CODE XREF: __strtod_internal+205Cj .text:000473E0 LDR R3, [R0,R2,LSL#2] .text:000473E4 STR R3, [R12,R2,LSL#2] .text:000473E8 ADD R2, R2, #1 .text:000473EC CMP R2, R1 .text:000473F0 BLT loc_473E0 .text:000473F4 .text:000473F4 loc_473F4 ; CODE XREF: __strtod_internal+2030j .text:000473F4 ; __strtod_internal+2038j ... .text:000473F4 LDR R2, [R10,#4] .text:000473F8 TST R2, #0x200000 .text:000473FC BEQ loc_47430 .text:00047400 MOV R0, R10 .text:00047404 MOV R1, R10 .text:00047408 MOV R2, #2 .text:0004740C MOV R3, #1 .text:00047410 BL __mpn_rshift .text:00047414 LDR R3, [R10,#4] .text:00047418 ADD R4, R4, #1 .text:0004741C ORR R3, R3, #0x100000 .text:00047420 STR R3, [R10,#4] .text:00047424 B loc_47450 .text:00047424 ; --------------------------------------------------------------------------- .text:00047428 off_47428 DCD dword_61B2C ; DATA XREF: __strtod_internal+1CECr .text:0004742C off_4742C DCD dword_61B34 ; DATA XREF: __strtod_internal+1CFCr .text:00047430 ; --------------------------------------------------------------------------- .text:00047430 .text:00047430 loc_47430 ; CODE XREF: __strtod_internal+2068j .text:00047430 MOV R3, 0xFFFFFC01 .text:00047438 CMP R4, R3 .text:0004743C BNE loc_47450 .text:00047440 TST R2, #0x100000 .text:00047444 MOV R3, 0xFFFFFC02 .text:0004744C MOVNE R4, R3 .text:00047450 .text:00047450 loc_47450 ; CODE XREF: __strtod_internal+1FC8j .text:00047450 ; __strtod_internal+1FF0j ... .text:00047450 CMP R4, #0x400 .text:00047454 BLE loc_48E0C .text:00047458 LDR R4, [R11,#var_178] .text:0004745C CMP R4, #0 .text:00047460 LDRNE R3, =dword_61B2C .text:00047464 LDCNE p1, c8, [R3] .text:00047468 CDPNE p1, 1, c8,c0,c0, 4 .text:0004746C BNE loc_48E1C .text:00047470 LDR R3, =dword_61B34 .text:00047474 LDC p1, c8, [R3] .text:00047478 B loc_48E1C .text:0004747C ; --------------------------------------------------------------------------- .text:0004747C .text:0004747C loc_4747C ; CODE XREF: __strtod_internal+1D14j .text:0004747C SUB R4, R11, #-var_164 .text:00047480 MOV R0, R4 .text:00047484 LDR R1, [R11,#var_1D8] .text:00047488 MOV R2, LR,LSL#2 .text:0004748C BL memcpy .text:00047490 LDR R2, [R11,#var_168] .text:00047494 CMP R2, #1 .text:00047498 MOVLE R3, #0 .text:0004749C STRLE R3, [R4,R2,LSL#2] .text:000474A0 .text:000474A0 loc_474A0 ; CODE XREF: __strtod_internal+152Cj .text:000474A0 SUB R4, R11, #-var_158 .text:000474A4 LDR R12, [R11,#var_184] .text:000474A8 MOV R1, #3 .text:000474AC LDR R8, [R11,#var_1D8] .text:000474B0 RSB R5, R12, #0x37 .text:000474B4 MOV R0, R5 .text:000474B8 BL __divsi3 .text:000474BC SUB R1, R11, #-var_190 .text:000474C0 LDMIA R1, {R1,LR} .text:000474C4 ADD R0, R0, #1 .text:000474C8 LDR R6, =_fpioconst_pow10 .text:000474CC RSB R3, R1, LR .text:000474D0 CMP R3, R0 .text:000474D4 BLE loc_47500 .text:000474D8 MOV R0, R5 .text:000474DC MOV R1, #3 .text:000474E0 BL __divsi3 .text:000474E4 LDR R2, [R11,#var_190] .text:000474E8 MOV R3, #1 .text:000474EC STR R3, [R11,#var_1B0] .text:000474F0 ADD R0, R2, R0 .text:000474F4 ADD R0, R0, #1 .text:000474F8 STR R0, [R11,#var_18C] .text:000474FC B loc_47508 .text:00047500 ; --------------------------------------------------------------------------- .text:00047500 .text:00047500 loc_47500 ; CODE XREF: __strtod_internal+2140j .text:00047500 MOV R12, #0 .text:00047504 STR R12, [R11,#var_1B0] .text:00047508 .text:00047508 loc_47508 ; CODE XREF: __strtod_internal+2168j .text:00047508 MOV LR, #0 .text:0004750C STR LR, [R11,#var_180] .text:00047510 LDR R0, [R11,#var_18C] .text:00047514 MOV R7, #1 .text:00047518 LDR R1, [R11,#var_190] .text:0004751C SUB R10, R11, #-var_164 .text:00047520 LDR R3, [R11,#var_16C] .text:00047524 RSB R2, R1, R0 .text:00047528 RSB R5, R3, R2 .text:0004752C STR R2, [R11,#var_1E8] .text:00047530 .text:00047530 loc_47530 ; CODE XREF: __strtod_internal+2238j .text:00047530 TST R5, R7 .text:00047534 BEQ loc_475C0 .text:00047538 LDR R2, [R11,#var_180] .text:0004753C EOR R5, R5, R7 .text:00047540 CMP R2, #0 .text:00047544 BNE loc_47570 .text:00047548 LDMIA R6, {R1,R3} .text:0004754C SUB R3, R3, #2 .text:00047550 STR R3, [R11,#var_180] .text:00047554 LDR R3, =(__tens+8) .text:00047558 MOV R0, R4 .text:0004755C LDR R12, [R11,#var_180] .text:00047560 ADD R1, R3, R1,LSL#2 .text:00047564 MOV R2, R12,LSL#2 .text:00047568 BL memcpy .text:0004756C B loc_475C0 .text:00047570 ; --------------------------------------------------------------------------- .text:00047570 .text:00047570 loc_47570 ; CODE XREF: __strtod_internal+21B0j .text:00047570 LDR LR, [R11,#var_180] .text:00047574 STR LR, [SP,#0x1F4+var_1F4] .text:00047578 LDR R12, =(__tens+8) .text:0004757C MOV R0, R8 .text:00047580 LDR R1, [R6] .text:00047584 MOV R3, R4 .text:00047588 LDR R2, [R6,#4] .text:0004758C ADD R1, R12, R1,LSL#2 .text:00047590 SUB R2, R2, #2 .text:00047594 BL __mpn_mul .text:00047598 MOV R3, R4 .text:0004759C MOV R4, R8 .text:000475A0 LDR LR, [R11,#var_180] .text:000475A4 MOV R8, R3 .text:000475A8 LDR R2, [R6,#4] .text:000475AC SUB R3, LR, #2 .text:000475B0 ADD R3, R3, R2 .text:000475B4 CMP R0, #0 .text:000475B8 SUBEQ R3, R3, #1 .text:000475BC STR R3, [R11,#var_180] .text:000475C0 .text:000475C0 loc_475C0 ; CODE XREF: __strtod_internal+21A0j .text:000475C0 ; __strtod_internal+21D8j .text:000475C0 MOV R7, R7,LSL#1 .text:000475C4 ADD R6, R6, #0x10 .text:000475C8 CMP R5, #0 .text:000475CC BNE loc_47530 .text:000475D0 LDR R0, [R11,#var_1D8] .text:000475D4 CMP R4, R0 .text:000475D8 BNE loc_475F0 .text:000475DC LDR R3, [R11,#var_180] .text:000475E0 SUB R0, R11, #-var_158 .text:000475E4 LDR R1, [R11,#var_1D8] .text:000475E8 MOV R2, R3,LSL#2 .text:000475EC BL memcpy .text:000475F0 .text:000475F0 loc_475F0 ; CODE XREF: __strtod_internal+2244j .text:000475F0 MOV R6, R5 .text:000475F4 STR R6, [R11,#var_168] .text:000475F8 MOV R4, R9 .text:000475FC LDR R12, [R11,#var_180] .text:00047600 MOV R0, R6 .text:00047604 LDR R1, [R11,#var_1E8] .text:00047608 SUB R12, R12, #1 .text:0004760C STR R12, [R11,#var_1E0] .text:00047610 .text:00047610 loc_47610 ; CODE XREF: __strtod_internal+240Cj .text:00047610 CMP R0, #9 .text:00047614 SUB R7, R1, #1 .text:00047618 BNE loc_476FC .text:0004761C LDR LR, [R11,#var_1D4] .text:00047620 LDR R2, [LR] .text:00047624 CMP R2, #0 .text:00047628 STREQ R6, [R11,#var_C0] .text:0004762C MOVEQ R3, #1 .text:00047630 BEQ loc_476F0 .text:00047634 SUB R0, R11, #-var_C0 .text:00047638 MOV R1, R0 .text:0004763C MOV R3, 0x3B9ACA00 .text:00047648 BL __mpn_mul_1 .text:0004764C SUB LR, R11, #-var_BC .text:00047650 LDR R1, [R11,#var_C0] .text:00047654 MOV R5, LR .text:00047658 LDR R2, [R11,#var_1D4] .text:0004765C ADD R3, R6, R1 .text:00047660 LDR R12, [R2] .text:00047664 CMP R3, R1 .text:00047668 STR R3, [R11,#var_C0] .text:0004766C BCS loc_4769C .text:00047670 SUBS R12, R12, #1 .text:00047674 BEQ loc_47694 .text:00047678 .text:00047678 loc_47678 ; CODE XREF: __strtod_internal+22FCj .text:00047678 LDR R3, [LR],#4 .text:0004767C ADD R1, R3, #1 .text:00047680 CMP R1, #0 .text:00047684 STR R1, [R5],#4 .text:00047688 BNE loc_4769C .text:0004768C SUBS R12, R12, #1 .text:00047690 BNE loc_47678 .text:00047694 .text:00047694 loc_47694 ; CODE XREF: __strtod_internal+22E0j .text:00047694 MOV R3, #1 .text:00047698 B loc_476CC .text:0004769C ; --------------------------------------------------------------------------- .text:0004769C .text:0004769C loc_4769C ; CODE XREF: __strtod_internal+22D8j .text:0004769C ; __strtod_internal+22F4j .text:0004769C CMP R5, LR .text:000476A0 BEQ loc_476C8 .text:000476A4 MOV R2, #0 .text:000476A8 SUB R1, R12, #1 .text:000476AC CMP R2, R1 .text:000476B0 BGE loc_476C8 .text:000476B4 .text:000476B4 loc_476B4 ; CODE XREF: __strtod_internal+2330j .text:000476B4 LDR R3, [LR,R2,LSL#2] .text:000476B8 STR R3, [R5,R2,LSL#2] .text:000476BC ADD R2, R2, #1 .text:000476C0 CMP R2, R1 .text:000476C4 BLT loc_476B4 .text:000476C8 .text:000476C8 loc_476C8 ; CODE XREF: __strtod_internal+230Cj .text:000476C8 ; __strtod_internal+231Cj .text:000476C8 MOV R3, #0 .text:000476CC .text:000476CC loc_476CC ; CODE XREF: __strtod_internal+2304j .text:000476CC ADDS R0, R0, R3 .text:000476D0 BEQ loc_476F4 .text:000476D4 LDR R3, [R11,#var_1D4] .text:000476D8 LDR R12, [R11,#var_1D8] .text:000476DC LDR R2, [R3] .text:000476E0 STR R0, [R12,R2,LSL#2] .text:000476E4 LDR LR, [R11,#var_1D4] .text:000476E8 LDR R3, [LR] .text:000476EC ADD R3, R3, #1 .text:000476F0 .text:000476F0 loc_476F0 ; CODE XREF: __strtod_internal+229Cj .text:000476F0 STR R3, [LR] .text:000476F4 .text:000476F4 loc_476F4 ; CODE XREF: __strtod_internal+233Cj .text:000476F4 MOV R6, #0 .text:000476F8 MOV R0, R6 .text:000476FC .text:000476FC loc_476FC ; CODE XREF: __strtod_internal+2284j .text:000476FC MOV R2, R6,LSL#2 .text:00047700 LDRB R1, [R4] .text:00047704 ADD R12, R0, #1 .text:00047708 SUB R3, R1, #0x30 .text:0004770C CMP R3, #9 .text:00047710 BLS loc_47788 .text:00047714 LDR R0, [R11,#var_19C] .text:00047718 CMP R0, #0 .text:0004771C BEQ loc_47780 .text:00047720 LDRB R3, [R0] .text:00047724 CMP R1, R3 .text:00047728 BNE loc_47780 .text:0004772C LDR R3, [R11,#var_19C] .text:00047730 MOV R0, #1 .text:00047734 LDRB R1, [R3,R0] .text:00047738 CMP R1, #0 .text:0004773C BEQ loc_4776C .text:00047740 LDRB R3, [R4,#1] .text:00047744 CMP R1, R3 .text:00047748 BNE loc_4776C .text:0004774C .text:0004774C loc_4774C ; CODE XREF: __strtod_internal+23D4j .text:0004774C LDR LR, [R11,#var_19C] .text:00047750 ADD R0, R0, #1 .text:00047754 LDRB R1, [LR,R0] .text:00047758 CMP R1, #0 .text:0004775C BEQ loc_4776C .text:00047760 LDRB R3, [R4,R0] .text:00047764 CMP R1, R3 .text:00047768 BEQ loc_4774C .text:0004776C .text:0004776C loc_4776C ; CODE XREF: __strtod_internal+23A8j .text:0004776C ; __strtod_internal+23B4j ... .text:0004776C LDR R1, [R11,#var_19C] .text:00047770 LDRB R3, [R1,R0] .text:00047774 CMP R3, #0 .text:00047778 ADDEQ R4, R4, R0 .text:0004777C BEQ loc_47788 .text:00047780 .text:00047780 loc_47780 ; CODE XREF: __strtod_internal+2388j .text:00047780 ; __strtod_internal+2394j .text:00047780 LDR R3, [R11,#var_198] .text:00047784 ADD R4, R4, R3 .text:00047788 .text:00047788 loc_47788 ; CODE XREF: __strtod_internal+237Cj .text:00047788 ; __strtod_internal+23E8j .text:00047788 MOV R0, R12 .text:0004778C SUBS R1, R7, #0 .text:00047790 LDRB R3, [R4],#1 .text:00047794 ADD R2, R2, R6 .text:00047798 ADD R3, R3, R2,LSL#1 .text:0004779C SUB R6, R3, #0x30 .text:000477A0 BGT loc_47610 .text:000477A4 LDR R4, [R11,#var_1D0] .text:000477A8 LDR R2, [R4] .text:000477AC CMP R2, #0 .text:000477B0 BLE loc_477DC .text:000477B4 ADD R3, R12, R2 .text:000477B8 CMP R3, #9 .text:000477BC BGT loc_477DC .text:000477C0 LDR LR, =_tens_in_limb_0 .text:000477C4 LDR R12, [LR,R3,LSL#2] .text:000477C8 LDR R2, [LR,R2,LSL#2] .text:000477CC MOV R3, #0 .text:000477D0 STR R3, [R4] .text:000477D4 MUL R6, R2, R6 .text:000477D8 B loc_477E4 .text:000477DC ; --------------------------------------------------------------------------- .text:000477DC .text:000477DC loc_477DC ; CODE XREF: __strtod_internal+241Cj .text:000477DC ; __strtod_internal+2428j .text:000477DC LDR R0, =_tens_in_limb_0 .text:000477E0 LDR R12, [R0,R12,LSL#2] .text:000477E4 .text:000477E4 loc_477E4 ; CODE XREF: __strtod_internal+2444j .text:000477E4 LDR R1, [R11,#var_1D4] .text:000477E8 LDR R2, [R1] .text:000477EC CMP R2, #0 .text:000477F0 BNE loc_47818 .text:000477F4 STR R6, [R11,#var_C0] .text:000477F8 MOV R3, #1 .text:000477FC STR R3, [R1] .text:00047800 B loc_478C8 .text:00047800 ; --------------------------------------------------------------------------- .text:00047804 off_47804 DCD dword_61B2C ; DATA XREF: __strtod_internal+20CCr .text:00047808 off_47808 DCD dword_61B34 ; DATA XREF: __strtod_internal+20DCr .text:0004780C off_4780C DCD _fpioconst_pow10 ; DATA XREF: __strtod_internal+2134r .text:00047810 off_47810 DCD __tens+8 ; DATA XREF: __strtod_internal+21C0r .text:00047810 ; __strtod_internal+21E4r .text:00047814 off_47814 DCD _tens_in_limb_0 ; DATA XREF: __strtod_internal+242Cr .text:00047814 ; __strtod_internal:loc_477DCr .text:00047818 ; --------------------------------------------------------------------------- .text:00047818 .text:00047818 loc_47818 ; CODE XREF: __strtod_internal+245Cj .text:00047818 SUB R0, R11, #-var_C0 .text:0004781C MOV R1, R0 .text:00047820 MOV R3, R12 .text:00047824 BL __mpn_mul_1 .text:00047828 SUB LR, R11, #-var_BC .text:0004782C LDR R1, [R11,#var_C0] .text:00047830 MOV R4, LR .text:00047834 LDR R2, [R11,#var_1D4] .text:00047838 ADD R3, R6, R1 .text:0004783C LDR R12, [R2] .text:00047840 CMP R3, R1 .text:00047844 STR R3, [R11,#var_C0] .text:00047848 BCS loc_47878 .text:0004784C SUBS R12, R12, #1 .text:00047850 BEQ loc_47870 .text:00047854 .text:00047854 loc_47854 ; CODE XREF: __strtod_internal+24D8j .text:00047854 LDR R3, [LR],#4 .text:00047858 ADD R1, R3, #1 .text:0004785C CMP R1, #0 .text:00047860 STR R1, [R4],#4 .text:00047864 BNE loc_47878 .text:00047868 SUBS R12, R12, #1 .text:0004786C BNE loc_47854 .text:00047870 .text:00047870 loc_47870 ; CODE XREF: __strtod_internal+24BCj .text:00047870 MOV R3, #1 .text:00047874 B loc_478A8 .text:00047878 ; --------------------------------------------------------------------------- .text:00047878 .text:00047878 loc_47878 ; CODE XREF: __strtod_internal+24B4j .text:00047878 ; __strtod_internal+24D0j .text:00047878 CMP R4, LR .text:0004787C BEQ loc_478A4 .text:00047880 MOV R2, #0 .text:00047884 SUB R1, R12, #1 .text:00047888 CMP R2, R1 .text:0004788C BGE loc_478A4 .text:00047890 .text:00047890 loc_47890 ; CODE XREF: __strtod_internal+250Cj .text:00047890 LDR R3, [LR,R2,LSL#2] .text:00047894 STR R3, [R4,R2,LSL#2] .text:00047898 ADD R2, R2, #1 .text:0004789C CMP R2, R1 .text:000478A0 BLT loc_47890 .text:000478A4 .text:000478A4 loc_478A4 ; CODE XREF: __strtod_internal+24E8j .text:000478A4 ; __strtod_internal+24F8j .text:000478A4 MOV R3, #0 .text:000478A8 .text:000478A8 loc_478A8 ; CODE XREF: __strtod_internal+24E0j .text:000478A8 ADDS R0, R0, R3 .text:000478AC BEQ loc_478C8 .text:000478B0 LDR R4, [R11,#var_1D4] .text:000478B4 LDR R12, [R11,#var_1D8] .text:000478B8 LDR R3, [R4] .text:000478BC STR R0, [R12,R3,LSL#2] .text:000478C0 ADD R3, R3, #1 .text:000478C4 STR R3, [R4] .text:000478C8 .text:000478C8 loc_478C8 ; CODE XREF: __strtod_internal+246Cj .text:000478C8 ; __strtod_internal+2518j .text:000478C8 LDR R0, [R11,#var_1E0] .text:000478CC SUB LR, R11, #-var_158 .text:000478D0 LDR R2, [LR,R0,LSL#2] .text:000478D4 CMP R2, #0x10000 .text:000478D8 BCS loc_478EC .text:000478DC CMP R2, #0xFF .text:000478E0 MOVHI R1, #8 .text:000478E4 MOVLS R1, #0 .text:000478E8 B loc_478F8 .text:000478EC ; --------------------------------------------------------------------------- .text:000478EC .text:000478EC loc_478EC ; CODE XREF: __strtod_internal+2544j .text:000478EC CMP R2, #0x1000000 .text:000478F0 MOVCS R1, #0x18 .text:000478F4 MOVCC R1, #0x10 .text:000478F8 .text:000478F8 loc_478F8 ; CODE XREF: __strtod_internal+2554j .text:000478F8 LDR R4, =__clz_tab_1 .text:000478FC MOV R2, R2,LSR R1 .text:00047900 LDRB R3, [R4,R2] .text:00047904 ADD R3, R3, R1 .text:00047908 RSB R4, R3, #0x20 .text:0004790C CMP R4, #0 .text:00047910 BLE loc_47958 .text:00047914 SUB R0, R11, #-var_158 .text:00047918 MOV R1, R0 .text:0004791C LDR R2, [R11,#var_180] .text:00047920 MOV R3, R4 .text:00047924 BL __mpn_lshift .text:00047928 LDR R0, [R11,#var_1D8] .text:0004792C MOV R3, R4 .text:00047930 LDR R2, [R11,#var_168] .text:00047934 MOV R1, R0 .text:00047938 BL __mpn_lshift .text:0004793C CMP R0, #0 .text:00047940 BEQ loc_47958 .text:00047944 LDR R3, [R11,#var_168] .text:00047948 LDR R12, [R11,#var_1D8] .text:0004794C STR R0, [R12,R3,LSL#2] .text:00047950 ADD R3, R3, #1 .text:00047954 STR R3, [R11,#var_168] .text:00047958 .text:00047958 loc_47958 ; CODE XREF: __strtod_internal+257Cj .text:00047958 ; __strtod_internal+25ACj .text:00047958 SUB R0, R11, #-var_184 .text:0004795C LDMIA R0, {R0,LR} .text:00047960 CMP LR, #1 .text:00047964 STR R0, [R11,#var_16C] .text:00047968 BEQ loc_47978 .text:0004796C CMP LR, #2 .text:00047970 BEQ loc_47E30 .text:00047974 B loc_484E4 .text:00047978 ; --------------------------------------------------------------------------- .text:00047978 .text:00047978 loc_47978 ; CODE XREF: __strtod_internal+25D4j .text:00047978 MOV R1, #0 .text:0004797C STR R1, [R11,#var_1B4] .text:00047980 LDR R6, [R11,#var_158] .text:00047984 LDR R8, [R11,#var_C0] .text:00047988 MOV R9, R6,LSR#16 .text:0004798C MOV R2, R6,LSL#16 .text:00047990 MOV R2, R2,LSR#16 .text:00047994 STR R2, [R11,#var_1B8] .text:00047998 .text:00047998 loc_47998 ; CODE XREF: __strtod_internal+27F0j .text:00047998 MOV R0, R8 .text:0004799C MOV R1, R9 .text:000479A0 BL __umodsi3 .text:000479A4 MOV R4, R0 .text:000479A8 MOV R0, R8 .text:000479AC MOV R1, R9 .text:000479B0 BL __udivsi3 .text:000479B4 LDR R3, [R11,#var_1B8] .text:000479B8 MOV R5, R0 .text:000479BC MUL R3, R5, R3 .text:000479C0 MOV R4, R4,LSL#16 .text:000479C4 CMP R4, R3 .text:000479C8 BCS loc_479E4 .text:000479CC SUB R5, R5, #1 .text:000479D0 ADDS R4, R4, R6 .text:000479D4 BCS loc_479E4 .text:000479D8 CMP R4, R3 .text:000479DC SUBCC R5, R5, #1 .text:000479E0 ADDCC R4, R4, R6 .text:000479E4 .text:000479E4 loc_479E4 ; CODE XREF: __strtod_internal+2634j .text:000479E4 ; __strtod_internal+2640j .text:000479E4 RSB R4, R3, R4 .text:000479E8 MOV R0, R4 .text:000479EC MOV R1, R9 .text:000479F0 BL __umodsi3 .text:000479F4 MOV R7, R0 .text:000479F8 MOV R0, R4 .text:000479FC MOV R1, R9 .text:00047A00 BL __udivsi3 .text:00047A04 LDR R3, [R11,#var_1B8] .text:00047A08 MUL R3, R0, R3 .text:00047A0C MOV R7, R7,LSL#16 .text:00047A10 CMP R7, R3 .text:00047A14 BCS loc_47A30 .text:00047A18 SUB R0, R0, #1 .text:00047A1C ADDS R7, R7, R6 .text:00047A20 BCS loc_47A30 .text:00047A24 CMP R7, R3 .text:00047A28 SUBCC R0, R0, #1 .text:00047A2C ADDCC R7, R7, R6 .text:00047A30 .text:00047A30 loc_47A30 ; CODE XREF: __strtod_internal+2680j .text:00047A30 ; __strtod_internal+268Cj .text:00047A30 RSB R7, R3, R7 .text:00047A34 MOV R8, R7 .text:00047A38 ORR R4, R0, R5,LSL#16 .text:00047A3C LDR R3, [R11,#var_184] .text:00047A40 CMP R3, #0 .text:00047A44 BNE loc_47AD8 .text:00047A48 CMP R4, #0 .text:00047A4C MOVEQ R1, #0x20 .text:00047A50 BEQ loc_47A8C .text:00047A54 CMP R4, #0x10000 .text:00047A58 BCS loc_47A6C .text:00047A5C CMP R4, #0xFF .text:00047A60 MOVHI R1, #8 .text:00047A64 MOVLS R1, #0 .text:00047A68 B loc_47A78 .text:00047A6C ; --------------------------------------------------------------------------- .text:00047A6C .text:00047A6C loc_47A6C ; CODE XREF: __strtod_internal+26C4j .text:00047A6C CMP R4, #0x1000000 .text:00047A70 MOVCS R1, #0x18 .text:00047A74 MOVCC R1, #0x10 .text:00047A78 .text:00047A78 loc_47A78 ; CODE XREF: __strtod_internal+26D4j .text:00047A78 LDR R12, =__clz_tab_1 .text:00047A7C MOV R2, R4,LSR R1 .text:00047A80 LDRB R3, [R12,R2] .text:00047A84 ADD R3, R3, R1 .text:00047A88 RSB R1, R3, #0x20 .text:00047A8C .text:00047A8C loc_47A8C ; CODE XREF: __strtod_internal+26BCj .text:00047A8C RSB R2, R1, #0x20 .text:00047A90 LDR R3, [R11,#var_16C] .text:00047A94 CMP R2, #0x35 .text:00047A98 RSB R3, R1, R3 .text:00047A9C STR R3, [R11,#var_16C] .text:00047AA0 BLE loc_47AC0 .text:00047AA4 ADD R1, R1, #0x35 .text:00047AA8 STR R1, [R11,#var_1B4] .text:00047AAC MOV LR, #0x36 .text:00047AB0 STR LR, [R11,#var_184] .text:00047AB4 RSB R3, R1, #0x20 .text:00047AB8 MOV R3, R4,LSR R3 .text:00047ABC B loc_47B70 .text:00047AC0 ; --------------------------------------------------------------------------- .text:00047AC0 .text:00047AC0 loc_47AC0 ; CODE XREF: __strtod_internal+270Cj .text:00047AC0 MOV R3, #0 .text:00047AC4 STR R3, [R10,#4] .text:00047AC8 RSB R1, R1, #0 .text:00047ACC STR R1, [R11,#var_184] .text:00047AD0 STR R4, [R11,#var_164] .text:00047AD4 B loc_47B74 .text:00047AD8 ; --------------------------------------------------------------------------- .text:00047AD8 .text:00047AD8 loc_47AD8 ; CODE XREF: __strtod_internal+26B0j .text:00047AD8 LDR R0, [R11,#var_184] .text:00047ADC ADD R3, R0, #0x20 .text:00047AE0 CMP R3, #0x35 .text:00047AE4 BGT loc_47B0C .text:00047AE8 MOV R2, #1 .text:00047AEC ADD R1, R10, #4 .text:00047AF0 .text:00047AF0 loc_47AF0 ; CODE XREF: __strtod_internal+276Cj .text:00047AF0 LDR R3, [R1,#-4]! .text:00047AF4 STR R3, [R10,R2,LSL#2] .text:00047AF8 SUB R2, R2, #1 .text:00047AFC CMP R2, #0 .text:00047B00 BGT loc_47AF0 .text:00047B04 STR R4, [R10] .text:00047B08 B loc_47B74 .text:00047B0C ; --------------------------------------------------------------------------- .text:00047B0C .text:00047B0C loc_47B0C ; CODE XREF: __strtod_internal+2750j .text:00047B0C LDR R1, [R11,#var_184] .text:00047B10 RSB R1, R1, #0x35 .text:00047B14 CMP R1, #0 .text:00047B18 STR R1, [R11,#var_1B4] .text:00047B1C BLE loc_47B74 .text:00047B20 CMP R1, #0x20 .text:00047B24 BNE loc_47B4C .text:00047B28 MOV R2, #1 .text:00047B2C ADD R1, R10, #4 .text:00047B30 .text:00047B30 loc_47B30 ; CODE XREF: __strtod_internal+27ACj .text:00047B30 LDR R3, [R1,#-4]! .text:00047B34 STR R3, [R10,R2,LSL#2] .text:00047B38 SUB R2, R2, #1 .text:00047B3C CMP R2, #0 .text:00047B40 BGT loc_47B30 .text:00047B44 STR R4, [R10] .text:00047B48 B loc_47B74 .text:00047B4C ; --------------------------------------------------------------------------- .text:00047B4C .text:00047B4C loc_47B4C ; CODE XREF: __strtod_internal+2790j .text:00047B4C MOV R0, R10 .text:00047B50 MOV R1, R10 .text:00047B54 LDR R3, [R11,#var_1B4] .text:00047B58 MOV R2, #2 .text:00047B5C BL __mpn_lshift .text:00047B60 LDR R12, [R11,#var_1B4] .text:00047B64 LDR R3, [R11,#var_164] .text:00047B68 RSB R2, R12, #0x20 .text:00047B6C ORR R3, R3, R4,LSR R2 .text:00047B70 .text:00047B70 loc_47B70 ; CODE XREF: __strtod_internal+2728j .text:00047B70 STR R3, [R11,#var_164] .text:00047B74 .text:00047B74 loc_47B74 ; CODE XREF: __strtod_internal+2740j .text:00047B74 ; __strtod_internal+2774j ... .text:00047B74 LDR LR, [R11,#var_184] .text:00047B78 ADD LR, LR, #0x20 .text:00047B7C CMP LR, #0x35 .text:00047B80 STR LR, [R11,#var_184] .text:00047B84 BLE loc_47998 .text:00047B88 MOV R8, R4 .text:00047B8C SUBS R3, R7, #0 .text:00047B90 MOVNE R3, #1 .text:00047B94 MOV R2, 0xFFFFFC03 .text:00047B98 LDR R1, [R11,#var_1B0] .text:00047B9C SUB R2, R2, #1 .text:00047BA0 LDR R0, [R11,#var_1B4] .text:00047BA4 ORR R6, R1, R3 .text:00047BA8 LDR R3, [R11,#var_16C] .text:00047BAC RSB R9, R0, #0x1F .text:00047BB0 SUB R4, R3, #1 .text:00047BB4 CMP R4, R2 .text:00047BB8 BGE loc_47D10 .text:00047BBC RSB R12, R4, #0xFC000002 .text:00047BC0 ADD R12, R12, #0x3FC0000 .text:00047BC4 ADD R12, R12, #0x3FC00 .text:00047BC8 CMP R12, #0x35 .text:00047BCC BGT loc_48B84 .text:00047BD0 MOV R3, #1 .text:00047BD4 MOV R3, R3,LSL R9 .text:00047BD8 SUB R3, R3, #1 .text:00047BDC TST R8, R3 .text:00047BE0 ORRNE R6, R6, #1 .text:00047BE4 CMP R12, #0x35 .text:00047BE8 BNE loc_47C30 .text:00047BEC MOV R9, #0x14 .text:00047BF0 MOV R2, #0 .text:00047BF4 LDR R8, [R10,#4] .text:00047BF8 .text:00047BF8 loc_47BF8 ; CODE XREF: __strtod_internal+2878j .text:00047BF8 LDR R3, [R10,R2,LSL#2] .text:00047BFC ADD R2, R2, #1 .text:00047C00 CMP R3, #0 .text:00047C04 ORRNE R6, R6, #1 .text:00047C08 CMP R2, #1 .text:00047C0C BLE loc_47BF8 .text:00047C10 MOV R1, #0 .text:00047C14 ADD R3, R10, #4 .text:00047C18 MOV R2, R10 .text:00047C1C .text:00047C1C loc_47C1C ; CODE XREF: __strtod_internal+2890j .text:00047C1C STR R1, [R3],#-4 .text:00047C20 CMP R3, R2 .text:00047C24 BGE loc_47C1C .text:00047C28 B loc_47D08 .text:00047C28 ; --------------------------------------------------------------------------- .text:00047C2C off_47C2C DCD __clz_tab_1 ; DATA XREF: __strtod_internal:loc_478F8r .text:00047C2C ; __strtod_internal:loc_47A78r .text:00047C30 ; --------------------------------------------------------------------------- .text:00047C30 .text:00047C30 loc_47C30 ; CODE XREF: __strtod_internal+2854j .text:00047C30 CMP R12, #0x1F .text:00047C34 BLE loc_47CE4 .text:00047C38 SUB R3, R12, #1 .text:00047C3C CMP R3, #0 .text:00047C40 ADDLT R2, R3, #0x1F .text:00047C44 MOVGE R2, R3 .text:00047C48 MOV R2, R2,ASR#5 .text:00047C4C SUB R9, R3, R2,LSL#5 .text:00047C50 MOV R1, #0 .text:00047C54 CMP R1, R2 .text:00047C58 MOV LR, R12,ASR#31 .text:00047C5C LDR R8, [R10,R2,LSL#2] .text:00047C60 BGE loc_47C7C .text:00047C64 .text:00047C64 loc_47C64 ; CODE XREF: __strtod_internal+28E4j .text:00047C64 LDR R3, [R10,R1,LSL#2] .text:00047C68 ADD R1, R1, #1 .text:00047C6C CMP R3, #0 .text:00047C70 ORRNE R6, R6, #1 .text:00047C74 CMP R1, R2 .text:00047C78 BLT loc_47C64 .text:00047C7C .text:00047C7C loc_47C7C ; CODE XREF: __strtod_internal+28CCj .text:00047C7C MOV R3, #1 .text:00047C80 MOV R3, R3,LSL R9 .text:00047C84 SUB R3, R3, #1 .text:00047C88 TST R8, R3 .text:00047C8C ORRNE R6, R6, #1 .text:00047C90 MOV R0, R10 .text:00047C94 MOV R3, LR,LSR#27 .text:00047C98 ADD R3, R12, R3 .text:00047C9C MOV R4, R3,ASR#5 .text:00047CA0 ADD R1, R10, R4,LSL#2 .text:00047CA4 RSB R5, R4, #2 .text:00047CA8 MOV R2, R5 .text:00047CAC SUB R3, R12, R4,LSL#5 .text:00047CB0 BL __mpn_rshift .text:00047CB4 MOV R1, #0 .text:00047CB8 CMP R1, R4 .text:00047CBC BGE loc_47D08 .text:00047CC0 MOV R0, R4 .text:00047CC4 ADD R2, R10, R5,LSL#2 .text:00047CC8 MOV R12, R1 .text:00047CCC .text:00047CCC loc_47CCC ; CODE XREF: __strtod_internal+2948j .text:00047CCC MOV R3, R1,LSL#2 .text:00047CD0 ADD R1, R1, #1 .text:00047CD4 CMP R1, R0 .text:00047CD8 STR R12, [R3,R2] .text:00047CDC BLT loc_47CCC .text:00047CE0 B loc_47D08 .text:00047CE4 ; --------------------------------------------------------------------------- .text:00047CE4 .text:00047CE4 loc_47CE4 ; CODE XREF: __strtod_internal+28A0j .text:00047CE4 CMP R12, #0 .text:00047CE8 BLE loc_47D08 .text:00047CEC SUB R9, R12, #1 .text:00047CF0 MOV R0, R10 .text:00047CF4 MOV R1, R10 .text:00047CF8 MOV R2, #2 .text:00047CFC MOV R3, R12 .text:00047D00 LDR R8, [R11,#var_164] .text:00047D04 BL __mpn_rshift .text:00047D08 .text:00047D08 loc_47D08 ; CODE XREF: __strtod_internal+2894j .text:00047D08 ; __strtod_internal+2928j ... .text:00047D08 MOV R4, 0xFFFFFC01 .text:00047D10 .text:00047D10 loc_47D10 ; CODE XREF: __strtod_internal+2824j .text:00047D10 MOV R3, R8,LSR R9 .text:00047D14 TST R3, #1 .text:00047D18 BEQ loc_47E04 .text:00047D1C CMP R6, #0 .text:00047D20 LDR R2, [R10] .text:00047D24 BNE loc_47D44 .text:00047D28 TST R2, #1 .text:00047D2C BNE loc_47D44 .text:00047D30 MOV R3, #1 .text:00047D34 MOV R3, R3,LSL R9 .text:00047D38 SUB R3, R3, #1 .text:00047D3C TST R8, R3 .text:00047D40 BEQ loc_47E04 .text:00047D44 .text:00047D44 loc_47D44 ; CODE XREF: __strtod_internal+2990j .text:00047D44 ; __strtod_internal+2998j .text:00047D44 MOV R1, #2 .text:00047D48 ADD R0, R10, #4 .text:00047D4C MOV R12, R0 .text:00047D50 ADD R3, R2, #1 .text:00047D54 CMP R3, R2 .text:00047D58 STR R3, [R10] .text:00047D5C BCS loc_47D84 .text:00047D60 SUB R1, R1, #1 .text:00047D64 .text:00047D64 loc_47D64 ; CODE XREF: __strtod_internal+29E8j .text:00047D64 LDR R3, [R0],#4 .text:00047D68 ADD R2, R3, #1 .text:00047D6C CMP R2, #0 .text:00047D70 STR R2, [R12],#4 .text:00047D74 BNE loc_47D84 .text:00047D78 SUBS R1, R1, #1 .text:00047D7C BNE loc_47D64 .text:00047D80 B loc_47DB0 .text:00047D84 ; --------------------------------------------------------------------------- .text:00047D84 .text:00047D84 loc_47D84 ; CODE XREF: __strtod_internal+29C8j .text:00047D84 ; __strtod_internal+29E0j .text:00047D84 CMP R12, R0 .text:00047D88 BEQ loc_47DB0 .text:00047D8C MOV R2, #0 .text:00047D90 SUB R1, R1, #1 .text:00047D94 CMP R2, R1 .text:00047D98 BGE loc_47DB0 .text:00047D9C .text:00047D9C loc_47D9C ; CODE XREF: __strtod_internal+2A18j .text:00047D9C LDR R3, [R0,R2,LSL#2] .text:00047DA0 STR R3, [R12,R2,LSL#2] .text:00047DA4 ADD R2, R2, #1 .text:00047DA8 CMP R2, R1 .text:00047DAC BLT loc_47D9C .text:00047DB0 .text:00047DB0 loc_47DB0 ; CODE XREF: __strtod_internal+29ECj .text:00047DB0 ; __strtod_internal+29F4j ... .text:00047DB0 LDR R2, [R10,#4] .text:00047DB4 TST R2, #0x200000 .text:00047DB8 BEQ loc_47DE4 .text:00047DBC MOV R0, R10 .text:00047DC0 MOV R1, R10 .text:00047DC4 MOV R2, #2 .text:00047DC8 MOV R3, #1 .text:00047DCC BL __mpn_rshift .text:00047DD0 LDR R3, [R10,#4] .text:00047DD4 ADD R4, R4, #1 .text:00047DD8 ORR R3, R3, #0x100000 .text:00047DDC STR R3, [R10,#4] .text:00047DE0 B loc_47E04 .text:00047DE4 ; --------------------------------------------------------------------------- .text:00047DE4 .text:00047DE4 loc_47DE4 ; CODE XREF: __strtod_internal+2A24j .text:00047DE4 MOV R3, 0xFFFFFC01 .text:00047DEC CMP R4, R3 .text:00047DF0 BNE loc_47E04 .text:00047DF4 TST R2, #0x100000 .text:00047DF8 MOV R3, 0xFFFFFC02 .text:00047E00 MOVNE R4, R3 .text:00047E04 .text:00047E04 loc_47E04 ; CODE XREF: __strtod_internal+2984j .text:00047E04 ; __strtod_internal+29ACj ... .text:00047E04 CMP R4, #0x400 .text:00047E08 BLE loc_48E0C .text:00047E0C LDR R2, [R11,#var_178] .text:00047E10 CMP R2, #0 .text:00047E14 LDRNE R3, =dword_61B2C .text:00047E18 LDCNE p1, c8, [R3] .text:00047E1C CDPNE p1, 1, c8,c0,c0, 4 .text:00047E20 BNE loc_48E1C .text:00047E24 LDR R3, =dword_61B34 .text:00047E28 LDC p1, c8, [R3] .text:00047E2C B loc_48E1C .text:00047E30 ; --------------------------------------------------------------------------- .text:00047E30 .text:00047E30 loc_47E30 ; CODE XREF: __strtod_internal+25DCj .text:00047E30 MOV R4, #0 .text:00047E34 STR R4, [R11,#var_1C0] .text:00047E38 LDR R12, [R11,#var_158] .text:00047E3C STR R12, [R11,#var_1BC] .text:00047E40 LDR R3, [R11,#var_168] .text:00047E44 LDR LR, [R11,#var_180] .text:00047E48 CMP R3, LR .text:00047E4C LDR R12, [R11,#var_154] .text:00047E50 BGE loc_47F24 .text:00047E54 LDR R3, [R11,#var_C0] .text:00047E58 CMP R3, R12 .text:00047E5C MOVCS R5, R4 .text:00047E60 MOVCS R8, R3 .text:00047E64 BCS loc_47F2C .text:00047E68 LDR R0, [R11,#var_184] .text:00047E6C CMP R0, #0 .text:00047E70 SUBLE R3, R0, #0x20 .text:00047E74 STRLE R3, [R11,#var_16C] .text:00047E78 BLE loc_47F18 .text:00047E7C LDR R1, [R11,#var_184] .text:00047E80 ADD R3, R1, #0x20 .text:00047E84 CMP R3, #0x35 .text:00047E88 MOV R5, R3 .text:00047E8C BGT loc_47EB8 .text:00047E90 MOV R2, #1 .text:00047E94 ADD R1, R10, #4 .text:00047E98 .text:00047E98 loc_47E98 ; CODE XREF: __strtod_internal+2B14j .text:00047E98 LDR R3, [R1,#-4]! .text:00047E9C STR R3, [R10,R2,LSL#2] .text:00047EA0 SUB R2, R2, #1 .text:00047EA4 CMP R2, #0 .text:00047EA8 BGT loc_47E98 .text:00047EAC LDR R2, [R11,#var_1C0] .text:00047EB0 STR R2, [R10] .text:00047EB4 B loc_47F14 .text:00047EB8 ; --------------------------------------------------------------------------- .text:00047EB8 .text:00047EB8 loc_47EB8 ; CODE XREF: __strtod_internal+2AF8j .text:00047EB8 LDR R3, [R11,#var_184] .text:00047EBC RSB R3, R3, #0x35 .text:00047EC0 CMP R3, #0 .text:00047EC4 STR R3, [R11,#var_1C0] .text:00047EC8 BLE loc_47F14 .text:00047ECC CMP R3, #0x20 .text:00047ED0 BNE loc_47EF8 .text:00047ED4 MOV R2, #1 .text:00047ED8 ADD R1, R10, #4 .text:00047EDC .text:00047EDC loc_47EDC ; CODE XREF: __strtod_internal+2B58j .text:00047EDC LDR R3, [R1,#-4]! .text:00047EE0 STR R3, [R10,R2,LSL#2] .text:00047EE4 SUB R2, R2, #1 .text:00047EE8 CMP R2, #0 .text:00047EEC BGT loc_47EDC .text:00047EF0 STR R4, [R10] .text:00047EF4 B loc_47F14 .text:00047EF8 ; --------------------------------------------------------------------------- .text:00047EF8 .text:00047EF8 loc_47EF8 ; CODE XREF: __strtod_internal+2B3Cj .text:00047EF8 STR R12, [R11,#var_1F0] .text:00047EFC LDR R2, [R11,#var_180] .text:00047F00 MOV R0, R10 .text:00047F04 LDR R3, [R11,#var_1C0] .text:00047F08 MOV R1, R10 .text:00047F0C BL __mpn_lshift .text:00047F10 LDR R12, [R11,#var_1F0] .text:00047F14 .text:00047F14 loc_47F14 ; CODE XREF: __strtod_internal+2B20j .text:00047F14 ; __strtod_internal+2B34j ... .text:00047F14 STR R5, [R11,#var_184] .text:00047F18 .text:00047F18 loc_47F18 ; CODE XREF: __strtod_internal+2AE4j .text:00047F18 MOV R8, #0 .text:00047F1C LDR R5, [R11,#var_C0] .text:00047F20 B loc_47F2C .text:00047F24 ; --------------------------------------------------------------------------- .text:00047F24 .text:00047F24 loc_47F24 ; CODE XREF: __strtod_internal+2ABCj .text:00047F24 LDR R5, [R11,#var_BC] .text:00047F28 LDR R8, [R11,#var_C0] .text:00047F2C .text:00047F2C loc_47F2C ; CODE XREF: __strtod_internal+2AD0j .text:00047F2C ; __strtod_internal+2B8Cj .text:00047F2C LDR LR, [R11,#var_184] .text:00047F30 CMP LR, #0x35 .text:00047F34 BGT loc_48214 .text:00047F38 .text:00047F38 loc_47F38 ; CODE XREF: __strtod_internal+2E7Cj .text:00047F38 CMP R5, R12 .text:00047F3C BNE loc_47F78 .text:00047F40 MOV R4, 0xFFFFFFFF .text:00047F44 ADDS R0, R8, R5 .text:00047F48 BCC loc_47F60 .text:00047F4C LDR R1, [R11,#var_1BC] .text:00047F50 RSB R3, R1, R0 .text:00047F54 MOVS R8, R1 .text:00047F58 ADC R5, R3, #0 .text:00047F5C B loc_480B4 .text:00047F60 ; --------------------------------------------------------------------------- .text:00047F60 .text:00047F60 loc_47F60 ; CODE XREF: __strtod_internal+2BB4j .text:00047F60 LDR R5, [R11,#var_1BC] .text:00047F64 MOV R2, R5 .text:00047F68 CMP R2, #0 .text:00047F6C SUBNE R5, R5, #1 .text:00047F70 RSB R8, R2, #0 .text:00047F74 B loc_4806C .text:00047F78 ; --------------------------------------------------------------------------- .text:00047F78 .text:00047F78 loc_47F78 ; CODE XREF: __strtod_internal+2BA8j .text:00047F78 MOV R6, R12,LSL#16 .text:00047F7C STR R12, [R11,#var_1F0] .text:00047F80 MOV R6, R6,LSR#16 .text:00047F84 MOV R0, R5 .text:00047F88 MOV R9, R12,LSR#16 .text:00047F8C MOV R1, R9 .text:00047F90 BL __umodsi3 .text:00047F94 MOV R4, R0 .text:00047F98 MOV R0, R5 .text:00047F9C MOV R1, R9 .text:00047FA0 BL __udivsi3 .text:00047FA4 MOV R7, R0 .text:00047FA8 MUL R2, R6, R7 .text:00047FAC MOV R3, R8,LSR#16 .text:00047FB0 ORR R4, R3, R4,LSL#16 .text:00047FB4 LDR R12, [R11,#var_1F0] .text:00047FB8 CMP R4, R2 .text:00047FBC BCS loc_47FD8 .text:00047FC0 SUB R7, R7, #1 .text:00047FC4 ADDS R4, R4, R12 .text:00047FC8 BCS loc_47FD8 .text:00047FCC CMP R4, R2 .text:00047FD0 SUBCC R7, R7, #1 .text:00047FD4 ADDCC R4, R4, R12 .text:00047FD8 .text:00047FD8 loc_47FD8 ; CODE XREF: __strtod_internal+2C28j .text:00047FD8 ; __strtod_internal+2C34j .text:00047FD8 STR R12, [R11,#var_1F0] .text:00047FDC RSB R4, R2, R4 .text:00047FE0 MOV R0, R4 .text:00047FE4 MOV R1, R9 .text:00047FE8 BL __umodsi3 .text:00047FEC MOV R5, R0 .text:00047FF0 MOV R0, R4 .text:00047FF4 MOV R1, R9 .text:00047FF8 BL __udivsi3 .text:00047FFC MUL R2, R6, R0 .text:00048000 MOV R3, R8,LSL#16 .text:00048004 MOV R3, R3,LSR#16 .text:00048008 ORR R5, R3, R5,LSL#16 .text:0004800C LDR R12, [R11,#var_1F0] .text:00048010 CMP R5, R2 .text:00048014 BCS loc_48030 .text:00048018 SUB R0, R0, #1 .text:0004801C ADDS R5, R5, R12 .text:00048020 BCS loc_48030 .text:00048024 CMP R5, R2 .text:00048028 SUBCC R0, R0, #1 .text:0004802C ADDCC R5, R5, R12 .text:00048030 .text:00048030 loc_48030 ; CODE XREF: __strtod_internal+2C80j .text:00048030 ; __strtod_internal+2C8Cj .text:00048030 ORR R4, R0, R7,LSL#16 .text:00048034 RSB R0, R2, R5 .text:00048038 LDR LR, [R11,#var_1BC] .text:0004803C MOV R1, LR,LSR#16 .text:00048040 MOV R5, R4,LSR#16 .text:00048044 BIC R2, LR, R1,LSL#16 .text:00048048 BIC R3, R4, R5,LSL#16 .text:0004804C MUL R8, R2, R3 .text:00048050 MUL R3, R1, R3 .text:00048054 MUL R2, R5, R2 .text:00048058 MUL R5, R1, R5 .text:0004805C ADDS R2, R3, R2 .text:00048060 ADDCS R5, R5, #0x10000 .text:00048064 ADDS R8, R8, R2,LSL#16 .text:00048068 ADC R5, R5, R2,LSR#16 .text:0004806C .text:0004806C loc_4806C ; CODE XREF: __strtod_internal+2BE0j .text:0004806C ; __strtod_internal+2D0Cj .text:0004806C CMP R5, R0 .text:00048070 BHI loc_48088 .text:00048074 MOVNE R3, #0 .text:00048078 MOVEQ R3, #1 .text:0004807C CMP R3, #0 .text:00048080 CMPNE R8, #0 .text:00048084 BEQ loc_480A4 .text:00048088 .text:00048088 loc_48088 ; CODE XREF: __strtod_internal+2CDCj .text:00048088 SUB R4, R4, #1 .text:0004808C LDR R2, [R11,#var_1BC] .text:00048090 SUBS R1, R8, R2 .text:00048094 SBC R5, R5, #0 .text:00048098 MOV R8, R1 .text:0004809C ADDS R0, R0, R12 .text:000480A0 BCC loc_4806C .text:000480A4 .text:000480A4 loc_480A4 ; CODE XREF: __strtod_internal+2CF0j .text:000480A4 MOV LR, #0 .text:000480A8 SUBS R3, LR, R8 .text:000480AC SBC R5, R0, R5 .text:000480B0 MOV R8, R3 .text:000480B4 .text:000480B4 loc_480B4 ; CODE XREF: __strtod_internal+2BC8j .text:000480B4 LDR R0, [R11,#var_184] .text:000480B8 CMP R0, #0 .text:000480BC BNE loc_48150 .text:000480C0 CMP R4, #0 .text:000480C4 MOVEQ R1, #0x20 .text:000480C8 BEQ loc_48104 .text:000480CC CMP R4, #0x10000 .text:000480D0 BCS loc_480E4 .text:000480D4 CMP R4, #0xFF .text:000480D8 MOVHI R1, #8 .text:000480DC MOVLS R1, #0 .text:000480E0 B loc_480F0 .text:000480E4 ; --------------------------------------------------------------------------- .text:000480E4 .text:000480E4 loc_480E4 ; CODE XREF: __strtod_internal+2D3Cj .text:000480E4 CMP R4, #0x1000000 .text:000480E8 MOVCS R1, #0x18 .text:000480EC MOVCC R1, #0x10 .text:000480F0 .text:000480F0 loc_480F0 ; CODE XREF: __strtod_internal+2D4Cj .text:000480F0 LDR LR, =__clz_tab_1 .text:000480F4 MOV R2, R4,LSR R1 .text:000480F8 LDRB R3, [LR,R2] .text:000480FC ADD R3, R3, R1 .text:00048100 RSB R1, R3, #0x20 .text:00048104 .text:00048104 loc_48104 ; CODE XREF: __strtod_internal+2D34j .text:00048104 RSB R2, R1, #0x20 .text:00048108 LDR R3, [R11,#var_16C] .text:0004810C CMP R2, #0x35 .text:00048110 RSB R3, R1, R3 .text:00048114 STR R3, [R11,#var_16C] .text:00048118 BLE loc_48138 .text:0004811C ADD R1, R1, #0x35 .text:00048120 STR R1, [R11,#var_1C0] .text:00048124 MOV R0, #0x36 .text:00048128 STR R0, [R11,#var_184] .text:0004812C RSB R3, R1, #0x20 .text:00048130 MOV R3, R4,LSR R3 .text:00048134 B loc_481FC .text:00048138 ; --------------------------------------------------------------------------- .text:00048138 .text:00048138 loc_48138 ; CODE XREF: __strtod_internal+2D84j .text:00048138 MOV R2, #0 .text:0004813C STR R2, [R10,#4] .text:00048140 RSB R1, R1, #0 .text:00048144 STR R1, [R11,#var_184] .text:00048148 STR R4, [R11,#var_164] .text:0004814C B loc_48200 .text:00048150 ; --------------------------------------------------------------------------- .text:00048150 .text:00048150 loc_48150 ; CODE XREF: __strtod_internal+2D28j .text:00048150 LDR LR, [R11,#var_184] .text:00048154 ADD R3, LR, #0x20 .text:00048158 CMP R3, #0x35 .text:0004815C BGT loc_48184 .text:00048160 MOV R2, #1 .text:00048164 ADD R1, R10, #4 .text:00048168 .text:00048168 loc_48168 ; CODE XREF: __strtod_internal+2DE4j .text:00048168 LDR R3, [R1,#-4]! .text:0004816C STR R3, [R10,R2,LSL#2] .text:00048170 SUB R2, R2, #1 .text:00048174 CMP R2, #0 .text:00048178 BGT loc_48168 .text:0004817C STR R4, [R10] .text:00048180 B loc_48200 .text:00048184 ; --------------------------------------------------------------------------- .text:00048184 .text:00048184 loc_48184 ; CODE XREF: __strtod_internal+2DC8j .text:00048184 LDR R0, [R11,#var_184] .text:00048188 RSB R0, R0, #0x35 .text:0004818C CMP R0, #0 .text:00048190 STR R0, [R11,#var_1C0] .text:00048194 BLE loc_48200 .text:00048198 CMP R0, #0x20 .text:0004819C BNE loc_481D0 .text:000481A0 MOV R2, #1 .text:000481A4 ADD R1, R10, #4 .text:000481A8 .text:000481A8 loc_481A8 ; CODE XREF: __strtod_internal+2E24j .text:000481A8 LDR R3, [R1,#-4]! .text:000481AC STR R3, [R10,R2,LSL#2] .text:000481B0 SUB R2, R2, #1 .text:000481B4 CMP R2, #0 .text:000481B8 BGT loc_481A8 .text:000481BC STR R4, [R10] .text:000481C0 B loc_48200 .text:000481C0 ; --------------------------------------------------------------------------- .text:000481C4 off_481C4 DCD dword_61B2C ; DATA XREF: __strtod_internal+2A80r .text:000481C8 off_481C8 DCD dword_61B34 ; DATA XREF: __strtod_internal+2A90r .text:000481CC off_481CC DCD __clz_tab_1 ; DATA XREF: __strtod_internal:loc_480F0r .text:000481D0 ; --------------------------------------------------------------------------- .text:000481D0 .text:000481D0 loc_481D0 ; CODE XREF: __strtod_internal+2E08j .text:000481D0 STR R12, [R11,#var_1F0] .text:000481D4 MOV R0, R10 .text:000481D8 MOV R1, R10 .text:000481DC LDR R3, [R11,#var_1C0] .text:000481E0 MOV R2, #2 .text:000481E4 BL __mpn_lshift .text:000481E8 LDR R3, [R11,#var_164] .text:000481EC LDR R1, [R11,#var_1C0] .text:000481F0 LDR R12, [R11,#var_1F0] .text:000481F4 RSB R2, R1, #0x20 .text:000481F8 ORR R3, R3, R4,LSR R2 .text:000481FC .text:000481FC loc_481FC ; CODE XREF: __strtod_internal+2DA0j .text:000481FC STR R3, [R11,#var_164] .text:00048200 .text:00048200 loc_48200 ; CODE XREF: __strtod_internal+2DB8j .text:00048200 ; __strtod_internal+2DECj ... .text:00048200 LDR R2, [R11,#var_184] .text:00048204 ADD R2, R2, #0x20 .text:00048208 CMP R2, #0x35 .text:0004820C STR R2, [R11,#var_184] .text:00048210 BLE loc_47F38 .text:00048214 .text:00048214 loc_48214 ; CODE XREF: __strtod_internal+2BA0j .text:00048214 LDR R3, [R11,#var_16C] .text:00048218 LDR R12, [R11,#var_1B0] .text:0004821C MOV R2, #0 .text:00048220 LDR LR, [R11,#var_1C0] .text:00048224 CMP R5, R2 .text:00048228 CMPEQ R12, R2 .text:0004822C SUB R1, R3, #1 .text:00048230 RSB R3, LR, #0x1F .text:00048234 BNE loc_48240 .text:00048238 CMP R8, R2 .text:0004823C BEQ loc_48244 .text:00048240 .text:00048240 loc_48240 ; CODE XREF: __strtod_internal+2EA0j .text:00048240 MOV R2, #1 .text:00048244 .text:00048244 loc_48244 ; CODE XREF: __strtod_internal+2EA8j .text:00048244 MOV R5, R1 .text:00048248 MOV R7, R4 .text:0004824C MOV R8, R3 .text:00048250 MOV R6, R2 .text:00048254 MOV R3, 0xFFFFFC02 .text:0004825C CMP R5, R3 .text:00048260 BGE loc_483B4 .text:00048264 RSB R12, R5, #0xFC000002 .text:00048268 ADD R12, R12, #0x3FC0000 .text:0004826C ADD R12, R12, #0x3FC00 .text:00048270 CMP R12, #0x35 .text:00048274 BGT loc_48B84 .text:00048278 MOV R3, #1 .text:0004827C MOV R3, R3,LSL R8 .text:00048280 SUB R3, R3, #1 .text:00048284 TST R7, R3 .text:00048288 ORRNE R6, R6, #1 .text:0004828C CMP R12, #0x35 .text:00048290 BNE loc_482D4 .text:00048294 MOV R8, #0x14 .text:00048298 MOV R2, #0 .text:0004829C LDR R7, [R10,#4] .text:000482A0 .text:000482A0 loc_482A0 ; CODE XREF: __strtod_internal+2F20j .text:000482A0 LDR R3, [R10,R2,LSL#2] .text:000482A4 ADD R2, R2, #1 .text:000482A8 CMP R3, #0 .text:000482AC ORRNE R6, R6, #1 .text:000482B0 CMP R2, #1 .text:000482B4 BLE loc_482A0 .text:000482B8 MOV R1, #0 .text:000482BC ADD R3, R10, #4 .text:000482C0 MOV R2, R10 .text:000482C4 .text:000482C4 loc_482C4 ; CODE XREF: __strtod_internal+2F38j .text:000482C4 STR R1, [R3],#-4 .text:000482C8 CMP R3, R2 .text:000482CC BGE loc_482C4 .text:000482D0 B loc_483AC .text:000482D4 ; --------------------------------------------------------------------------- .text:000482D4 .text:000482D4 loc_482D4 ; CODE XREF: __strtod_internal+2EFCj .text:000482D4 CMP R12, #0x1F .text:000482D8 BLE loc_48388 .text:000482DC SUB R3, R12, #1 .text:000482E0 CMP R3, #0 .text:000482E4 ADDLT R2, R3, #0x1F .text:000482E8 MOVGE R2, R3 .text:000482EC MOV R2, R2,ASR#5 .text:000482F0 SUB R8, R3, R2,LSL#5 .text:000482F4 MOV R1, #0 .text:000482F8 CMP R1, R2 .text:000482FC MOV LR, R12,ASR#31 .text:00048300 LDR R7, [R10,R2,LSL#2] .text:00048304 BGE loc_48320 .text:00048308 .text:00048308 loc_48308 ; CODE XREF: __strtod_internal+2F88j .text:00048308 LDR R3, [R10,R1,LSL#2] .text:0004830C ADD R1, R1, #1 .text:00048310 CMP R3, #0 .text:00048314 ORRNE R6, R6, #1 .text:00048318 CMP R1, R2 .text:0004831C BLT loc_48308 .text:00048320 .text:00048320 loc_48320 ; CODE XREF: __strtod_internal+2F70j .text:00048320 MOV R3, #1 .text:00048324 MOV R3, R3,LSL R8 .text:00048328 SUB R3, R3, #1 .text:0004832C TST R7, R3 .text:00048330 ORRNE R6, R6, #1 .text:00048334 MOV R0, R10 .text:00048338 MOV R3, LR,LSR#27 .text:0004833C ADD R3, R12, R3 .text:00048340 MOV R4, R3,ASR#5 .text:00048344 ADD R1, R10, R4,LSL#2 .text:00048348 RSB R5, R4, #2 .text:0004834C MOV R2, R5 .text:00048350 SUB R3, R12, R4,LSL#5 .text:00048354 BL __mpn_rshift .text:00048358 MOV R1, #0 .text:0004835C CMP R1, R4 .text:00048360 BGE loc_483AC .text:00048364 MOV R0, R4 .text:00048368 ADD R2, R10, R5,LSL#2 .text:0004836C MOV R12, R1 .text:00048370 .text:00048370 loc_48370 ; CODE XREF: __strtod_internal+2FECj .text:00048370 MOV R3, R1,LSL#2 .text:00048374 ADD R1, R1, #1 .text:00048378 CMP R1, R0 .text:0004837C STR R12, [R3,R2] .text:00048380 BLT loc_48370 .text:00048384 B loc_483AC .text:00048388 ; --------------------------------------------------------------------------- .text:00048388 .text:00048388 loc_48388 ; CODE XREF: __strtod_internal+2F44j .text:00048388 CMP R12, #0 .text:0004838C BLE loc_483AC .text:00048390 SUB R8, R12, #1 .text:00048394 MOV R0, R10 .text:00048398 MOV R1, R10 .text:0004839C MOV R2, #2 .text:000483A0 MOV R3, R12 .text:000483A4 LDR R7, [R11,#var_164] .text:000483A8 BL __mpn_rshift .text:000483AC .text:000483AC loc_483AC ; CODE XREF: __strtod_internal+2F3Cj .text:000483AC ; __strtod_internal+2FCCj ... .text:000483AC MOV R5, 0xFFFFFC01 .text:000483B4 .text:000483B4 loc_483B4 ; CODE XREF: __strtod_internal+2ECCj .text:000483B4 MOV R3, R7,LSR R8 .text:000483B8 TST R3, #1 .text:000483BC BEQ loc_484A8 .text:000483C0 CMP R6, #0 .text:000483C4 LDR R2, [R10] .text:000483C8 BNE loc_483E8 .text:000483CC TST R2, #1 .text:000483D0 BNE loc_483E8 .text:000483D4 MOV R3, #1 .text:000483D8 MOV R3, R3,LSL R8 .text:000483DC SUB R3, R3, #1 .text:000483E0 TST R7, R3 .text:000483E4 BEQ loc_484A8 .text:000483E8 .text:000483E8 loc_483E8 ; CODE XREF: __strtod_internal+3034j .text:000483E8 ; __strtod_internal+303Cj .text:000483E8 MOV R1, #2 .text:000483EC ADD R0, R10, #4 .text:000483F0 MOV R12, R0 .text:000483F4 ADD R3, R2, #1 .text:000483F8 CMP R3, R2 .text:000483FC STR R3, [R10] .text:00048400 BCS loc_48428 .text:00048404 SUB R1, R1, #1 .text:00048408 .text:00048408 loc_48408 ; CODE XREF: __strtod_internal+308Cj .text:00048408 LDR R3, [R0],#4 .text:0004840C ADD R2, R3, #1 .text:00048410 CMP R2, #0 .text:00048414 STR R2, [R12],#4 .text:00048418 BNE loc_48428 .text:0004841C SUBS R1, R1, #1 .text:00048420 BNE loc_48408 .text:00048424 B loc_48454 .text:00048428 ; --------------------------------------------------------------------------- .text:00048428 .text:00048428 loc_48428 ; CODE XREF: __strtod_internal+306Cj .text:00048428 ; __strtod_internal+3084j .text:00048428 CMP R12, R0 .text:0004842C BEQ loc_48454 .text:00048430 MOV R2, #0 .text:00048434 SUB R1, R1, #1 .text:00048438 CMP R2, R1 .text:0004843C BGE loc_48454 .text:00048440 .text:00048440 loc_48440 ; CODE XREF: __strtod_internal+30BCj .text:00048440 LDR R3, [R0,R2,LSL#2] .text:00048444 STR R3, [R12,R2,LSL#2] .text:00048448 ADD R2, R2, #1 .text:0004844C CMP R2, R1 .text:00048450 BLT loc_48440 .text:00048454 .text:00048454 loc_48454 ; CODE XREF: __strtod_internal+3090j .text:00048454 ; __strtod_internal+3098j ... .text:00048454 LDR R2, [R10,#4] .text:00048458 TST R2, #0x200000 .text:0004845C BEQ loc_48488 .text:00048460 MOV R0, R10 .text:00048464 MOV R1, R10 .text:00048468 MOV R2, #2 .text:0004846C MOV R3, #1 .text:00048470 BL __mpn_rshift .text:00048474 LDR R3, [R10,#4] .text:00048478 ADD R5, R5, #1 .text:0004847C ORR R3, R3, #0x100000 .text:00048480 STR R3, [R10,#4] .text:00048484 B loc_484A8 .text:00048488 ; --------------------------------------------------------------------------- .text:00048488 .text:00048488 loc_48488 ; CODE XREF: __strtod_internal+30C8j .text:00048488 MOV R3, 0xFFFFFC01 .text:00048490 CMP R5, R3 .text:00048494 BNE loc_484A8 .text:00048498 TST R2, #0x100000 .text:0004849C MOV R3, 0xFFFFFC02 .text:000484A4 MOVNE R5, R3 .text:000484A8 .text:000484A8 loc_484A8 ; CODE XREF: __strtod_internal+3028j .text:000484A8 ; __strtod_internal+3050j ... .text:000484A8 CMP R5, #0x400 .text:000484AC BLE loc_484D4 .text:000484B0 LDR R0, [R11,#var_178] .text:000484B4 CMP R0, #0 .text:000484B8 LDRNE R3, =dword_61B2C .text:000484BC LDCNE p1, c8, [R3] .text:000484C0 CDPNE p1, 1, c8,c0,c0, 4 .text:000484C4 BNE loc_48E1C .text:000484C8 LDR R3, =dword_61B34 .text:000484CC LDC p1, c8, [R3] .text:000484D0 B loc_48E1C .text:000484D4 ; --------------------------------------------------------------------------- .text:000484D4 .text:000484D4 loc_484D4 ; CODE XREF: __strtod_internal+3118j .text:000484D4 MOV R0, R10 .text:000484D8 LDR R2, [R11,#var_178] .text:000484DC MOV R1, R5 .text:000484E0 B loc_48E18 .text:000484E4 ; --------------------------------------------------------------------------- .text:000484E4 .text:000484E4 loc_484E4 ; CODE XREF: __strtod_internal+25E0j .text:000484E4 MOV R6, #0 .text:000484E8 STR R6, [R11,#var_1C8] .text:000484EC LDR R2, [R11,#var_168] .text:000484F0 LDR R3, [R11,#var_180] .text:000484F4 SUB R12, R11, #-var_158 .text:000484F8 LDR LR, [R11,#var_1E0] .text:000484FC RSB R1, R2, R3 .text:00048500 ADD R4, R11, R1,LSL#2 .text:00048504 SUB R4, R4, #0x158 .text:00048508 MOV R1, R4 .text:0004850C SUB R4, R3, #2 .text:00048510 MOV R3, R12 .text:00048514 LDR R3, [R3,R4,LSL#2] .text:00048518 LDR R8, [R12,LR,LSL#2] .text:0004851C STR R3, [R11,#var_1C4] .text:00048520 LDR R0, [R11,#var_1D8] .text:00048524 BL __mpn_cmp .text:00048528 CMP R0, R6 .text:0004852C STR R4, [R11,#var_1DC] .text:00048530 BLE loc_4854C .text:00048534 LDR R3, [R11,#var_168] .text:00048538 LDR R4, [R11,#var_1D8] .text:0004853C MOV R2, R3,LSL#2 .text:00048540 STR R6, [R4,R2] .text:00048544 ADD R3, R3, #1 .text:00048548 STR R3, [R11,#var_168] .text:0004854C .text:0004854C loc_4854C ; CODE XREF: __strtod_internal+319Cj .text:0004854C LDR R2, [R11,#var_168] .text:00048550 LDR R12, [R11,#var_180] .text:00048554 CMP R2, R12 .text:00048558 BGE loc_48770 .text:0004855C LDR LR, [R11,#var_184] .text:00048560 RSB R4, R2, R12 .text:00048564 CMP LR, #0 .text:00048568 BGT loc_485EC .text:0004856C SUBS R0, R2, #0 .text:00048570 MOV R1, R12,LSL#2 .text:00048574 ADD LR, R4, #1 .text:00048578 MOV R5, R4,LSL#5 .text:0004857C STR R1, [R11,#var_1E4] .text:00048580 BLE loc_485B4 .text:00048584 MOV R3, R2,LSL#2 .text:00048588 SUB R1, R3, #4 .text:0004858C ADD R2, R2, R4 .text:00048590 MOV R2, R2,LSL#2 .text:00048594 LDR R12, [R11,#var_1D8] .text:00048598 .text:00048598 loc_48598 ; CODE XREF: __strtod_internal+321Cj .text:00048598 LDR R3, [R12,R1] .text:0004859C SUB R1, R1, #4 .text:000485A0 SUB R0, R0, #1 .text:000485A4 CMP R0, #0 .text:000485A8 STR R3, [R12,R2] .text:000485AC SUB R2, R2, #4 .text:000485B0 BGT loc_48598 .text:000485B4 .text:000485B4 loc_485B4 ; CODE XREF: __strtod_internal+31ECj .text:000485B4 MOV R2, #0 .text:000485B8 CMP R2, LR .text:000485BC BGE loc_485DC .text:000485C0 MOV R0, R2 .text:000485C4 LDR R1, [R11,#var_1D8] .text:000485C8 .text:000485C8 loc_485C8 ; CODE XREF: __strtod_internal+3244j .text:000485C8 MOV R3, R2,LSL#2 .text:000485CC ADD R2, R2, #1 .text:000485D0 CMP R2, LR .text:000485D4 STR R0, [R1,R3] .text:000485D8 BLT loc_485C8 .text:000485DC .text:000485DC loc_485DC ; CODE XREF: __strtod_internal+3228j .text:000485DC LDR R3, [R11,#var_16C] .text:000485E0 RSB R3, R5, R3 .text:000485E4 STR R3, [R11,#var_16C] .text:000485E8 B loc_487A8 .text:000485EC ; --------------------------------------------------------------------------- .text:000485EC .text:000485EC loc_485EC ; CODE XREF: __strtod_internal+31D4j .text:000485EC MOV R2, R4,LSL#5 .text:000485F0 LDR R12, [R11,#var_184] .text:000485F4 MOV R5, R2 .text:000485F8 ADD R3, R12, R2 .text:000485FC CMP R3, #0x35 .text:00048600 BGT loc_486A4 .text:00048604 MOV R2, #1 .text:00048608 LDR LR, [R11,#var_180] .text:0004860C ADD R1, R10, #4 .text:00048610 MOV LR, LR,LSL#2 .text:00048614 STR LR, [R11,#var_1E4] .text:00048618 ADD LR, R4, R2 .text:0004861C .text:0004861C loc_4861C ; CODE XREF: __strtod_internal+3298j .text:0004861C LDR R3, [R1,#-4]! .text:00048620 STR R3, [R10,R2,LSL#2] .text:00048624 SUB R2, R2, #1 .text:00048628 CMP R2, #0 .text:0004862C BGT loc_4861C .text:00048630 LDR R0, [R11,#var_1C8] .text:00048634 MOV R3, #0 .text:00048638 STMIA R10, {R0,R3} .text:0004863C LDR R1, [R11,#var_168] .text:00048640 CMP R1, R3 .text:00048644 BLE loc_48678 .text:00048648 MOV R3, R1,LSL#2 .text:0004864C SUB R0, R3, #4 .text:00048650 ADD R2, R1, R4 .text:00048654 MOV R2, R2,LSL#2 .text:00048658 LDR R12, [R11,#var_1D8] .text:0004865C .text:0004865C loc_4865C ; CODE XREF: __strtod_internal+32E0j .text:0004865C LDR R3, [R12,R0] .text:00048660 SUB R0, R0, #4 .text:00048664 SUB R1, R1, #1 .text:00048668 CMP R1, #0 .text:0004866C STR R3, [R12,R2] .text:00048670 SUB R2, R2, #4 .text:00048674 BGT loc_4865C .text:00048678 .text:00048678 loc_48678 ; CODE XREF: __strtod_internal+32B0j .text:00048678 MOV R2, #0 .text:0004867C CMP R2, LR .text:00048680 BGE loc_48760 .text:00048684 MOV R0, R2 .text:00048688 LDR R1, [R11,#var_1D8] .text:0004868C .text:0004868C loc_4868C ; CODE XREF: __strtod_internal+3308j .text:0004868C MOV R3, R2,LSL#2 .text:00048690 ADD R2, R2, #1 .text:00048694 CMP R2, LR .text:00048698 STR R0, [R1,R3] .text:0004869C BLT loc_4868C .text:000486A0 B loc_48760 .text:000486A4 ; --------------------------------------------------------------------------- .text:000486A4 .text:000486A4 loc_486A4 ; CODE XREF: __strtod_internal+326Cj .text:000486A4 LDR R1, [R11,#var_184] .text:000486A8 RSB R1, R1, #0x35 .text:000486AC CMP R1, #0x1F .text:000486B0 STR R1, [R11,#var_1C8] .text:000486B4 BLE loc_48708 .text:000486B8 SUBS R4, R1, #0 .text:000486BC ADDLT R4, R1, #0x1F .text:000486C0 MOV R4, R4,ASR#5 .text:000486C4 ADD R0, R10, R4,LSL#2 .text:000486C8 MOV R1, R10 .text:000486CC LDR R12, [R11,#var_1C8] .text:000486D0 MOV R2, #2 .text:000486D4 SUB R3, R12, R4,LSL#5 .text:000486D8 BL __mpn_lshift .text:000486DC LDR LR, [R11,#var_180] .text:000486E0 CMP R4, #0 .text:000486E4 MOV LR, LR,LSL#2 .text:000486E8 STR LR, [R11,#var_1E4] .text:000486EC BLT loc_48760 .text:000486F0 MOV R2, R10 .text:000486F4 MOV R3, R6 .text:000486F8 .text:000486F8 loc_486F8 ; CODE XREF: __strtod_internal+336Cj .text:000486F8 STR R3, [R2,R4,LSL#2] .text:000486FC SUBS R4, R4, #1 .text:00048700 BPL loc_486F8 .text:00048704 B loc_48760 .text:00048708 ; --------------------------------------------------------------------------- .text:00048708 .text:00048708 loc_48708 ; CODE XREF: __strtod_internal+3320j .text:00048708 LDR R0, [R11,#var_1C8] .text:0004870C LDR R1, [R11,#var_180] .text:00048710 CMP R0, #0 .text:00048714 MOV R1, R1,LSL#2 .text:00048718 STR R1, [R11,#var_1E4] .text:0004871C BLE loc_48760 .text:00048720 CMP R0, #0x20 .text:00048724 BNE loc_4874C .text:00048728 MOV R2, #1 .text:0004872C ADD R1, R10, #4 .text:00048730 .text:00048730 loc_48730 ; CODE XREF: __strtod_internal+33ACj .text:00048730 LDR R3, [R1,#-4]! .text:00048734 STR R3, [R10,R2,LSL#2] .text:00048738 SUB R2, R2, #1 .text:0004873C CMP R2, #0 .text:00048740 BGT loc_48730 .text:00048744 STR R6, [R10] .text:00048748 B loc_48760 .text:0004874C ; --------------------------------------------------------------------------- .text:0004874C .text:0004874C loc_4874C ; CODE XREF: __strtod_internal+3390j .text:0004874C MOV R0, R10 .text:00048750 MOV R1, R10 .text:00048754 LDR R3, [R11,#var_1C8] .text:00048758 MOV R2, #2 .text:0004875C BL __mpn_lshift .text:00048760 .text:00048760 loc_48760 ; CODE XREF: __strtod_internal+32ECj .text:00048760 ; __strtod_internal+330Cj ... .text:00048760 LDR R2, [R11,#var_184] .text:00048764 ADD R2, R2, R5 .text:00048768 STR R2, [R11,#var_184] .text:0004876C B loc_487A8 .text:00048770 ; --------------------------------------------------------------------------- .text:00048770 .text:00048770 loc_48770 ; CODE XREF: __strtod_internal+31C4j .text:00048770 LDR R3, [R11,#var_180] .text:00048774 CMP R2, #0 .text:00048778 MOV R3, R3,LSL#2 .text:0004877C STR R3, [R11,#var_1E4] .text:00048780 BLE loc_487A8 .text:00048784 MOV R3, R2,LSL#2 .text:00048788 SUB R1, R3, #4 .text:0004878C LDR R0, [R11,#var_1D8] .text:00048790 .text:00048790 loc_48790 ; CODE XREF: __strtod_internal+3410j .text:00048790 LDR R3, [R0,R1] .text:00048794 SUB R1, R1, #4 .text:00048798 STR R3, [R0,R2,LSL#2] .text:0004879C SUB R2, R2, #1 .text:000487A0 CMP R2, #0 .text:000487A4 BGT loc_48790 .text:000487A8 .text:000487A8 loc_487A8 ; CODE XREF: __strtod_internal+3254j .text:000487A8 ; __strtod_internal+33D8j ... .text:000487A8 MOV R3, #0 .text:000487AC LDR R12, [R11,#var_1E4] .text:000487B0 SUB R4, R11, #-var_158 .text:000487B4 STR R3, [R4,R12] .text:000487B8 LDR LR, [R11,#var_184] .text:000487BC LDR R0, [R11,#var_1D8] .text:000487C0 CMP LR, #0x35 .text:000487C4 LDR R5, [R0,R12] .text:000487C8 BGT loc_48B08 .text:000487CC STR R0, [R11,#var_1CC] .text:000487D0 .text:000487D0 loc_487D0 ; CODE XREF: __strtod_internal+3770j .text:000487D0 CMP R5, R8 .text:000487D4 BNE loc_487F0 .text:000487D8 LDR R1, [R11,#var_180] .text:000487DC MOV R6, 0xFFFFFFFF .text:000487E0 ADD R2, R1, #1 .text:000487E4 B loc_48934 .text:000487E4 ; --------------------------------------------------------------------------- .text:000487E8 off_487E8 DCD dword_61B2C ; DATA XREF: __strtod_internal+3124r .text:000487EC off_487EC DCD dword_61B34 ; DATA XREF: __strtod_internal+3134r .text:000487F0 ; --------------------------------------------------------------------------- .text:000487F0 .text:000487F0 loc_487F0 ; CODE XREF: __strtod_internal+3440j .text:000487F0 MOV R6, R8,LSL#16 .text:000487F4 MOV R6, R6,LSR#16 .text:000487F8 MOV R0, R5 .text:000487FC MOV R9, R8,LSR#16 .text:00048800 MOV R1, R9 .text:00048804 BL __umodsi3 .text:00048808 MOV R4, R0 .text:0004880C MOV R0, R5 .text:00048810 MOV R1, R9 .text:00048814 BL __udivsi3 .text:00048818 MOV R7, R0 .text:0004881C MUL R2, R6, R7 .text:00048820 LDR R12, [R11,#var_1D8] .text:00048824 LDR LR, [R11,#var_1E0] .text:00048828 LDR R3, [R12,LR,LSL#2] .text:0004882C MOV R3, R3,LSR#16 .text:00048830 ORR R4, R3, R4,LSL#16 .text:00048834 CMP R4, R2 .text:00048838 BCS loc_48854 .text:0004883C SUB R7, R7, #1 .text:00048840 ADDS R4, R4, R8 .text:00048844 BCS loc_48854 .text:00048848 CMP R4, R2 .text:0004884C SUBCC R7, R7, #1 .text:00048850 ADDCC R4, R4, R8 .text:00048854 .text:00048854 loc_48854 ; CODE XREF: __strtod_internal+34A4j .text:00048854 ; __strtod_internal+34B0j .text:00048854 RSB R4, R2, R4 .text:00048858 MOV R0, R4 .text:0004885C MOV R1, R9 .text:00048860 BL __umodsi3 .text:00048864 MOV R5, R0 .text:00048868 MOV R0, R4 .text:0004886C MOV R1, R9 .text:00048870 BL __udivsi3 .text:00048874 MUL R2, R6, R0 .text:00048878 LDR R1, [R11,#var_1D8] .text:0004887C LDR R4, [R11,#var_1E0] .text:00048880 LDR R3, [R1,R4,LSL#2] .text:00048884 MOV R3, R3,LSL#16 .text:00048888 MOV R3, R3,LSR#16 .text:0004888C ORR R5, R3, R5,LSL#16 .text:00048890 CMP R5, R2 .text:00048894 BCS loc_488B0 .text:00048898 SUB R0, R0, #1 .text:0004889C ADDS R5, R5, R8 .text:000488A0 BCS loc_488B0 .text:000488A4 CMP R5, R2 .text:000488A8 SUBCC R0, R0, #1 .text:000488AC ADDCC R5, R5, R8 .text:000488B0 .text:000488B0 loc_488B0 ; CODE XREF: __strtod_internal+3500j .text:000488B0 ; __strtod_internal+350Cj .text:000488B0 ORR R6, R0, R7,LSL#16 .text:000488B4 RSB R0, R2, R5 .text:000488B8 LDR LR, [R11,#var_1C4] .text:000488BC MOV R1, LR,LSR#16 .text:000488C0 MOV R12, R6,LSR#16 .text:000488C4 BIC R2, LR, R1,LSL#16 .text:000488C8 BIC R3, R6, R12,LSL#16 .text:000488CC MUL R5, R2, R3 .text:000488D0 MUL R3, R1, R3 .text:000488D4 MUL R2, R12, R2 .text:000488D8 MUL R12, R1, R12 .text:000488DC ADDS R2, R3, R2 .text:000488E0 ADDCS R12, R12, #0x10000 .text:000488E4 ADDS R5, R5, R2,LSL#16 .text:000488E8 ADC R12, R12, R2,LSR#16 .text:000488EC LDR R1, [R11,#var_180] .text:000488F0 ADD R2, R1, #1 .text:000488F4 B loc_48908 .text:000488F8 ; --------------------------------------------------------------------------- .text:000488F8 .text:000488F8 loc_488F8 ; CODE XREF: __strtod_internal+359Cj .text:000488F8 LDR R3, [R11,#var_1C4] .text:000488FC CMP R5, R3 .text:00048900 SUBCC R12, R12, #1 .text:00048904 RSB R5, R3, R5 .text:00048908 .text:00048908 loc_48908 ; CODE XREF: __strtod_internal+3560j .text:00048908 CMP R12, R0 .text:0004890C BHI loc_48928 .text:00048910 BNE loc_48934 .text:00048914 LDR R4, [R11,#var_1D8] .text:00048918 LDR LR, [R11,#var_1DC] .text:0004891C LDR R3, [R4,LR,LSL#2] .text:00048920 CMP R5, R3 .text:00048924 BLS loc_48934 .text:00048928 .text:00048928 loc_48928 ; CODE XREF: __strtod_internal+3578j .text:00048928 SUB R6, R6, #1 .text:0004892C ADDS R0, R0, R8 .text:00048930 BCC loc_488F8 .text:00048934 .text:00048934 loc_48934 ; CODE XREF: __strtod_internal+3450j .text:00048934 ; __strtod_internal+357Cj ... .text:00048934 SUB R1, R11, #-var_158 .text:00048938 LDR R0, [R11,#var_1CC] .text:0004893C MOV R3, R6 .text:00048940 BL __mpn_submul_1 .text:00048944 LDR R1, [R11,#var_1CC] .text:00048948 LDR R2, [R11,#var_1E4] .text:0004894C LDR R3, [R1,R2] .text:00048950 CMP R3, R0 .text:00048954 BEQ loc_48970 .text:00048958 SUB R2, R11, #-var_158 .text:0004895C LDR R0, [R11,#var_1D8] .text:00048960 SUB R6, R6, #1 .text:00048964 LDR R3, [R11,#var_180] .text:00048968 MOV R1, R0 .text:0004896C BL __mpn_add_n .text:00048970 .text:00048970 loc_48970 ; CODE XREF: __strtod_internal+35C0j .text:00048970 LDR R3, [R11,#var_1E0] .text:00048974 LDR R4, [R11,#var_1D8] .text:00048978 LDR R2, [R11,#var_1E0] .text:0004897C LDR R12, [R11,#var_1E4] .text:00048980 MOV R1, R3,LSL#2 .text:00048984 LDR R3, [R4,R1] .text:00048988 CMP R2, #0 .text:0004898C MOV R5, R3 .text:00048990 STR R3, [R4,R12] .text:00048994 BLE loc_489B8 .text:00048998 SUB R1, R1, #4 .text:0004899C LDR R0, [R11,#var_1D8] .text:000489A0 .text:000489A0 loc_489A0 ; CODE XREF: __strtod_internal+3620j .text:000489A0 LDR R3, [R0,R1] .text:000489A4 SUB R1, R1, #4 .text:000489A8 STR R3, [R0,R2,LSL#2] .text:000489AC SUB R2, R2, #1 .text:000489B0 CMP R2, #0 .text:000489B4 BGT loc_489A0 .text:000489B8 .text:000489B8 loc_489B8 ; CODE XREF: __strtod_internal+3600j .text:000489B8 LDR LR, [R11,#var_184] .text:000489BC CMP LR, #0 .text:000489C0 BNE loc_48A58 .text:000489C4 CMP R6, #0 .text:000489C8 MOVEQ R1, #0x20 .text:000489CC BEQ loc_48A08 .text:000489D0 CMP R6, #0x10000 .text:000489D4 BCS loc_489E8 .text:000489D8 CMP R6, #0xFF .text:000489DC MOVHI R1, #8 .text:000489E0 MOVLS R1, #0 .text:000489E4 B loc_489F4 .text:000489E8 ; --------------------------------------------------------------------------- .text:000489E8 .text:000489E8 loc_489E8 ; CODE XREF: __strtod_internal+3640j .text:000489E8 CMP R6, #0x1000000 .text:000489EC MOVCS R1, #0x18 .text:000489F0 MOVCC R1, #0x10 .text:000489F4 .text:000489F4 loc_489F4 ; CODE XREF: __strtod_internal+3650j .text:000489F4 LDR R0, =__clz_tab_1 .text:000489F8 MOV R2, R6,LSR R1 .text:000489FC LDRB R3, [R0,R2] .text:00048A00 ADD R3, R3, R1 .text:00048A04 RSB R1, R3, #0x20 .text:00048A08 .text:00048A08 loc_48A08 ; CODE XREF: __strtod_internal+3638j .text:00048A08 RSB R2, R1, #0x20 .text:00048A0C LDR R3, [R11,#var_16C] .text:00048A10 CMP R2, #0x35 .text:00048A14 RSB R3, R1, R3 .text:00048A18 STR R3, [R11,#var_16C] .text:00048A1C BLE loc_48A40 .text:00048A20 ADD R1, R1, #0x35 .text:00048A24 STR R1, [R11,#var_1C8] .text:00048A28 LDR R2, [R11,#var_1C8] .text:00048A2C MOV R1, #0x36 .text:00048A30 STR R1, [R11,#var_184] .text:00048A34 RSB R3, R2, #0x20 .text:00048A38 MOV R3, R6,LSR R3 .text:00048A3C B loc_48AF0 .text:00048A40 ; --------------------------------------------------------------------------- .text:00048A40 .text:00048A40 loc_48A40 ; CODE XREF: __strtod_internal+3688j .text:00048A40 MOV R3, #0 .text:00048A44 STR R3, [R10,#4] .text:00048A48 RSB R1, R1, #0 .text:00048A4C STR R1, [R11,#var_184] .text:00048A50 STR R6, [R11,#var_164] .text:00048A54 B loc_48AF4 .text:00048A58 ; --------------------------------------------------------------------------- .text:00048A58 .text:00048A58 loc_48A58 ; CODE XREF: __strtod_internal+362Cj .text:00048A58 LDR R4, [R11,#var_184] .text:00048A5C ADD R3, R4, #0x20 .text:00048A60 CMP R3, #0x35 .text:00048A64 BGT loc_48A8C .text:00048A68 MOV R2, #1 .text:00048A6C ADD R1, R10, #4 .text:00048A70 .text:00048A70 loc_48A70 ; CODE XREF: __strtod_internal+36ECj .text:00048A70 LDR R3, [R1,#-4]! .text:00048A74 STR R3, [R10,R2,LSL#2] .text:00048A78 SUB R2, R2, #1 .text:00048A7C CMP R2, #0 .text:00048A80 BGT loc_48A70 .text:00048A84 STR R6, [R10] .text:00048A88 B loc_48AF4 .text:00048A8C ; --------------------------------------------------------------------------- .text:00048A8C .text:00048A8C loc_48A8C ; CODE XREF: __strtod_internal+36D0j .text:00048A8C LDR R12, [R11,#var_184] .text:00048A90 RSB R12, R12, #0x35 .text:00048A94 CMP R12, #0 .text:00048A98 STR R12, [R11,#var_1C8] .text:00048A9C BLE loc_48AF4 .text:00048AA0 CMP R12, #0x20 .text:00048AA4 BNE loc_48ACC .text:00048AA8 MOV R2, #1 .text:00048AAC ADD R1, R10, #4 .text:00048AB0 .text:00048AB0 loc_48AB0 ; CODE XREF: __strtod_internal+372Cj .text:00048AB0 LDR R3, [R1,#-4]! .text:00048AB4 STR R3, [R10,R2,LSL#2] .text:00048AB8 SUB R2, R2, #1 .text:00048ABC CMP R2, #0 .text:00048AC0 BGT loc_48AB0 .text:00048AC4 STR R6, [R10] .text:00048AC8 B loc_48AF4 .text:00048ACC ; --------------------------------------------------------------------------- .text:00048ACC .text:00048ACC loc_48ACC ; CODE XREF: __strtod_internal+3710j .text:00048ACC MOV R0, R10 .text:00048AD0 MOV R1, R10 .text:00048AD4 LDR R3, [R11,#var_1C8] .text:00048AD8 MOV R2, #2 .text:00048ADC BL __mpn_lshift .text:00048AE0 LDR LR, [R11,#var_1C8] .text:00048AE4 LDR R3, [R11,#var_164] .text:00048AE8 RSB R2, LR, #0x20 .text:00048AEC ORR R3, R3, R6,LSR R2 .text:00048AF0 .text:00048AF0 loc_48AF0 ; CODE XREF: __strtod_internal+36A8j .text:00048AF0 STR R3, [R11,#var_164] .text:00048AF4 .text:00048AF4 loc_48AF4 ; CODE XREF: __strtod_internal+36C0j .text:00048AF4 ; __strtod_internal+36F4j ... .text:00048AF4 LDR R0, [R11,#var_184] .text:00048AF8 ADD R0, R0, #0x20 .text:00048AFC CMP R0, #0x35 .text:00048B00 STR R0, [R11,#var_184] .text:00048B04 BLE loc_487D0 .text:00048B08 .text:00048B08 loc_48B08 ; CODE XREF: __strtod_internal+3434j .text:00048B08 LDR R2, [R11,#var_180] .text:00048B0C LDR R1, [R11,#var_1D8] .text:00048B10 LDR R3, [R1,R2,LSL#2] .text:00048B14 CMP R2, #0 .text:00048B18 CMPGE R3, #0 .text:00048B1C LDR R3, [R11,#var_1C8] .text:00048B20 LDR R1, [R11,#var_16C] .text:00048B24 RSB R12, R3, #0x1F .text:00048B28 BNE loc_48B44 .text:00048B2C LDR R0, [R11,#var_1D8] .text:00048B30 .text:00048B30 loc_48B30 ; CODE XREF: __strtod_internal+37ACj .text:00048B30 SUB R2, R2, #1 .text:00048B34 LDR R3, [R0,R2,LSL#2] .text:00048B38 CMP R2, #0 .text:00048B3C CMPGE R3, #0 .text:00048B40 BEQ loc_48B30 .text:00048B44 .text:00048B44 loc_48B44 ; CODE XREF: __strtod_internal+3794j .text:00048B44 SUB R4, R1, #1 .text:00048B48 MOV R7, R6 .text:00048B4C MOV R8, R12 .text:00048B50 MVN R2, R2 .text:00048B54 MOV R2, R2,LSR#31 .text:00048B58 MOV R3, 0xFFFFFC02 .text:00048B60 LDR R12, [R11,#var_1B0] .text:00048B64 CMP R4, R3 .text:00048B68 ORR R6, R12, R2 .text:00048B6C BGE loc_48CD8 .text:00048B70 RSB R12, R4, #0xFC000002 .text:00048B74 ADD R12, R12, #0x3FC0000 .text:00048B78 ADD R12, R12, #0x3FC00 .text:00048B7C CMP R12, #0x35 .text:00048B80 BLE loc_48B9C .text:00048B84 .text:00048B84 loc_48B84 ; CODE XREF: __strtod_internal+F24j .text:00048B84 ; __strtod_internal+1204j ... .text:00048B84 BL __errno_location .text:00048B88 MOV R3, #0x21 .text:00048B8C STR R3, [R0] .text:00048B90 ADR R3, dword_48DB0 .text:00048B94 LDMIA R3, {R3,R4} .text:00048B98 B loc_48E24 .text:00048B9C ; --------------------------------------------------------------------------- .text:00048B9C .text:00048B9C loc_48B9C ; CODE XREF: __strtod_internal+37ECj .text:00048B9C MOV R3, #1 .text:00048BA0 MOV R3, R3,LSL R8 .text:00048BA4 SUB R3, R3, #1 .text:00048BA8 TST R7, R3 .text:00048BAC ORRNE R6, R6, #1 .text:00048BB0 CMP R12, #0x35 .text:00048BB4 BNE loc_48BF8 .text:00048BB8 MOV R8, #0x14 .text:00048BBC MOV R2, #0 .text:00048BC0 LDR R7, [R10,#4] .text:00048BC4 .text:00048BC4 loc_48BC4 ; CODE XREF: __strtod_internal+3844j .text:00048BC4 LDR R3, [R10,R2,LSL#2] .text:00048BC8 ADD R2, R2, #1 .text:00048BCC CMP R3, #0 .text:00048BD0 ORRNE R6, R6, #1 .text:00048BD4 CMP R2, #1 .text:00048BD8 BLE loc_48BC4 .text:00048BDC MOV R1, #0 .text:00048BE0 ADD R3, R10, #4 .text:00048BE4 MOV R2, R10 .text:00048BE8 .text:00048BE8 loc_48BE8 ; CODE XREF: __strtod_internal+385Cj .text:00048BE8 STR R1, [R3],#-4 .text:00048BEC CMP R3, R2 .text:00048BF0 BGE loc_48BE8 .text:00048BF4 B loc_48CD0 .text:00048BF8 ; --------------------------------------------------------------------------- .text:00048BF8 .text:00048BF8 loc_48BF8 ; CODE XREF: __strtod_internal+3820j .text:00048BF8 CMP R12, #0x1F .text:00048BFC BLE loc_48CAC .text:00048C00 SUB R3, R12, #1 .text:00048C04 CMP R3, #0 .text:00048C08 ADDLT R2, R3, #0x1F .text:00048C0C MOVGE R2, R3 .text:00048C10 MOV R2, R2,ASR#5 .text:00048C14 SUB R8, R3, R2,LSL#5 .text:00048C18 MOV R1, #0 .text:00048C1C CMP R1, R2 .text:00048C20 MOV LR, R12,ASR#31 .text:00048C24 LDR R7, [R10,R2,LSL#2] .text:00048C28 BGE loc_48C44 .text:00048C2C .text:00048C2C loc_48C2C ; CODE XREF: __strtod_internal+38ACj .text:00048C2C LDR R3, [R10,R1,LSL#2] .text:00048C30 ADD R1, R1, #1 .text:00048C34 CMP R3, #0 .text:00048C38 ORRNE R6, R6, #1 .text:00048C3C CMP R1, R2 .text:00048C40 BLT loc_48C2C .text:00048C44 .text:00048C44 loc_48C44 ; CODE XREF: __strtod_internal+3894j .text:00048C44 MOV R3, #1 .text:00048C48 MOV R3, R3,LSL R8 .text:00048C4C SUB R3, R3, #1 .text:00048C50 TST R7, R3 .text:00048C54 ORRNE R6, R6, #1 .text:00048C58 MOV R0, R10 .text:00048C5C MOV R3, LR,LSR#27 .text:00048C60 ADD R3, R12, R3 .text:00048C64 MOV R4, R3,ASR#5 .text:00048C68 ADD R1, R10, R4,LSL#2 .text:00048C6C RSB R5, R4, #2 .text:00048C70 MOV R2, R5 .text:00048C74 SUB R3, R12, R4,LSL#5 .text:00048C78 BL __mpn_rshift .text:00048C7C MOV R1, #0 .text:00048C80 CMP R1, R4 .text:00048C84 BGE loc_48CD0 .text:00048C88 MOV R0, R4 .text:00048C8C ADD R2, R10, R5,LSL#2 .text:00048C90 MOV R12, R1 .text:00048C94 .text:00048C94 loc_48C94 ; CODE XREF: __strtod_internal+3910j .text:00048C94 MOV R3, R1,LSL#2 .text:00048C98 ADD R1, R1, #1 .text:00048C9C CMP R1, R0 .text:00048CA0 STR R12, [R3,R2] .text:00048CA4 BLT loc_48C94 .text:00048CA8 B loc_48CD0 .text:00048CAC ; --------------------------------------------------------------------------- .text:00048CAC .text:00048CAC loc_48CAC ; CODE XREF: __strtod_internal+3868j .text:00048CAC CMP R12, #0 .text:00048CB0 BLE loc_48CD0 .text:00048CB4 SUB R8, R12, #1 .text:00048CB8 MOV R0, R10 .text:00048CBC MOV R1, R10 .text:00048CC0 MOV R2, #2 .text:00048CC4 MOV R3, R12 .text:00048CC8 LDR R7, [R11,#var_164] .text:00048CCC BL __mpn_rshift .text:00048CD0 .text:00048CD0 loc_48CD0 ; CODE XREF: __strtod_internal+3860j .text:00048CD0 ; __strtod_internal+38F0j ... .text:00048CD0 MOV R4, 0xFFFFFC01 .text:00048CD8 .text:00048CD8 loc_48CD8 ; CODE XREF: __strtod_internal+37D8j .text:00048CD8 MOV R3, R7,LSR R8 .text:00048CDC TST R3, #1 .text:00048CE0 BEQ loc_48DD8 .text:00048CE4 CMP R6, #0 .text:00048CE8 LDR R2, [R10] .text:00048CEC BNE loc_48D0C .text:00048CF0 TST R2, #1 .text:00048CF4 BNE loc_48D0C .text:00048CF8 MOV R3, #1 .text:00048CFC MOV R3, R3,LSL R8 .text:00048D00 SUB R3, R3, #1 .text:00048D04 TST R7, R3 .text:00048D08 BEQ loc_48DD8 .text:00048D0C .text:00048D0C loc_48D0C ; CODE XREF: __strtod_internal+3958j .text:00048D0C ; __strtod_internal+3960j .text:00048D0C MOV R1, #2 .text:00048D10 ADD R0, R10, #4 .text:00048D14 MOV R12, R0 .text:00048D18 ADD R3, R2, #1 .text:00048D1C CMP R3, R2 .text:00048D20 STR R3, [R10] .text:00048D24 BCS loc_48D4C .text:00048D28 SUB R1, R1, #1 .text:00048D2C .text:00048D2C loc_48D2C ; CODE XREF: __strtod_internal+39B0j .text:00048D2C LDR R3, [R0],#4 .text:00048D30 ADD R2, R3, #1 .text:00048D34 CMP R2, #0 .text:00048D38 STR R2, [R12],#4 .text:00048D3C BNE loc_48D4C .text:00048D40 SUBS R1, R1, #1 .text:00048D44 BNE loc_48D2C .text:00048D48 B loc_48D78 .text:00048D4C ; --------------------------------------------------------------------------- .text:00048D4C .text:00048D4C loc_48D4C ; CODE XREF: __strtod_internal+3990j .text:00048D4C ; __strtod_internal+39A8j .text:00048D4C CMP R12, R0 .text:00048D50 BEQ loc_48D78 .text:00048D54 MOV R2, #0 .text:00048D58 SUB R1, R1, #1 .text:00048D5C CMP R2, R1 .text:00048D60 BGE loc_48D78 .text:00048D64 .text:00048D64 loc_48D64 ; CODE XREF: __strtod_internal+39E0j .text:00048D64 LDR R3, [R0,R2,LSL#2] .text:00048D68 STR R3, [R12,R2,LSL#2] .text:00048D6C ADD R2, R2, #1 .text:00048D70 CMP R2, R1 .text:00048D74 BLT loc_48D64 .text:00048D78 .text:00048D78 loc_48D78 ; CODE XREF: __strtod_internal+39B4j .text:00048D78 ; __strtod_internal+39BCj ... .text:00048D78 LDR R2, [R10,#4] .text:00048D7C TST R2, #0x200000 .text:00048D80 BEQ loc_48DB8 .text:00048D84 MOV R0, R10 .text:00048D88 MOV R1, R10 .text:00048D8C MOV R2, #2 .text:00048D90 MOV R3, #1 .text:00048D94 BL __mpn_rshift .text:00048D98 LDR R3, [R10,#4] .text:00048D9C ADD R4, R4, #1 .text:00048DA0 ORR R3, R3, #0x100000 .text:00048DA4 STR R3, [R10,#4] .text:00048DA8 B loc_48DD8 .text:00048DA8 ; --------------------------------------------------------------------------- .text:00048DAC off_48DAC DCD __clz_tab_1 ; DATA XREF: __strtod_internal:loc_489F4r .text:00048DB0 dword_48DB0 DCD 0, 0 ; DATA XREF: __strtod_internal+37FCo .text:00048DB8 ; --------------------------------------------------------------------------- .text:00048DB8 .text:00048DB8 loc_48DB8 ; CODE XREF: __strtod_internal+39ECj .text:00048DB8 MOV R3, 0xFFFFFC01 .text:00048DC0 CMP R4, R3 .text:00048DC4 BNE loc_48DD8 .text:00048DC8 TST R2, #0x100000 .text:00048DCC MOV R3, 0xFFFFFC02 .text:00048DD4 MOVNE R4, R3 .text:00048DD8 .text:00048DD8 loc_48DD8 ; CODE XREF: __strtod_internal+394Cj .text:00048DD8 ; __strtod_internal+3974j ... .text:00048DD8 CMP R4, #0x400 .text:00048DDC BLE loc_48E0C .text:00048DE0 LDR LR, [R11,#var_178] .text:00048DE4 CMP LR, #0 .text:00048DE8 LDRNE R3, =dword_61B2C .text:00048DEC LDCNE p1, c8, [R3] .text:00048DF0 CDPNE p1, 1, c8,c0,c0, 4 .text:00048DF4 BNE loc_48E1C .text:00048DF8 LDR R3, =dword_61B34 .text:00048DFC LDC p1, c8, [R3] .text:00048E00 B loc_48E1C .text:00048E00 ; --------------------------------------------------------------------------- .text:00048E04 off_48E04 DCD dword_61B2C ; DATA XREF: __strtod_internal+3A54r .text:00048E08 off_48E08 DCD dword_61B34 ; DATA XREF: __strtod_internal+3A64r .text:00048E0C ; --------------------------------------------------------------------------- .text:00048E0C .text:00048E0C loc_48E0C ; CODE XREF: __strtod_internal+115Cj .text:00048E0C ; __strtod_internal+1428j ... .text:00048E0C MOV R0, R10 .text:00048E10 LDR R2, [R11,#var_178] .text:00048E14 MOV R1, R4 .text:00048E18 .text:00048E18 loc_48E18 ; CODE XREF: __strtod_internal+314Cj .text:00048E18 BL __mpn_construct_double .text:00048E1C .text:00048E1C loc_48E1C ; CODE XREF: __strtod_internal+1174j .text:00048E1C ; __strtod_internal+1180j ... .text:00048E1C STC p1, c8, [SP,#0x1F4+var_1FC]! .text:00048E20 LDMFD SP!, {R3,R4} .text:00048E24 .text:00048E24 loc_48E24 ; CODE XREF: __strtod_internal+3804j .text:00048E24 STMFD SP!, {R3,R4} .text:00048E28 LDC p1, c8, [SP+0x1FC+var_1FC],#8 .text:00048E2C .text:00048E2C locret_48E2C ; CODE XREF: __strtod_internal+200j .text:00048E2C ; __strtod_internal+20Cj ... .text:00048E2C LDMDB R11, {R4-R11,SP,PC} .text:00048E2C ; End of function __strtod_internal .text:00048E2C .text:00048E30 .text:00048E30 ; =============== S U B R O U T I N E ======================================= .text:00048E30 .text:00048E30 ; Attributes: bp-based frame .text:00048E30 .text:00048E30 WEAK strtod .text:00048E30 strtod .text:00048E30 MOV R12, SP .text:00048E34 STMFD SP!, {R11,R12,LR,PC} .text:00048E38 SUB R11, R12, #4 .text:00048E3C MOV R2, #0 .text:00048E40 BL __strtod_internal .text:00048E44 LDMDB R11, {R11,SP,PC} .text:00048E44 ; End of function strtod .text:00048E44 .text:00048E48 .text:00048E48 ; =============== S U B R O U T I N E ======================================= .text:00048E48 .text:00048E48 ; Attributes: bp-based frame .text:00048E48 .text:00048E48 EXPORT __strtold_internal .text:00048E48 __strtold_internal ; CODE XREF: _IO_vfscanf+3F30p .text:00048E48 MOV R12, SP .text:00048E4C STMFD SP!, {R11,R12,LR,PC} .text:00048E50 SUB R11, R12, #4 .text:00048E54 BL __strtod_internal .text:00048E58 LDMDB R11, {R11,SP,PC} .text:00048E58 ; End of function __strtold_internal .text:00048E58 .text:00048E5C .text:00048E5C ; =============== S U B R O U T I N E ======================================= .text:00048E5C .text:00048E5C ; Attributes: bp-based frame .text:00048E5C .text:00048E5C EXPORT strtold .text:00048E5C strtold .text:00048E5C MOV R12, SP .text:00048E60 STMFD SP!, {R11,R12,LR,PC} .text:00048E64 SUB R11, R12, #4 .text:00048E68 MOV R2, #0 .text:00048E6C BL __strtod_internal .text:00048E70 LDMDB R11, {R11,SP,PC} .text:00048E70 ; End of function strtold .text:00048E70 .text:00048E74 .text:00048E74 ; =============== S U B R O U T I N E ======================================= .text:00048E74 .text:00048E74 ; Attributes: bp-based frame .text:00048E74 .text:00048E74 EXPORT __mpn_add_n .text:00048E74 __mpn_add_n ; CODE XREF: __strtof_internal+2F18p .text:00048E74 ; __strtod_internal+35D8p ... .text:00048E74 MOV R12, SP .text:00048E78 STMFD SP!, {R4,R11,R12,LR,PC} .text:00048E7C SUB R11, R12, #4 .text:00048E80 RSB R12, R3, #0 .text:00048E84 MOV R3, R12,LSL#2 .text:00048E88 RSB R4, R3, R1 .text:00048E8C RSB R1, R3, R2 .text:00048E90 RSB LR, R3, R0 .text:00048E94 MOV R0, #0 .text:00048E98 .text:00048E98 loc_48E98 ; CODE XREF: __mpn_add_n+48j .text:00048E98 LDR R2, [R1,R12,LSL#2] .text:00048E9C LDR R3, [R4,R12,LSL#2] .text:00048EA0 ADDS R2, R2, R0 .text:00048EA4 MOVCC R0, #0 .text:00048EA8 MOVCS R0, #1 .text:00048EAC ADDS R2, R2, R3 .text:00048EB0 ADDCS R0, R0, #1 .text:00048EB4 STR R2, [LR,R12,LSL#2] .text:00048EB8 ADDS R12, R12, #1 .text:00048EBC BNE loc_48E98 .text:00048EC0 LDMDB R11, {R4,R11,SP,PC} .text:00048EC0 ; End of function __mpn_add_n .text:00048EC0 .text:00048EC4 .text:00048EC4 ; =============== S U B R O U T I N E ======================================= .text:00048EC4 .text:00048EC4 ; Attributes: bp-based frame .text:00048EC4 .text:00048EC4 EXPORT __mpn_cmp .text:00048EC4 __mpn_cmp ; CODE XREF: __printf_fp+89Cp .text:00048EC4 ; __strtof_internal+2B24p ... .text:00048EC4 MOV R12, SP .text:00048EC8 STMFD SP!, {R11,R12,LR,PC} .text:00048ECC SUB R11, R12, #4 .text:00048ED0 SUBS R12, R2, #1 .text:00048ED4 BMI loc_48EF0 .text:00048ED8 .text:00048ED8 loc_48ED8 ; CODE XREF: __mpn_cmp+28j .text:00048ED8 LDR R2, [R0,R12,LSL#2] .text:00048EDC LDR R3, [R1,R12,LSL#2] .text:00048EE0 CMP R2, R3 .text:00048EE4 BNE loc_48EF8 .text:00048EE8 SUBS R12, R12, #1 .text:00048EEC BPL loc_48ED8 .text:00048EF0 .text:00048EF0 loc_48EF0 ; CODE XREF: __mpn_cmp+10j .text:00048EF0 MOV R0, #0 .text:00048EF4 LDMDB R11, {R11,SP,PC} .text:00048EF8 ; --------------------------------------------------------------------------- .text:00048EF8 .text:00048EF8 loc_48EF8 ; CODE XREF: __mpn_cmp+20j .text:00048EF8 MOVLS R0, 0xFFFFFFFF .text:00048EFC MOVHI R0, #1 .text:00048F00 LDMDB R11, {R11,SP,PC} .text:00048F00 ; End of function __mpn_cmp .text:00048F00 .text:00048F04 .text:00048F04 ; =============== S U B R O U T I N E ======================================= .text:00048F04 .text:00048F04 ; Attributes: bp-based frame .text:00048F04 .text:00048F04 EXPORT __mpn_divrem .text:00048F04 __mpn_divrem ; CODE XREF: hack_digit.159+E0p .text:00048F04 .text:00048F04 var_5C = -0x5C .text:00048F04 var_58 = -0x58 .text:00048F04 var_54 = -0x54 .text:00048F04 var_50 = -0x50 .text:00048F04 var_4C = -0x4C .text:00048F04 var_48 = -0x48 .text:00048F04 var_44 = -0x44 .text:00048F04 var_40 = -0x40 .text:00048F04 var_3C = -0x3C .text:00048F04 var_38 = -0x38 .text:00048F04 var_34 = -0x34 .text:00048F04 var_30 = -0x30 .text:00048F04 var_2C = -0x2C .text:00048F04 arg_0 = 4 .text:00048F04 arg_4 = 8 .text:00048F04 .text:00048F04 MOV R12, SP .text:00048F08 STMFD SP!, {R4-R12,LR,PC} .text:00048F0C SUB R11, R12, #4 .text:00048F10 SUB SP, SP, #0x34 .text:00048F14 STR R0, [R11,#var_2C] .text:00048F18 STR R2, [R11,#var_34] .text:00048F1C MOV R0, #0 .text:00048F20 STR R0, [R11,#var_38] .text:00048F24 LDR R2, [R11,#arg_4] .text:00048F28 MOV R6, R3 .text:00048F2C STR R1, [R11,#var_30] .text:00048F30 CMP R2, #1 .text:00048F34 BEQ loc_48F68 .text:00048F38 BGT loc_48F48 .text:00048F3C CMP R2, R0 .text:00048F40 BEQ loc_48F58 .text:00048F44 B loc_493BC .text:00048F48 ; --------------------------------------------------------------------------- .text:00048F48 .text:00048F48 loc_48F48 ; CODE XREF: __mpn_divrem+34j .text:00048F48 LDR R3, [R11,#arg_4] .text:00048F4C CMP R3, #2 .text:00048F50 BEQ loc_49168 .text:00048F54 B loc_493BC .text:00048F58 ; --------------------------------------------------------------------------- .text:00048F58 .text:00048F58 loc_48F58 ; CODE XREF: __mpn_divrem+3Cj .text:00048F58 LDR R1, [R11,#var_38] .text:00048F5C MOV R0, #1 .text:00048F60 BL __divsi3 .text:00048F64 B locret_49690 .text:00048F68 ; --------------------------------------------------------------------------- .text:00048F68 .text:00048F68 loc_48F68 ; CODE XREF: __mpn_divrem+30j .text:00048F68 LDR R12, [R11,#var_34] .text:00048F6C LDR LR, [R11,#arg_0] .text:00048F70 ADD R3, R12, R6,LSL#2 .text:00048F74 LDR R4, [R3,#-4] .text:00048F78 LDR R7, [LR] .text:00048F7C CMP R4, R7 .text:00048F80 LDRCS R0, [R11,#arg_4] .text:00048F84 RSBCS R4, R7, R4 .text:00048F88 STRCS R0, [R11,#var_38] .text:00048F8C SUB R1, R11, #-var_30 .text:00048F90 LDMIA R1, {R1,R2} .text:00048F94 MOV R3, R1,LSL#2 .text:00048F98 ADD R2, R2, R3 .text:00048F9C STR R2, [R11,#var_2C] .text:00048FA0 STR R3, [R11,#var_54] .text:00048FA4 SUBS R8, R6, #2 .text:00048FA8 SUB R3, R1, #1 .text:00048FAC STR R3, [R11,#var_50] .text:00048FB0 BMI loc_4908C .text:00048FB4 MOV R10, R7,LSR#16 .text:00048FB8 MOV R12, R7,LSL#16 .text:00048FBC MOV R12, R12,LSR#16 .text:00048FC0 STR R12, [R11,#var_3C] .text:00048FC4 .text:00048FC4 loc_48FC4 ; CODE XREF: __mpn_divrem+184j .text:00048FC4 MOV R0, R4 .text:00048FC8 MOV R1, R10 .text:00048FCC BL __umodsi3 .text:00048FD0 MOV R5, R0 .text:00048FD4 MOV R0, R4 .text:00048FD8 MOV R1, R10 .text:00048FDC BL __udivsi3 .text:00048FE0 LDR R1, [R11,#var_3C] .text:00048FE4 MOV R6, R0 .text:00048FE8 MUL R1, R6, R1 .text:00048FEC LDR LR, [R11,#var_34] .text:00048FF0 LDR R2, [LR,R8,LSL#2] .text:00048FF4 MOV R3, R2,LSR#16 .text:00048FF8 ORR R5, R3, R5,LSL#16 .text:00048FFC MOV R9, R2 .text:00049000 CMP R5, R1 .text:00049004 BCS loc_49020 .text:00049008 SUB R6, R6, #1 .text:0004900C ADDS R5, R5, R7 .text:00049010 BCS loc_49020 .text:00049014 CMP R5, R1 .text:00049018 SUBCC R6, R6, #1 .text:0004901C ADDCC R5, R5, R7 .text:00049020 .text:00049020 loc_49020 ; CODE XREF: __mpn_divrem+100j .text:00049020 ; __mpn_divrem+10Cj .text:00049020 RSB R5, R1, R5 .text:00049024 MOV R0, R5 .text:00049028 MOV R1, R10 .text:0004902C BL __umodsi3 .text:00049030 MOV R4, R0 .text:00049034 MOV R0, R5 .text:00049038 MOV R1, R10 .text:0004903C BL __udivsi3 .text:00049040 LDR R1, [R11,#var_3C] .text:00049044 MUL R1, R0, R1 .text:00049048 MOV R3, R9,LSL#16 .text:0004904C MOV R3, R3,LSR#16 .text:00049050 ORR R4, R3, R4,LSL#16 .text:00049054 CMP R4, R1 .text:00049058 BCS loc_49074 .text:0004905C SUB R0, R0, #1 .text:00049060 ADDS R4, R4, R7 .text:00049064 BCS loc_49074 .text:00049068 CMP R4, R1 .text:0004906C SUBCC R0, R0, #1 .text:00049070 ADDCC R4, R4, R7 .text:00049074 .text:00049074 loc_49074 ; CODE XREF: __mpn_divrem+154j .text:00049074 ; __mpn_divrem+160j .text:00049074 ORR R3, R0, R6,LSL#16 .text:00049078 LDR R0, [R11,#var_2C] .text:0004907C RSB R4, R1, R4 .text:00049080 STR R3, [R0,R8,LSL#2] .text:00049084 SUBS R8, R8, #1 .text:00049088 BPL loc_48FC4 .text:0004908C .text:0004908C loc_4908C ; CODE XREF: __mpn_divrem+ACj .text:0004908C LDR R1, [R11,#var_2C] .text:00049090 SUB R2, R11, #-var_54 .text:00049094 LDMIA R2, {R2,R8} .text:00049098 RSB R1, R2, R1 .text:0004909C CMP R8, #0 .text:000490A0 STR R1, [R11,#var_2C] .text:000490A4 BLT loc_4915C .text:000490A8 MOV R10, R7,LSR#16 .text:000490AC MOV R9, R7,LSL#16 .text:000490B0 MOV R9, R9,LSR#16 .text:000490B4 .text:000490B4 loc_490B4 ; CODE XREF: __mpn_divrem+254j .text:000490B4 MOV R0, R4 .text:000490B8 MOV R1, R10 .text:000490BC BL __umodsi3 .text:000490C0 MOV R5, R0 .text:000490C4 MOV R0, R4 .text:000490C8 MOV R1, R10 .text:000490CC BL __udivsi3 .text:000490D0 MOV R6, R0 .text:000490D4 MUL R3, R9, R6 .text:000490D8 MOV R5, R5,LSL#16 .text:000490DC CMP R5, R3 .text:000490E0 BCS loc_490FC .text:000490E4 SUB R6, R6, #1 .text:000490E8 ADDS R5, R5, R7 .text:000490EC BCS loc_490FC .text:000490F0 CMP R5, R3 .text:000490F4 SUBCC R6, R6, #1 .text:000490F8 ADDCC R5, R5, R7 .text:000490FC .text:000490FC loc_490FC ; CODE XREF: __mpn_divrem+1DCj .text:000490FC ; __mpn_divrem+1E8j .text:000490FC RSB R5, R3, R5 .text:00049100 MOV R0, R5 .text:00049104 MOV R1, R10 .text:00049108 BL __umodsi3 .text:0004910C MOV R4, R0 .text:00049110 MOV R0, R5 .text:00049114 MOV R1, R10 .text:00049118 BL __udivsi3 .text:0004911C MUL R3, R9, R0 .text:00049120 MOV R4, R4,LSL#16 .text:00049124 CMP R4, R3 .text:00049128 BCS loc_49144 .text:0004912C SUB R0, R0, #1 .text:00049130 ADDS R4, R4, R7 .text:00049134 BCS loc_49144 .text:00049138 CMP R4, R3 .text:0004913C SUBCC R0, R0, #1 .text:00049140 ADDCC R4, R4, R7 .text:00049144 .text:00049144 loc_49144 ; CODE XREF: __mpn_divrem+224j .text:00049144 ; __mpn_divrem+230j .text:00049144 RSB R4, R3, R4 .text:00049148 LDR R12, [R11,#var_2C] .text:0004914C ORR R3, R0, R6,LSL#16 .text:00049150 STR R3, [R12,R8,LSL#2] .text:00049154 SUBS R8, R8, #1 .text:00049158 BPL loc_490B4 .text:0004915C .text:0004915C loc_4915C ; CODE XREF: __mpn_divrem+1A0j .text:0004915C LDR LR, [R11,#var_34] .text:00049160 STR R4, [LR] .text:00049164 B loc_4968C .text:00049168 ; --------------------------------------------------------------------------- .text:00049168 .text:00049168 loc_49168 ; CODE XREF: __mpn_divrem+4Cj .text:00049168 MOV R3, R6,LSL#2 .text:0004916C LDR R0, [R11,#var_34] .text:00049170 SUB R3, R3, #8 .text:00049174 ADD R0, R0, R3 .text:00049178 STR R0, [R11,#var_34] .text:0004917C LDR R1, [R11,#arg_0] .text:00049180 LDR R5, [R0,#4] .text:00049184 LDR R8, [R1,#4] .text:00049188 LDR R7, [R0] .text:0004918C LDR R2, [R1] .text:00049190 CMP R5, R8 .text:00049194 STR R2, [R11,#var_44] .text:00049198 BCC loc_491D0 .text:0004919C LDR R12, [R11,#var_44] .text:000491A0 MOVLS R2, #0 .text:000491A4 MOVHI R2, #1 .text:000491A8 CMP R7, R12 .text:000491AC MOVCC R3, #0 .text:000491B0 MOVCS R3, #1 .text:000491B4 ORRS R2, R2, R3 .text:000491B8 BEQ loc_491D0 .text:000491BC SUBS LR, R7, R12 .text:000491C0 SBC R5, R5, R8 .text:000491C4 MOV R7, LR .text:000491C8 MOV R0, #1 .text:000491CC STR R0, [R11,#var_38] .text:000491D0 .text:000491D0 loc_491D0 ; CODE XREF: __mpn_divrem+294j .text:000491D0 ; __mpn_divrem+2B4j .text:000491D0 LDR R1, [R11,#var_30] .text:000491D4 ADD R3, R1, R6 .text:000491D8 SUBS R3, R3, #3 .text:000491DC STR R3, [R11,#var_40] .text:000491E0 BMI loc_493AC .text:000491E4 .text:000491E4 loc_491E4 ; CODE XREF: __mpn_divrem+4A4j .text:000491E4 LDR R2, [R11,#var_40] .text:000491E8 LDR R3, [R11,#var_30] .text:000491EC CMP R2, R3 .text:000491F0 LDRGE R12, [R11,#var_34] .text:000491F4 SUBGE R12, R12, #4 .text:000491F8 STRGE R12, [R11,#var_34] .text:000491FC LDRLT LR, [R11,#var_34] .text:00049200 MOVLT R3, #0 .text:00049204 STRLT R3, [LR] .text:00049208 CMP R5, R8 .text:0004920C BNE loc_4925C .text:00049210 MOV R12, 0xFFFFFFFF .text:00049214 ADDS R0, R7, R5 .text:00049218 BCC loc_49244 .text:0004921C LDR LR, [R11,#var_34] .text:00049220 LDR R1, [R11,#var_44] .text:00049224 LDR R3, [LR] .text:00049228 RSB R2, R1, R0 .text:0004922C LDR R0, [R11,#var_40] .text:00049230 ADDS R7, R3, R1 .text:00049234 ADC R5, R2, #0 .text:00049238 LDR R2, [R11,#var_2C] .text:0004923C ADD R1, R0, R12 .text:00049240 B loc_4939C .text:00049244 ; --------------------------------------------------------------------------- .text:00049244 .text:00049244 loc_49244 ; CODE XREF: __mpn_divrem+314j .text:00049244 LDR R5, [R11,#var_44] .text:00049248 MOV R3, R5 .text:0004924C CMP R3, #0 .text:00049250 SUBNE R5, R5, #1 .text:00049254 RSB R7, R3, #0 .text:00049258 B loc_49340 .text:0004925C ; --------------------------------------------------------------------------- .text:0004925C .text:0004925C loc_4925C ; CODE XREF: __mpn_divrem+308j .text:0004925C MOV R9, R8,LSL#16 .text:00049260 MOV R9, R9,LSR#16 .text:00049264 MOV R0, R5 .text:00049268 MOV R10, R8,LSR#16 .text:0004926C MOV R1, R10 .text:00049270 BL __umodsi3 .text:00049274 MOV R4, R0 .text:00049278 MOV R0, R5 .text:0004927C MOV R1, R10 .text:00049280 BL __udivsi3 .text:00049284 MOV R6, R0 .text:00049288 MUL R2, R9, R6 .text:0004928C MOV R3, R7,LSR#16 .text:00049290 ORR R4, R3, R4,LSL#16 .text:00049294 CMP R4, R2 .text:00049298 BCS loc_492B4 .text:0004929C SUB R6, R6, #1 .text:000492A0 ADDS R4, R4, R8 .text:000492A4 BCS loc_492B4 .text:000492A8 CMP R4, R2 .text:000492AC SUBCC R6, R6, #1 .text:000492B0 ADDCC R4, R4, R8 .text:000492B4 .text:000492B4 loc_492B4 ; CODE XREF: __mpn_divrem+394j .text:000492B4 ; __mpn_divrem+3A0j .text:000492B4 RSB R4, R2, R4 .text:000492B8 MOV R0, R4 .text:000492BC MOV R1, R10 .text:000492C0 BL __umodsi3 .text:000492C4 MOV R5, R0 .text:000492C8 MOV R0, R4 .text:000492CC MOV R1, R10 .text:000492D0 BL __udivsi3 .text:000492D4 MUL R2, R9, R0 .text:000492D8 MOV R3, R7,LSL#16 .text:000492DC MOV R3, R3,LSR#16 .text:000492E0 ORR R5, R3, R5,LSL#16 .text:000492E4 CMP R5, R2 .text:000492E8 BCS loc_49304 .text:000492EC SUB R0, R0, #1 .text:000492F0 ADDS R5, R5, R8 .text:000492F4 BCS loc_49304 .text:000492F8 CMP R5, R2 .text:000492FC SUBCC R0, R0, #1 .text:00049300 ADDCC R5, R5, R8 .text:00049304 .text:00049304 loc_49304 ; CODE XREF: __mpn_divrem+3E4j .text:00049304 ; __mpn_divrem+3F0j .text:00049304 ORR R12, R0, R6,LSL#16 .text:00049308 RSB R0, R2, R5 .text:0004930C LDR LR, [R11,#var_44] .text:00049310 MOV R1, LR,LSR#16 .text:00049314 MOV R5, R12,LSR#16 .text:00049318 BIC R2, LR, R1,LSL#16 .text:0004931C BIC R3, R12, R5,LSL#16 .text:00049320 MUL R7, R2, R3 .text:00049324 MUL R3, R1, R3 .text:00049328 MUL R2, R5, R2 .text:0004932C MUL R5, R1, R5 .text:00049330 ADDS R2, R3, R2 .text:00049334 ADDCS R5, R5, #0x10000 .text:00049338 ADDS R7, R7, R2,LSL#16 .text:0004933C ADC R5, R5, R2,LSR#16 .text:00049340 .text:00049340 loc_49340 ; CODE XREF: __mpn_divrem+354j .text:00049340 LDR R2, [R11,#var_40] .text:00049344 LDR R3, [R11,#var_34] .text:00049348 SUB R1, R2, #1 .text:0004934C LDR R2, [R3] .text:00049350 .text:00049350 loc_49350 ; CODE XREF: __mpn_divrem+480j .text:00049350 CMP R5, R0 .text:00049354 BHI loc_4936C .text:00049358 MOVNE R3, #0 .text:0004935C MOVEQ R3, #1 .text:00049360 CMP R3, #0 .text:00049364 CMPNE R7, R2 .text:00049368 BLS loc_49388 .text:0004936C .text:0004936C loc_4936C ; CODE XREF: __mpn_divrem+450j .text:0004936C SUB R12, R12, #1 .text:00049370 LDR R3, [R11,#var_44] .text:00049374 SUBS LR, R7, R3 .text:00049378 SBC R5, R5, #0 .text:0004937C MOV R7, LR .text:00049380 ADDS R0, R0, R8 .text:00049384 BCC loc_49350 .text:00049388 .text:00049388 loc_49388 ; CODE XREF: __mpn_divrem+464j .text:00049388 SUBS LR, R2, R7 .text:0004938C SBC R5, R0, R5 .text:00049390 LDR R0, [R11,#var_40] .text:00049394 LDR R2, [R11,#var_2C] .text:00049398 MOV R7, LR .text:0004939C .text:0004939C loc_4939C ; CODE XREF: __mpn_divrem+33Cj .text:0004939C STR R12, [R2,R0,LSL#2] .text:000493A0 CMP R1, #0 .text:000493A4 STR R1, [R11,#var_40] .text:000493A8 BGE loc_491E4 .text:000493AC .text:000493AC loc_493AC ; CODE XREF: __mpn_divrem+2DCj .text:000493AC LDR R3, [R11,#var_34] .text:000493B0 STR R5, [R3,#4] .text:000493B4 STR R7, [R3] .text:000493B8 B loc_4968C .text:000493BC ; --------------------------------------------------------------------------- .text:000493BC .text:000493BC loc_493BC ; CODE XREF: __mpn_divrem+40j .text:000493BC ; __mpn_divrem+50j .text:000493BC LDR R12, [R11,#arg_4] .text:000493C0 LDR LR, [R11,#var_34] .text:000493C4 RSB R3, R12, R6 .text:000493C8 ADD LR, LR, R3,LSL#2 .text:000493CC STR LR, [R11,#var_34] .text:000493D0 MOV R1, 0xFFFFFFFC .text:000493D4 LDR R0, [R11,#arg_0] .text:000493D8 MOV R3, R12,LSL#2 .text:000493DC ADD R4, R3, LR .text:000493E0 LDR R5, [R4,R1] .text:000493E4 ADD R2, R3, R0 .text:000493E8 LDR R7, [R2,R1] .text:000493EC STR R3, [R11,#var_58] .text:000493F0 CMP R5, R7 .text:000493F4 LDR R9, [R2,#-8] .text:000493F8 BCC loc_49434 .text:000493FC BHI loc_49418 .text:00049400 MOV R0, LR .text:00049404 LDR R1, [R11,#arg_0] .text:00049408 SUB R2, R12, #1 .text:0004940C BL __mpn_cmp .text:00049410 CMP R0, #0 .text:00049414 BLT loc_49434 .text:00049418 .text:00049418 loc_49418 ; CODE XREF: __mpn_divrem+4F8j .text:00049418 MOV R12, #1 .text:0004941C STR R12, [R11,#var_38] .text:00049420 LDR R0, [R11,#var_34] .text:00049424 LDMIB R11, {R2,R3} .text:00049428 MOV R1, R0 .text:0004942C BL __mpn_sub_n .text:00049430 LDR R5, [R4,#-4] .text:00049434 .text:00049434 loc_49434 ; CODE XREF: __mpn_divrem+4F4j .text:00049434 ; __mpn_divrem+510j .text:00049434 LDR LR, [R11,#var_30] .text:00049438 LDR R0, [R11,#arg_4] .text:0004943C ADD R3, LR, R6 .text:00049440 RSB R3, R0, R3 .text:00049444 SUBS R3, R3, #1 .text:00049448 STR R3, [R11,#var_48] .text:0004944C BMI loc_4968C .text:00049450 .text:00049450 loc_49450 ; CODE XREF: __mpn_divrem+784j .text:00049450 LDR R1, [R11,#var_48] .text:00049454 LDR R2, [R11,#var_30] .text:00049458 CMP R1, R2 .text:0004945C BLT loc_49484 .text:00049460 LDR R3, [R11,#var_34] .text:00049464 SUB R12, R1, #1 .text:00049468 STR R12, [R11,#var_5C] .text:0004946C SUB R3, R3, #4 .text:00049470 STR R3, [R11,#var_34] .text:00049474 LDR LR, [R11,#arg_4] .text:00049478 LDR LR, [R3,LR,LSL#2] .text:0004947C STR LR, [R11,#var_4C] .text:00049480 B loc_494DC .text:00049484 ; --------------------------------------------------------------------------- .text:00049484 .text:00049484 loc_49484 ; CODE XREF: __mpn_divrem+558j .text:00049484 LDR R0, [R11,#var_58] .text:00049488 LDR R1, [R11,#var_34] .text:0004948C ADD R3, R0, R1 .text:00049490 LDR R3, [R3,#-4] .text:00049494 STR R3, [R11,#var_4C] .text:00049498 LDR R3, [R11,#arg_4] .text:0004949C LDR R12, [R11,#var_48] .text:000494A0 SUBS R2, R3, #1 .text:000494A4 SUB R12, R12, #1 .text:000494A8 STR R12, [R11,#var_5C] .text:000494AC BMI loc_494D0 .text:000494B0 MOV R0, #4 .text:000494B4 MLA R1, R2, R0, R1 .text:000494B8 .text:000494B8 loc_494B8 ; CODE XREF: __mpn_divrem+5C8j .text:000494B8 LDR LR, [R11,#var_34] .text:000494BC LDR R3, [LR,R2,LSL#2] .text:000494C0 SUBS R2, R2, #1 .text:000494C4 STR R3, [R1,R0] .text:000494C8 SUB R1, R1, #4 .text:000494CC BPL loc_494B8 .text:000494D0 .text:000494D0 loc_494D0 ; CODE XREF: __mpn_divrem+5A8j .text:000494D0 LDR R0, [R11,#var_34] .text:000494D4 MOV R3, #0 .text:000494D8 STR R3, [R0] .text:000494DC .text:000494DC loc_494DC ; CODE XREF: __mpn_divrem+57Cj .text:000494DC CMP R5, R7 .text:000494E0 MOVEQ R4, 0xFFFFFFFF .text:000494E4 BEQ loc_4962C .text:000494E8 MOV R10, R7,LSL#16 .text:000494EC MOV R10, R10,LSR#16 .text:000494F0 MOV R0, R5 .text:000494F4 MOV R8, R7,LSR#16 .text:000494F8 MOV R1, R8 .text:000494FC BL __umodsi3 .text:00049500 MOV R4, R0 .text:00049504 MOV R0, R5 .text:00049508 MOV R1, R8 .text:0004950C BL __udivsi3 .text:00049510 MOV R6, R0 .text:00049514 MUL R1, R10, R6 .text:00049518 LDR R3, [R11,#var_58] .text:0004951C LDR R12, [R11,#var_34] .text:00049520 ADD R2, R3, R12 .text:00049524 LDR R3, [R2,#-4] .text:00049528 MOV R3, R3,LSR#16 .text:0004952C ORR R4, R3, R4,LSL#16 .text:00049530 CMP R4, R1 .text:00049534 BCS loc_49550 .text:00049538 SUB R6, R6, #1 .text:0004953C ADDS R4, R4, R7 .text:00049540 BCS loc_49550 .text:00049544 CMP R4, R1 .text:00049548 SUBCC R6, R6, #1 .text:0004954C ADDCC R4, R4, R7 .text:00049550 .text:00049550 loc_49550 ; CODE XREF: __mpn_divrem+630j .text:00049550 ; __mpn_divrem+63Cj .text:00049550 RSB R4, R1, R4 .text:00049554 MOV R0, R4 .text:00049558 MOV R1, R8 .text:0004955C BL __umodsi3 .text:00049560 MOV R5, R0 .text:00049564 MOV R0, R4 .text:00049568 MOV R1, R8 .text:0004956C BL __udivsi3 .text:00049570 MUL R1, R10, R0 .text:00049574 LDR LR, [R11,#var_58] .text:00049578 LDR R3, [R11,#var_34] .text:0004957C ADD R2, LR, R3 .text:00049580 LDR R3, [R2,#-4] .text:00049584 MOV R3, R3,LSL#16 .text:00049588 MOV R3, R3,LSR#16 .text:0004958C ORR R5, R3, R5,LSL#16 .text:00049590 CMP R5, R1 .text:00049594 BCS loc_495B0 .text:00049598 SUB R0, R0, #1 .text:0004959C ADDS R5, R5, R7 .text:000495A0 BCS loc_495B0 .text:000495A4 CMP R5, R1 .text:000495A8 SUBCC R0, R0, #1 .text:000495AC ADDCC R5, R5, R7 .text:000495B0 .text:000495B0 loc_495B0 ; CODE XREF: __mpn_divrem+690j .text:000495B0 ; __mpn_divrem+69Cj .text:000495B0 ORR R4, R0, R6,LSL#16 .text:000495B4 RSB R0, R1, R5 .text:000495B8 MOV R1, R9,LSR#16 .text:000495BC MOV R12, R4,LSR#16 .text:000495C0 BIC R2, R9, R1,LSL#16 .text:000495C4 BIC R3, R4, R12,LSL#16 .text:000495C8 MUL R5, R2, R3 .text:000495CC MUL R3, R1, R3 .text:000495D0 MUL R2, R12, R2 .text:000495D4 MUL R12, R1, R12 .text:000495D8 ADDS R2, R3, R2 .text:000495DC ADDCS R12, R12, #0x10000 .text:000495E0 ADDS R5, R5, R2,LSL#16 .text:000495E4 ADC R12, R12, R2,LSR#16 .text:000495E8 LDR LR, [R11,#var_58] .text:000495EC LDR R3, [R11,#var_34] .text:000495F0 MOV R1, 0xFFFFFFF8 .text:000495F4 ADD R2, LR, R3 .text:000495F8 B loc_49608 .text:000495FC ; --------------------------------------------------------------------------- .text:000495FC .text:000495FC loc_495FC ; CODE XREF: __mpn_divrem+724j .text:000495FC CMP R5, R9 .text:00049600 SUBCC R12, R12, #1 .text:00049604 RSB R5, R9, R5 .text:00049608 .text:00049608 loc_49608 ; CODE XREF: __mpn_divrem+6F4j .text:00049608 CMP R12, R0 .text:0004960C BHI loc_49620 .text:00049610 BNE loc_4962C .text:00049614 LDR R3, [R2,R1] .text:00049618 CMP R5, R3 .text:0004961C BLS loc_4962C .text:00049620 .text:00049620 loc_49620 ; CODE XREF: __mpn_divrem+708j .text:00049620 SUB R4, R4, #1 .text:00049624 ADDS R0, R0, R7 .text:00049628 BCC loc_495FC .text:0004962C .text:0004962C loc_4962C ; CODE XREF: __mpn_divrem+5E0j .text:0004962C ; __mpn_divrem+70Cj ... .text:0004962C LDR R0, [R11,#var_34] .text:00049630 LDMIB R11, {R1,R2} .text:00049634 MOV R3, R4 .text:00049638 BL __mpn_submul_1 .text:0004963C LDR R12, [R11,#var_4C] .text:00049640 CMP R12, R0 .text:00049644 BEQ loc_49660 .text:00049648 LDR R0, [R11,#var_34] .text:0004964C LDR R2, [R11,#arg_0] .text:00049650 SUB R4, R4, #1 .text:00049654 LDR R3, [R11,#arg_4] .text:00049658 MOV R1, R0 .text:0004965C BL __mpn_add_n .text:00049660 .text:00049660 loc_49660 ; CODE XREF: __mpn_divrem+740j .text:00049660 LDR LR, [R11,#var_48] .text:00049664 LDR R0, [R11,#var_2C] .text:00049668 STR R4, [R0,LR,LSL#2] .text:0004966C LDR R1, [R11,#var_5C] .text:00049670 CMP R1, #0 .text:00049674 STR R1, [R11,#var_48] .text:00049678 LDR R2, [R11,#var_58] .text:0004967C LDR R12, [R11,#var_34] .text:00049680 ADD R3, R2, R12 .text:00049684 LDR R5, [R3,#-4] .text:00049688 BGE loc_49450 .text:0004968C .text:0004968C loc_4968C ; CODE XREF: __mpn_divrem+260j .text:0004968C ; __mpn_divrem+4B4j ... .text:0004968C LDR R0, [R11,#var_38] .text:00049690 .text:00049690 locret_49690 ; CODE XREF: __mpn_divrem+60j .text:00049690 LDMDB R11, {R4-R11,SP,PC} .text:00049690 ; End of function __mpn_divrem .text:00049690 .text:00049694 .text:00049694 ; =============== S U B R O U T I N E ======================================= .text:00049694 .text:00049694 ; Attributes: bp-based frame .text:00049694 .text:00049694 EXPORT __mpn_lshift .text:00049694 __mpn_lshift ; CODE XREF: __printf_fp+778p .text:00049694 ; __printf_fp+BA0p ... .text:00049694 MOV R12, SP .text:00049698 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004969C SUB R11, R12, #4 .text:000496A0 SUB R2, R2, #1 .text:000496A4 MOV R5, R1 .text:000496A8 LDR R12, [R5,R2,LSL#2] .text:000496AC SUBS R2, R2, #1 .text:000496B0 MOV R4, R3 .text:000496B4 ADD R0, R0, #4 .text:000496B8 RSB LR, R4, #0x20 .text:000496BC MOV R1, R12 .text:000496C0 MOV R6, R12,LSR LR .text:000496C4 BMI loc_496E4 .text:000496C8 .text:000496C8 loc_496C8 ; CODE XREF: __mpn_lshift+4Cj .text:000496C8 LDR R12, [R5,R2,LSL#2] .text:000496CC MOV R3, R12,LSR LR .text:000496D0 ORR R3, R3, R1,LSL R4 .text:000496D4 MOV R1, R12 .text:000496D8 STR R3, [R0,R2,LSL#2] .text:000496DC SUBS R2, R2, #1 .text:000496E0 BPL loc_496C8 .text:000496E4 .text:000496E4 loc_496E4 ; CODE XREF: __mpn_lshift+30j .text:000496E4 MOV R3, R12,LSL R4 .text:000496E8 STR R3, [R0,R2,LSL#2] .text:000496EC MOV R0, R6 .text:000496F0 LDMDB R11, {R4-R6,R11,SP,PC} .text:000496F0 ; End of function __mpn_lshift .text:000496F0 .text:000496F4 .text:000496F4 ; =============== S U B R O U T I N E ======================================= .text:000496F4 .text:000496F4 ; Attributes: bp-based frame .text:000496F4 .text:000496F4 EXPORT __mpn_rshift .text:000496F4 __mpn_rshift ; CODE XREF: __printf_fp+BECp .text:000496F4 ; __printf_fp+C14p ... .text:000496F4 MOV R12, SP .text:000496F8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000496FC SUB R11, R12, #4 .text:00049700 MOV LR, #1 .text:00049704 MOV R6, R1 .text:00049708 MOV R5, R2 .text:0004970C CMP LR, R5 .text:00049710 MOV R4, R3 .text:00049714 SUB R0, R0, #4 .text:00049718 LDR R12, [R6] .text:0004971C RSB R2, R4, #0x20 .text:00049720 MOV R1, R12 .text:00049724 MOV R7, R12,LSL R2 .text:00049728 BGE loc_4974C .text:0004972C .text:0004972C loc_4972C ; CODE XREF: __mpn_rshift+54j .text:0004972C LDR R12, [R6,LR,LSL#2] .text:00049730 MOV R3, R12,LSL R2 .text:00049734 ORR R3, R3, R1,LSR R4 .text:00049738 MOV R1, R12 .text:0004973C STR R3, [R0,LR,LSL#2] .text:00049740 ADD LR, LR, #1 .text:00049744 CMP LR, R5 .text:00049748 BLT loc_4972C .text:0004974C .text:0004974C loc_4974C ; CODE XREF: __mpn_rshift+34j .text:0004974C MOV R3, R12,LSR R4 .text:00049750 STR R3, [R0,LR,LSL#2] .text:00049754 MOV R0, R7 .text:00049758 LDMDB R11, {R4-R7,R11,SP,PC} .text:00049758 ; End of function __mpn_rshift .text:00049758 .text:0004975C .text:0004975C ; =============== S U B R O U T I N E ======================================= .text:0004975C .text:0004975C ; Attributes: bp-based frame .text:0004975C .text:0004975C EXPORT __mpn_mul .text:0004975C __mpn_mul ; CODE XREF: __printf_fp+85Cp .text:0004975C ; __printf_fp:loc_221ACp ... .text:0004975C .text:0004975C var_38 = -0x38 .text:0004975C var_34 = -0x34 .text:0004975C var_30 = -0x30 .text:0004975C var_2C = -0x2C .text:0004975C arg_0 = 4 .text:0004975C .text:0004975C MOV R12, SP .text:00049760 STMFD SP!, {R4-R12,LR,PC} .text:00049764 SUB R11, R12, #4 .text:00049768 MOV R4, R0 .text:0004976C MOV R8, R1 .text:00049770 SUB SP, SP, #0x10 .text:00049774 LDR R10, [R11,#arg_0] .text:00049778 MOV R5, R2 .text:0004977C STR R3, [R11,#var_2C] .text:00049780 ADD R3, R4, R5,LSL#2 .text:00049784 CMP R10, #0x1F .text:00049788 MOV R6, R10,LSL#2 .text:0004978C ADD R3, R3, R6 .text:00049790 SUB R3, R3, #4 .text:00049794 STR R3, [R11,#var_30] .text:00049798 BGT loc_49890 .text:0004979C CMP R10, #0 .text:000497A0 MOVEQ R0, R10 .text:000497A4 BEQ locret_49A6C .text:000497A8 LDR R2, [R11,#var_2C] .text:000497AC LDR R3, [R2] .text:000497B0 CMP R3, #1 .text:000497B4 BHI loc_49810 .text:000497B8 BNE loc_497E4 .text:000497BC MOV R2, #0 .text:000497C0 CMP R2, R5 .text:000497C4 ADD R1, R4, #4 .text:000497C8 BGE loc_49808 .text:000497CC .text:000497CC loc_497CC ; CODE XREF: __mpn_mul+80j .text:000497CC LDR R3, [R8,R2,LSL#2] .text:000497D0 STR R3, [R4,R2,LSL#2] .text:000497D4 ADD R2, R2, #1 .text:000497D8 CMP R2, R5 .text:000497DC BLT loc_497CC .text:000497E0 B loc_49808 .text:000497E4 ; --------------------------------------------------------------------------- .text:000497E4 .text:000497E4 loc_497E4 ; CODE XREF: __mpn_mul+5Cj .text:000497E4 MOV R3, #0 .text:000497E8 CMP R3, R5 .text:000497EC ADD R1, R4, #4 .text:000497F0 BGE loc_49808 .text:000497F4 MOV R2, R3 .text:000497F8 .text:000497F8 loc_497F8 ; CODE XREF: __mpn_mul+A8j .text:000497F8 STR R2, [R4,R3,LSL#2] .text:000497FC ADD R3, R3, #1 .text:00049800 CMP R3, R5 .text:00049804 BLT loc_497F8 .text:00049808 .text:00049808 loc_49808 ; CODE XREF: __mpn_mul+6Cj .text:00049808 ; __mpn_mul+84j ... .text:00049808 MOV R0, #0 .text:0004980C B loc_49824 .text:00049810 ; --------------------------------------------------------------------------- .text:00049810 .text:00049810 loc_49810 ; CODE XREF: __mpn_mul+58j .text:00049810 MOV R0, R4 .text:00049814 MOV R1, R8 .text:00049818 MOV R2, R5 .text:0004981C BL __mpn_mul_1 .text:00049820 ADD R1, R4, #4 .text:00049824 .text:00049824 loc_49824 ; CODE XREF: __mpn_mul+B0j .text:00049824 STR R0, [R4,R5,LSL#2] .text:00049828 MOV R4, R1 .text:0004982C MOV R6, #1 .text:00049830 CMP R6, R10 .text:00049834 BGE locret_49A6C .text:00049838 .text:00049838 loc_49838 ; CODE XREF: __mpn_mul+12Cj .text:00049838 LDR R2, [R11,#var_2C] .text:0004983C LDR R3, [R2,R6,LSL#2] .text:00049840 CMP R3, #1 .text:00049844 BHI loc_49868 .text:00049848 MOV R0, #0 .text:0004984C BNE loc_49878 .text:00049850 MOV R0, R4 .text:00049854 MOV R1, R4 .text:00049858 MOV R2, R8 .text:0004985C MOV R3, R5 .text:00049860 BL __mpn_add_n .text:00049864 B loc_49878 .text:00049868 ; --------------------------------------------------------------------------- .text:00049868 .text:00049868 loc_49868 ; CODE XREF: __mpn_mul+E8j .text:00049868 MOV R0, R4 .text:0004986C MOV R1, R8 .text:00049870 MOV R2, R5 .text:00049874 BL __mpn_addmul_1 .text:00049878 .text:00049878 loc_49878 ; CODE XREF: __mpn_mul+F0j .text:00049878 ; __mpn_mul+108j .text:00049878 STR R0, [R4,R5,LSL#2] .text:0004987C ADD R4, R4, #4 .text:00049880 ADD R6, R6, #1 .text:00049884 CMP R6, R10 .text:00049888 BLT loc_49838 .text:0004988C B locret_49A6C .text:00049890 ; --------------------------------------------------------------------------- .text:00049890 .text:00049890 loc_49890 ; CODE XREF: __mpn_mul+3Cj .text:00049890 MOV R7, R10,LSL#3 .text:00049894 RSB SP, R7, SP .text:00049898 ADD R9, SP, #0x38+var_34 .text:0004989C STR R9, [SP,#0x38+var_38] .text:000498A0 LDR R2, [R11,#var_2C] .text:000498A4 MOV R0, R4 .text:000498A8 MOV R1, R8 .text:000498AC MOV R3, R10 .text:000498B0 BL __mpn_impn_mul_n .text:000498B4 ADD R4, R4, R6 .text:000498B8 ADD R8, R8, R6 .text:000498BC RSB R5, R10, R5 .text:000498C0 CMP R5, R10 .text:000498C4 STR R6, [R11,#var_34] .text:000498C8 BLT loc_499B0 .text:000498CC RSB SP, R7, SP .text:000498D0 ADD R7, SP, #0x38+var_34 .text:000498D4 .text:000498D4 loc_498D4 ; CODE XREF: __mpn_mul+250j .text:000498D4 CMP R10, #0x1F .text:000498D8 BLE loc_4995C .text:000498DC STR R9, [SP,#0x38+var_38] .text:000498E0 MOV R0, R7 .text:000498E4 MOV R1, R8 .text:000498E8 LDR R2, [R11,#var_2C] .text:000498EC MOV R3, R10 .text:000498F0 BL __mpn_impn_mul_n .text:000498F4 .text:000498F4 loc_498F4 ; CODE XREF: __mpn_mul+214j .text:000498F4 MOV R0, R4 .text:000498F8 MOV R1, R4 .text:000498FC MOV R2, R7 .text:00049900 MOV R3, R10 .text:00049904 BL __mpn_add_n .text:00049908 ADD R2, R6, R4 .text:0004990C ADD LR, R6, R7 .text:00049910 MOV R12, R10 .text:00049914 ADD LR, LR, #4 .text:00049918 ADD R2, R2, #4 .text:0004991C LDR R3, [R6,R7] .text:00049920 RSB R5, R10, R5 .text:00049924 ADD R0, R0, R3 .text:00049928 CMP R0, R3 .text:0004992C STR R0, [R6,R4] .text:00049930 BCS loc_49974 .text:00049934 SUBS R12, R10, #1 .text:00049938 BEQ loc_499A0 .text:0004993C .text:0004993C loc_4993C ; CODE XREF: __mpn_mul+1F8j .text:0004993C LDR R3, [LR],#4 .text:00049940 ADD R3, R3, #1 .text:00049944 CMP R3, #0 .text:00049948 STR R3, [R2],#4 .text:0004994C BNE loc_49974 .text:00049950 SUBS R12, R12, #1 .text:00049954 BNE loc_4993C .text:00049958 B loc_499A0 .text:0004995C ; --------------------------------------------------------------------------- .text:0004995C .text:0004995C loc_4995C ; CODE XREF: __mpn_mul+17Cj .text:0004995C MOV R0, R7 .text:00049960 MOV R1, R8 .text:00049964 LDR R2, [R11,#var_2C] .text:00049968 MOV R3, R10 .text:0004996C BL __mpn_impn_mul_n_basecase .text:00049970 B loc_498F4 .text:00049974 ; --------------------------------------------------------------------------- .text:00049974 .text:00049974 loc_49974 ; CODE XREF: __mpn_mul+1D4j .text:00049974 ; __mpn_mul+1F0j .text:00049974 CMP R2, LR .text:00049978 BEQ loc_499A0 .text:0004997C MOV R1, #0 .text:00049980 SUB R0, R12, #1 .text:00049984 CMP R1, R0 .text:00049988 BGE loc_499A0 .text:0004998C .text:0004998C loc_4998C ; CODE XREF: __mpn_mul+240j .text:0004998C LDR R3, [LR,R1,LSL#2] .text:00049990 STR R3, [R2,R1,LSL#2] .text:00049994 ADD R1, R1, #1 .text:00049998 CMP R1, R0 .text:0004999C BLT loc_4998C .text:000499A0 .text:000499A0 loc_499A0 ; CODE XREF: __mpn_mul+1DCj .text:000499A0 ; __mpn_mul+1FCj ... .text:000499A0 ADD R4, R4, R6 .text:000499A4 ADD R8, R8, R6 .text:000499A8 CMP R5, R10 .text:000499AC BGE loc_498D4 .text:000499B0 .text:000499B0 loc_499B0 ; CODE XREF: __mpn_mul+16Cj .text:000499B0 CMP R5, #0 .text:000499B4 BEQ loc_49A64 .text:000499B8 STR R5, [SP,#0x38+var_38] .text:000499BC MOV R0, R9 .text:000499C0 MOV R2, R10 .text:000499C4 LDR R1, [R11,#var_2C] .text:000499C8 MOV R3, R8 .text:000499CC BL __mpn_mul .text:000499D0 MOV R0, R4 .text:000499D4 MOV R1, R4 .text:000499D8 MOV R2, R9 .text:000499DC MOV R3, R10 .text:000499E0 BL __mpn_add_n .text:000499E4 LDR R3, [R11,#var_34] .text:000499E8 MOV R12, R5 .text:000499EC ADD R6, R3, R4 .text:000499F0 ADD LR, R3, R9 .text:000499F4 ADD LR, LR, #4 .text:000499F8 LDR R2, [R3,R9] .text:000499FC ADD R6, R6, #4 .text:00049A00 ADD R0, R0, R2 .text:00049A04 CMP R0, R2 .text:00049A08 STR R0, [R3,R4] .text:00049A0C BCS loc_49A38 .text:00049A10 SUBS R12, R12, #1 .text:00049A14 BEQ loc_49A64 .text:00049A18 .text:00049A18 loc_49A18 ; CODE XREF: __mpn_mul+2D4j .text:00049A18 LDR R3, [LR],#4 .text:00049A1C ADD R2, R3, #1 .text:00049A20 CMP R2, #0 .text:00049A24 STR R2, [R6],#4 .text:00049A28 BNE loc_49A38 .text:00049A2C SUBS R12, R12, #1 .text:00049A30 BNE loc_49A18 .text:00049A34 B loc_49A64 .text:00049A38 ; --------------------------------------------------------------------------- .text:00049A38 .text:00049A38 loc_49A38 ; CODE XREF: __mpn_mul+2B0j .text:00049A38 ; __mpn_mul+2CCj .text:00049A38 CMP R6, LR .text:00049A3C BEQ loc_49A64 .text:00049A40 MOV R1, #0 .text:00049A44 SUB R2, R12, #1 .text:00049A48 CMP R1, R2 .text:00049A4C BGE loc_49A64 .text:00049A50 .text:00049A50 loc_49A50 ; CODE XREF: __mpn_mul+304j .text:00049A50 LDR R3, [LR,R1,LSL#2] .text:00049A54 STR R3, [R6,R1,LSL#2] .text:00049A58 ADD R1, R1, #1 .text:00049A5C CMP R1, R2 .text:00049A60 BLT loc_49A50 .text:00049A64 .text:00049A64 loc_49A64 ; CODE XREF: __mpn_mul+258j .text:00049A64 ; __mpn_mul+2B8j ... .text:00049A64 LDR R2, [R11,#var_30] .text:00049A68 LDR R0, [R2] .text:00049A6C .text:00049A6C locret_49A6C ; CODE XREF: __mpn_mul+48j .text:00049A6C ; __mpn_mul+D8j ... .text:00049A6C LDMDB R11, {R4-R11,SP,PC} .text:00049A6C ; End of function __mpn_mul .text:00049A6C .text:00049A70 .text:00049A70 ; =============== S U B R O U T I N E ======================================= .text:00049A70 .text:00049A70 ; Attributes: bp-based frame .text:00049A70 .text:00049A70 EXPORT __mpn_mul_1 .text:00049A70 __mpn_mul_1 ; CODE XREF: hack_digit.159+90p .text:00049A70 ; hack_digit.159+168p ... .text:00049A70 MOV R12, SP .text:00049A74 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00049A78 SUB R11, R12, #4 .text:00049A7C MOV R5, R3 .text:00049A80 RSB R4, R2, #0 .text:00049A84 MOV R3, R4,LSL#2 .text:00049A88 RSB R8, R3, R1 .text:00049A8C RSB R7, R3, R0 .text:00049A90 MOV R6, #0 .text:00049A94 .text:00049A94 loc_49A94 ; CODE XREF: __mpn_mul_1+6Cj .text:00049A94 LDR R3, [R8,R4,LSL#2] .text:00049A98 MOV R12, R3,LSR#16 .text:00049A9C MOV LR, R5,LSR#16 .text:00049AA0 BIC R0, R3, R12,LSL#16 .text:00049AA4 BIC R1, R5, LR,LSL#16 .text:00049AA8 MUL R2, R0, R1 .text:00049AAC MUL R1, R12, R1 .text:00049AB0 MUL R0, LR, R0 .text:00049AB4 MUL LR, R12, LR .text:00049AB8 ADDS R0, R1, R0 .text:00049ABC ADDCS LR, LR, #0x10000 .text:00049AC0 ADDS R2, R2, R0,LSL#16 .text:00049AC4 ADC LR, LR, R0,LSR#16 .text:00049AC8 ADDS R2, R2, R6 .text:00049ACC MOVCC R6, LR .text:00049AD0 ADDCS R6, LR, #1 .text:00049AD4 STR R2, [R7,R4,LSL#2] .text:00049AD8 ADDS R4, R4, #1 .text:00049ADC BNE loc_49A94 .text:00049AE0 MOV R0, R6 .text:00049AE4 LDMDB R11, {R4-R8,R11,SP,PC} .text:00049AE4 ; End of function __mpn_mul_1 .text:00049AE4 .text:00049AE8 .text:00049AE8 ; =============== S U B R O U T I N E ======================================= .text:00049AE8 .text:00049AE8 ; Attributes: bp-based frame .text:00049AE8 .text:00049AE8 EXPORT __mpn_impn_mul_n_basecase .text:00049AE8 __mpn_impn_mul_n_basecase ; CODE XREF: __mpn_mul+210p .text:00049AE8 ; __mpn_impn_mul_n+98p ... .text:00049AE8 MOV R12, SP .text:00049AEC STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00049AF0 SUB R11, R12, #4 .text:00049AF4 MOV R8, R2 .text:00049AF8 MOV R4, R0 .text:00049AFC MOV R7, R1 .text:00049B00 LDR R12, [R8] .text:00049B04 MOV R5, R3 .text:00049B08 CMP R12, #1 .text:00049B0C BHI loc_49B68 .text:00049B10 BNE loc_49B3C .text:00049B14 MOV R2, #0 .text:00049B18 CMP R2, R5 .text:00049B1C ADD R1, R4, #4 .text:00049B20 BGE loc_49B60 .text:00049B24 .text:00049B24 loc_49B24 ; CODE XREF: __mpn_impn_mul_n_basecase+4Cj .text:00049B24 LDR R3, [R7,R2,LSL#2] .text:00049B28 STR R3, [R4,R2,LSL#2] .text:00049B2C ADD R2, R2, #1 .text:00049B30 CMP R2, R5 .text:00049B34 BLT loc_49B24 .text:00049B38 B loc_49B60 .text:00049B3C ; --------------------------------------------------------------------------- .text:00049B3C .text:00049B3C loc_49B3C ; CODE XREF: __mpn_impn_mul_n_basecase+28j .text:00049B3C MOV R3, #0 .text:00049B40 CMP R3, R5 .text:00049B44 ADD R1, R4, #4 .text:00049B48 BGE loc_49B60 .text:00049B4C MOV R2, R3 .text:00049B50 .text:00049B50 loc_49B50 ; CODE XREF: __mpn_impn_mul_n_basecase+74j .text:00049B50 STR R2, [R4,R3,LSL#2] .text:00049B54 ADD R3, R3, #1 .text:00049B58 CMP R3, R5 .text:00049B5C BLT loc_49B50 .text:00049B60 .text:00049B60 loc_49B60 ; CODE XREF: __mpn_impn_mul_n_basecase+38j .text:00049B60 ; __mpn_impn_mul_n_basecase+50j ... .text:00049B60 MOV R0, #0 .text:00049B64 B loc_49B80 .text:00049B68 ; --------------------------------------------------------------------------- .text:00049B68 .text:00049B68 loc_49B68 ; CODE XREF: __mpn_impn_mul_n_basecase+24j .text:00049B68 MOV R0, R4 .text:00049B6C MOV R1, R7 .text:00049B70 MOV R2, R5 .text:00049B74 MOV R3, R12 .text:00049B78 BL __mpn_mul_1 .text:00049B7C ADD R1, R4, #4 .text:00049B80 .text:00049B80 loc_49B80 ; CODE XREF: __mpn_impn_mul_n_basecase+7Cj .text:00049B80 STR R0, [R4,R5,LSL#2] .text:00049B84 MOV R4, R1 .text:00049B88 MOV R6, #1 .text:00049B8C CMP R6, R5 .text:00049B90 LDMGEDB R11, {R4-R8,R11,SP,PC} .text:00049B94 .text:00049B94 loc_49B94 ; CODE XREF: __mpn_impn_mul_n_basecase+FCj .text:00049B94 LDR R12, [R8,R6,LSL#2] .text:00049B98 CMP R12, #1 .text:00049B9C BHI loc_49BC0 .text:00049BA0 MOV R0, #0 .text:00049BA4 BNE loc_49BD4 .text:00049BA8 MOV R0, R4 .text:00049BAC MOV R1, R4 .text:00049BB0 MOV R2, R7 .text:00049BB4 MOV R3, R5 .text:00049BB8 BL __mpn_add_n .text:00049BBC B loc_49BD4 .text:00049BC0 ; --------------------------------------------------------------------------- .text:00049BC0 .text:00049BC0 loc_49BC0 ; CODE XREF: __mpn_impn_mul_n_basecase+B4j .text:00049BC0 MOV R0, R4 .text:00049BC4 MOV R1, R7 .text:00049BC8 MOV R2, R5 .text:00049BCC MOV R3, R12 .text:00049BD0 BL __mpn_addmul_1 .text:00049BD4 .text:00049BD4 loc_49BD4 ; CODE XREF: __mpn_impn_mul_n_basecase+BCj .text:00049BD4 ; __mpn_impn_mul_n_basecase+D4j .text:00049BD4 STR R0, [R4,R5,LSL#2] .text:00049BD8 ADD R4, R4, #4 .text:00049BDC ADD R6, R6, #1 .text:00049BE0 CMP R6, R5 .text:00049BE4 BLT loc_49B94 .text:00049BE8 LDMDB R11, {R4-R8,R11,SP,PC} .text:00049BE8 ; End of function __mpn_impn_mul_n_basecase .text:00049BE8 .text:00049BEC .text:00049BEC ; =============== S U B R O U T I N E ======================================= .text:00049BEC .text:00049BEC ; Attributes: bp-based frame .text:00049BEC .text:00049BEC EXPORT __mpn_impn_mul_n .text:00049BEC __mpn_impn_mul_n ; CODE XREF: __mpn_mul+154p .text:00049BEC ; __mpn_mul+194p ... .text:00049BEC .text:00049BEC var_38 = -0x38 .text:00049BEC var_34 = -0x34 .text:00049BEC var_30 = -0x30 .text:00049BEC var_2C = -0x2C .text:00049BEC arg_0 = 4 .text:00049BEC .text:00049BEC MOV R12, SP .text:00049BF0 STMFD SP!, {R4-R12,LR,PC} .text:00049BF4 SUB R11, R12, #4 .text:00049BF8 SUB SP, SP, #0x10 .text:00049BFC STR R3, [R11,#var_2C] .text:00049C00 MOV R6, R0 .text:00049C04 MOV R10, R1 .text:00049C08 MOV R9, R2 .text:00049C0C TST R3, #1 .text:00049C10 BEQ loc_49CB8 .text:00049C14 SUB R5, R3, #1 .text:00049C18 CMP R5, #0x1F .text:00049C1C BLE loc_49C74 .text:00049C20 LDR R1, [R11,#arg_0] .text:00049C24 STR R1, [SP,#0x38+var_38] .text:00049C28 MOV R3, R5 .text:00049C2C MOV R1, R10 .text:00049C30 BL __mpn_impn_mul_n .text:00049C34 .text:00049C34 loc_49C34 ; CODE XREF: __mpn_impn_mul_n+9Cj .text:00049C34 ADD R4, R6, R5,LSL#2 .text:00049C38 MOV R0, R4 .text:00049C3C MOV R1, R10 .text:00049C40 LDR R3, [R9,R5,LSL#2] .text:00049C44 MOV R2, R5 .text:00049C48 BL __mpn_addmul_1 .text:00049C4C STR R0, [R6,R5,LSL#3] .text:00049C50 LDR R2, [R11,#var_2C] .text:00049C54 MOV R0, R4 .text:00049C58 LDR R3, [R10,R5,LSL#2] .text:00049C5C MOV R1, R9 .text:00049C60 BL __mpn_addmul_1 .text:00049C64 LDR R2, [R11,#var_2C] .text:00049C68 ADD R3, R5, R2 .text:00049C6C STR R0, [R6,R3,LSL#2] .text:00049C70 B locret_4A020 .text:00049C74 ; --------------------------------------------------------------------------- .text:00049C74 .text:00049C74 loc_49C74 ; CODE XREF: __mpn_impn_mul_n+30j .text:00049C74 MOV R0, R6 .text:00049C78 MOV R1, R10 .text:00049C7C MOV R2, R9 .text:00049C80 MOV R3, R5 .text:00049C84 BL __mpn_impn_mul_n_basecase .text:00049C88 B loc_49C34 .text:00049C8C ; --------------------------------------------------------------------------- .text:00049C8C .text:00049C8C loc_49C8C ; CODE XREF: __mpn_impn_mul_n+D8j .text:00049C8C MOV R12, R4,LSL#2 .text:00049C90 LDR R3, [R11,#var_2C] .text:00049C94 ADD R1, R10, R12 .text:00049C98 MOV LR, R3,LSL#2 .text:00049C9C STR LR, [R11,#var_34] .text:00049CA0 ADD R2, R9, R12 .text:00049CA4 MOV R8, R12 .text:00049CA8 ADD R0, R6, LR .text:00049CAC MOV R3, R4 .text:00049CB0 BL __mpn_impn_mul_n_basecase .text:00049CB4 B loc_49CF4 .text:00049CB8 ; --------------------------------------------------------------------------- .text:00049CB8 .text:00049CB8 loc_49CB8 ; CODE XREF: __mpn_impn_mul_n+24j .text:00049CB8 LDR R12, [R11,#var_2C] .text:00049CBC MOV R4, R12,ASR#1 .text:00049CC0 CMP R4, #0x1F .text:00049CC4 BLE loc_49C8C .text:00049CC8 MOV LR, R12,LSL#2 .text:00049CCC LDR R3, [R11,#arg_0] .text:00049CD0 ADD R0, R6, LR .text:00049CD4 STR R3, [SP,#0x38+var_38] .text:00049CD8 MOV R12, R4,LSL#2 .text:00049CDC ADD R1, R10, R12 .text:00049CE0 STR LR, [R11,#var_34] .text:00049CE4 ADD R2, R9, R12 .text:00049CE8 MOV R8, R12 .text:00049CEC MOV R3, R4 .text:00049CF0 BL __mpn_impn_mul_n .text:00049CF4 .text:00049CF4 loc_49CF4 ; CODE XREF: __mpn_impn_mul_n+C8j .text:00049CF4 ADD R5, R10, R8 .text:00049CF8 MOV R0, R5 .text:00049CFC MOV R1, R10 .text:00049D00 MOV R2, R4 .text:00049D04 BL __mpn_cmp .text:00049D08 CMP R0, #0 .text:00049D0C BLT loc_49D30 .text:00049D10 MOV R12, #0 .text:00049D14 STR R12, [R11,#var_30] .text:00049D18 MOV R0, R6 .text:00049D1C MOV R1, R5 .text:00049D20 MOV R2, R10 .text:00049D24 MOV R3, R4 .text:00049D28 BL __mpn_sub_n .text:00049D2C B loc_49D4C .text:00049D30 ; --------------------------------------------------------------------------- .text:00049D30 .text:00049D30 loc_49D30 ; CODE XREF: __mpn_impn_mul_n+120j .text:00049D30 MOV R12, #1 .text:00049D34 STR R12, [R11,#var_30] .text:00049D38 MOV R0, R6 .text:00049D3C MOV R1, R10 .text:00049D40 MOV R2, R5 .text:00049D44 MOV R3, R4 .text:00049D48 BL __mpn_sub_n .text:00049D4C .text:00049D4C loc_49D4C ; CODE XREF: __mpn_impn_mul_n+140j .text:00049D4C ADD R5, R9, R8 .text:00049D50 MOV R0, R5 .text:00049D54 MOV R1, R9 .text:00049D58 MOV R2, R4 .text:00049D5C BL __mpn_cmp .text:00049D60 CMP R0, #0 .text:00049D64 BLT loc_49DA4 .text:00049D68 LDR R12, [R11,#var_30] .text:00049D6C EOR R12, R12, #1 .text:00049D70 STR R12, [R11,#var_30] .text:00049D74 ADD R0, R6, R8 .text:00049D78 MOV R1, R5 .text:00049D7C MOV R2, R9 .text:00049D80 MOV R3, R4 .text:00049D84 BL __mpn_sub_n .text:00049D88 B loc_49DB8 .text:00049D8C ; --------------------------------------------------------------------------- .text:00049D8C .text:00049D8C loc_49D8C ; CODE XREF: __mpn_impn_mul_n+1D0j .text:00049D8C MOV R1, R6 .text:00049D90 ADD R2, R6, R8 .text:00049D94 LDR R0, [R11,#arg_0] .text:00049D98 MOV R3, R4 .text:00049D9C BL __mpn_impn_mul_n_basecase .text:00049DA0 B loc_49DE4 .text:00049DA4 ; --------------------------------------------------------------------------- .text:00049DA4 .text:00049DA4 loc_49DA4 ; CODE XREF: __mpn_impn_mul_n+178j .text:00049DA4 ADD R0, R6, R8 .text:00049DA8 MOV R1, R9 .text:00049DAC MOV R2, R5 .text:00049DB0 MOV R3, R4 .text:00049DB4 BL __mpn_sub_n .text:00049DB8 .text:00049DB8 loc_49DB8 ; CODE XREF: __mpn_impn_mul_n+19Cj .text:00049DB8 CMP R4, #0x1F .text:00049DBC BLE loc_49D8C .text:00049DC0 LDR R1, [R11,#arg_0] .text:00049DC4 LDR R2, [R11,#var_34] .text:00049DC8 ADD R3, R1, R2 .text:00049DCC STR R3, [SP,#0x38+var_38] .text:00049DD0 MOV R0, R1 .text:00049DD4 MOV R1, R6 .text:00049DD8 ADD R2, R6, R8 .text:00049DDC MOV R3, R4 .text:00049DE0 BL __mpn_impn_mul_n .text:00049DE4 .text:00049DE4 loc_49DE4 ; CODE XREF: __mpn_impn_mul_n+1B4j .text:00049DE4 MOV R1, #0 .text:00049DE8 CMP R1, R4 .text:00049DEC BGE loc_49E14 .text:00049DF0 LDR R3, [R11,#var_34] .text:00049DF4 ADD R12, R8, R6 .text:00049DF8 ADD R0, R3, R6 .text:00049DFC .text:00049DFC loc_49DFC ; CODE XREF: __mpn_impn_mul_n+224j .text:00049DFC MOV R3, R1,LSL#2 .text:00049E00 ADD R1, R1, #1 .text:00049E04 LDR R2, [R3,R0] .text:00049E08 CMP R1, R4 .text:00049E0C STR R2, [R3,R12] .text:00049E10 BLT loc_49DFC .text:00049E14 .text:00049E14 loc_49E14 ; CODE XREF: __mpn_impn_mul_n+200j .text:00049E14 LDR R12, [R11,#var_34] .text:00049E18 MOV R3, R4 .text:00049E1C ADD R0, R6, R12 .text:00049E20 MOV R1, R0 .text:00049E24 ADD R2, R0, R8 .text:00049E28 BL __mpn_add_n .text:00049E2C LDR R1, [R11,#var_30] .text:00049E30 MOV R7, R0 .text:00049E34 CMP R1, #0 .text:00049E38 BEQ loc_49E70 .text:00049E3C LDR R2, [R11,#arg_0] .text:00049E40 ADD R0, R6, R8 .text:00049E44 LDR R3, [R11,#var_2C] .text:00049E48 MOV R1, R0 .text:00049E4C BL __mpn_sub_n .text:00049E50 RSB R7, R0, R7 .text:00049E54 B loc_49E88 .text:00049E58 ; --------------------------------------------------------------------------- .text:00049E58 .text:00049E58 loc_49E58 ; CODE XREF: __mpn_impn_mul_n+2A0j .text:00049E58 MOV R1, R10 .text:00049E5C MOV R2, R9 .text:00049E60 LDR R0, [R11,#arg_0] .text:00049E64 MOV R3, R4 .text:00049E68 BL __mpn_impn_mul_n_basecase .text:00049E6C B loc_49EB4 .text:00049E70 ; --------------------------------------------------------------------------- .text:00049E70 .text:00049E70 loc_49E70 ; CODE XREF: __mpn_impn_mul_n+24Cj .text:00049E70 LDR R2, [R11,#arg_0] .text:00049E74 ADD R0, R6, R8 .text:00049E78 LDR R3, [R11,#var_2C] .text:00049E7C MOV R1, R0 .text:00049E80 BL __mpn_add_n .text:00049E84 ADD R7, R7, R0 .text:00049E88 .text:00049E88 loc_49E88 ; CODE XREF: __mpn_impn_mul_n+268j .text:00049E88 CMP R4, #0x1F .text:00049E8C BLE loc_49E58 .text:00049E90 LDR R2, [R11,#arg_0] .text:00049E94 LDR R12, [R11,#var_34] .text:00049E98 ADD R3, R2, R12 .text:00049E9C STR R3, [SP,#0x38+var_38] .text:00049EA0 MOV R1, R10 .text:00049EA4 MOV R0, R2 .text:00049EA8 MOV R2, R9 .text:00049EAC MOV R3, R4 .text:00049EB0 BL __mpn_impn_mul_n .text:00049EB4 .text:00049EB4 loc_49EB4 ; CODE XREF: __mpn_impn_mul_n+280j .text:00049EB4 ADD R5, R6, R8 .text:00049EB8 LDR R2, [R11,#arg_0] .text:00049EBC MOV R0, R5 .text:00049EC0 LDR R3, [R11,#var_2C] .text:00049EC4 MOV R1, R5 .text:00049EC8 BL __mpn_add_n .text:00049ECC ADDS R7, R7, R0 .text:00049ED0 BEQ loc_49F58 .text:00049ED4 LDR R1, [R11,#var_34] .text:00049ED8 LDR R3, [R11,#var_34] .text:00049EDC ADD R0, R1, R5 .text:00049EE0 MOV R1, R4 .text:00049EE4 LDR R2, [R3,R5] .text:00049EE8 ADD R12, R0, #4 .text:00049EEC ADD R3, R7, R2 .text:00049EF0 CMP R3, R2 .text:00049EF4 LDR R2, [R11,#var_34] .text:00049EF8 MOV R0, R12 .text:00049EFC STR R3, [R2,R5] .text:00049F00 BCS loc_49F2C .text:00049F04 SUBS R1, R4, #1 .text:00049F08 BEQ loc_49F58 .text:00049F0C .text:00049F0C loc_49F0C ; CODE XREF: __mpn_impn_mul_n+338j .text:00049F0C LDR R3, [R12],#4 .text:00049F10 ADD R2, R3, #1 .text:00049F14 CMP R2, #0 .text:00049F18 STR R2, [R0],#4 .text:00049F1C BNE loc_49F2C .text:00049F20 SUBS R1, R1, #1 .text:00049F24 BNE loc_49F0C .text:00049F28 B loc_49F58 .text:00049F2C ; --------------------------------------------------------------------------- .text:00049F2C .text:00049F2C loc_49F2C ; CODE XREF: __mpn_impn_mul_n+314j .text:00049F2C ; __mpn_impn_mul_n+330j .text:00049F2C CMP R0, R12 .text:00049F30 BEQ loc_49F58 .text:00049F34 MOV R2, #0 .text:00049F38 SUB R1, R1, #1 .text:00049F3C CMP R2, R1 .text:00049F40 BGE loc_49F58 .text:00049F44 .text:00049F44 loc_49F44 ; CODE XREF: __mpn_impn_mul_n+368j .text:00049F44 LDR R3, [R12,R2,LSL#2] .text:00049F48 STR R3, [R0,R2,LSL#2] .text:00049F4C ADD R2, R2, #1 .text:00049F50 CMP R2, R1 .text:00049F54 BLT loc_49F44 .text:00049F58 .text:00049F58 loc_49F58 ; CODE XREF: __mpn_impn_mul_n+2E4j .text:00049F58 ; __mpn_impn_mul_n+31Cj ... .text:00049F58 MOV R2, #0 .text:00049F5C CMP R2, R4 .text:00049F60 BGE loc_49F7C .text:00049F64 .text:00049F64 loc_49F64 ; CODE XREF: __mpn_impn_mul_n+38Cj .text:00049F64 LDR R12, [R11,#arg_0] .text:00049F68 LDR R3, [R12,R2,LSL#2] .text:00049F6C STR R3, [R6,R2,LSL#2] .text:00049F70 ADD R2, R2, #1 .text:00049F74 CMP R2, R4 .text:00049F78 BLT loc_49F64 .text:00049F7C .text:00049F7C loc_49F7C ; CODE XREF: __mpn_impn_mul_n+374j .text:00049F7C ADD R0, R6, R8 .text:00049F80 LDR R3, [R11,#arg_0] .text:00049F84 MOV R1, R0 .text:00049F88 ADD R2, R3, R8 .text:00049F8C MOV R3, R4 .text:00049F90 BL __mpn_add_n .text:00049F94 CMP R0, #0 .text:00049F98 BEQ locret_4A020 .text:00049F9C LDR R12, [R11,#var_34] .text:00049FA0 LDR R2, [R11,#var_2C] .text:00049FA4 LDR R3, [R11,#var_34] .text:00049FA8 ADD R0, R12, R6 .text:00049FAC LDR R1, [R3,R6] .text:00049FB0 ADD R12, R0, #4 .text:00049FB4 ADD R3, R1, #1 .text:00049FB8 CMP R3, R1 .text:00049FBC LDR R1, [R11,#var_34] .text:00049FC0 MOV R0, R12 .text:00049FC4 STR R3, [R1,R6] .text:00049FC8 BCS loc_49FF4 .text:00049FCC SUBS R2, R2, #1 .text:00049FD0 BEQ locret_4A020 .text:00049FD4 .text:00049FD4 loc_49FD4 ; CODE XREF: __mpn_impn_mul_n+400j .text:00049FD4 LDR R3, [R12],#4 .text:00049FD8 ADD R1, R3, #1 .text:00049FDC CMP R1, #0 .text:00049FE0 STR R1, [R0],#4 .text:00049FE4 BNE loc_49FF4 .text:00049FE8 SUBS R2, R2, #1 .text:00049FEC BNE loc_49FD4 .text:00049FF0 B locret_4A020 .text:00049FF4 ; --------------------------------------------------------------------------- .text:00049FF4 .text:00049FF4 loc_49FF4 ; CODE XREF: __mpn_impn_mul_n+3DCj .text:00049FF4 ; __mpn_impn_mul_n+3F8j .text:00049FF4 CMP R0, R12 .text:00049FF8 BEQ locret_4A020 .text:00049FFC MOV R1, #0 .text:0004A000 SUB R2, R2, #1 .text:0004A004 CMP R1, R2 .text:0004A008 BGE locret_4A020 .text:0004A00C .text:0004A00C loc_4A00C ; CODE XREF: __mpn_impn_mul_n+430j .text:0004A00C LDR R3, [R12,R1,LSL#2] .text:0004A010 STR R3, [R0,R1,LSL#2] .text:0004A014 ADD R1, R1, #1 .text:0004A018 CMP R1, R2 .text:0004A01C BLT loc_4A00C .text:0004A020 .text:0004A020 locret_4A020 ; CODE XREF: __mpn_impn_mul_n+84j .text:0004A020 ; __mpn_impn_mul_n+3ACj ... .text:0004A020 LDMDB R11, {R4-R11,SP,PC} .text:0004A020 ; End of function __mpn_impn_mul_n .text:0004A020 .text:0004A024 .text:0004A024 ; =============== S U B R O U T I N E ======================================= .text:0004A024 .text:0004A024 ; Attributes: bp-based frame .text:0004A024 .text:0004A024 EXPORT __mpn_impn_sqr_n_basecase .text:0004A024 __mpn_impn_sqr_n_basecase ; CODE XREF: __mpn_impn_sqr_n+88p .text:0004A024 ; __mpn_impn_sqr_n+B0p ... .text:0004A024 MOV R12, SP .text:0004A028 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0004A02C SUB R11, R12, #4 .text:0004A030 MOV R7, R1 .text:0004A034 MOV R4, R0 .text:0004A038 LDR R3, [R7] .text:0004A03C MOV R5, R2 .text:0004A040 CMP R3, #1 .text:0004A044 BHI loc_4A0A0 .text:0004A048 BNE loc_4A074 .text:0004A04C MOV R2, #0 .text:0004A050 CMP R2, R5 .text:0004A054 ADD R1, R4, #4 .text:0004A058 BGE loc_4A098 .text:0004A05C .text:0004A05C loc_4A05C ; CODE XREF: __mpn_impn_sqr_n_basecase+48j .text:0004A05C LDR R3, [R7,R2,LSL#2] .text:0004A060 STR R3, [R4,R2,LSL#2] .text:0004A064 ADD R2, R2, #1 .text:0004A068 CMP R2, R5 .text:0004A06C BLT loc_4A05C .text:0004A070 B loc_4A098 .text:0004A074 ; --------------------------------------------------------------------------- .text:0004A074 .text:0004A074 loc_4A074 ; CODE XREF: __mpn_impn_sqr_n_basecase+24j .text:0004A074 MOV R3, #0 .text:0004A078 CMP R3, R5 .text:0004A07C ADD R1, R4, #4 .text:0004A080 BGE loc_4A098 .text:0004A084 MOV R2, R3 .text:0004A088 .text:0004A088 loc_4A088 ; CODE XREF: __mpn_impn_sqr_n_basecase+70j .text:0004A088 STR R2, [R4,R3,LSL#2] .text:0004A08C ADD R3, R3, #1 .text:0004A090 CMP R3, R5 .text:0004A094 BLT loc_4A088 .text:0004A098 .text:0004A098 loc_4A098 ; CODE XREF: __mpn_impn_sqr_n_basecase+34j .text:0004A098 ; __mpn_impn_sqr_n_basecase+4Cj ... .text:0004A098 MOV R0, #0 .text:0004A09C B loc_4A0B4 .text:0004A0A0 ; --------------------------------------------------------------------------- .text:0004A0A0 .text:0004A0A0 loc_4A0A0 ; CODE XREF: __mpn_impn_sqr_n_basecase+20j .text:0004A0A0 MOV R0, R4 .text:0004A0A4 MOV R1, R7 .text:0004A0A8 MOV R2, R5 .text:0004A0AC BL __mpn_mul_1 .text:0004A0B0 ADD R1, R4, #4 .text:0004A0B4 .text:0004A0B4 loc_4A0B4 ; CODE XREF: __mpn_impn_sqr_n_basecase+78j .text:0004A0B4 STR R0, [R4,R5,LSL#2] .text:0004A0B8 MOV R4, R1 .text:0004A0BC MOV R6, #1 .text:0004A0C0 CMP R6, R5 .text:0004A0C4 LDMGEDB R11, {R4-R7,R11,SP,PC} .text:0004A0C8 .text:0004A0C8 loc_4A0C8 ; CODE XREF: __mpn_impn_sqr_n_basecase+F0j .text:0004A0C8 LDR R3, [R7,R6,LSL#2] .text:0004A0CC CMP R3, #1 .text:0004A0D0 BHI loc_4A0F4 .text:0004A0D4 MOV R0, #0 .text:0004A0D8 BNE loc_4A104 .text:0004A0DC MOV R0, R4 .text:0004A0E0 MOV R1, R4 .text:0004A0E4 MOV R2, R7 .text:0004A0E8 MOV R3, R5 .text:0004A0EC BL __mpn_add_n .text:0004A0F0 B loc_4A104 .text:0004A0F4 ; --------------------------------------------------------------------------- .text:0004A0F4 .text:0004A0F4 loc_4A0F4 ; CODE XREF: __mpn_impn_sqr_n_basecase+ACj .text:0004A0F4 MOV R0, R4 .text:0004A0F8 MOV R1, R7 .text:0004A0FC MOV R2, R5 .text:0004A100 BL __mpn_addmul_1 .text:0004A104 .text:0004A104 loc_4A104 ; CODE XREF: __mpn_impn_sqr_n_basecase+B4j .text:0004A104 ; __mpn_impn_sqr_n_basecase+CCj .text:0004A104 STR R0, [R4,R5,LSL#2] .text:0004A108 ADD R4, R4, #4 .text:0004A10C ADD R6, R6, #1 .text:0004A110 CMP R6, R5 .text:0004A114 BLT loc_4A0C8 .text:0004A118 LDMDB R11, {R4-R7,R11,SP,PC} .text:0004A118 ; End of function __mpn_impn_sqr_n_basecase .text:0004A118 .text:0004A11C .text:0004A11C ; =============== S U B R O U T I N E ======================================= .text:0004A11C .text:0004A11C ; Attributes: bp-based frame .text:0004A11C .text:0004A11C EXPORT __mpn_impn_sqr_n .text:0004A11C __mpn_impn_sqr_n ; CODE XREF: __mpn_impn_sqr_n+38p .text:0004A11C ; __mpn_impn_sqr_n+E8p ... .text:0004A11C .text:0004A11C var_30 = -0x30 .text:0004A11C var_2C = -0x2C .text:0004A11C .text:0004A11C MOV R12, SP .text:0004A120 STMFD SP!, {R4-R12,LR,PC} .text:0004A124 SUB R11, R12, #4 .text:0004A128 SUB SP, SP, #8 .text:0004A12C STR R2, [R11,#var_2C] .text:0004A130 MOV R6, R0 .text:0004A134 MOV R7, R1 .text:0004A138 MOV R8, R3 .text:0004A13C TST R2, #1 .text:0004A140 BEQ loc_4A1D4 .text:0004A144 SUB R5, R2, #1 .text:0004A148 CMP R5, #0x1F .text:0004A14C BLE loc_4A198 .text:0004A150 MOV R2, R5 .text:0004A154 BL __mpn_impn_sqr_n .text:0004A158 .text:0004A158 loc_4A158 ; CODE XREF: __mpn_impn_sqr_n+8Cj .text:0004A158 ADD R4, R6, R5,LSL#2 .text:0004A15C MOV R0, R4 .text:0004A160 MOV R1, R7 .text:0004A164 LDR R3, [R7,R5,LSL#2] .text:0004A168 MOV R2, R5 .text:0004A16C BL __mpn_addmul_1 .text:0004A170 STR R0, [R6,R5,LSL#3] .text:0004A174 LDR R2, [R11,#var_2C] .text:0004A178 MOV R1, R7 .text:0004A17C LDR R3, [R1,R5,LSL#2] .text:0004A180 MOV R0, R4 .text:0004A184 BL __mpn_addmul_1 .text:0004A188 LDR R2, [R11,#var_2C] .text:0004A18C ADD R3, R5, R2 .text:0004A190 STR R0, [R6,R3,LSL#2] .text:0004A194 B locret_4A470 .text:0004A198 ; --------------------------------------------------------------------------- .text:0004A198 .text:0004A198 loc_4A198 ; CODE XREF: __mpn_impn_sqr_n+30j .text:0004A198 MOV R0, R6 .text:0004A19C MOV R1, R7 .text:0004A1A0 MOV R2, R5 .text:0004A1A4 BL __mpn_impn_sqr_n_basecase .text:0004A1A8 B loc_4A158 .text:0004A1AC ; --------------------------------------------------------------------------- .text:0004A1AC .text:0004A1AC loc_4A1AC ; CODE XREF: __mpn_impn_sqr_n+C4j .text:0004A1AC LDR R3, [R11,#var_2C] .text:0004A1B0 MOV R12, R3,LSL#2 .text:0004A1B4 MOV R3, R4,LSL#2 .text:0004A1B8 STR R3, [R11,#var_30] .text:0004A1BC MOV R2, R4 .text:0004A1C0 ADD R0, R6, R12 .text:0004A1C4 ADD R1, R7, R3 .text:0004A1C8 MOV R10, R12 .text:0004A1CC BL __mpn_impn_sqr_n_basecase .text:0004A1D0 B loc_4A208 .text:0004A1D4 ; --------------------------------------------------------------------------- .text:0004A1D4 .text:0004A1D4 loc_4A1D4 ; CODE XREF: __mpn_impn_sqr_n+24j .text:0004A1D4 LDR R2, [R11,#var_2C] .text:0004A1D8 MOV R4, R2,ASR#1 .text:0004A1DC CMP R4, #0x1F .text:0004A1E0 BLE loc_4A1AC .text:0004A1E4 MOV LR, R2,LSL#2 .text:0004A1E8 ADD R0, R6, LR .text:0004A1EC MOV R12, R4,LSL#2 .text:0004A1F0 ADD R1, R7, R12 .text:0004A1F4 STR R12, [R11,#var_30] .text:0004A1F8 MOV R2, R4 .text:0004A1FC MOV R3, R8 .text:0004A200 MOV R10, LR .text:0004A204 BL __mpn_impn_sqr_n .text:0004A208 .text:0004A208 loc_4A208 ; CODE XREF: __mpn_impn_sqr_n+B4j .text:0004A208 MOV R1, R7 .text:0004A20C LDR R3, [R11,#var_30] .text:0004A210 MOV R2, R4 .text:0004A214 ADD R5, R7, R3 .text:0004A218 MOV R0, R5 .text:0004A21C BL __mpn_cmp .text:0004A220 CMP R0, #0 .text:0004A224 BLT loc_4A268 .text:0004A228 MOV R0, R6 .text:0004A22C MOV R1, R5 .text:0004A230 MOV R2, R7 .text:0004A234 MOV R3, R4 .text:0004A238 BL __mpn_sub_n .text:0004A23C B loc_4A27C .text:0004A240 ; --------------------------------------------------------------------------- .text:0004A240 .text:0004A240 loc_4A240 ; CODE XREF: __mpn_impn_sqr_n+164j .text:0004A240 MOV R0, R8 .text:0004A244 MOV R1, R6 .text:0004A248 MOV R2, R4 .text:0004A24C BL __mpn_impn_sqr_n_basecase .text:0004A250 B loc_4A298 .text:0004A254 ; --------------------------------------------------------------------------- .text:0004A254 .text:0004A254 loc_4A254 ; CODE XREF: __mpn_impn_sqr_n+1E8j .text:0004A254 MOV R0, R8 .text:0004A258 MOV R1, R7 .text:0004A25C MOV R2, R4 .text:0004A260 BL __mpn_impn_sqr_n_basecase .text:0004A264 B loc_4A31C .text:0004A268 ; --------------------------------------------------------------------------- .text:0004A268 .text:0004A268 loc_4A268 ; CODE XREF: __mpn_impn_sqr_n+108j .text:0004A268 MOV R0, R6 .text:0004A26C MOV R1, R7 .text:0004A270 MOV R2, R5 .text:0004A274 MOV R3, R4 .text:0004A278 BL __mpn_sub_n .text:0004A27C .text:0004A27C loc_4A27C ; CODE XREF: __mpn_impn_sqr_n+120j .text:0004A27C CMP R4, #0x1F .text:0004A280 BLE loc_4A240 .text:0004A284 MOV R0, R8 .text:0004A288 MOV R1, R6 .text:0004A28C MOV R2, R4 .text:0004A290 ADD R3, R8, R10 .text:0004A294 BL __mpn_impn_sqr_n .text:0004A298 .text:0004A298 loc_4A298 ; CODE XREF: __mpn_impn_sqr_n+134j .text:0004A298 MOV R1, #0 .text:0004A29C CMP R1, R4 .text:0004A2A0 BGE loc_4A2C8 .text:0004A2A4 LDR R2, [R11,#var_30] .text:0004A2A8 ADD R0, R10, R6 .text:0004A2AC ADD R12, R2, R6 .text:0004A2B0 .text:0004A2B0 loc_4A2B0 ; CODE XREF: __mpn_impn_sqr_n+1A8j .text:0004A2B0 MOV R3, R1,LSL#2 .text:0004A2B4 ADD R1, R1, #1 .text:0004A2B8 LDR R2, [R3,R0] .text:0004A2BC CMP R1, R4 .text:0004A2C0 STR R2, [R3,R12] .text:0004A2C4 BLT loc_4A2B0 .text:0004A2C8 .text:0004A2C8 loc_4A2C8 ; CODE XREF: __mpn_impn_sqr_n+184j .text:0004A2C8 ADD R0, R6, R10 .text:0004A2CC LDR R3, [R11,#var_30] .text:0004A2D0 MOV R1, R0 .text:0004A2D4 ADD R2, R0, R3 .text:0004A2D8 MOV R3, R4 .text:0004A2DC BL __mpn_add_n .text:0004A2E0 LDR R2, [R11,#var_30] .text:0004A2E4 MOV R9, R0 .text:0004A2E8 LDR R3, [R11,#var_2C] .text:0004A2EC ADD R0, R6, R2 .text:0004A2F0 MOV R1, R0 .text:0004A2F4 MOV R2, R8 .text:0004A2F8 BL __mpn_sub_n .text:0004A2FC RSB R9, R0, R9 .text:0004A300 CMP R4, #0x1F .text:0004A304 BLE loc_4A254 .text:0004A308 MOV R0, R8 .text:0004A30C MOV R1, R7 .text:0004A310 MOV R2, R4 .text:0004A314 ADD R3, R8, R10 .text:0004A318 BL __mpn_impn_sqr_n .text:0004A31C .text:0004A31C loc_4A31C ; CODE XREF: __mpn_impn_sqr_n+148j .text:0004A31C LDR R3, [R11,#var_30] .text:0004A320 MOV R2, R8 .text:0004A324 ADD R5, R6, R3 .text:0004A328 MOV R0, R5 .text:0004A32C LDR R3, [R11,#var_2C] .text:0004A330 MOV R1, R5 .text:0004A334 BL __mpn_add_n .text:0004A338 ADDS R9, R9, R0 .text:0004A33C BEQ loc_4A3B8 .text:0004A340 ADD R0, R10, R5 .text:0004A344 MOV R1, R4 .text:0004A348 ADD R12, R0, #4 .text:0004A34C LDR R2, [R10,R5] .text:0004A350 MOV R0, R12 .text:0004A354 ADD R3, R9, R2 .text:0004A358 CMP R3, R2 .text:0004A35C STR R3, [R10,R5] .text:0004A360 BCS loc_4A38C .text:0004A364 SUBS R1, R4, #1 .text:0004A368 BEQ loc_4A3B8 .text:0004A36C .text:0004A36C loc_4A36C ; CODE XREF: __mpn_impn_sqr_n+268j .text:0004A36C LDR R3, [R12],#4 .text:0004A370 ADD R2, R3, #1 .text:0004A374 CMP R2, #0 .text:0004A378 STR R2, [R0],#4 .text:0004A37C BNE loc_4A38C .text:0004A380 SUBS R1, R1, #1 .text:0004A384 BNE loc_4A36C .text:0004A388 B loc_4A3B8 .text:0004A38C ; --------------------------------------------------------------------------- .text:0004A38C .text:0004A38C loc_4A38C ; CODE XREF: __mpn_impn_sqr_n+244j .text:0004A38C ; __mpn_impn_sqr_n+260j .text:0004A38C CMP R0, R12 .text:0004A390 BEQ loc_4A3B8 .text:0004A394 MOV R2, #0 .text:0004A398 SUB R1, R1, #1 .text:0004A39C CMP R2, R1 .text:0004A3A0 BGE loc_4A3B8 .text:0004A3A4 .text:0004A3A4 loc_4A3A4 ; CODE XREF: __mpn_impn_sqr_n+298j .text:0004A3A4 LDR R3, [R12,R2,LSL#2] .text:0004A3A8 STR R3, [R0,R2,LSL#2] .text:0004A3AC ADD R2, R2, #1 .text:0004A3B0 CMP R2, R1 .text:0004A3B4 BLT loc_4A3A4 .text:0004A3B8 .text:0004A3B8 loc_4A3B8 ; CODE XREF: __mpn_impn_sqr_n+220j .text:0004A3B8 ; __mpn_impn_sqr_n+24Cj ... .text:0004A3B8 MOV R2, #0 .text:0004A3BC CMP R2, R4 .text:0004A3C0 BGE loc_4A3D8 .text:0004A3C4 .text:0004A3C4 loc_4A3C4 ; CODE XREF: __mpn_impn_sqr_n+2B8j .text:0004A3C4 LDR R3, [R8,R2,LSL#2] .text:0004A3C8 STR R3, [R6,R2,LSL#2] .text:0004A3CC ADD R2, R2, #1 .text:0004A3D0 CMP R2, R4 .text:0004A3D4 BLT loc_4A3C4 .text:0004A3D8 .text:0004A3D8 loc_4A3D8 ; CODE XREF: __mpn_impn_sqr_n+2A4j .text:0004A3D8 LDR R2, [R11,#var_30] .text:0004A3DC MOV R3, R4 .text:0004A3E0 ADD R0, R6, R2 .text:0004A3E4 MOV R1, R0 .text:0004A3E8 ADD R2, R8, R2 .text:0004A3EC BL __mpn_add_n .text:0004A3F0 CMP R0, #0 .text:0004A3F4 BEQ locret_4A470 .text:0004A3F8 ADD R0, R10, R6 .text:0004A3FC ADD R12, R0, #4 .text:0004A400 LDR R1, [R10,R6] .text:0004A404 MOV R0, R12 .text:0004A408 LDR R2, [R11,#var_2C] .text:0004A40C ADD R3, R1, #1 .text:0004A410 CMP R3, R1 .text:0004A414 STR R3, [R10,R6] .text:0004A418 BCS loc_4A444 .text:0004A41C SUBS R2, R2, #1 .text:0004A420 BEQ locret_4A470 .text:0004A424 .text:0004A424 loc_4A424 ; CODE XREF: __mpn_impn_sqr_n+320j .text:0004A424 LDR R3, [R12],#4 .text:0004A428 ADD R1, R3, #1 .text:0004A42C CMP R1, #0 .text:0004A430 STR R1, [R0],#4 .text:0004A434 BNE loc_4A444 .text:0004A438 SUBS R2, R2, #1 .text:0004A43C BNE loc_4A424 .text:0004A440 B locret_4A470 .text:0004A444 ; --------------------------------------------------------------------------- .text:0004A444 .text:0004A444 loc_4A444 ; CODE XREF: __mpn_impn_sqr_n+2FCj .text:0004A444 ; __mpn_impn_sqr_n+318j .text:0004A444 CMP R0, R12 .text:0004A448 BEQ locret_4A470 .text:0004A44C MOV R1, #0 .text:0004A450 SUB R2, R2, #1 .text:0004A454 CMP R1, R2 .text:0004A458 BGE locret_4A470 .text:0004A45C .text:0004A45C loc_4A45C ; CODE XREF: __mpn_impn_sqr_n+350j .text:0004A45C LDR R3, [R12,R1,LSL#2] .text:0004A460 STR R3, [R0,R1,LSL#2] .text:0004A464 ADD R1, R1, #1 .text:0004A468 CMP R1, R2 .text:0004A46C BLT loc_4A45C .text:0004A470 .text:0004A470 locret_4A470 ; CODE XREF: __mpn_impn_sqr_n+78j .text:0004A470 ; __mpn_impn_sqr_n+2D8j ... .text:0004A470 LDMDB R11, {R4-R11,SP,PC} .text:0004A470 ; End of function __mpn_impn_sqr_n .text:0004A470 .text:0004A474 .text:0004A474 ; =============== S U B R O U T I N E ======================================= .text:0004A474 .text:0004A474 ; Attributes: bp-based frame .text:0004A474 .text:0004A474 EXPORT __mpn_mul_n .text:0004A474 __mpn_mul_n .text:0004A474 .text:0004A474 var_10 = -0x10 .text:0004A474 var_C = -0xC .text:0004A474 .text:0004A474 MOV R12, SP .text:0004A478 STMFD SP!, {R11,R12,LR,PC} .text:0004A47C SUB R11, R12, #4 .text:0004A480 CMP R1, R2 .text:0004A484 MOV R12, R3 .text:0004A488 SUB SP, SP, #4 .text:0004A48C BNE loc_4A4C0 .text:0004A490 CMP R12, #0x1F .text:0004A494 BGT loc_4A4A8 .text:0004A498 MOV R1, R2 .text:0004A49C MOV R2, R12 .text:0004A4A0 BL __mpn_impn_sqr_n_basecase .text:0004A4A4 B locret_4A4E8 .text:0004A4A8 ; --------------------------------------------------------------------------- .text:0004A4A8 .text:0004A4A8 loc_4A4A8 ; CODE XREF: __mpn_mul_n+20j .text:0004A4A8 SUB SP, SP, R12,LSL#3 .text:0004A4AC MOV R1, R2 .text:0004A4B0 MOV R2, R12 .text:0004A4B4 ADD R3, SP, #0x10+var_C .text:0004A4B8 BL __mpn_impn_sqr_n .text:0004A4BC B locret_4A4E8 .text:0004A4C0 ; --------------------------------------------------------------------------- .text:0004A4C0 .text:0004A4C0 loc_4A4C0 ; CODE XREF: __mpn_mul_n+18j .text:0004A4C0 CMP R12, #0x1F .text:0004A4C4 BGT loc_4A4D4 .text:0004A4C8 MOV R3, R12 .text:0004A4CC BL __mpn_impn_mul_n_basecase .text:0004A4D0 B locret_4A4E8 .text:0004A4D4 ; --------------------------------------------------------------------------- .text:0004A4D4 .text:0004A4D4 loc_4A4D4 ; CODE XREF: __mpn_mul_n+50j .text:0004A4D4 SUB SP, SP, R12,LSL#3 .text:0004A4D8 ADD R3, SP, #0x10+var_C .text:0004A4DC STR R3, [SP,#0x10+var_10] .text:0004A4E0 MOV R3, R12 .text:0004A4E4 BL __mpn_impn_mul_n .text:0004A4E8 .text:0004A4E8 locret_4A4E8 ; CODE XREF: __mpn_mul_n+30j .text:0004A4E8 ; __mpn_mul_n+48j ... .text:0004A4E8 LDMDB R11, {R11,SP,PC} .text:0004A4E8 ; End of function __mpn_mul_n .text:0004A4E8 .text:0004A4EC .text:0004A4EC ; =============== S U B R O U T I N E ======================================= .text:0004A4EC .text:0004A4EC ; Attributes: bp-based frame .text:0004A4EC .text:0004A4EC EXPORT __mpn_sub_n .text:0004A4EC __mpn_sub_n ; CODE XREF: __mpn_divrem+528p .text:0004A4EC ; __mpn_impn_mul_n+13Cp ... .text:0004A4EC MOV R12, SP .text:0004A4F0 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004A4F4 SUB R11, R12, #4 .text:0004A4F8 RSB R12, R3, #0 .text:0004A4FC MOV R3, R12,LSL#2 .text:0004A500 RSB R4, R3, R1 .text:0004A504 RSB R1, R3, R2 .text:0004A508 RSB LR, R3, R0 .text:0004A50C MOV R0, #0 .text:0004A510 .text:0004A510 loc_4A510 ; CODE XREF: __mpn_sub_n+4Cj .text:0004A510 LDR R3, [R1,R12,LSL#2] .text:0004A514 LDR R2, [R4,R12,LSL#2] .text:0004A518 ADDS R3, R3, R0 .text:0004A51C MOVCC R0, #0 .text:0004A520 MOVCS R0, #1 .text:0004A524 RSB R3, R3, R2 .text:0004A528 CMP R3, R2 .text:0004A52C ADDHI R0, R0, #1 .text:0004A530 STR R3, [LR,R12,LSL#2] .text:0004A534 ADDS R12, R12, #1 .text:0004A538 BNE loc_4A510 .text:0004A53C LDMDB R11, {R4,R11,SP,PC} .text:0004A53C ; End of function __mpn_sub_n .text:0004A53C .text:0004A540 .text:0004A540 ; =============== S U B R O U T I N E ======================================= .text:0004A540 .text:0004A540 ; Attributes: bp-based frame .text:0004A540 .text:0004A540 EXPORT __mpn_submul_1 .text:0004A540 __mpn_submul_1 ; CODE XREF: __strtof_internal+2EECp .text:0004A540 ; __strtod_internal+35ACp ... .text:0004A540 MOV R12, SP .text:0004A544 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0004A548 SUB R11, R12, #4 .text:0004A54C MOV R5, R3 .text:0004A550 RSB R4, R2, #0 .text:0004A554 MOV R3, R4,LSL#2 .text:0004A558 RSB R7, R3, R0 .text:0004A55C RSB R8, R3, R1 .text:0004A560 MOV R6, #0 .text:0004A564 .text:0004A564 loc_4A564 ; CODE XREF: __mpn_submul_1+7Cj .text:0004A564 LDR R3, [R8,R4,LSL#2] .text:0004A568 MOV R12, R3,LSR#16 .text:0004A56C MOV LR, R5,LSR#16 .text:0004A570 BIC R0, R3, R12,LSL#16 .text:0004A574 BIC R1, R5, LR,LSL#16 .text:0004A578 MUL R2, R0, R1 .text:0004A57C MUL R1, R12, R1 .text:0004A580 MUL R0, LR, R0 .text:0004A584 MUL LR, R12, LR .text:0004A588 ADDS R0, R1, R0 .text:0004A58C ADDCS LR, LR, #0x10000 .text:0004A590 ADDS R2, R2, R0,LSL#16 .text:0004A594 ADC LR, LR, R0,LSR#16 .text:0004A598 ADDS R2, R2, R6 .text:0004A59C LDR R3, [R7,R4,LSL#2] .text:0004A5A0 MOVCC R6, LR .text:0004A5A4 ADDCS R6, LR, #1 .text:0004A5A8 RSB R2, R2, R3 .text:0004A5AC CMP R2, R3 .text:0004A5B0 ADDHI R6, R6, #1 .text:0004A5B4 STR R2, [R7,R4,LSL#2] .text:0004A5B8 ADDS R4, R4, #1 .text:0004A5BC BNE loc_4A564 .text:0004A5C0 MOV R0, R6 .text:0004A5C4 LDMDB R11, {R4-R8,R11,SP,PC} .text:0004A5C4 ; End of function __mpn_submul_1 .text:0004A5C4 .text:0004A5C8 .text:0004A5C8 ; =============== S U B R O U T I N E ======================================= .text:0004A5C8 .text:0004A5C8 ; Attributes: bp-based frame .text:0004A5C8 .text:0004A5C8 EXPORT __mpn_extract_double .text:0004A5C8 __mpn_extract_double ; CODE XREF: __printf_fp+28Cp .text:0004A5C8 MOV R12, SP .text:0004A5CC STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004A5D0 SUB R11, R12, #4 .text:0004A5D4 MOV LR, 0x7FF .text:0004A5DC LDMIB R11, {R4,R5} .text:0004A5E0 MOV R6, R2 .text:0004A5E4 AND LR, LR, R4,LSR#20 .text:0004A5E8 MOV R1, R4,LSR#31 .text:0004A5EC STR R1, [R3] .text:0004A5F0 SUB R12, LR, #0x3FC .text:0004A5F4 SUB R12, R12, #3 .text:0004A5F8 STR R12, [R6] .text:0004A5FC BIC R3, R4, #0xFF000000 .text:0004A600 MOV R4, R5 .text:0004A604 STR R4, [R0] .text:0004A608 BIC R3, R3, #0xF00000 .text:0004A60C CMP LR, #0 .text:0004A610 STR R3, [R0,#4] .text:0004A614 BNE loc_4A730 .text:0004A618 CMP R4, #0 .text:0004A61C BNE loc_4A62C .text:0004A620 CMP R3, #0 .text:0004A624 STREQ R3, [R6] .text:0004A628 BEQ loc_4A738 .text:0004A62C .text:0004A62C loc_4A62C ; CODE XREF: __mpn_extract_double+54j .text:0004A62C LDR R3, [R0,#4] .text:0004A630 CMP R3, #0 .text:0004A634 MOV LR, R3 .text:0004A638 BEQ loc_4A6A4 .text:0004A63C CMP R3, #0x10000 .text:0004A640 BCS loc_4A654 .text:0004A644 CMP R3, #0xFF .text:0004A648 MOVHI R12, #8 .text:0004A64C MOVLS R12, #0 .text:0004A650 B loc_4A660 .text:0004A654 ; --------------------------------------------------------------------------- .text:0004A654 .text:0004A654 loc_4A654 ; CODE XREF: __mpn_extract_double+78j .text:0004A654 CMP R3, #0x1000000 .text:0004A658 MOVCS R12, #0x18 .text:0004A65C MOVCC R12, #0x10 .text:0004A660 .text:0004A660 loc_4A660 ; CODE XREF: __mpn_extract_double+88j .text:0004A660 LDR R1, =__clz_tab_1 .text:0004A664 MOV R3, R3,LSR R12 .text:0004A668 LDRB R2, [R1,R3] .text:0004A66C ADD R2, R2, R12 .text:0004A670 RSB R12, R2, #0x15 .text:0004A674 LDR R1, [R0] .text:0004A678 RSB R3, R12, #0x20 .text:0004A67C MOV R3, R1,LSR R3 .text:0004A680 ORR R3, R3, LR,LSL R12 .text:0004A684 STR R3, [R0,#4] .text:0004A688 RSB R2, R12, #0xFC000002 .text:0004A68C MOV R1, R1,LSL R12 .text:0004A690 STR R1, [R0] .text:0004A694 ADD R2, R2, #0x3FC0000 .text:0004A698 ADD R2, R2, #0x3FC00 .text:0004A69C STR R2, [R6] .text:0004A6A0 B loc_4A738 .text:0004A6A4 ; --------------------------------------------------------------------------- .text:0004A6A4 .text:0004A6A4 loc_4A6A4 ; CODE XREF: __mpn_extract_double+70j .text:0004A6A4 LDR R2, [R0] .text:0004A6A8 CMP R2, #0x10000 .text:0004A6AC MOV LR, R2 .text:0004A6B0 BCS loc_4A6C4 .text:0004A6B4 CMP LR, #0xFF .text:0004A6B8 MOVHI R12, #8 .text:0004A6BC MOVLS R12, #0 .text:0004A6C0 B loc_4A6D0 .text:0004A6C4 ; --------------------------------------------------------------------------- .text:0004A6C4 .text:0004A6C4 loc_4A6C4 ; CODE XREF: __mpn_extract_double+E8j .text:0004A6C4 CMP LR, #0x1000000 .text:0004A6C8 MOVCS R12, #0x18 .text:0004A6CC MOVCC R12, #0x10 .text:0004A6D0 .text:0004A6D0 loc_4A6D0 ; CODE XREF: __mpn_extract_double+F8j .text:0004A6D0 LDR R1, =__clz_tab_1 .text:0004A6D4 MOV R2, R2,LSR R12 .text:0004A6D8 LDRB R3, [R1,R2] .text:0004A6DC ADD R3, R3, R12 .text:0004A6E0 RSB R12, R3, #0x20 .text:0004A6E4 CMP R12, #0xA .text:0004A6E8 BLE loc_4A700 .text:0004A6EC SUB R3, R12, #0xB .text:0004A6F0 MOV R3, LR,LSL R3 .text:0004A6F4 STR R3, [R0,#4] .text:0004A6F8 MOV R2, #0 .text:0004A6FC B loc_4A714 .text:0004A700 ; --------------------------------------------------------------------------- .text:0004A700 .text:0004A700 loc_4A700 ; CODE XREF: __mpn_extract_double+120j .text:0004A700 RSB R3, R12, #0xB .text:0004A704 MOV R3, LR,LSR R3 .text:0004A708 STR R3, [R0,#4] .text:0004A70C ADD R2, R12, #0x15 .text:0004A710 MOV R2, LR,LSL R2 .text:0004A714 .text:0004A714 loc_4A714 ; CODE XREF: __mpn_extract_double+134j .text:0004A714 STR R2, [R0] .text:0004A718 RSB R3, R12, #0xFF000000 .text:0004A71C ADD R3, R3, #0xFF0000 .text:0004A720 ADD R3, R3, #0xFB00 .text:0004A724 ADD R3, R3, #0xED .text:0004A728 STR R3, [R6] .text:0004A72C B loc_4A738 .text:0004A730 ; --------------------------------------------------------------------------- .text:0004A730 .text:0004A730 loc_4A730 ; CODE XREF: __mpn_extract_double+4Cj .text:0004A730 ORR R3, R3, #0x100000 .text:0004A734 STR R3, [R0,#4] .text:0004A738 .text:0004A738 loc_4A738 ; CODE XREF: __mpn_extract_double+60j .text:0004A738 ; __mpn_extract_double+D8j ... .text:0004A738 MOV R0, #2 .text:0004A73C LDMDB R11, {R4-R6,R11,SP,PC} .text:0004A73C ; End of function __mpn_extract_double .text:0004A73C .text:0004A73C ; --------------------------------------------------------------------------- .text:0004A740 off_4A740 DCD __clz_tab_1 ; DATA XREF: __mpn_extract_double:loc_4A660r .text:0004A740 ; __mpn_extract_double:loc_4A6D0r .text:0004A744 .text:0004A744 ; =============== S U B R O U T I N E ======================================= .text:0004A744 .text:0004A744 ; Attributes: bp-based frame .text:0004A744 .text:0004A744 EXPORT __mpn_construct_float .text:0004A744 __mpn_construct_float ; CODE XREF: __strtof_internal:loc_45364p .text:0004A744 .text:0004A744 var_10 = -0x10 .text:0004A744 .text:0004A744 MOV R12, SP .text:0004A748 STMFD SP!, {R11,R12,LR,PC} .text:0004A74C SUB R11, R12, #4 .text:0004A750 BIC R3, R12, #0x80000000 .text:0004A754 ORR R12, R3, R2,LSL#31 .text:0004A758 BIC R2, R12, #0x7F000000 .text:0004A75C BIC R2, R2, #0x800000 .text:0004A760 ADD R1, R1, #0x7F .text:0004A764 AND R1, R1, #0xFF .text:0004A768 LDR R3, [R0] .text:0004A76C ORR R12, R2, R1,LSL#23 .text:0004A770 MOV R3, R3,LSL#9 .text:0004A774 ORR R3, R3, R12,LSR#23 .text:0004A778 MOV R12, R3,ROR#9 .text:0004A77C STR R12, [SP,#0xC+var_10]! .text:0004A780 LDC p1, c0, [SP+0x10+var_10],#4 .text:0004A784 LDMDB R11, {R11,SP,PC} .text:0004A784 ; End of function __mpn_construct_float .text:0004A784 .text:0004A788 .text:0004A788 ; =============== S U B R O U T I N E ======================================= .text:0004A788 .text:0004A788 ; Attributes: bp-based frame .text:0004A788 .text:0004A788 EXPORT __mpn_construct_double .text:0004A788 __mpn_construct_double ; CODE XREF: __strtod_internal:loc_48E18p .text:0004A788 .text:0004A788 var_1C = -0x1C .text:0004A788 .text:0004A788 MOV R12, SP .text:0004A78C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004A790 SUB R11, R12, #4 .text:0004A794 BIC R3, R4, #0x80000000 .text:0004A798 ORR R4, R3, R2,LSL#31 .text:0004A79C ADD R1, R1, #0x3FC .text:0004A7A0 ADD R1, R1, #3 .text:0004A7A4 MOV R2, 0x7FF .text:0004A7AC AND R1, R1, R2 .text:0004A7B0 BIC R2, R4, R2,LSL#20 .text:0004A7B4 LDR R3, [R0,#4] .text:0004A7B8 ORR R4, R2, R1,LSL#20 .text:0004A7BC LDR R5, [R0] .text:0004A7C0 MOV R3, R3,LSL#12 .text:0004A7C4 ORR R3, R3, R4,LSR#20 .text:0004A7C8 MOV R3, R3,ROR#12 .text:0004A7CC MOV R4, R3 .text:0004A7D0 STMFD SP!, {R4,R5} .text:0004A7D4 LDC p1, c8, [SP+0x1C+var_1C],#8 .text:0004A7D8 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004A7D8 ; End of function __mpn_construct_double .text:0004A7D8 .text:0004A7DC .text:0004A7DC ; =============== S U B R O U T I N E ======================================= .text:0004A7DC .text:0004A7DC ; Attributes: bp-based frame .text:0004A7DC .text:0004A7DC EXPORT _itoa .text:0004A7DC _itoa ; CODE XREF: vfprintf+C84p .text:0004A7DC ; vfprintf+2D1Cp ... .text:0004A7DC .text:0004A7DC var_48 = -0x48 .text:0004A7DC var_44 = -0x44 .text:0004A7DC var_40 = -0x40 .text:0004A7DC var_3C = -0x3C .text:0004A7DC var_38 = -0x38 .text:0004A7DC var_34 = -0x34 .text:0004A7DC var_30 = -0x30 .text:0004A7DC var_2C = -0x2C .text:0004A7DC arg_0 = 4 .text:0004A7DC .text:0004A7DC MOV R12, SP .text:0004A7E0 STMFD SP!, {R4-R12,LR,PC} .text:0004A7E4 SUB R11, R12, #4 .text:0004A7E8 SUB SP, SP, #0x20 .text:0004A7EC STR R2, [R11,#var_40] .text:0004A7F0 LDR R4, =_itoa_lower_digits .text:0004A7F4 MOV R10, R1 .text:0004A7F8 MOV R9, R0 .text:0004A7FC LDR R1, =_itoa_upper_digits ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0004A800 LDR R12, [R11,#arg_0] .text:0004A804 LDR R2, =(_fpioconst_pow10+0x68) .text:0004A808 STR R3, [R11,#var_38] .text:0004A80C CMP R12, #0 .text:0004A810 MOVNE R4, R1 .text:0004A814 MOV R12, R3 .text:0004A818 STR R4, [R11,#var_3C] .text:0004A81C CMP R3, #8 .text:0004A820 ADD R3, R3, R12,LSL#2 .text:0004A824 ADD R3, R2, R3,LSL#2 .text:0004A828 STR R3, [R11,#var_44] .text:0004A82C BEQ loc_4A83C .text:0004A830 CMP R12, #0x10 .text:0004A834 BEQ loc_4A8D0 .text:0004A838 B loc_4A938 .text:0004A83C ; --------------------------------------------------------------------------- .text:0004A83C .text:0004A83C loc_4A83C ; CODE XREF: _itoa+50j .text:0004A83C MOV R3, R10 .text:0004A840 SUBS R12, R3, #0 .text:0004A844 BEQ loc_4A8A8 .text:0004A848 MOV R0, R9 .text:0004A84C MOV R1, #0xA .text:0004A850 AND LR, R12, #1 .text:0004A854 MOV R12, R12,LSR#1 .text:0004A858 .text:0004A858 loc_4A858 ; CODE XREF: _itoa+A0j .text:0004A858 LDR R4, [R11,#var_3C] .text:0004A85C AND R2, R0, #7 .text:0004A860 LDRB R3, [R4,R2] .text:0004A864 LDR R2, [R11,#var_40] .text:0004A868 STRB R3, [R2,#-1]! .text:0004A86C MOV R0, R0,LSR#3 .text:0004A870 SUB R1, R1, #1 .text:0004A874 CMP R1, #0 .text:0004A878 STR R2, [R11,#var_40] .text:0004A87C BGT loc_4A858 .text:0004A880 ORR R0, R0, LR,LSL#2 .text:0004A884 CMP R12, #0 .text:0004A888 MOVEQ R12, R0 .text:0004A88C BEQ loc_4A8AC .text:0004A890 LDR R4, [R11,#var_3C] .text:0004A894 LDR LR, [R11,#var_40] .text:0004A898 LDRB R3, [R4,R0] .text:0004A89C STRB R3, [LR,#-1]! .text:0004A8A0 STR LR, [R11,#var_40] .text:0004A8A4 B loc_4A8AC .text:0004A8A8 ; --------------------------------------------------------------------------- .text:0004A8A8 .text:0004A8A8 loc_4A8A8 ; CODE XREF: _itoa+68j .text:0004A8A8 MOV R12, R9 .text:0004A8AC .text:0004A8AC loc_4A8AC ; CODE XREF: _itoa+B0j .text:0004A8AC ; _itoa+C8j ... .text:0004A8AC LDR R0, [R11,#var_3C] .text:0004A8B0 LDR R1, [R11,#var_40] .text:0004A8B4 AND R3, R12, #7 .text:0004A8B8 LDRB R2, [R0,R3] .text:0004A8BC STRB R2, [R1,#-1]! .text:0004A8C0 MOVS R12, R12,LSR#3 .text:0004A8C4 STR R1, [R11,#var_40] .text:0004A8C8 BNE loc_4A8AC .text:0004A8CC B loc_4AE60 .text:0004A8D0 ; --------------------------------------------------------------------------- .text:0004A8D0 .text:0004A8D0 loc_4A8D0 ; CODE XREF: _itoa+58j .text:0004A8D0 MOV R3, R10 .text:0004A8D4 SUBS R1, R3, #0 .text:0004A8D8 BEQ loc_4A910 .text:0004A8DC MOV R0, R9 .text:0004A8E0 MOV R12, #8 .text:0004A8E4 .text:0004A8E4 loc_4A8E4 ; CODE XREF: _itoa+12Cj .text:0004A8E4 LDR R4, [R11,#var_3C] .text:0004A8E8 LDR LR, [R11,#var_40] .text:0004A8EC AND R2, R0, #0xF .text:0004A8F0 LDRB R3, [R4,R2] .text:0004A8F4 STRB R3, [LR,#-1]! .text:0004A8F8 MOV R0, R0,LSR#4 .text:0004A8FC SUB R12, R12, #1 .text:0004A900 CMP R12, #0 .text:0004A904 STR LR, [R11,#var_40] .text:0004A908 BGT loc_4A8E4 .text:0004A90C B loc_4A914 .text:0004A910 ; --------------------------------------------------------------------------- .text:0004A910 .text:0004A910 loc_4A910 ; CODE XREF: _itoa+FCj .text:0004A910 MOV R1, R9 .text:0004A914 .text:0004A914 loc_4A914 ; CODE XREF: _itoa+130j .text:0004A914 ; _itoa+154j .text:0004A914 LDR R0, [R11,#var_3C] .text:0004A918 AND R3, R1, #0xF .text:0004A91C LDRB R2, [R0,R3] .text:0004A920 LDR R3, [R11,#var_40] .text:0004A924 STRB R2, [R3,#-1]! .text:0004A928 MOVS R1, R1,LSR#4 .text:0004A92C STR R3, [R11,#var_40] .text:0004A930 BNE loc_4A914 .text:0004A934 B loc_4AE60 .text:0004A938 ; --------------------------------------------------------------------------- .text:0004A938 .text:0004A938 loc_4A938 ; CODE XREF: _itoa+5Cj .text:0004A938 MOV R1, R10 .text:0004A93C MOV R2, #0 .text:0004A940 CMP R1, R2 .text:0004A944 BEQ loc_4AD00 .text:0004A948 LDR R4, [R11,#var_44] .text:0004A94C LDR R3, [R4,#0xC] .text:0004A950 LDRB R12, [R4,#8] .text:0004A954 CMP R1, R3 .text:0004A958 MOV R6, R3,LSL R12 .text:0004A95C STR R12, [R11,#var_48] .text:0004A960 BCC loc_4AC18 .text:0004A964 CMP R12, R2 .text:0004A968 MOVEQ R7, R12 .text:0004A96C BEQ loc_4A988 .text:0004A970 LDR LR, [R11,#var_48] .text:0004A974 MOV R1, R10 .text:0004A978 MOV R0, R9 .text:0004A97C RSB R2, LR, #0x40 .text:0004A980 BL __lshrdi3 .text:0004A984 MOV R7, R0 .text:0004A988 .text:0004A988 loc_4A988 ; CODE XREF: _itoa+190j .text:0004A988 LDR R2, [R11,#var_48] .text:0004A98C MOV R1, R10 .text:0004A990 MOV R0, R9 .text:0004A994 RSB R4, R2, #0x20 .text:0004A998 MOV R2, R4 .text:0004A99C BL __lshrdi3 .text:0004A9A0 LDR R12, [R11,#var_44] .text:0004A9A4 LDR R3, [R12,#0x10] .text:0004A9A8 MOV R12, R7,LSR#16 .text:0004A9AC MOV R8, R3,LSR#16 .text:0004A9B0 BIC R1, R7, R12,LSL#16 .text:0004A9B4 BIC R2, R3, R8,LSL#16 .text:0004A9B8 MUL LR, R1, R2 .text:0004A9BC MUL R2, R12, R2 .text:0004A9C0 MUL R1, R8, R1 .text:0004A9C4 MUL R8, R12, R8 .text:0004A9C8 ADDS R1, R2, R1 .text:0004A9CC ADDCS R8, R8, #0x10000 .text:0004A9D0 ADDS LR, LR, R1,LSL#16 .text:0004A9D4 ADC R8, R8, R1,LSR#16 .text:0004A9D8 ADD R8, R8, R7 .text:0004A9DC MOV LR, R8,LSR#16 .text:0004A9E0 MOV R2, R6,LSR#16 .text:0004A9E4 BIC R12, R8, LR,LSL#16 .text:0004A9E8 BIC R1, R6, R2,LSL#16 .text:0004A9EC MUL R3, R12, R1 .text:0004A9F0 MUL R1, LR, R1 .text:0004A9F4 MUL R12, R2, R12 .text:0004A9F8 MUL R2, LR, R2 .text:0004A9FC ADDS R12, R1, R12 .text:0004AA00 ADDCS R2, R2, #0x10000 .text:0004AA04 ADDS R3, R3, R12,LSL#16 .text:0004AA08 ADC R2, R2, R12,LSR#16 .text:0004AA0C SUBS LR, R0, R3 .text:0004AA10 SBC R3, R7, R2 .text:0004AA14 CMP R3, #0 .text:0004AA18 MOV R7, R4 .text:0004AA1C BEQ loc_4AA48 .text:0004AA20 ADD R8, R8, #1 .text:0004AA24 SUBS R0, LR, R6 .text:0004AA28 SBC R3, R3, #0 .text:0004AA2C MOV LR, R0 .text:0004AA30 CMP R3, #0 .text:0004AA34 BEQ loc_4AA48 .text:0004AA38 SUBS R1, LR, R6 .text:0004AA3C SBC R3, R3, #0 .text:0004AA40 MOV LR, R1 .text:0004AA44 ADD R8, R8, #1 .text:0004AA48 .text:0004AA48 loc_4AA48 ; CODE XREF: _itoa+240j .text:0004AA48 ; _itoa+258j .text:0004AA48 CMP LR, R6 .text:0004AA4C RSBCS LR, R6, LR .text:0004AA50 ADDCS R8, R8, #1 .text:0004AA54 LDR R2, [R11,#var_48] .text:0004AA58 MOV R4, R9,LSL R2 .text:0004AA5C LDR R12, [R11,#var_44] .text:0004AA60 LDR R3, [R12,#0x10] .text:0004AA64 MOV R0, LR,LSR#16 .text:0004AA68 MOV R5, R3,LSR#16 .text:0004AA6C BIC R1, LR, R0,LSL#16 .text:0004AA70 BIC R2, R3, R5,LSL#16 .text:0004AA74 MUL R12, R1, R2 .text:0004AA78 MUL R2, R0, R2 .text:0004AA7C MUL R1, R5, R1 .text:0004AA80 MUL R5, R0, R5 .text:0004AA84 ADDS R1, R2, R1 .text:0004AA88 ADDCS R5, R5, #0x10000 .text:0004AA8C ADDS R12, R12, R1,LSL#16 .text:0004AA90 ADC R5, R5, R1,LSR#16 .text:0004AA94 ADD R5, R5, LR .text:0004AA98 MOV R12, R5,LSR#16 .text:0004AA9C MOV R2, R6,LSR#16 .text:0004AAA0 BIC R0, R5, R12,LSL#16 .text:0004AAA4 BIC R1, R6, R2,LSL#16 .text:0004AAA8 MUL R3, R0, R1 .text:0004AAAC MUL R1, R12, R1 .text:0004AAB0 MUL R0, R2, R0 .text:0004AAB4 MUL R2, R12, R2 .text:0004AAB8 ADDS R0, R1, R0 .text:0004AABC ADDCS R2, R2, #0x10000 .text:0004AAC0 ADDS R3, R3, R0,LSL#16 .text:0004AAC4 ADC R2, R2, R0,LSR#16 .text:0004AAC8 SUBS R0, R4, R3 .text:0004AACC SBC R3, LR, R2 .text:0004AAD0 MOV R2, R0 .text:0004AAD4 CMP R3, #0 .text:0004AAD8 BEQ loc_4AB04 .text:0004AADC ADD R5, R5, #1 .text:0004AAE0 SUBS R1, R2, R6 .text:0004AAE4 SBC R3, R3, #0 .text:0004AAE8 MOV R2, R1 .text:0004AAEC CMP R3, #0 .text:0004AAF0 BEQ loc_4AB04 .text:0004AAF4 SUBS R4, R2, R6 .text:0004AAF8 SBC R3, R3, #0 .text:0004AAFC MOV R2, R4 .text:0004AB00 ADD R5, R5, #1 .text:0004AB04 .text:0004AB04 loc_4AB04 ; CODE XREF: _itoa+2FCj .text:0004AB04 ; _itoa+314j .text:0004AB04 CMP R2, R6 .text:0004AB08 RSBCS R2, R6, R2 .text:0004AB0C ADDCS R5, R5, #1 .text:0004AB10 LDR R12, [R11,#var_48] .text:0004AB14 CMP R12, #0 .text:0004AB18 MOV R3, R2,LSR R12 .text:0004AB1C STR R3, [R11,#var_2C] .text:0004AB20 BNE loc_4AB38 .text:0004AB24 MOV R7, R8 .text:0004AB28 B loc_4AB44 .text:0004AB28 ; --------------------------------------------------------------------------- .text:0004AB2C off_4AB2C DCD _itoa_lower_digits ; DATA XREF: _itoa+14r .text:0004AB30 off_4AB30 DCD _itoa_upper_digits ; DATA XREF: _itoa+20r .text:0004AB30 ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0004AB34 off_4AB34 DCD _fpioconst_pow10+0x68 ; DATA XREF: _itoa+28r .text:0004AB38 ; --------------------------------------------------------------------------- .text:0004AB38 .text:0004AB38 loc_4AB38 ; CODE XREF: _itoa+344j .text:0004AB38 LDR LR, [R11,#var_48] .text:0004AB3C MOV R3, R5,LSR R7 .text:0004AB40 ORR R7, R3, R8,LSL LR .text:0004AB44 .text:0004AB44 loc_4AB44 ; CODE XREF: _itoa+34Cj .text:0004AB44 LDR R0, [R11,#var_48] .text:0004AB48 MOV R4, R5,LSL R0 .text:0004AB4C LDR R1, [R11,#var_44] .text:0004AB50 LDR R3, [R1,#0x10] .text:0004AB54 MOV R0, R7,LSR#16 .text:0004AB58 MOV LR, R3,LSR#16 .text:0004AB5C BIC R1, R7, R0,LSL#16 .text:0004AB60 BIC R2, R3, LR,LSL#16 .text:0004AB64 MUL R12, R1, R2 .text:0004AB68 MUL R2, R0, R2 .text:0004AB6C MUL R1, LR, R1 .text:0004AB70 MUL LR, R0, LR .text:0004AB74 ADDS R1, R2, R1 .text:0004AB78 ADDCS LR, LR, #0x10000 .text:0004AB7C ADDS R12, R12, R1,LSL#16 .text:0004AB80 ADC LR, LR, R1,LSR#16 .text:0004AB84 ADD LR, LR, R7 .text:0004AB88 MOV R12, LR,LSR#16 .text:0004AB8C MOV R2, R6,LSR#16 .text:0004AB90 BIC R0, LR, R12,LSL#16 .text:0004AB94 BIC R1, R6, R2,LSL#16 .text:0004AB98 MUL R3, R0, R1 .text:0004AB9C MUL R1, R12, R1 .text:0004ABA0 MUL R0, R2, R0 .text:0004ABA4 MUL R2, R12, R2 .text:0004ABA8 ADDS R0, R1, R0 .text:0004ABAC ADDCS R2, R2, #0x10000 .text:0004ABB0 ADDS R3, R3, R0,LSL#16 .text:0004ABB4 ADC R2, R2, R0,LSR#16 .text:0004ABB8 SUBS R12, R4, R3 .text:0004ABBC SBC R3, R7, R2 .text:0004ABC0 MOV R2, R12 .text:0004ABC4 CMP R3, #0 .text:0004ABC8 BEQ loc_4ABF4 .text:0004ABCC ADD LR, LR, #1 .text:0004ABD0 SUBS R0, R2, R6 .text:0004ABD4 SBC R3, R3, #0 .text:0004ABD8 MOV R2, R0 .text:0004ABDC CMP R3, #0 .text:0004ABE0 BEQ loc_4ABF4 .text:0004ABE4 SUBS R1, R2, R6 .text:0004ABE8 SBC R3, R3, #0 .text:0004ABEC MOV R2, R1 .text:0004ABF0 ADD LR, LR, #1 .text:0004ABF4 .text:0004ABF4 loc_4ABF4 ; CODE XREF: _itoa+3ECj .text:0004ABF4 ; _itoa+404j .text:0004ABF4 CMP R2, R6 .text:0004ABF8 RSBCS R2, R6, R2 .text:0004ABFC ADDCS LR, LR, #1 .text:0004AC00 STR LR, [R11,#var_34] .text:0004AC04 LDR R4, [R11,#var_48] .text:0004AC08 MOV R3, R2,LSR R4 .text:0004AC0C MOV R7, #3 .text:0004AC10 STR R3, [R11,#var_30] .text:0004AC14 B loc_4AD08 .text:0004AC18 ; --------------------------------------------------------------------------- .text:0004AC18 .text:0004AC18 loc_4AC18 ; CODE XREF: _itoa+184j .text:0004AC18 LDR R2, [R11,#var_48] .text:0004AC1C MOV R1, R10 .text:0004AC20 MOV R0, R9 .text:0004AC24 BL __ashldi3 .text:0004AC28 MOV R10, R1 .text:0004AC2C MOV R9, R0 .text:0004AC30 MOV R1, R10 .text:0004AC34 LDR R12, [R11,#var_44] .text:0004AC38 LDR R3, [R12,#0x10] .text:0004AC3C MOV LR, R1,LSR#16 .text:0004AC40 MOV R5, R3,LSR#16 .text:0004AC44 BIC R12, R1, LR,LSL#16 .text:0004AC48 BIC R0, R3, R5,LSL#16 .text:0004AC4C MUL R4, R12, R0 .text:0004AC50 MUL R0, LR, R0 .text:0004AC54 MUL R12, R5, R12 .text:0004AC58 MUL R5, LR, R5 .text:0004AC5C ADDS R12, R0, R12 .text:0004AC60 ADDCS R5, R5, #0x10000 .text:0004AC64 ADDS R4, R4, R12,LSL#16 .text:0004AC68 ADC R5, R5, R12,LSR#16 .text:0004AC6C ADD R5, R5, R1 .text:0004AC70 MOV R4, R5,LSR#16 .text:0004AC74 MOV R0, R6,LSR#16 .text:0004AC78 BIC LR, R5, R4,LSL#16 .text:0004AC7C BIC R12, R6, R0,LSL#16 .text:0004AC80 MUL R3, LR, R12 .text:0004AC84 MUL R12, R4, R12 .text:0004AC88 MUL LR, R0, LR .text:0004AC8C MUL R0, R4, R0 .text:0004AC90 ADDS LR, R12, LR .text:0004AC94 ADDCS R0, R0, #0x10000 .text:0004AC98 ADDS R3, R3, LR,LSL#16 .text:0004AC9C ADC R0, R0, LR,LSR#16 .text:0004ACA0 SUBS R2, R9, R3 .text:0004ACA4 SBC R3, R1, R0 .text:0004ACA8 CMP R3, #0 .text:0004ACAC BEQ loc_4ACD8 .text:0004ACB0 ADD R5, R5, #1 .text:0004ACB4 SUBS LR, R2, R6 .text:0004ACB8 SBC R3, R3, #0 .text:0004ACBC MOV R2, LR .text:0004ACC0 CMP R3, #0 .text:0004ACC4 BEQ loc_4ACD8 .text:0004ACC8 SUBS R0, R2, R6 .text:0004ACCC SBC R3, R3, #0 .text:0004ACD0 MOV R2, R0 .text:0004ACD4 ADD R5, R5, #1 .text:0004ACD8 .text:0004ACD8 loc_4ACD8 ; CODE XREF: _itoa+4D0j .text:0004ACD8 ; _itoa+4E8j .text:0004ACD8 CMP R2, R6 .text:0004ACDC RSBCS R2, R6, R2 .text:0004ACE0 ADDCS R5, R5, #1 .text:0004ACE4 STR R5, [R11,#var_34] .text:0004ACE8 LDR R1, [R11,#var_44] .text:0004ACEC LDRB R3, [R1,#8] .text:0004ACF0 MOV R7, #2 .text:0004ACF4 MOV R3, R2,LSR R3 .text:0004ACF8 STR R3, [R11,#var_30] .text:0004ACFC B loc_4AD08 .text:0004AD00 ; --------------------------------------------------------------------------- .text:0004AD00 .text:0004AD00 loc_4AD00 ; CODE XREF: _itoa+168j .text:0004AD00 MOV R7, #1 .text:0004AD04 STR R9, [R11,#var_34] .text:0004AD08 .text:0004AD08 loc_4AD08 ; CODE XREF: _itoa+438j .text:0004AD08 ; _itoa+520j .text:0004AD08 SUB R8, R11, #-var_34 .text:0004AD0C .text:0004AD0C loc_4AD0C ; CODE XREF: _itoa+680j .text:0004AD0C LDR R2, [R11,#var_44] .text:0004AD10 SUB R7, R7, #1 .text:0004AD14 LDR R4, [R8,R7,LSL#2] .text:0004AD18 LDRB R3, [R2,#4] .text:0004AD1C MOV R6, #0 .text:0004AD20 LDR R5, [R2] .text:0004AD24 CMP R3, R6 .text:0004AD28 BEQ loc_4ADAC .text:0004AD2C CMP R4, R6 .text:0004AD30 BEQ loc_4AE1C .text:0004AD34 .text:0004AD34 loc_4AD34 ; CODE XREF: _itoa+5C8j .text:0004AD34 MOV R0, R4,LSR#16 .text:0004AD38 MOV R1, R5,LSR#16 .text:0004AD3C BIC R2, R4, R0,LSL#16 .text:0004AD40 BIC R3, R5, R1,LSL#16 .text:0004AD44 MUL R12, R2, R3 .text:0004AD48 MUL R3, R0, R3 .text:0004AD4C MUL R2, R1, R2 .text:0004AD50 MUL R1, R0, R1 .text:0004AD54 ADDS R2, R3, R2 .text:0004AD58 ADDCS R1, R1, #0x10000 .text:0004AD5C ADDS R12, R12, R2,LSL#16 .text:0004AD60 ADC R1, R1, R2,LSR#16 .text:0004AD64 LDR R12, [R11,#var_44] .text:0004AD68 RSB LR, R1, R4 .text:0004AD6C LDRB R3, [R12,#5] .text:0004AD70 ADD R1, R1, LR,LSR#1 .text:0004AD74 LDR R2, [R11,#var_38] .text:0004AD78 SUB R3, R3, #1 .text:0004AD7C MOV R1, R1,LSR R3 .text:0004AD80 MUL R2, R1, R2 .text:0004AD84 SUB R0, R11, #-var_40 .text:0004AD88 LDMIA R0, {R0,LR} .text:0004AD8C RSB R2, R2, R4 .text:0004AD90 LDRB R3, [LR,R2] .text:0004AD94 STRB R3, [R0,#-1]! .text:0004AD98 ADD R6, R6, #1 .text:0004AD9C SUBS R4, R1, #0 .text:0004ADA0 STR R0, [R11,#var_40] .text:0004ADA4 BNE loc_4AD34 .text:0004ADA8 B loc_4AE1C .text:0004ADAC ; --------------------------------------------------------------------------- .text:0004ADAC .text:0004ADAC loc_4ADAC ; CODE XREF: _itoa+54Cj .text:0004ADAC CMP R4, #0 .text:0004ADB0 BEQ loc_4AE1C .text:0004ADB4 .text:0004ADB4 loc_4ADB4 ; CODE XREF: _itoa+63Cj .text:0004ADB4 LDR R2, [R11,#var_44] .text:0004ADB8 LDRB R1, [R2,#5] .text:0004ADBC MOV R12, R4,LSR#16 .text:0004ADC0 MOV R3, R5,LSR#16 .text:0004ADC4 BIC R0, R4, R12,LSL#16 .text:0004ADC8 BIC R2, R5, R3,LSL#16 .text:0004ADCC MUL LR, R0, R2 .text:0004ADD0 MUL R2, R12, R2 .text:0004ADD4 MUL R0, R3, R0 .text:0004ADD8 MUL R3, R12, R3 .text:0004ADDC ADDS R0, R2, R0 .text:0004ADE0 ADDCS R3, R3, #0x10000 .text:0004ADE4 ADDS LR, LR, R0,LSL#16 .text:0004ADE8 ADC R3, R3, R0,LSR#16 .text:0004ADEC LDR R2, [R11,#var_38] .text:0004ADF0 MOV R3, R3,LSR R1 .text:0004ADF4 MUL R2, R3, R2 .text:0004ADF8 LDR R12, [R11,#var_40] .text:0004ADFC RSB R2, R2, R4 .text:0004AE00 LDR R4, [R11,#var_3C] .text:0004AE04 LDRB R1, [R4,R2] .text:0004AE08 STRB R1, [R12,#-1]! .text:0004AE0C ADD R6, R6, #1 .text:0004AE10 SUBS R4, R3, #0 .text:0004AE14 STR R12, [R11,#var_40] .text:0004AE18 BNE loc_4ADB4 .text:0004AE1C .text:0004AE1C loc_4AE1C ; CODE XREF: _itoa+554j .text:0004AE1C ; _itoa+5CCj ... .text:0004AE1C CMP R7, #0 .text:0004AE20 BEQ loc_4AE58 .text:0004AE24 LDR LR, [R11,#var_44] .text:0004AE28 LDRB R3, [LR,#9] .text:0004AE2C CMP R6, R3 .text:0004AE30 BGE loc_4AE58 .text:0004AE34 MOV R2, #0x30 .text:0004AE38 .text:0004AE38 loc_4AE38 ; CODE XREF: _itoa+678j .text:0004AE38 LDR R0, [R11,#var_40] .text:0004AE3C STRB R2, [R0,#-1]! .text:0004AE40 STR R0, [R11,#var_40] .text:0004AE44 LDR R1, [R11,#var_44] .text:0004AE48 LDRB R3, [R1,#9] .text:0004AE4C ADD R6, R6, #1 .text:0004AE50 CMP R6, R3 .text:0004AE54 BLT loc_4AE38 .text:0004AE58 .text:0004AE58 loc_4AE58 ; CODE XREF: _itoa+644j .text:0004AE58 ; _itoa+654j .text:0004AE58 CMP R7, #0 .text:0004AE5C BNE loc_4AD0C .text:0004AE60 .text:0004AE60 loc_4AE60 ; CODE XREF: _itoa+F0j .text:0004AE60 ; _itoa+158j .text:0004AE60 LDR R0, [R11,#var_40] .text:0004AE64 LDMDB R11, {R4-R11,SP,PC} .text:0004AE64 ; End of function _itoa .text:0004AE64 .text:0004AE68 .text:0004AE68 ; =============== S U B R O U T I N E ======================================= .text:0004AE68 .text:0004AE68 ; Attributes: bp-based frame .text:0004AE68 .text:0004AE68 EXPORT _itowa .text:0004AE68 _itowa ; CODE XREF: __printf_fphex+4E8p .text:0004AE68 ; vfwprintf+F04p ... .text:0004AE68 .text:0004AE68 var_48 = -0x48 .text:0004AE68 var_44 = -0x44 .text:0004AE68 var_40 = -0x40 .text:0004AE68 var_3C = -0x3C .text:0004AE68 var_38 = -0x38 .text:0004AE68 var_34 = -0x34 .text:0004AE68 var_30 = -0x30 .text:0004AE68 var_2C = -0x2C .text:0004AE68 arg_0 = 4 .text:0004AE68 .text:0004AE68 MOV R12, SP .text:0004AE6C STMFD SP!, {R4-R12,LR,PC} .text:0004AE70 SUB R11, R12, #4 .text:0004AE74 SUB SP, SP, #0x20 .text:0004AE78 STR R2, [R11,#var_40] .text:0004AE7C LDR R4, =_itowa_lower_digits .text:0004AE80 MOV R10, R1 .text:0004AE84 MOV R9, R0 .text:0004AE88 LDR R1, =_itowa_upper_digits .text:0004AE8C LDR R12, [R11,#arg_0] .text:0004AE90 LDR R2, =(_fpioconst_pow10+0x68) .text:0004AE94 STR R3, [R11,#var_38] .text:0004AE98 CMP R12, #0 .text:0004AE9C MOVNE R4, R1 .text:0004AEA0 MOV R12, R3 .text:0004AEA4 STR R4, [R11,#var_3C] .text:0004AEA8 CMP R3, #8 .text:0004AEAC ADD R3, R3, R12,LSL#2 .text:0004AEB0 ADD R3, R2, R3,LSL#2 .text:0004AEB4 STR R3, [R11,#var_44] .text:0004AEB8 BEQ loc_4AEC8 .text:0004AEBC CMP R12, #0x10 .text:0004AEC0 BEQ loc_4AF5C .text:0004AEC4 B loc_4AFC4 .text:0004AEC8 ; --------------------------------------------------------------------------- .text:0004AEC8 .text:0004AEC8 loc_4AEC8 ; CODE XREF: _itowa+50j .text:0004AEC8 MOV R3, R10 .text:0004AECC SUBS R12, R3, #0 .text:0004AED0 BEQ loc_4AF34 .text:0004AED4 MOV R0, R9 .text:0004AED8 MOV R1, #0xA .text:0004AEDC AND LR, R12, #1 .text:0004AEE0 MOV R12, R12,LSR#1 .text:0004AEE4 .text:0004AEE4 loc_4AEE4 ; CODE XREF: _itowa+A0j .text:0004AEE4 LDR R4, [R11,#var_3C] .text:0004AEE8 AND R2, R0, #7 .text:0004AEEC LDR R3, [R4,R2,LSL#2] .text:0004AEF0 LDR R2, [R11,#var_40] .text:0004AEF4 STR R3, [R2,#-4]! .text:0004AEF8 MOV R0, R0,LSR#3 .text:0004AEFC SUB R1, R1, #1 .text:0004AF00 CMP R1, #0 .text:0004AF04 STR R2, [R11,#var_40] .text:0004AF08 BGT loc_4AEE4 .text:0004AF0C ORR R0, R0, LR,LSL#2 .text:0004AF10 CMP R12, #0 .text:0004AF14 MOVEQ R12, R0 .text:0004AF18 BEQ loc_4AF38 .text:0004AF1C LDR R4, [R11,#var_3C] .text:0004AF20 LDR LR, [R11,#var_40] .text:0004AF24 LDR R3, [R4,R0,LSL#2] .text:0004AF28 STR R3, [LR,#-4]! .text:0004AF2C STR LR, [R11,#var_40] .text:0004AF30 B loc_4AF38 .text:0004AF34 ; --------------------------------------------------------------------------- .text:0004AF34 .text:0004AF34 loc_4AF34 ; CODE XREF: _itowa+68j .text:0004AF34 MOV R12, R9 .text:0004AF38 .text:0004AF38 loc_4AF38 ; CODE XREF: _itowa+B0j .text:0004AF38 ; _itowa+C8j ... .text:0004AF38 LDR R0, [R11,#var_3C] .text:0004AF3C LDR R1, [R11,#var_40] .text:0004AF40 AND R3, R12, #7 .text:0004AF44 LDR R2, [R0,R3,LSL#2] .text:0004AF48 STR R2, [R1,#-4]! .text:0004AF4C MOVS R12, R12,LSR#3 .text:0004AF50 STR R1, [R11,#var_40] .text:0004AF54 BNE loc_4AF38 .text:0004AF58 B loc_4B4EC .text:0004AF5C ; --------------------------------------------------------------------------- .text:0004AF5C .text:0004AF5C loc_4AF5C ; CODE XREF: _itowa+58j .text:0004AF5C MOV R3, R10 .text:0004AF60 SUBS R1, R3, #0 .text:0004AF64 BEQ loc_4AF9C .text:0004AF68 MOV R0, R9 .text:0004AF6C MOV R12, #8 .text:0004AF70 .text:0004AF70 loc_4AF70 ; CODE XREF: _itowa+12Cj .text:0004AF70 LDR R4, [R11,#var_3C] .text:0004AF74 LDR LR, [R11,#var_40] .text:0004AF78 AND R2, R0, #0xF .text:0004AF7C LDR R3, [R4,R2,LSL#2] .text:0004AF80 STR R3, [LR,#-4]! .text:0004AF84 MOV R0, R0,LSR#4 .text:0004AF88 SUB R12, R12, #1 .text:0004AF8C CMP R12, #0 .text:0004AF90 STR LR, [R11,#var_40] .text:0004AF94 BGT loc_4AF70 .text:0004AF98 B loc_4AFA0 .text:0004AF9C ; --------------------------------------------------------------------------- .text:0004AF9C .text:0004AF9C loc_4AF9C ; CODE XREF: _itowa+FCj .text:0004AF9C MOV R1, R9 .text:0004AFA0 .text:0004AFA0 loc_4AFA0 ; CODE XREF: _itowa+130j .text:0004AFA0 ; _itowa+154j .text:0004AFA0 LDR R0, [R11,#var_3C] .text:0004AFA4 AND R3, R1, #0xF .text:0004AFA8 LDR R2, [R0,R3,LSL#2] .text:0004AFAC LDR R3, [R11,#var_40] .text:0004AFB0 STR R2, [R3,#-4]! .text:0004AFB4 MOVS R1, R1,LSR#4 .text:0004AFB8 STR R3, [R11,#var_40] .text:0004AFBC BNE loc_4AFA0 .text:0004AFC0 B loc_4B4EC .text:0004AFC4 ; --------------------------------------------------------------------------- .text:0004AFC4 .text:0004AFC4 loc_4AFC4 ; CODE XREF: _itowa+5Cj .text:0004AFC4 MOV R1, R10 .text:0004AFC8 MOV R2, #0 .text:0004AFCC CMP R1, R2 .text:0004AFD0 BEQ loc_4B38C .text:0004AFD4 LDR R4, [R11,#var_44] .text:0004AFD8 LDR R3, [R4,#0xC] .text:0004AFDC LDRB R12, [R4,#8] .text:0004AFE0 CMP R1, R3 .text:0004AFE4 MOV R6, R3,LSL R12 .text:0004AFE8 STR R12, [R11,#var_48] .text:0004AFEC BCC loc_4B2A4 .text:0004AFF0 CMP R12, R2 .text:0004AFF4 MOVEQ R7, R12 .text:0004AFF8 BEQ loc_4B014 .text:0004AFFC LDR LR, [R11,#var_48] .text:0004B000 MOV R1, R10 .text:0004B004 MOV R0, R9 .text:0004B008 RSB R2, LR, #0x40 .text:0004B00C BL __lshrdi3 .text:0004B010 MOV R7, R0 .text:0004B014 .text:0004B014 loc_4B014 ; CODE XREF: _itowa+190j .text:0004B014 LDR R2, [R11,#var_48] .text:0004B018 MOV R1, R10 .text:0004B01C MOV R0, R9 .text:0004B020 RSB R4, R2, #0x20 .text:0004B024 MOV R2, R4 .text:0004B028 BL __lshrdi3 .text:0004B02C LDR R12, [R11,#var_44] .text:0004B030 LDR R3, [R12,#0x10] .text:0004B034 MOV R12, R7,LSR#16 .text:0004B038 MOV R8, R3,LSR#16 .text:0004B03C BIC R1, R7, R12,LSL#16 .text:0004B040 BIC R2, R3, R8,LSL#16 .text:0004B044 MUL LR, R1, R2 .text:0004B048 MUL R2, R12, R2 .text:0004B04C MUL R1, R8, R1 .text:0004B050 MUL R8, R12, R8 .text:0004B054 ADDS R1, R2, R1 .text:0004B058 ADDCS R8, R8, #0x10000 .text:0004B05C ADDS LR, LR, R1,LSL#16 .text:0004B060 ADC R8, R8, R1,LSR#16 .text:0004B064 ADD R8, R8, R7 .text:0004B068 MOV LR, R8,LSR#16 .text:0004B06C MOV R2, R6,LSR#16 .text:0004B070 BIC R12, R8, LR,LSL#16 .text:0004B074 BIC R1, R6, R2,LSL#16 .text:0004B078 MUL R3, R12, R1 .text:0004B07C MUL R1, LR, R1 .text:0004B080 MUL R12, R2, R12 .text:0004B084 MUL R2, LR, R2 .text:0004B088 ADDS R12, R1, R12 .text:0004B08C ADDCS R2, R2, #0x10000 .text:0004B090 ADDS R3, R3, R12,LSL#16 .text:0004B094 ADC R2, R2, R12,LSR#16 .text:0004B098 SUBS LR, R0, R3 .text:0004B09C SBC R3, R7, R2 .text:0004B0A0 CMP R3, #0 .text:0004B0A4 MOV R7, R4 .text:0004B0A8 BEQ loc_4B0D4 .text:0004B0AC ADD R8, R8, #1 .text:0004B0B0 SUBS R0, LR, R6 .text:0004B0B4 SBC R3, R3, #0 .text:0004B0B8 MOV LR, R0 .text:0004B0BC CMP R3, #0 .text:0004B0C0 BEQ loc_4B0D4 .text:0004B0C4 SUBS R1, LR, R6 .text:0004B0C8 SBC R3, R3, #0 .text:0004B0CC MOV LR, R1 .text:0004B0D0 ADD R8, R8, #1 .text:0004B0D4 .text:0004B0D4 loc_4B0D4 ; CODE XREF: _itowa+240j .text:0004B0D4 ; _itowa+258j .text:0004B0D4 CMP LR, R6 .text:0004B0D8 RSBCS LR, R6, LR .text:0004B0DC ADDCS R8, R8, #1 .text:0004B0E0 LDR R2, [R11,#var_48] .text:0004B0E4 MOV R4, R9,LSL R2 .text:0004B0E8 LDR R12, [R11,#var_44] .text:0004B0EC LDR R3, [R12,#0x10] .text:0004B0F0 MOV R0, LR,LSR#16 .text:0004B0F4 MOV R5, R3,LSR#16 .text:0004B0F8 BIC R1, LR, R0,LSL#16 .text:0004B0FC BIC R2, R3, R5,LSL#16 .text:0004B100 MUL R12, R1, R2 .text:0004B104 MUL R2, R0, R2 .text:0004B108 MUL R1, R5, R1 .text:0004B10C MUL R5, R0, R5 .text:0004B110 ADDS R1, R2, R1 .text:0004B114 ADDCS R5, R5, #0x10000 .text:0004B118 ADDS R12, R12, R1,LSL#16 .text:0004B11C ADC R5, R5, R1,LSR#16 .text:0004B120 ADD R5, R5, LR .text:0004B124 MOV R12, R5,LSR#16 .text:0004B128 MOV R2, R6,LSR#16 .text:0004B12C BIC R0, R5, R12,LSL#16 .text:0004B130 BIC R1, R6, R2,LSL#16 .text:0004B134 MUL R3, R0, R1 .text:0004B138 MUL R1, R12, R1 .text:0004B13C MUL R0, R2, R0 .text:0004B140 MUL R2, R12, R2 .text:0004B144 ADDS R0, R1, R0 .text:0004B148 ADDCS R2, R2, #0x10000 .text:0004B14C ADDS R3, R3, R0,LSL#16 .text:0004B150 ADC R2, R2, R0,LSR#16 .text:0004B154 SUBS R0, R4, R3 .text:0004B158 SBC R3, LR, R2 .text:0004B15C MOV R2, R0 .text:0004B160 CMP R3, #0 .text:0004B164 BEQ loc_4B190 .text:0004B168 ADD R5, R5, #1 .text:0004B16C SUBS R1, R2, R6 .text:0004B170 SBC R3, R3, #0 .text:0004B174 MOV R2, R1 .text:0004B178 CMP R3, #0 .text:0004B17C BEQ loc_4B190 .text:0004B180 SUBS R4, R2, R6 .text:0004B184 SBC R3, R3, #0 .text:0004B188 MOV R2, R4 .text:0004B18C ADD R5, R5, #1 .text:0004B190 .text:0004B190 loc_4B190 ; CODE XREF: _itowa+2FCj .text:0004B190 ; _itowa+314j .text:0004B190 CMP R2, R6 .text:0004B194 RSBCS R2, R6, R2 .text:0004B198 ADDCS R5, R5, #1 .text:0004B19C LDR R12, [R11,#var_48] .text:0004B1A0 CMP R12, #0 .text:0004B1A4 MOV R3, R2,LSR R12 .text:0004B1A8 STR R3, [R11,#var_2C] .text:0004B1AC BNE loc_4B1C4 .text:0004B1B0 MOV R7, R8 .text:0004B1B4 B loc_4B1D0 .text:0004B1B4 ; --------------------------------------------------------------------------- .text:0004B1B8 off_4B1B8 DCD _itowa_lower_digits ; DATA XREF: _itowa+14r .text:0004B1BC off_4B1BC DCD _itowa_upper_digits ; DATA XREF: _itowa+20r .text:0004B1C0 off_4B1C0 DCD _fpioconst_pow10+0x68 ; DATA XREF: _itowa+28r .text:0004B1C4 ; --------------------------------------------------------------------------- .text:0004B1C4 .text:0004B1C4 loc_4B1C4 ; CODE XREF: _itowa+344j .text:0004B1C4 LDR LR, [R11,#var_48] .text:0004B1C8 MOV R3, R5,LSR R7 .text:0004B1CC ORR R7, R3, R8,LSL LR .text:0004B1D0 .text:0004B1D0 loc_4B1D0 ; CODE XREF: _itowa+34Cj .text:0004B1D0 LDR R0, [R11,#var_48] .text:0004B1D4 MOV R4, R5,LSL R0 .text:0004B1D8 LDR R1, [R11,#var_44] .text:0004B1DC LDR R3, [R1,#0x10] .text:0004B1E0 MOV R0, R7,LSR#16 .text:0004B1E4 MOV LR, R3,LSR#16 .text:0004B1E8 BIC R1, R7, R0,LSL#16 .text:0004B1EC BIC R2, R3, LR,LSL#16 .text:0004B1F0 MUL R12, R1, R2 .text:0004B1F4 MUL R2, R0, R2 .text:0004B1F8 MUL R1, LR, R1 .text:0004B1FC MUL LR, R0, LR .text:0004B200 ADDS R1, R2, R1 .text:0004B204 ADDCS LR, LR, #0x10000 .text:0004B208 ADDS R12, R12, R1,LSL#16 .text:0004B20C ADC LR, LR, R1,LSR#16 .text:0004B210 ADD LR, LR, R7 .text:0004B214 MOV R12, LR,LSR#16 .text:0004B218 MOV R2, R6,LSR#16 .text:0004B21C BIC R0, LR, R12,LSL#16 .text:0004B220 BIC R1, R6, R2,LSL#16 .text:0004B224 MUL R3, R0, R1 .text:0004B228 MUL R1, R12, R1 .text:0004B22C MUL R0, R2, R0 .text:0004B230 MUL R2, R12, R2 .text:0004B234 ADDS R0, R1, R0 .text:0004B238 ADDCS R2, R2, #0x10000 .text:0004B23C ADDS R3, R3, R0,LSL#16 .text:0004B240 ADC R2, R2, R0,LSR#16 .text:0004B244 SUBS R12, R4, R3 .text:0004B248 SBC R3, R7, R2 .text:0004B24C MOV R2, R12 .text:0004B250 CMP R3, #0 .text:0004B254 BEQ loc_4B280 .text:0004B258 ADD LR, LR, #1 .text:0004B25C SUBS R0, R2, R6 .text:0004B260 SBC R3, R3, #0 .text:0004B264 MOV R2, R0 .text:0004B268 CMP R3, #0 .text:0004B26C BEQ loc_4B280 .text:0004B270 SUBS R1, R2, R6 .text:0004B274 SBC R3, R3, #0 .text:0004B278 MOV R2, R1 .text:0004B27C ADD LR, LR, #1 .text:0004B280 .text:0004B280 loc_4B280 ; CODE XREF: _itowa+3ECj .text:0004B280 ; _itowa+404j .text:0004B280 CMP R2, R6 .text:0004B284 RSBCS R2, R6, R2 .text:0004B288 ADDCS LR, LR, #1 .text:0004B28C STR LR, [R11,#var_34] .text:0004B290 LDR R4, [R11,#var_48] .text:0004B294 MOV R3, R2,LSR R4 .text:0004B298 MOV R7, #3 .text:0004B29C STR R3, [R11,#var_30] .text:0004B2A0 B loc_4B394 .text:0004B2A4 ; --------------------------------------------------------------------------- .text:0004B2A4 .text:0004B2A4 loc_4B2A4 ; CODE XREF: _itowa+184j .text:0004B2A4 LDR R2, [R11,#var_48] .text:0004B2A8 MOV R1, R10 .text:0004B2AC MOV R0, R9 .text:0004B2B0 BL __ashldi3 .text:0004B2B4 MOV R10, R1 .text:0004B2B8 MOV R9, R0 .text:0004B2BC MOV R1, R10 .text:0004B2C0 LDR R12, [R11,#var_44] .text:0004B2C4 LDR R3, [R12,#0x10] .text:0004B2C8 MOV LR, R1,LSR#16 .text:0004B2CC MOV R5, R3,LSR#16 .text:0004B2D0 BIC R12, R1, LR,LSL#16 .text:0004B2D4 BIC R0, R3, R5,LSL#16 .text:0004B2D8 MUL R4, R12, R0 .text:0004B2DC MUL R0, LR, R0 .text:0004B2E0 MUL R12, R5, R12 .text:0004B2E4 MUL R5, LR, R5 .text:0004B2E8 ADDS R12, R0, R12 .text:0004B2EC ADDCS R5, R5, #0x10000 .text:0004B2F0 ADDS R4, R4, R12,LSL#16 .text:0004B2F4 ADC R5, R5, R12,LSR#16 .text:0004B2F8 ADD R5, R5, R1 .text:0004B2FC MOV R4, R5,LSR#16 .text:0004B300 MOV R0, R6,LSR#16 .text:0004B304 BIC LR, R5, R4,LSL#16 .text:0004B308 BIC R12, R6, R0,LSL#16 .text:0004B30C MUL R3, LR, R12 .text:0004B310 MUL R12, R4, R12 .text:0004B314 MUL LR, R0, LR .text:0004B318 MUL R0, R4, R0 .text:0004B31C ADDS LR, R12, LR .text:0004B320 ADDCS R0, R0, #0x10000 .text:0004B324 ADDS R3, R3, LR,LSL#16 .text:0004B328 ADC R0, R0, LR,LSR#16 .text:0004B32C SUBS R2, R9, R3 .text:0004B330 SBC R3, R1, R0 .text:0004B334 CMP R3, #0 .text:0004B338 BEQ loc_4B364 .text:0004B33C ADD R5, R5, #1 .text:0004B340 SUBS LR, R2, R6 .text:0004B344 SBC R3, R3, #0 .text:0004B348 MOV R2, LR .text:0004B34C CMP R3, #0 .text:0004B350 BEQ loc_4B364 .text:0004B354 SUBS R0, R2, R6 .text:0004B358 SBC R3, R3, #0 .text:0004B35C MOV R2, R0 .text:0004B360 ADD R5, R5, #1 .text:0004B364 .text:0004B364 loc_4B364 ; CODE XREF: _itowa+4D0j .text:0004B364 ; _itowa+4E8j .text:0004B364 CMP R2, R6 .text:0004B368 RSBCS R2, R6, R2 .text:0004B36C ADDCS R5, R5, #1 .text:0004B370 STR R5, [R11,#var_34] .text:0004B374 LDR R1, [R11,#var_44] .text:0004B378 LDRB R3, [R1,#8] .text:0004B37C MOV R7, #2 .text:0004B380 MOV R3, R2,LSR R3 .text:0004B384 STR R3, [R11,#var_30] .text:0004B388 B loc_4B394 .text:0004B38C ; --------------------------------------------------------------------------- .text:0004B38C .text:0004B38C loc_4B38C ; CODE XREF: _itowa+168j .text:0004B38C MOV R7, #1 .text:0004B390 STR R9, [R11,#var_34] .text:0004B394 .text:0004B394 loc_4B394 ; CODE XREF: _itowa+438j .text:0004B394 ; _itowa+520j .text:0004B394 SUB R8, R11, #-var_34 .text:0004B398 .text:0004B398 loc_4B398 ; CODE XREF: _itowa+680j .text:0004B398 LDR R2, [R11,#var_44] .text:0004B39C SUB R7, R7, #1 .text:0004B3A0 LDR R4, [R8,R7,LSL#2] .text:0004B3A4 LDRB R3, [R2,#4] .text:0004B3A8 MOV R6, #0 .text:0004B3AC LDR R5, [R2] .text:0004B3B0 CMP R3, R6 .text:0004B3B4 BEQ loc_4B438 .text:0004B3B8 CMP R4, R6 .text:0004B3BC BEQ loc_4B4A8 .text:0004B3C0 .text:0004B3C0 loc_4B3C0 ; CODE XREF: _itowa+5C8j .text:0004B3C0 MOV R0, R4,LSR#16 .text:0004B3C4 MOV R1, R5,LSR#16 .text:0004B3C8 BIC R2, R4, R0,LSL#16 .text:0004B3CC BIC R3, R5, R1,LSL#16 .text:0004B3D0 MUL R12, R2, R3 .text:0004B3D4 MUL R3, R0, R3 .text:0004B3D8 MUL R2, R1, R2 .text:0004B3DC MUL R1, R0, R1 .text:0004B3E0 ADDS R2, R3, R2 .text:0004B3E4 ADDCS R1, R1, #0x10000 .text:0004B3E8 ADDS R12, R12, R2,LSL#16 .text:0004B3EC ADC R1, R1, R2,LSR#16 .text:0004B3F0 LDR R12, [R11,#var_44] .text:0004B3F4 RSB LR, R1, R4 .text:0004B3F8 LDRB R3, [R12,#5] .text:0004B3FC ADD R1, R1, LR,LSR#1 .text:0004B400 LDR R2, [R11,#var_38] .text:0004B404 SUB R3, R3, #1 .text:0004B408 MOV R1, R1,LSR R3 .text:0004B40C MUL R2, R1, R2 .text:0004B410 SUB R0, R11, #-var_40 .text:0004B414 LDMIA R0, {R0,LR} .text:0004B418 RSB R2, R2, R4 .text:0004B41C LDR R3, [LR,R2,LSL#2] .text:0004B420 STR R3, [R0,#-4]! .text:0004B424 ADD R6, R6, #1 .text:0004B428 SUBS R4, R1, #0 .text:0004B42C STR R0, [R11,#var_40] .text:0004B430 BNE loc_4B3C0 .text:0004B434 B loc_4B4A8 .text:0004B438 ; --------------------------------------------------------------------------- .text:0004B438 .text:0004B438 loc_4B438 ; CODE XREF: _itowa+54Cj .text:0004B438 CMP R4, #0 .text:0004B43C BEQ loc_4B4A8 .text:0004B440 .text:0004B440 loc_4B440 ; CODE XREF: _itowa+63Cj .text:0004B440 LDR R2, [R11,#var_44] .text:0004B444 LDRB R1, [R2,#5] .text:0004B448 MOV R12, R4,LSR#16 .text:0004B44C MOV R3, R5,LSR#16 .text:0004B450 BIC R0, R4, R12,LSL#16 .text:0004B454 BIC R2, R5, R3,LSL#16 .text:0004B458 MUL LR, R0, R2 .text:0004B45C MUL R2, R12, R2 .text:0004B460 MUL R0, R3, R0 .text:0004B464 MUL R3, R12, R3 .text:0004B468 ADDS R0, R2, R0 .text:0004B46C ADDCS R3, R3, #0x10000 .text:0004B470 ADDS LR, LR, R0,LSL#16 .text:0004B474 ADC R3, R3, R0,LSR#16 .text:0004B478 LDR R2, [R11,#var_38] .text:0004B47C MOV R3, R3,LSR R1 .text:0004B480 MUL R2, R3, R2 .text:0004B484 LDR R12, [R11,#var_40] .text:0004B488 RSB R2, R2, R4 .text:0004B48C LDR R4, [R11,#var_3C] .text:0004B490 LDR R1, [R4,R2,LSL#2] .text:0004B494 STR R1, [R12,#-4]! .text:0004B498 ADD R6, R6, #1 .text:0004B49C SUBS R4, R3, #0 .text:0004B4A0 STR R12, [R11,#var_40] .text:0004B4A4 BNE loc_4B440 .text:0004B4A8 .text:0004B4A8 loc_4B4A8 ; CODE XREF: _itowa+554j .text:0004B4A8 ; _itowa+5CCj ... .text:0004B4A8 CMP R7, #0 .text:0004B4AC BEQ loc_4B4E4 .text:0004B4B0 LDR LR, [R11,#var_44] .text:0004B4B4 LDRB R3, [LR,#9] .text:0004B4B8 CMP R6, R3 .text:0004B4BC BGE loc_4B4E4 .text:0004B4C0 MOV R2, #0x30 .text:0004B4C4 .text:0004B4C4 loc_4B4C4 ; CODE XREF: _itowa+678j .text:0004B4C4 LDR R0, [R11,#var_40] .text:0004B4C8 STR R2, [R0,#-4]! .text:0004B4CC STR R0, [R11,#var_40] .text:0004B4D0 LDR R1, [R11,#var_44] .text:0004B4D4 LDRB R3, [R1,#9] .text:0004B4D8 ADD R6, R6, #1 .text:0004B4DC CMP R6, R3 .text:0004B4E0 BLT loc_4B4C4 .text:0004B4E4 .text:0004B4E4 loc_4B4E4 ; CODE XREF: _itowa+644j .text:0004B4E4 ; _itowa+654j .text:0004B4E4 CMP R7, #0 .text:0004B4E8 BNE loc_4B398 .text:0004B4EC .text:0004B4EC loc_4B4EC ; CODE XREF: _itowa+F0j .text:0004B4EC ; _itowa+158j .text:0004B4EC LDR R0, [R11,#var_40] .text:0004B4F0 LDMDB R11, {R4-R11,SP,PC} .text:0004B4F0 ; End of function _itowa .text:0004B4F0 .text:0004B4F4 .text:0004B4F4 ; =============== S U B R O U T I N E ======================================= .text:0004B4F4 .text:0004B4F4 ; Attributes: bp-based frame .text:0004B4F4 .text:0004B4F4 EXPORT _IO_file_doallocate .text:0004B4F4 _IO_file_doallocate ; CODE XREF: _IO_wfile_doallocate+20p .text:0004B4F4 .text:0004B4F4 var_80 = -0x80 .text:0004B4F4 var_7C = -0x7C .text:0004B4F4 var_78 = -0x78 .text:0004B4F4 var_68 = -0x68 .text:0004B4F4 var_44 = -0x44 .text:0004B4F4 .text:0004B4F4 MOV R12, SP .text:0004B4F8 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004B4FC MOV R4, R0 .text:0004B500 SUB SP, SP, #0x68 .text:0004B504 LDR R3, [R4,#0x38] .text:0004B508 SUB R11, R12, #4 .text:0004B50C CMP R3, #0 .text:0004B510 BLT loc_4B538 .text:0004B514 LDRB R3, [R4,#0x46] .text:0004B518 MOV R3, R3,LSL#24 .text:0004B51C ADD R3, R4, R3,ASR#24 .text:0004B520 LDR R2, [R3,#0x94] .text:0004B524 SUB R1, R11, #-var_78 .text:0004B528 MOV LR, PC .text:0004B52C LDR PC, [R2,#0x48] .text:0004B530 CMP R0, #0 .text:0004B534 BGE loc_4B544 .text:0004B538 .text:0004B538 loc_4B538 ; CODE XREF: _IO_file_doallocate+1Cj .text:0004B538 MOV R6, #0 .text:0004B53C MOV R5, #0x2000 .text:0004B540 B loc_4B568 .text:0004B544 ; --------------------------------------------------------------------------- .text:0004B544 .text:0004B544 loc_4B544 ; CODE XREF: _IO_file_doallocate+40j .text:0004B544 LDR R3, [R11,#var_68] .text:0004B548 LDR R2, [R11,#var_44] .text:0004B54C AND R6, R3, #0xF000 .text:0004B550 CMP R6, #0x2000 .text:0004B554 MOVNE R6, #0 .text:0004B558 MOVEQ R6, #1 .text:0004B55C CMP R2, #0 .text:0004B560 MOVGT R5, R2 .text:0004B564 MOVLE R5, #0x2000 .text:0004B568 .text:0004B568 loc_4B568 ; CODE XREF: _IO_file_doallocate+4Cj .text:0004B568 ADD R1, R5, #0xFF0 .text:0004B56C ADD R1, R1, #0xF .text:0004B570 MOV R3, 0xFFFFFFFF .text:0004B574 STR R3, [SP,#0x80+var_80] .text:0004B578 MOV R2, #0 .text:0004B57C MOV R0, R2 .text:0004B580 STR R2, [SP,#0x80+var_7C] .text:0004B584 BIC R1, R1, #0xFF0 .text:0004B588 BIC R1, R1, #0xF .text:0004B58C ADD R2, R2, #3 .text:0004B590 ADD R3, R3, #0x23 .text:0004B594 BL mmap .text:0004B598 MOV R1, R0 .text:0004B59C CMN R1, #1 .text:0004B5A0 BEQ locret_4B5D8 .text:0004B5A4 MOV R0, R4 .text:0004B5A8 ADD R2, R1, R5 .text:0004B5AC MOV R3, #1 .text:0004B5B0 BL _IO_setb .text:0004B5B4 CMP R6, #0 .text:0004B5B8 BEQ loc_4B5D4 .text:0004B5BC LDR R0, [R4,#0x38] .text:0004B5C0 BL isatty .text:0004B5C4 CMP R0, #0 .text:0004B5C8 LDRNE R3, [R4] .text:0004B5CC ORRNE R3, R3, #0x200 .text:0004B5D0 STRNE R3, [R4] .text:0004B5D4 .text:0004B5D4 loc_4B5D4 ; CODE XREF: _IO_file_doallocate+C4j .text:0004B5D4 MOV R0, #1 .text:0004B5D8 .text:0004B5D8 locret_4B5D8 ; CODE XREF: _IO_file_doallocate+ACj .text:0004B5D8 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004B5D8 ; End of function _IO_file_doallocate .text:0004B5D8 .text:0004B5DC .text:0004B5DC ; =============== S U B R O U T I N E ======================================= .text:0004B5DC .text:0004B5DC ; Attributes: bp-based frame .text:0004B5DC .text:0004B5DC EXPORT _IO_wfile_doallocate .text:0004B5DC _IO_wfile_doallocate .text:0004B5DC .text:0004B5DC var_80 = -0x80 .text:0004B5DC var_7C = -0x7C .text:0004B5DC var_78 = -0x78 .text:0004B5DC var_68 = -0x68 .text:0004B5DC var_44 = -0x44 .text:0004B5DC .text:0004B5DC MOV R12, SP .text:0004B5E0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004B5E4 MOV R4, R0 .text:0004B5E8 SUB SP, SP, #0x68 .text:0004B5EC LDR R3, [R4,#0x1C] .text:0004B5F0 SUB R11, R12, #4 .text:0004B5F4 CMP R3, #0 .text:0004B5F8 BNE loc_4B600 .text:0004B5FC BL _IO_file_doallocate .text:0004B600 .text:0004B600 loc_4B600 ; CODE XREF: _IO_wfile_doallocate+1Cj .text:0004B600 LDR R3, [R4,#0x38] .text:0004B604 CMP R3, #0 .text:0004B608 BLT loc_4B634 .text:0004B60C LDRB R3, [R4,#0x46] .text:0004B610 MOV R0, R4 .text:0004B614 MOV R3, R3,LSL#24 .text:0004B618 ADD R3, R4, R3,ASR#24 .text:0004B61C LDR R2, [R3,#0x94] .text:0004B620 SUB R1, R11, #-var_78 .text:0004B624 MOV LR, PC .text:0004B628 LDR PC, [R2,#0x48] .text:0004B62C CMP R0, #0 .text:0004B630 BGE loc_4B640 .text:0004B634 .text:0004B634 loc_4B634 ; CODE XREF: _IO_wfile_doallocate+2Cj .text:0004B634 MOV R6, #0 .text:0004B638 MOV R1, #0x2000 .text:0004B63C B loc_4B664 .text:0004B640 ; --------------------------------------------------------------------------- .text:0004B640 .text:0004B640 loc_4B640 ; CODE XREF: _IO_wfile_doallocate+54j .text:0004B640 LDR R3, [R11,#var_68] .text:0004B644 LDR R2, [R11,#var_44] .text:0004B648 AND R6, R3, #0xF000 .text:0004B64C CMP R6, #0x2000 .text:0004B650 MOVNE R6, #0 .text:0004B654 MOVEQ R6, #1 .text:0004B658 CMP R2, #0 .text:0004B65C MOVGT R1, R2 .text:0004B660 MOVLE R1, #0x2000 .text:0004B664 .text:0004B664 loc_4B664 ; CODE XREF: _IO_wfile_doallocate+60j .text:0004B664 MOV R5, R1,LSL#2 .text:0004B668 ADD R1, R5, #0xFF0 .text:0004B66C ADD R1, R1, #0xF .text:0004B670 MOV R3, 0xFFFFFFFF .text:0004B674 STR R3, [SP,#0x80+var_80] .text:0004B678 MOV R2, #0 .text:0004B67C MOV R0, R2 .text:0004B680 STR R2, [SP,#0x80+var_7C] .text:0004B684 BIC R1, R1, #0xFF0 .text:0004B688 BIC R1, R1, #0xF .text:0004B68C ADD R2, R2, #3 .text:0004B690 ADD R3, R3, #0x23 .text:0004B694 BL mmap .text:0004B698 MOV R1, R0 .text:0004B69C CMN R1, #1 .text:0004B6A0 BEQ locret_4B6D8 .text:0004B6A4 MOV R0, R4 .text:0004B6A8 ADD R2, R1, R5 .text:0004B6AC MOV R3, #1 .text:0004B6B0 BL _IO_wsetb .text:0004B6B4 CMP R6, #0 .text:0004B6B8 BEQ loc_4B6D4 .text:0004B6BC LDR R0, [R4,#0x38] .text:0004B6C0 BL isatty .text:0004B6C4 CMP R0, #0 .text:0004B6C8 LDRNE R3, [R4] .text:0004B6CC ORRNE R3, R3, #0x200 .text:0004B6D0 STRNE R3, [R4] .text:0004B6D4 .text:0004B6D4 loc_4B6D4 ; CODE XREF: _IO_wfile_doallocate+DCj .text:0004B6D4 MOV R0, #1 .text:0004B6D8 .text:0004B6D8 locret_4B6D8 ; CODE XREF: _IO_wfile_doallocate+C4j .text:0004B6D8 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004B6D8 ; End of function _IO_wfile_doallocate .text:0004B6D8 .text:0004B6DC .text:0004B6DC ; =============== S U B R O U T I N E ======================================= .text:0004B6DC .text:0004B6DC ; Attributes: bp-based frame .text:0004B6DC .text:0004B6DC WEAK getdelim .text:0004B6DC getdelim ; CODE XREF: read_conf_file+380p .text:0004B6DC .text:0004B6DC var_40 = -0x40 .text:0004B6DC var_3C = -0x3C .text:0004B6DC var_38 = -0x38 .text:0004B6DC .text:0004B6DC MOV R12, SP ; Alternative name is '_IO_getdelim' .text:0004B6E0 STMFD SP!, {R4-R12,LR,PC} .text:0004B6E4 SUB R11, R12, #4 .text:0004B6E8 MOV R9, #0 .text:0004B6EC MOV R8, R0 .text:0004B6F0 MOV R10, R1 .text:0004B6F4 CMP R10, R9 .text:0004B6F8 CMPNE R8, R9 .text:0004B6FC MOV R4, R3 .text:0004B700 SUB SP, SP, #0x18 .text:0004B704 STR R2, [R11,#var_3C] .text:0004B708 BNE loc_4B720 .text:0004B70C BL __errno_location .text:0004B710 MOV R3, #0x16 .text:0004B714 STR R3, [R0] .text:0004B718 MOV R0, 0xFFFFFFFF .text:0004B71C B locret_4B8D0 .text:0004B720 ; --------------------------------------------------------------------------- .text:0004B720 .text:0004B720 loc_4B720 ; CODE XREF: getdelim+2Cj .text:0004B720 LDR R3, [R4] .text:0004B724 STR R9, [R11,#var_40] .text:0004B728 TST R3, #0x8000 .text:0004B72C BNE loc_4B740 .text:0004B730 LDR R3, =0 .text:0004B734 SUBS R3, R3, #0 .text:0004B738 MOVNE R3, #1 .text:0004B73C STR R3, [R11,#var_40] .text:0004B740 .text:0004B740 loc_4B740 ; CODE XREF: getdelim+50j .text:0004B740 LDR R3, [R11,#var_40] .text:0004B744 CMP R3, #0 .text:0004B748 BEQ loc_4B75C .text:0004B74C SUB R0, R11, #-var_38 .text:0004B750 LDR R1, =funlockfile .text:0004B754 MOV R2, R4 .text:0004B758 BL 0 .text:0004B75C .text:0004B75C loc_4B75C ; CODE XREF: getdelim+6Cj .text:0004B75C LDR R3, [R4] .text:0004B760 TST R3, #0x8000 .text:0004B764 BNE loc_4B770 .text:0004B768 MOV R0, R4 .text:0004B76C BL flockfile .text:0004B770 .text:0004B770 loc_4B770 ; CODE XREF: getdelim+88j .text:0004B770 LDR R3, [R4] .text:0004B774 TST R3, #0x20 .text:0004B778 BNE loc_4B7DC .text:0004B77C LDR R3, [R8] .text:0004B780 CMP R3, #0 .text:0004B784 BEQ loc_4B794 .text:0004B788 LDR R3, [R10] .text:0004B78C CMP R3, #0 .text:0004B790 BNE loc_4B7AC .text:0004B794 .text:0004B794 loc_4B794 ; CODE XREF: getdelim+A8j .text:0004B794 MOV R0, #0x78 .text:0004B798 STR R0, [R10] .text:0004B79C BL malloc .text:0004B7A0 CMP R0, #0 .text:0004B7A4 STR R0, [R8] .text:0004B7A8 BEQ loc_4B7DC .text:0004B7AC .text:0004B7AC loc_4B7AC ; CODE XREF: getdelim+B4j .text:0004B7AC ADD R3, R4, #8 .text:0004B7B0 LDMDA R3, {R3,R5} .text:0004B7B4 SUB R5, R5, R3 .text:0004B7B8 LDR R0, [R4,#4] .text:0004B7BC CMP R5, #0 .text:0004B7C0 BGT loc_4B7FC .text:0004B7C4 MOV R0, R4 .text:0004B7C8 BL __underflow .text:0004B7CC CMN R0, #1 .text:0004B7D0 BNE loc_4B7EC .text:0004B7D4 MOV R5, R0 .text:0004B7D8 B loc_4B8A0 .text:0004B7DC ; --------------------------------------------------------------------------- .text:0004B7DC .text:0004B7DC loc_4B7DC ; CODE XREF: getdelim+9Cj .text:0004B7DC ; getdelim+CCj ... .text:0004B7DC MOV R5, 0xFFFFFFFF .text:0004B7E0 B loc_4B8A0 .text:0004B7E0 ; --------------------------------------------------------------------------- .text:0004B7E4 dword_4B7E4 DCD 0 ; DATA XREF: getdelim+54r .text:0004B7E8 off_4B7E8 DCD funlockfile ; DATA XREF: getdelim+74r .text:0004B7EC ; --------------------------------------------------------------------------- .text:0004B7EC .text:0004B7EC loc_4B7EC ; CODE XREF: getdelim+F4j .text:0004B7EC ; getdelim+1B0j .text:0004B7EC ADD R3, R4, #8 .text:0004B7F0 LDMDA R3, {R3,R5} .text:0004B7F4 SUB R5, R5, R3 .text:0004B7F8 LDR R0, [R4,#4] .text:0004B7FC .text:0004B7FC loc_4B7FC ; CODE XREF: getdelim+E4j .text:0004B7FC LDR R1, [R11,#var_3C] .text:0004B800 MOV R2, R5 .text:0004B804 BL memchr .text:0004B808 SUBS R6, R0, #0 .text:0004B80C LDRNE R3, [R4,#4] .text:0004B810 RSBNE R3, R3, R6 .text:0004B814 ADDNE R5, R3, #1 .text:0004B818 ADD R3, R9, R5 .text:0004B81C ADD R1, R3, #1 .text:0004B820 LDR R2, [R10] .text:0004B824 MOV R7, R3 .text:0004B828 CMP R1, R2 .text:0004B82C BLS loc_4B854 .text:0004B830 MOV R3, R2,LSL#1 .text:0004B834 CMP R1, R3 .text:0004B838 MOVCC R1, R3 .text:0004B83C STR R1, [R10] .text:0004B840 LDR R0, [R8] .text:0004B844 BL realloc .text:0004B848 CMP R0, #0 .text:0004B84C STR R0, [R8] .text:0004B850 BEQ loc_4B7DC .text:0004B854 .text:0004B854 loc_4B854 ; CODE XREF: getdelim+150j .text:0004B854 LDR R0, [R8] .text:0004B858 MOV R2, R5 .text:0004B85C LDR R1, [R4,#4] .text:0004B860 ADD R0, R0, R9 .text:0004B864 MOV R9, R7 .text:0004B868 BL memcpy .text:0004B86C LDR R3, [R4,#4] .text:0004B870 CMP R6, #0 .text:0004B874 ADD R3, R3, R5 .text:0004B878 STR R3, [R4,#4] .text:0004B87C BNE loc_4B890 .text:0004B880 MOV R0, R4 .text:0004B884 BL __underflow .text:0004B888 CMN R0, #1 .text:0004B88C BNE loc_4B7EC .text:0004B890 .text:0004B890 loc_4B890 ; CODE XREF: getdelim+1A0j .text:0004B890 MOV R5, R7 .text:0004B894 LDR R2, [R8] .text:0004B898 MOV R3, #0 .text:0004B89C STRB R3, [R2,R7] .text:0004B8A0 .text:0004B8A0 loc_4B8A0 ; CODE XREF: getdelim+FCj .text:0004B8A0 ; getdelim+104j .text:0004B8A0 LDR R3, [R4] .text:0004B8A4 TST R3, #0x8000 .text:0004B8A8 BNE loc_4B8B4 .text:0004B8AC MOV R0, R4 .text:0004B8B0 BL funlockfile .text:0004B8B4 .text:0004B8B4 loc_4B8B4 ; CODE XREF: getdelim+1CCj .text:0004B8B4 LDR R3, [R11,#var_40] .text:0004B8B8 CMP R3, #0 .text:0004B8BC BEQ loc_4B8CC .text:0004B8C0 SUB R0, R11, #-var_38 .text:0004B8C4 MOV R1, #0 .text:0004B8C8 BL 0 .text:0004B8CC .text:0004B8CC loc_4B8CC ; CODE XREF: getdelim+1E0j .text:0004B8CC MOV R0, R5 .text:0004B8D0 .text:0004B8D0 locret_4B8D0 ; CODE XREF: getdelim+40j .text:0004B8D0 LDMDB R11, {R4-R11,SP,PC} .text:0004B8D0 ; End of function getdelim .text:0004B8D0 .text:0004B8D4 .text:0004B8D4 ; =============== S U B R O U T I N E ======================================= .text:0004B8D4 .text:0004B8D4 ; Attributes: bp-based frame .text:0004B8D4 .text:0004B8D4 EXPORT _IO_getline .text:0004B8D4 _IO_getline ; CODE XREF: fgets_unlocked+4Cp .text:0004B8D4 .text:0004B8D4 var_14 = -0x14 .text:0004B8D4 var_10 = -0x10 .text:0004B8D4 arg_0 = 4 .text:0004B8D4 .text:0004B8D4 MOV R12, SP .text:0004B8D8 STMFD SP!, {R11,R12,LR,PC} .text:0004B8DC SUB R11, R12, #4 .text:0004B8E0 MOV R12, #0 .text:0004B8E4 SUB SP, SP, #8 .text:0004B8E8 STR R12, [SP,#0x14+var_10] .text:0004B8EC LDR LR, [R11,#arg_0] .text:0004B8F0 STR LR, [SP,#0x14+var_14] .text:0004B8F4 BL _IO_getline_info .text:0004B8F8 LDMDB R11, {R11,SP,PC} .text:0004B8F8 ; End of function _IO_getline .text:0004B8F8 .text:0004B8FC .text:0004B8FC ; =============== S U B R O U T I N E ======================================= .text:0004B8FC .text:0004B8FC ; Attributes: bp-based frame .text:0004B8FC .text:0004B8FC EXPORT _IO_getline_info .text:0004B8FC _IO_getline_info ; CODE XREF: _IO_getline+20p .text:0004B8FC .text:0004B8FC arg_0 = 4 .text:0004B8FC arg_4 = 8 .text:0004B8FC .text:0004B8FC MOV R12, SP .text:0004B900 STMFD SP!, {R4-R12,LR,PC} .text:0004B904 SUB R11, R12, #4 .text:0004B908 MOV R8, R2 .text:0004B90C MOV R9, R1 .text:0004B910 MOV R7, R9 .text:0004B914 MOV R6, R0 .text:0004B918 LDR R2, [R11,#arg_4] .text:0004B91C MOV R10, R3 .text:0004B920 CMP R2, #0 .text:0004B924 MOVNE R3, #0 .text:0004B928 STRNE R3, [R2] .text:0004B92C LDR R3, [R6,#0x5C] .text:0004B930 CMP R3, #0 .text:0004B934 MOVEQ R3, 0xFFFFFFFF .text:0004B938 STREQ R3, [R6,#0x5C] .text:0004B93C B loc_4B9F4 .text:0004B940 ; --------------------------------------------------------------------------- .text:0004B940 .text:0004B940 loc_4B940 ; CODE XREF: _IO_getline_info+128j .text:0004B940 CMP R1, R10 .text:0004B944 BNE loc_4B96C .text:0004B948 LDR R3, [R11,#arg_0] .text:0004B94C CMP R3, #0 .text:0004B950 STRGTB R1, [R7],#1 .text:0004B954 BGT loc_4B964 .text:0004B958 BGE loc_4B964 .text:0004B95C MOV R0, R6 .text:0004B960 BL _IO_sputbackc .text:0004B964 .text:0004B964 loc_4B964 ; CODE XREF: _IO_getline_info+58j .text:0004B964 ; _IO_getline_info+5Cj .text:0004B964 RSB R0, R9, R7 .text:0004B968 LDMDB R11, {R4-R11,SP,PC} .text:0004B96C ; --------------------------------------------------------------------------- .text:0004B96C .text:0004B96C loc_4B96C ; CODE XREF: _IO_getline_info+48j .text:0004B96C SUB R8, R8, #1 .text:0004B970 STRB R1, [R7],#1 .text:0004B974 B loc_4B9F4 .text:0004B978 ; --------------------------------------------------------------------------- .text:0004B978 .text:0004B978 loc_4B978 ; CODE XREF: _IO_getline_info+114j .text:0004B978 CMP R4, R8 .text:0004B97C MOVCS R4, R8 .text:0004B980 MOV R1, R10 .text:0004B984 MOV R2, R4 .text:0004B988 BL memchr .text:0004B98C SUBS R5, R0, #0 .text:0004B990 BEQ loc_4B9D0 .text:0004B994 LDR R2, [R11,#arg_0] .text:0004B998 RSB R8, R9, R7 .text:0004B99C LDR R1, [R6,#4] .text:0004B9A0 CMP R2, #0 .text:0004B9A4 RSB R4, R1, R5 .text:0004B9A8 BLT loc_4B9B8 .text:0004B9AC ADD R5, R5, #1 .text:0004B9B0 CMP R2, #0 .text:0004B9B4 ADDGT R4, R4, #1 .text:0004B9B8 .text:0004B9B8 loc_4B9B8 ; CODE XREF: _IO_getline_info+ACj .text:0004B9B8 MOV R0, R7 .text:0004B9BC MOV R2, R4 .text:0004B9C0 BL memcpy .text:0004B9C4 ADD R0, R8, R4 .text:0004B9C8 STR R5, [R6,#4] .text:0004B9CC LDMDB R11, {R4-R11,SP,PC} .text:0004B9D0 ; --------------------------------------------------------------------------- .text:0004B9D0 .text:0004B9D0 loc_4B9D0 ; CODE XREF: _IO_getline_info+94j .text:0004B9D0 MOV R0, R7 .text:0004B9D4 MOV R2, R4 .text:0004B9D8 LDR R1, [R6,#4] .text:0004B9DC ADD R7, R7, R4 .text:0004B9E0 BL memcpy .text:0004B9E4 LDR R3, [R6,#4] .text:0004B9E8 RSB R8, R4, R8 .text:0004B9EC ADD R3, R3, R4 .text:0004B9F0 STR R3, [R6,#4] .text:0004B9F4 .text:0004B9F4 loc_4B9F4 ; CODE XREF: _IO_getline_info+40j .text:0004B9F4 ; _IO_getline_info+78j .text:0004B9F4 CMP R8, #0 .text:0004B9F8 BEQ loc_4BA34 .text:0004B9FC ADD R3, R6, #8 .text:0004BA00 LDMDA R3, {R3,R4} .text:0004BA04 SUB R4, R4, R3 .text:0004BA08 LDR R0, [R6,#4] .text:0004BA0C CMP R4, #0 .text:0004BA10 BGT loc_4B978 .text:0004BA14 MOV R0, R6 .text:0004BA18 BL __uflow .text:0004BA1C MOV R1, R0 .text:0004BA20 CMN R1, #1 .text:0004BA24 BNE loc_4B940 .text:0004BA28 LDR R2, [R11,#arg_4] .text:0004BA2C CMP R2, #0 .text:0004BA30 STRNE R1, [R2] .text:0004BA34 .text:0004BA34 loc_4BA34 ; CODE XREF: _IO_getline_info+FCj .text:0004BA34 RSB R0, R9, R7 .text:0004BA38 LDMDB R11, {R4-R11,SP,PC} .text:0004BA38 ; End of function _IO_getline_info .text:0004BA38 .text:0004BA3C .text:0004BA3C ; =============== S U B R O U T I N E ======================================= .text:0004BA3C .text:0004BA3C ; Attributes: bp-based frame .text:0004BA3C .text:0004BA3C EXPORT strcpy .text:0004BA3C strcpy ; CODE XREF: generic_getcwd+2D0p .text:0004BA3C ; __tzstring+90p .text:0004BA3C MOV R12, SP .text:0004BA40 STMFD SP!, {R11,R12,LR,PC} .text:0004BA44 SUB R11, R12, #4 .text:0004BA48 RSB R3, R1, R0 .text:0004BA4C SUB R2, R3, #1 .text:0004BA50 .text:0004BA50 loc_4BA50 ; CODE XREF: strcpy+20j .text:0004BA50 LDRB R3, [R1],#1 .text:0004BA54 CMP R3, #0 .text:0004BA58 STRB R3, [R1,R2] .text:0004BA5C BNE loc_4BA50 .text:0004BA60 LDMDB R11, {R11,SP,PC} .text:0004BA60 ; End of function strcpy .text:0004BA60 .text:0004BA64 .text:0004BA64 ; =============== S U B R O U T I N E ======================================= .text:0004BA64 .text:0004BA64 ; Attributes: bp-based frame .text:0004BA64 .text:0004BA64 WEAK strndup .text:0004BA64 strndup ; CODE XREF: _nl_find_locale+57Cp .text:0004BA64 MOV R12, SP ; Alternative name is '__strndup' .text:0004BA68 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004BA6C SUB R11, R12, #4 .text:0004BA70 MOV R5, R0 .text:0004BA74 MOV R4, R1 .text:0004BA78 MOV R1, #0 .text:0004BA7C MOV R2, R4 .text:0004BA80 BL memchr .text:0004BA84 CMP R0, #0 .text:0004BA88 SUBNE R4, R0, R5 .text:0004BA8C ADD R0, R4, #1 .text:0004BA90 BL malloc .text:0004BA94 CMP R0, #0 .text:0004BA98 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0004BA9C MOV R3, #0 .text:0004BAA0 STRB R3, [R0,R4] .text:0004BAA4 MOV R1, R5 .text:0004BAA8 MOV R2, R4 .text:0004BAAC BL memcpy .text:0004BAB0 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004BAB0 ; End of function strndup .text:0004BAB0 .text:0004BAB4 .text:0004BAB4 ; =============== S U B R O U T I N E ======================================= .text:0004BAB4 .text:0004BAB4 ; Attributes: bp-based frame .text:0004BAB4 .text:0004BAB4 WEAK strncasecmp .text:0004BAB4 strncasecmp ; CODE XREF: __strtof_internal+17Cp .text:0004BAB4 ; __strtof_internal+198p ... .text:0004BAB4 MOV R12, SP .text:0004BAB8 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004BABC SUB R11, R12, #4 .text:0004BAC0 MOV R4, R0 .text:0004BAC4 MOV R12, R2 .text:0004BAC8 CMP R12, #0 .text:0004BACC CMPNE R4, R1 .text:0004BAD0 MOVEQ R0, #0 .text:0004BAD4 LDMEQDB R11, {R4,R11,SP,PC} .text:0004BAD8 LDR R3, =__ctype_tolower .text:0004BADC LDR LR, [R3] .text:0004BAE0 .text:0004BAE0 loc_4BAE0 ; CODE XREF: strncasecmp+58j .text:0004BAE0 LDRB R3, [R4],#1 .text:0004BAE4 LDRB R2, [R1],#1 .text:0004BAE8 LDRB R0, [LR,R3,LSL#2] .text:0004BAEC LDRB R2, [LR,R2,LSL#2] .text:0004BAF0 SUBS R3, R0, R2 .text:0004BAF4 MOVNE R3, #1 .text:0004BAF8 CMP R0, #0 .text:0004BAFC MOVEQ R3, #1 .text:0004BB00 CMP R3, #0 .text:0004BB04 BNE loc_4BB18 .text:0004BB08 SUBS R12, R12, #1 .text:0004BB0C BNE loc_4BAE0 .text:0004BB10 RSB R0, R2, R0 .text:0004BB14 LDMDB R11, {R4,R11,SP,PC} .text:0004BB18 ; --------------------------------------------------------------------------- .text:0004BB18 .text:0004BB18 loc_4BB18 ; CODE XREF: strncasecmp+50j .text:0004BB18 RSB R0, R2, R0 .text:0004BB1C LDMDB R11, {R4,R11,SP,PC} .text:0004BB1C ; End of function strncasecmp .text:0004BB1C .text:0004BB1C ; --------------------------------------------------------------------------- .text:0004BB20 off_4BB20 DCD __ctype_tolower ; DATA XREF: strncasecmp+24r .text:0004BB24 .text:0004BB24 ; =============== S U B R O U T I N E ======================================= .text:0004BB24 .text:0004BB24 ; Attributes: bp-based frame .text:0004BB24 .text:0004BB24 WEAK argz_create_sep .text:0004BB24 argz_create_sep ; CODE XREF: setlocale+94p .text:0004BB24 MOV R12, SP .text:0004BB28 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0004BB2C SUB R11, R12, #4 .text:0004BB30 MOV R7, R0 .text:0004BB34 MOV R8, R1 .text:0004BB38 MOV R5, R2 .text:0004BB3C MOV R6, R3 .text:0004BB40 BL strlen .text:0004BB44 ADD R4, R0, #1 .text:0004BB48 CMP R4, #1 .text:0004BB4C BLS loc_4BBD0 .text:0004BB50 MOV R0, R4 .text:0004BB54 BL malloc .text:0004BB58 CMP R0, #0 .text:0004BB5C STR R0, [R5] .text:0004BB60 MOVEQ R0, #0xC .text:0004BB64 LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0004BB68 MOV R2, R7 .text:0004BB6C MOV R1, #0 .text:0004BB70 .text:0004BB70 loc_4BB70 ; CODE XREF: argz_create_sep+88j .text:0004BB70 LDRB R3, [R2] .text:0004BB74 CMP R3, R8 .text:0004BB78 BNE loc_4BBA0 .text:0004BB7C LDR R3, [R5] .text:0004BB80 CMP R0, R3 .text:0004BB84 BLS loc_4BB98 .text:0004BB88 LDRB R3, [R0,#-1] .text:0004BB8C CMP R3, #0 .text:0004BB90 STRNEB R1, [R0],#1 .text:0004BB94 BNE loc_4BBA4 .text:0004BB98 .text:0004BB98 loc_4BB98 ; CODE XREF: argz_create_sep+60j .text:0004BB98 SUB R4, R4, #1 .text:0004BB9C B loc_4BBA4 .text:0004BBA0 ; --------------------------------------------------------------------------- .text:0004BBA0 .text:0004BBA0 loc_4BBA0 ; CODE XREF: argz_create_sep+54j .text:0004BBA0 STRB R3, [R0],#1 .text:0004BBA4 .text:0004BBA4 loc_4BBA4 ; CODE XREF: argz_create_sep+70j .text:0004BBA4 ; argz_create_sep+78j .text:0004BBA4 LDRB R3, [R2],#1 .text:0004BBA8 CMP R3, #0 .text:0004BBAC BNE loc_4BB70 .text:0004BBB0 CMP R4, #0 .text:0004BBB4 BNE loc_4BBC8 .text:0004BBB8 LDR R0, [R5] .text:0004BBBC BL free .text:0004BBC0 STR R4, [R5] .text:0004BBC4 STR R4, [R6] .text:0004BBC8 .text:0004BBC8 loc_4BBC8 ; CODE XREF: argz_create_sep+90j .text:0004BBC8 STR R4, [R6] .text:0004BBCC B loc_4BBDC .text:0004BBD0 ; --------------------------------------------------------------------------- .text:0004BBD0 .text:0004BBD0 loc_4BBD0 ; CODE XREF: argz_create_sep+28j .text:0004BBD0 MOV R3, #0 .text:0004BBD4 STR R3, [R5] .text:0004BBD8 STR R3, [R6] .text:0004BBDC .text:0004BBDC loc_4BBDC ; CODE XREF: argz_create_sep+A8j .text:0004BBDC MOV R0, #0 .text:0004BBE0 LDMDB R11, {R4-R8,R11,SP,PC} .text:0004BBE0 ; End of function argz_create_sep .text:0004BBE0 .text:0004BBE4 .text:0004BBE4 ; =============== S U B R O U T I N E ======================================= .text:0004BBE4 .text:0004BBE4 ; Attributes: bp-based frame .text:0004BBE4 .text:0004BBE4 WEAK argz_add_sep .text:0004BBE4 argz_add_sep ; CODE XREF: setlocale+B0p .text:0004BBE4 MOV R12, SP ; Alternative name is '__argz_add_sep' .text:0004BBE8 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0004BBEC SUB R11, R12, #4 .text:0004BBF0 MOV R5, R0 .text:0004BBF4 MOV R7, R2 .text:0004BBF8 MOV R0, R7 .text:0004BBFC MOV R6, R1 .text:0004BC00 MOV R8, R3 .text:0004BC04 BL strlen .text:0004BC08 ADD R4, R0, #1 .text:0004BC0C CMP R4, #1 .text:0004BC10 BLS loc_4BC90 .text:0004BC14 LDR R1, [R6] .text:0004BC18 LDR R0, [R5] .text:0004BC1C ADD R1, R1, R4 .text:0004BC20 BL realloc .text:0004BC24 CMP R0, #0 .text:0004BC28 STR R0, [R5] .text:0004BC2C MOVEQ R0, #0xC .text:0004BC30 LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0004BC34 MOV R2, R7 .text:0004BC38 LDR R3, [R6] .text:0004BC3C MOV R1, #0 .text:0004BC40 ADD R0, R0, R3 .text:0004BC44 .text:0004BC44 loc_4BC44 ; CODE XREF: argz_add_sep+9Cj .text:0004BC44 LDRB R3, [R2] .text:0004BC48 CMP R3, R8 .text:0004BC4C BNE loc_4BC74 .text:0004BC50 LDR R3, [R5] .text:0004BC54 CMP R0, R3 .text:0004BC58 BLS loc_4BC6C .text:0004BC5C LDRB R3, [R0,#-1] .text:0004BC60 CMP R3, #0 .text:0004BC64 STRNEB R1, [R0],#1 .text:0004BC68 BNE loc_4BC78 .text:0004BC6C .text:0004BC6C loc_4BC6C ; CODE XREF: argz_add_sep+74j .text:0004BC6C SUB R4, R4, #1 .text:0004BC70 B loc_4BC78 .text:0004BC74 ; --------------------------------------------------------------------------- .text:0004BC74 .text:0004BC74 loc_4BC74 ; CODE XREF: argz_add_sep+68j .text:0004BC74 STRB R3, [R0],#1 .text:0004BC78 .text:0004BC78 loc_4BC78 ; CODE XREF: argz_add_sep+84j .text:0004BC78 ; argz_add_sep+8Cj .text:0004BC78 LDRB R3, [R2],#1 .text:0004BC7C CMP R3, #0 .text:0004BC80 BNE loc_4BC44 .text:0004BC84 LDR R3, [R6] .text:0004BC88 ADD R3, R3, R4 .text:0004BC8C STR R3, [R6] .text:0004BC90 .text:0004BC90 loc_4BC90 ; CODE XREF: argz_add_sep+2Cj .text:0004BC90 MOV R0, #0 .text:0004BC94 LDMDB R11, {R4-R8,R11,SP,PC} .text:0004BC94 ; End of function argz_add_sep .text:0004BC94 .text:0004BC98 .text:0004BC98 ; =============== S U B R O U T I N E ======================================= .text:0004BC98 .text:0004BC98 ; Attributes: bp-based frame .text:0004BC98 .text:0004BC98 EXPORT wcschr .text:0004BC98 wcschr ; CODE XREF: _nl_init_era_entries+1B4p .text:0004BC98 ; _nl_init_era_entries+1D4p ... .text:0004BC98 MOV R12, SP .text:0004BC9C STMFD SP!, {R11,R12,LR,PC} .text:0004BCA0 SUB R11, R12, #4 .text:0004BCA4 MOV R3, R0 .text:0004BCA8 .text:0004BCA8 loc_4BCA8 ; CODE XREF: wcschr+24j .text:0004BCA8 LDR R0, [R3] .text:0004BCAC CMP R0, R1 .text:0004BCB0 BEQ loc_4BCC4 .text:0004BCB4 ADD R3, R3, #4 .text:0004BCB8 CMP R0, #0 .text:0004BCBC BNE loc_4BCA8 .text:0004BCC0 LDMDB R11, {R11,SP,PC} .text:0004BCC4 ; --------------------------------------------------------------------------- .text:0004BCC4 .text:0004BCC4 loc_4BCC4 ; CODE XREF: wcschr+18j .text:0004BCC4 MOV R0, R3 .text:0004BCC8 LDMDB R11, {R11,SP,PC} .text:0004BCC8 ; End of function wcschr .text:0004BCC8 .text:0004BCCC .text:0004BCCC ; =============== S U B R O U T I N E ======================================= .text:0004BCCC .text:0004BCCC ; Attributes: bp-based frame .text:0004BCCC .text:0004BCCC WEAK mbsinit .text:0004BCCC mbsinit ; CODE XREF: mbrtowc+134p .text:0004BCCC ; mbsrtowcs+1E8p ... .text:0004BCCC MOV R12, SP .text:0004BCD0 STMFD SP!, {R11,R12,LR,PC} .text:0004BCD4 SUB R11, R12, #4 .text:0004BCD8 MOV R2, #0 .text:0004BCDC CMP R0, #0 .text:0004BCE0 BEQ loc_4BCF0 .text:0004BCE4 LDR R3, [R0] .text:0004BCE8 CMP R3, R2 .text:0004BCEC BNE loc_4BCF4 .text:0004BCF0 .text:0004BCF0 loc_4BCF0 ; CODE XREF: mbsinit+14j .text:0004BCF0 MOV R2, #1 .text:0004BCF4 .text:0004BCF4 loc_4BCF4 ; CODE XREF: mbsinit+20j .text:0004BCF4 MOV R0, R2 .text:0004BCF8 LDMDB R11, {R11,SP,PC} .text:0004BCF8 ; End of function mbsinit .text:0004BCF8 .text:0004BCFC .text:0004BCFC ; =============== S U B R O U T I N E ======================================= .text:0004BCFC .text:0004BCFC ; Attributes: bp-based frame .text:0004BCFC .text:0004BCFC EXPORT __tzstring .text:0004BCFC __tzstring ; CODE XREF: tzset_internal+220p .text:0004BCFC ; tzset_internal+464p ... .text:0004BCFC MOV R12, SP .text:0004BD00 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0004BD04 SUB R11, R12, #4 .text:0004BD08 MOV R8, R0 .text:0004BD0C BL strlen .text:0004BD10 LDR R3, =tzstring_list .text:0004BD14 MOV R7, R0 .text:0004BD18 LDR R6, [R3] .text:0004BD1C MOV R10, R3 .text:0004BD20 SUBS R5, R6, #0 .text:0004BD24 BEQ loc_4BD64 .text:0004BD28 .text:0004BD28 loc_4BD28 ; CODE XREF: __tzstring+64j .text:0004BD28 LDR R3, [R5,#4] .text:0004BD2C CMP R7, R3 .text:0004BD30 BHI loc_4BD54 .text:0004BD34 MOV R0, R8 .text:0004BD38 RSB R3, R7, R3 .text:0004BD3C ADD R3, R3, #8 .text:0004BD40 ADD R4, R5, R3 .text:0004BD44 MOV R1, R4 .text:0004BD48 BL strcmp .text:0004BD4C CMP R0, #0 .text:0004BD50 BEQ loc_4BDA4 .text:0004BD54 .text:0004BD54 loc_4BD54 ; CODE XREF: __tzstring+34j .text:0004BD54 MOV R6, R5 .text:0004BD58 LDR R5, [R6] .text:0004BD5C CMP R5, #0 .text:0004BD60 BNE loc_4BD28 .text:0004BD64 .text:0004BD64 loc_4BD64 ; CODE XREF: __tzstring+28j .text:0004BD64 ADD R0, R7, #9 .text:0004BD68 BL malloc .text:0004BD6C SUBS R5, R0, #0 .text:0004BD70 MOVEQ R0, R5 .text:0004BD74 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:0004BD78 MOV R3, #0 .text:0004BD7C STMIA R5, {R3,R7} .text:0004BD80 ADD R4, R5, #8 .text:0004BD84 MOV R0, R4 .text:0004BD88 MOV R1, R8 .text:0004BD8C BL strcpy .text:0004BD90 CMP R6, #0 .text:0004BD94 MOV R0, R4 .text:0004BD98 BEQ loc_4BDAC .text:0004BD9C STR R5, [R6] .text:0004BDA0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0004BDA4 ; --------------------------------------------------------------------------- .text:0004BDA4 .text:0004BDA4 loc_4BDA4 ; CODE XREF: __tzstring+54j .text:0004BDA4 MOV R0, R4 .text:0004BDA8 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0004BDAC ; --------------------------------------------------------------------------- .text:0004BDAC .text:0004BDAC loc_4BDAC ; CODE XREF: __tzstring+9Cj .text:0004BDAC STR R5, [R10] .text:0004BDB0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0004BDB0 ; End of function __tzstring .text:0004BDB0 .text:0004BDB0 ; --------------------------------------------------------------------------- .text:0004BDB4 off_4BDB4 DCD tzstring_list ; DATA XREF: __tzstring+14r .text:0004BDB8 .text:0004BDB8 ; =============== S U B R O U T I N E ======================================= .text:0004BDB8 .text:0004BDB8 ; Attributes: bp-based frame .text:0004BDB8 .text:0004BDB8 tzset_internal ; CODE XREF: __tzname_max+28p .text:0004BDB8 ; tzset+28p ... .text:0004BDB8 .text:0004BDB8 var_44 = -0x44 .text:0004BDB8 var_40 = -0x40 .text:0004BDB8 var_3C = -0x3C .text:0004BDB8 var_38 = -0x38 .text:0004BDB8 var_34 = -0x34 .text:0004BDB8 var_2E = -0x2E .text:0004BDB8 var_2D = -0x2D .text:0004BDB8 var_2C = -0x2C .text:0004BDB8 .text:0004BDB8 MOV R12, SP .text:0004BDBC STMFD SP!, {R4-R12,LR,PC} .text:0004BDC0 SUB R11, R12, #4 .text:0004BDC4 LDR R2, =is_initialized.126 .text:0004BDC8 SUB SP, SP, #0x1C .text:0004BDCC LDR R3, [R2] .text:0004BDD0 CMP R0, #0 .text:0004BDD4 MOVNE R0, #0 .text:0004BDD8 MOVEQ R0, #1 .text:0004BDDC CMP R3, #0 .text:0004BDE0 MOVEQ R0, #0 .text:0004BDE4 CMP R0, #0 .text:0004BDE8 BNE locret_4C79C .text:0004BDEC MOV R3, #1 .text:0004BDF0 STR R3, [R2] .text:0004BDF4 LDR R0, =dword_62294 .text:0004BDF8 BL getenv .text:0004BDFC SUBS R8, R0, #0 .text:0004BE00 LDREQ R8, =byte_62298 .text:0004BE04 BEQ loc_4BE18 .text:0004BE08 LDRB R2, [R8] .text:0004BE0C LDR R3, =aUniversal ; "Universal" .text:0004BE10 CMP R2, #0 .text:0004BE14 MOVEQ R8, R3 .text:0004BE18 .text:0004BE18 loc_4BE18 ; CODE XREF: tzset_internal+4Cj .text:0004BE18 CMP R8, #0 .text:0004BE1C BEQ loc_4BE30 .text:0004BE20 MOV R3, R8 .text:0004BE24 LDRB R2, [R3],#1 .text:0004BE28 CMP R2, #0x3A .text:0004BE2C MOVEQ R8, R3 .text:0004BE30 .text:0004BE30 loc_4BE30 ; CODE XREF: tzset_internal+64j .text:0004BE30 LDR R4, =old_tz .text:0004BE34 LDR R1, [R4] .text:0004BE38 CMP R1, #0 .text:0004BE3C CMPNE R8, #0 .text:0004BE40 BEQ loc_4BE54 .text:0004BE44 MOV R0, R8 .text:0004BE48 BL strcmp .text:0004BE4C CMP R0, #0 .text:0004BE50 BEQ locret_4C79C .text:0004BE54 .text:0004BE54 loc_4BE54 ; CODE XREF: tzset_internal+88j .text:0004BE54 LDR R3, =tz_rules .text:0004BE58 MOV R2, #0 .text:0004BE5C STR R2, [R3] .text:0004BE60 LDR R1, =old_tz .text:0004BE64 LDR R0, [R1] .text:0004BE68 MOV R10, R3 .text:0004BE6C STR R2, [R3,#(dword_95B8C - 0x95B6C)] .text:0004BE70 CMP R0, R2 .text:0004BE74 BEQ loc_4BE7C .text:0004BE78 BL free .text:0004BE7C .text:0004BE7C loc_4BE7C ; CODE XREF: tzset_internal+BCj .text:0004BE7C CMP R8, #0 .text:0004BE80 BEQ loc_4BE90 .text:0004BE84 MOV R0, R8 .text:0004BE88 BL strdup .text:0004BE8C B loc_4BE94 .text:0004BE90 ; --------------------------------------------------------------------------- .text:0004BE90 .text:0004BE90 loc_4BE90 ; CODE XREF: tzset_internal+C8j .text:0004BE90 MOV R0, R8 .text:0004BE94 .text:0004BE94 loc_4BE94 ; CODE XREF: tzset_internal+D4j .text:0004BE94 STR R0, [R4] .text:0004BE98 MOV R0, R8 .text:0004BE9C MOV R1, #0 .text:0004BEA0 MOV R2, R1 .text:0004BEA4 BL __tzfile_read .text:0004BEA8 LDR R2, =__use_tzfile .text:0004BEAC LDR R3, [R2] .text:0004BEB0 CMP R3, #0 .text:0004BEB4 BNE locret_4C79C .text:0004BEB8 CMP R8, #0 .text:0004BEBC BEQ loc_4BEE8 .text:0004BEC0 LDRB R3, [R8] .text:0004BEC4 CMP R3, #0 .text:0004BEC8 BEQ loc_4BEE8 .text:0004BECC LDR R1, =byte_62298 .text:0004BED0 CMP R1, #0 .text:0004BED4 BEQ loc_4BF5C .text:0004BED8 MOV R0, R8 .text:0004BEDC BL strcmp .text:0004BEE0 CMP R0, #0 .text:0004BEE4 BNE loc_4BF5C .text:0004BEE8 .text:0004BEE8 loc_4BEE8 ; CODE XREF: tzset_internal+104j .text:0004BEE8 ; tzset_internal+110j .text:0004BEE8 MOV R2, #0 .text:0004BEEC STR R2, [R10,#0x24] .text:0004BEF0 STR R2, [R10,#4] .text:0004BEF4 MOV R3, R2 .text:0004BEF8 STRB R3, [R10,#0xC] .text:0004BEFC STRB R2, [R10,#0xD] .text:0004BF00 STRB R3, [R10,#0xA] .text:0004BF04 STRB R3, [R10,#0xB] .text:0004BF08 STRB R3, [R10,#8] .text:0004BF0C STRB R3, [R10,#9] .text:0004BF10 STRB R3, [R10,#0x2C] .text:0004BF14 STRB R3, [R10,#0x2D] .text:0004BF18 STRB R3, [R10,#0x2A] .text:0004BF1C STRB R3, [R10,#0x2B] .text:0004BF20 STRB R3, [R10,#0x28] .text:0004BF24 STRB R3, [R10,#0x29] .text:0004BF28 STR R2, [R10,#0x30] .text:0004BF2C STR R2, [R10,#0x10] .text:0004BF30 STR R2, [R10,#0x34] .text:0004BF34 STR R2, [R10,#0x14] .text:0004BF38 MOV R3, 0xFFFFFFFF .text:0004BF3C STR R3, [R10,#0x38] .text:0004BF40 STR R3, [R10,#0x18] .text:0004BF44 STR R2, [R10,#0x3C] .text:0004BF48 STR R2, [R10,#0x1C] .text:0004BF4C LDR R3, =aUtc ; "UTC" .text:0004BF50 STR R3, [R10,#0x20] .text:0004BF54 STR R3, [R10] .text:0004BF58 B locret_4C79C .text:0004BF5C ; --------------------------------------------------------------------------- .text:0004BF5C .text:0004BF5C loc_4BF5C ; CODE XREF: tzset_internal+11Cj .text:0004BF5C ; tzset_internal+12Cj .text:0004BF5C MOV R0, R10 .text:0004BF60 MOV R1, #0 .text:0004BF64 MOV R2, #0x40 .text:0004BF68 BL memset .text:0004BF6C LDR R3, =dword_622D8 .text:0004BF70 STR R3, [R10,#0x20] .text:0004BF74 STR R3, [R10] .text:0004BF78 MOV R0, R8 .text:0004BF7C BL strlen .text:0004BF80 MOV R2, R0 .text:0004BF84 ADD R3, R2, #4 .text:0004BF88 BIC R3, R3, #3 .text:0004BF8C RSB SP, R3, SP .text:0004BF90 ADD R0, SP, #0x44+var_3C .text:0004BF94 MOV R1, R8 .text:0004BF98 ADD R2, R2, #1 .text:0004BF9C BL memcpy .text:0004BFA0 MOV R9, R0 .text:0004BFA4 MOV R0, R8 .text:0004BFA8 LDR R4, =a09 ; "%[^0-9,+-]" .text:0004BFAC MOV R2, R9 .text:0004BFB0 MOV R1, R4 .text:0004BFB4 BL sscanf .text:0004BFB8 CMP R0, #1 .text:0004BFBC BNE locret_4C79C .text:0004BFC0 MOV R0, R9 .text:0004BFC4 BL strlen .text:0004BFC8 MOV R4, R0 .text:0004BFCC CMP R4, #2 .text:0004BFD0 BLS locret_4C79C .text:0004BFD4 MOV R0, R9 .text:0004BFD8 BL __tzstring .text:0004BFDC STR R0, [R10] .text:0004BFE0 LDRB R3, [R8,R4]! .text:0004BFE4 AND R0, R3, #0xFF .text:0004BFE8 CMP R0, #0 .text:0004BFEC BEQ locret_4C79C .text:0004BFF0 CMP R0, #0x2B .text:0004BFF4 CMPNE R0, #0x2D .text:0004BFF8 BEQ loc_4C01C .text:0004BFFC LDR R2, =__ctype_b .text:0004C000 LDRB R3, [R8] .text:0004C004 LDR R1, [R2] .text:0004C008 MOV R3, R3,LSL#1 .text:0004C00C ADD R3, R3, R1 .text:0004C010 LDRB R2, [R3,#1] .text:0004C014 TST R2, #8 .text:0004C018 BEQ locret_4C79C .text:0004C01C .text:0004C01C loc_4C01C ; CODE XREF: tzset_internal+240j .text:0004C01C CMP R0, #0x2B .text:0004C020 CMPNE R0, #0x2D .text:0004C024 BNE loc_4C03C .text:0004C028 ADD R8, R8, #1 .text:0004C02C CMP R0, #0x2D .text:0004C030 MOVNE R3, 0xFFFFFFFF .text:0004C034 MOVEQ R3, #1 .text:0004C038 B loc_4C040 .text:0004C03C ; --------------------------------------------------------------------------- .text:0004C03C .text:0004C03C loc_4C03C ; CODE XREF: tzset_internal+26Cj .text:0004C03C MOV R3, 0xFFFFFFFF .text:0004C040 .text:0004C040 loc_4C040 ; CODE XREF: tzset_internal+280j .text:0004C040 STR R3, [R10,#0x14] .text:0004C044 SUB R7, R11, #-var_2E .text:0004C048 STR R7, [SP,#0x44+var_44] .text:0004C04C MOV R0, R8 .text:0004C050 SUB R6, R11, #-(var_2C+2) .text:0004C054 MOV R2, R6 .text:0004C058 SUB R5, R11, #-var_2C .text:0004C05C LDR R4, =aHuHuHu ; "%hu:%hu:%hu" .text:0004C060 MOV R3, R5 .text:0004C064 MOV R1, R4 .text:0004C068 BL sscanf .text:0004C06C CMP R0, #2 .text:0004C070 BEQ loc_4C09C .text:0004C074 BGT loc_4C084 .text:0004C078 CMP R0, #1 .text:0004C07C BEQ loc_4C090 .text:0004C080 B locret_4C79C .text:0004C084 ; --------------------------------------------------------------------------- .text:0004C084 .text:0004C084 loc_4C084 ; CODE XREF: tzset_internal+2BCj .text:0004C084 CMP R0, #3 .text:0004C088 BEQ loc_4C0A8 .text:0004C08C B locret_4C79C .text:0004C090 ; --------------------------------------------------------------------------- .text:0004C090 .text:0004C090 loc_4C090 ; CODE XREF: tzset_internal+2C4j .text:0004C090 MOV R3, #0 .text:0004C094 STRB R3, [R11,#var_2C] .text:0004C098 STRB R3, [R11,#var_2C+1] .text:0004C09C .text:0004C09C loc_4C09C ; CODE XREF: tzset_internal+2B8j .text:0004C09C MOV R3, #0 .text:0004C0A0 STRB R3, [R11,#var_2E] .text:0004C0A4 STRB R3, [R11,#var_2D] .text:0004C0A8 .text:0004C0A8 loc_4C0A8 ; CODE XREF: tzset_internal+2D0j .text:0004C0A8 LDR R3, [R11,#-0x30] .text:0004C0AC MOV R3, R3,LSR#16 .text:0004C0B0 CMP R3, #0x3A .text:0004C0B4 LDRLSB R2, [R11,#var_2E] .text:0004C0B8 LDRLSB R3, [R11,#var_2D] .text:0004C0BC ORRLS R1, R2, R3,LSL#8 .text:0004C0C0 MOVHI R1, #0x3B .text:0004C0C4 LDR R2, [R11,#var_2C] .text:0004C0C8 MOV R3, R2,LSL#16 .text:0004C0CC CMP R3, #0x3A0000 .text:0004C0D0 MOV R0, R2 .text:0004C0D4 BHI loc_4C0F0 .text:0004C0D8 LDRB R3, [R11,#var_2C] .text:0004C0DC LDRB R2, [R11,#var_2C+1] .text:0004C0E0 ORR R3, R3, R2,LSL#8 .text:0004C0E4 RSB R3, R3, R3,LSL#4 .text:0004C0E8 ADD R1, R1, R3,LSL#2 .text:0004C0EC B loc_4C0F8 .text:0004C0F0 ; --------------------------------------------------------------------------- .text:0004C0F0 .text:0004C0F0 loc_4C0F0 ; CODE XREF: tzset_internal+31Cj .text:0004C0F0 ADD R1, R1, #0xDD0 .text:0004C0F4 ADD R1, R1, #4 .text:0004C0F8 .text:0004C0F8 loc_4C0F8 ; CODE XREF: tzset_internal+334j .text:0004C0F8 MOV R3, R0,LSR#16 .text:0004C0FC CMP R3, #0x16 .text:0004C100 LDR R0, [R10,#0x14] .text:0004C104 BHI loc_4C154 .text:0004C108 LDRB R3, [R11,#var_2C+2] .text:0004C10C LDRB R2, [R11,#var_2C+3] .text:0004C110 ORR R3, R3, R2,LSL#8 .text:0004C114 RSB R3, R3, R3,LSL#4 .text:0004C118 RSB R3, R3, R3,LSL#4 .text:0004C11C ADD R3, R1, R3,LSL#4 .text:0004C120 B loc_4C15C .text:0004C120 ; --------------------------------------------------------------------------- .text:0004C124 off_4C124 DCD is_initialized.126 ; DATA XREF: tzset_internal+Cr .text:0004C128 off_4C128 DCD dword_62294 ; DATA XREF: tzset_internal+3Cr .text:0004C12C off_4C12C DCD byte_62298 ; DATA XREF: tzset_internal+48r .text:0004C12C ; tzset_internal+114r .text:0004C130 off_4C130 DCD aUniversal ; DATA XREF: tzset_internal+54r .text:0004C130 ; "Universal" .text:0004C134 off_4C134 DCD old_tz ; DATA XREF: tzset_internal:loc_4BE30r .text:0004C134 ; tzset_internal+A8r .text:0004C138 off_4C138 DCD tz_rules ; DATA XREF: tzset_internal:loc_4BE54r .text:0004C13C off_4C13C DCD __use_tzfile ; DATA XREF: tzset_internal+F0r .text:0004C140 off_4C140 DCD aUtc ; DATA XREF: tzset_internal+194r .text:0004C140 ; "UTC" .text:0004C144 off_4C144 DCD dword_622D8 ; DATA XREF: tzset_internal+1B4r .text:0004C148 off_4C148 DCD a09 ; DATA XREF: tzset_internal+1F0r .text:0004C148 ; "%[^0-9,+-]" .text:0004C14C off_4C14C DCD __ctype_b ; DATA XREF: tzset_internal+244r .text:0004C150 off_4C150 DCD aHuHuHu ; DATA XREF: tzset_internal+2A4r .text:0004C150 ; "%hu:%hu:%hu" .text:0004C154 ; --------------------------------------------------------------------------- .text:0004C154 .text:0004C154 loc_4C154 ; CODE XREF: tzset_internal+34Cj .text:0004C154 ADD R3, R1, #0x14000 .text:0004C158 ADD R3, R3, #0x370 .text:0004C15C .text:0004C15C loc_4C15C ; CODE XREF: tzset_internal+368j .text:0004C15C MUL R3, R0, R3 .text:0004C160 STR R3, [R10,#0x14] .text:0004C164 LDR R2, =__ctype_b .text:0004C168 MOV R4, #0 .text:0004C16C LDR R12, [R2] .text:0004C170 .text:0004C170 loc_4C170 ; CODE XREF: tzset_internal+414j .text:0004C170 LDRB R3, [R8] .text:0004C174 MOV R3, R3,LSL#1 .text:0004C178 ADD R3, R3, R12 .text:0004C17C LDRB R2, [R3,#1] .text:0004C180 ADD R0, R4, #1 .text:0004C184 TST R2, #8 .text:0004C188 BEQ loc_4C1AC .text:0004C18C LDR R3, =__ctype_b .text:0004C190 LDR R1, [R3] .text:0004C194 .text:0004C194 loc_4C194 ; CODE XREF: tzset_internal+3F0j .text:0004C194 LDRB R3, [R8,#1]! .text:0004C198 MOV R3, R3,LSL#1 .text:0004C19C ADD R3, R3, R1 .text:0004C1A0 LDRB R2, [R3,#1] .text:0004C1A4 TST R2, #8 .text:0004C1A8 BNE loc_4C194 .text:0004C1AC .text:0004C1AC loc_4C1AC ; CODE XREF: tzset_internal+3D0j .text:0004C1AC CMP R4, #1 .text:0004C1B0 BHI loc_4C1C4 .text:0004C1B4 MOV R3, R8 .text:0004C1B8 LDRB R2, [R3],#1 .text:0004C1BC CMP R2, #0x3A .text:0004C1C0 MOVEQ R8, R3 .text:0004C1C4 .text:0004C1C4 loc_4C1C4 ; CODE XREF: tzset_internal+3F8j .text:0004C1C4 MOV R4, R0 .text:0004C1C8 CMP R4, #2 .text:0004C1CC BLS loc_4C170 .text:0004C1D0 LDRB R3, [R8] .text:0004C1D4 CMP R3, #0 .text:0004C1D8 BEQ loc_4C40C .text:0004C1DC MOV R0, R9 .text:0004C1E0 BL strlen .text:0004C1E4 ADD R3, R9, R0 .text:0004C1E8 MOV R0, R8 .text:0004C1EC ADD R5, R3, #1 .text:0004C1F0 LDR R1, =a09 ; "%[^0-9,+-]" .text:0004C1F4 MOV R2, R5 .text:0004C1F8 BL sscanf .text:0004C1FC CMP R0, #1 .text:0004C200 BNE loc_4C420 .text:0004C204 MOV R0, R5 .text:0004C208 BL strlen .text:0004C20C MOV R4, R0 .text:0004C210 CMP R4, #2 .text:0004C214 BLS loc_4C420 .text:0004C218 MOV R0, R5 .text:0004C21C BL __tzstring .text:0004C220 STR R0, [R10,#0x20] .text:0004C224 LDRB R3, [R8,R4]! .text:0004C228 AND R3, R3, #0xFF .text:0004C22C CMP R3, #0x2B .text:0004C230 CMPNE R3, #0x2D .text:0004C234 BNE loc_4C24C .text:0004C238 ADD R8, R8, #1 .text:0004C23C CMP R3, #0x2D .text:0004C240 MOVNE R3, 0xFFFFFFFF .text:0004C244 MOVEQ R3, #1 .text:0004C248 B loc_4C250 .text:0004C24C ; --------------------------------------------------------------------------- .text:0004C24C .text:0004C24C loc_4C24C ; CODE XREF: tzset_internal+47Cj .text:0004C24C MOV R3, 0xFFFFFFFF .text:0004C250 .text:0004C250 loc_4C250 ; CODE XREF: tzset_internal+490j .text:0004C250 STR R3, [R10,#0x34] .text:0004C254 SUB R1, R11, #-var_2E .text:0004C258 STR R1, [SP,#0x44+var_44] .text:0004C25C MOV R0, R8 .text:0004C260 SUB R2, R11, #-(var_2C+2) .text:0004C264 LDR R1, =aHuHuHu ; "%hu:%hu:%hu" .text:0004C268 SUB R3, R11, #-var_2C .text:0004C26C BL sscanf .text:0004C270 CMP R0, #2 .text:0004C274 BEQ loc_4C2A8 .text:0004C278 BGT loc_4C288 .text:0004C27C CMP R0, #1 .text:0004C280 BEQ loc_4C29C .text:0004C284 B loc_4C290 .text:0004C288 ; --------------------------------------------------------------------------- .text:0004C288 .text:0004C288 loc_4C288 ; CODE XREF: tzset_internal+4C0j .text:0004C288 CMP R0, #3 .text:0004C28C BEQ loc_4C2B4 .text:0004C290 .text:0004C290 loc_4C290 ; CODE XREF: tzset_internal+4CCj .text:0004C290 LDR R3, [R10,#0x14] .text:0004C294 ADD R3, R3, #0xE10 .text:0004C298 B loc_4C33C .text:0004C29C ; --------------------------------------------------------------------------- .text:0004C29C .text:0004C29C loc_4C29C ; CODE XREF: tzset_internal+4C8j .text:0004C29C MOV R3, #0 .text:0004C2A0 STRB R3, [R11,#var_2C] .text:0004C2A4 STRB R3, [R11,#var_2C+1] .text:0004C2A8 .text:0004C2A8 loc_4C2A8 ; CODE XREF: tzset_internal+4BCj .text:0004C2A8 MOV R3, #0 .text:0004C2AC STRB R3, [R11,#var_2E] .text:0004C2B0 STRB R3, [R11,#var_2D] .text:0004C2B4 .text:0004C2B4 loc_4C2B4 ; CODE XREF: tzset_internal+4D4j .text:0004C2B4 LDR R3, [R11,#-0x30] .text:0004C2B8 MOV R3, R3,LSR#16 .text:0004C2BC CMP R3, #0x3A .text:0004C2C0 LDRLSB R2, [R11,#var_2E] .text:0004C2C4 LDRLSB R3, [R11,#var_2D] .text:0004C2C8 ORRLS R1, R2, R3,LSL#8 .text:0004C2CC MOVHI R1, #0x3B .text:0004C2D0 LDR R2, [R11,#var_2C] .text:0004C2D4 MOV R3, R2,LSL#16 .text:0004C2D8 CMP R3, #0x3A0000 .text:0004C2DC MOV R0, R2 .text:0004C2E0 BHI loc_4C2FC .text:0004C2E4 LDRB R3, [R11,#var_2C] .text:0004C2E8 LDRB R2, [R11,#var_2C+1] .text:0004C2EC ORR R3, R3, R2,LSL#8 .text:0004C2F0 RSB R3, R3, R3,LSL#4 .text:0004C2F4 ADD R1, R1, R3,LSL#2 .text:0004C2F8 B loc_4C304 .text:0004C2FC ; --------------------------------------------------------------------------- .text:0004C2FC .text:0004C2FC loc_4C2FC ; CODE XREF: tzset_internal+528j .text:0004C2FC ADD R1, R1, #0xDD0 .text:0004C300 ADD R1, R1, #4 .text:0004C304 .text:0004C304 loc_4C304 ; CODE XREF: tzset_internal+540j .text:0004C304 MOV R3, R0,LSR#16 .text:0004C308 CMP R3, #0x16 .text:0004C30C LDR R0, [R10,#0x34] .text:0004C310 BHI loc_4C330 .text:0004C314 LDRB R3, [R11,#var_2C+2] .text:0004C318 LDRB R2, [R11,#var_2C+3] .text:0004C31C ORR R3, R3, R2,LSL#8 .text:0004C320 RSB R3, R3, R3,LSL#4 .text:0004C324 RSB R3, R3, R3,LSL#4 .text:0004C328 ADD R3, R1, R3,LSL#4 .text:0004C32C B loc_4C338 .text:0004C330 ; --------------------------------------------------------------------------- .text:0004C330 .text:0004C330 loc_4C330 ; CODE XREF: tzset_internal+558j .text:0004C330 ADD R3, R1, #0x14000 .text:0004C334 ADD R3, R3, #0x370 .text:0004C338 .text:0004C338 loc_4C338 ; CODE XREF: tzset_internal+574j .text:0004C338 MUL R3, R0, R3 .text:0004C33C .text:0004C33C loc_4C33C ; CODE XREF: tzset_internal+4E0j .text:0004C33C STR R3, [R10,#0x34] .text:0004C340 LDR R3, =__ctype_b .text:0004C344 MOV R4, #0 .text:0004C348 LDR R12, [R3] .text:0004C34C .text:0004C34C loc_4C34C ; CODE XREF: tzset_internal+5F0j .text:0004C34C LDRB R3, [R8] .text:0004C350 MOV R3, R3,LSL#1 .text:0004C354 ADD R3, R3, R12 .text:0004C358 LDRB R2, [R3,#1] .text:0004C35C ADD R0, R4, #1 .text:0004C360 TST R2, #8 .text:0004C364 BEQ loc_4C388 .text:0004C368 LDR R2, =__ctype_b .text:0004C36C LDR R1, [R2] .text:0004C370 .text:0004C370 loc_4C370 ; CODE XREF: tzset_internal+5CCj .text:0004C370 LDRB R3, [R8,#1]! .text:0004C374 MOV R3, R3,LSL#1 .text:0004C378 ADD R3, R3, R1 .text:0004C37C LDRB R2, [R3,#1] .text:0004C380 TST R2, #8 .text:0004C384 BNE loc_4C370 .text:0004C388 .text:0004C388 loc_4C388 ; CODE XREF: tzset_internal+5ACj .text:0004C388 CMP R4, #1 .text:0004C38C BHI loc_4C3A0 .text:0004C390 MOV R3, R8 .text:0004C394 LDRB R2, [R3],#1 .text:0004C398 CMP R2, #0x3A .text:0004C39C MOVEQ R8, R3 .text:0004C3A0 .text:0004C3A0 loc_4C3A0 ; CODE XREF: tzset_internal+5D4j .text:0004C3A0 MOV R4, R0 .text:0004C3A4 CMP R4, #2 .text:0004C3A8 BLS loc_4C34C .text:0004C3AC LDRB R3, [R8] .text:0004C3B0 CMP R3, #0 .text:0004C3B4 BEQ loc_4C3CC .text:0004C3B8 CMP R3, #0x2C .text:0004C3BC BNE loc_4C420 .text:0004C3C0 LDRB R3, [R8,#1] .text:0004C3C4 CMP R3, #0 .text:0004C3C8 BNE loc_4C420 .text:0004C3CC .text:0004C3CC loc_4C3CC ; CODE XREF: tzset_internal+5FCj .text:0004C3CC LDR R0, [R10] .text:0004C3D0 LDR R1, [R10,#0x20] .text:0004C3D4 LDR R2, [R10,#0x14] .text:0004C3D8 LDR R3, [R10,#0x34] .text:0004C3DC BL __tzfile_default .text:0004C3E0 LDR R1, =__use_tzfile .text:0004C3E4 LDR R3, [R1] .text:0004C3E8 CMP R3, #0 .text:0004C3EC BEQ loc_4C420 .text:0004C3F0 LDR R2, =old_tz .text:0004C3F4 LDR R0, [R2] .text:0004C3F8 BL free .text:0004C3FC LDR R1, =old_tz .text:0004C400 MOV R3, #0 .text:0004C404 STR R3, [R1] .text:0004C408 B locret_4C79C .text:0004C40C ; --------------------------------------------------------------------------- .text:0004C40C .text:0004C40C loc_4C40C ; CODE XREF: tzset_internal+420j .text:0004C40C LDR R3, [R10] .text:0004C410 STR R3, [R10,#0x20] .text:0004C414 LDR R3, [R10,#0x14] .text:0004C418 STR R3, [R10,#0x34] .text:0004C41C B loc_4C784 .text:0004C420 ; --------------------------------------------------------------------------- .text:0004C420 .text:0004C420 loc_4C420 ; CODE XREF: tzset_internal+448j .text:0004C420 ; tzset_internal+45Cj ... .text:0004C420 MOV R2, #0 .text:0004C424 STR R2, [R11,#var_3C] .text:0004C428 .text:0004C428 loc_4C428 ; CODE XREF: tzset_internal+9C8j .text:0004C428 LDRB R3, [R8] .text:0004C42C CMP R3, #0x2C .text:0004C430 ADDEQ R8, R8, #1 .text:0004C434 LDRB R12, [R8] .text:0004C438 LDR R3, [R11,#var_3C] .text:0004C43C CMP R12, #0x4A .text:0004C440 ADD R5, R10, R3,LSL#5 .text:0004C444 BEQ loc_4C468 .text:0004C448 LDR R1, =__ctype_b .text:0004C44C MOV R0, R12 .text:0004C450 LDR R3, [R1] .text:0004C454 MOV R2, R0,LSL#1 .text:0004C458 ADD R2, R2, R3 .text:0004C45C LDRB R1, [R2,#1] .text:0004C460 TST R1, #8 .text:0004C464 BEQ loc_4C518 .text:0004C468 .text:0004C468 loc_4C468 ; CODE XREF: tzset_internal+68Cj .text:0004C468 CMP R12, #0x4A .text:0004C46C MOVNE R3, #0 .text:0004C470 MOVEQ R3, #1 .text:0004C474 CMP R3, #1 .text:0004C478 STR R3, [R5,#4] .text:0004C47C BNE loc_4C4A0 .text:0004C480 LDR R2, =__ctype_b .text:0004C484 LDRB R3, [R8,#1]! .text:0004C488 LDR R1, [R2] .text:0004C48C MOV R3, R3,LSL#1 .text:0004C490 ADD R3, R3, R1 .text:0004C494 LDRB R2, [R3,#1] .text:0004C498 TST R2, #8 .text:0004C49C BEQ loc_4C784 .text:0004C4A0 .text:0004C4A0 loc_4C4A0 ; CODE XREF: tzset_internal+6C4j .text:0004C4A0 MOV R0, R8 .text:0004C4A4 SUB R1, R11, #-var_34 .text:0004C4A8 MOV R2, #0xA .text:0004C4AC MOV R3, #0 .text:0004C4B0 BL __strtoul_internal .text:0004C4B4 STRB R0, [R5,#0xC] .text:0004C4B8 LDR R12, [R11,#var_34] .text:0004C4BC MOV R0, R0,ASR#8 .text:0004C4C0 STRB R0, [R5,#0xD] .text:0004C4C4 CMP R12, R8 .text:0004C4C8 BEQ loc_4C784 .text:0004C4CC MOV R2, #0x16C .text:0004C4D0 LDR R3, [R5,#0xC] .text:0004C4D4 ADD R2, R2, #1 .text:0004C4D8 MOV R3, R3,LSL#16 .text:0004C4DC MOV R1, R3,LSR#16 .text:0004C4E0 CMP R1, R2 .text:0004C4E4 BHI loc_4C784 .text:0004C4E8 LDR R3, [R5,#4] .text:0004C4EC CMP R3, #1 .text:0004C4F0 BNE loc_4C4FC .text:0004C4F4 CMP R1, #0 .text:0004C4F8 BEQ loc_4C784 .text:0004C4FC .text:0004C4FC loc_4C4FC ; CODE XREF: tzset_internal+738j .text:0004C4FC MOV R8, R12 .text:0004C500 B loc_4C600 .text:0004C500 ; --------------------------------------------------------------------------- .text:0004C504 off_4C504 DCD __ctype_b ; DATA XREF: tzset_internal+3ACr .text:0004C504 ; tzset_internal+3D4r ... .text:0004C508 off_4C508 DCD a09 ; DATA XREF: tzset_internal+438r .text:0004C508 ; "%[^0-9,+-]" .text:0004C50C off_4C50C DCD aHuHuHu ; DATA XREF: tzset_internal+4ACr .text:0004C50C ; "%hu:%hu:%hu" .text:0004C510 off_4C510 DCD __use_tzfile ; DATA XREF: tzset_internal+628r .text:0004C514 off_4C514 DCD old_tz ; DATA XREF: tzset_internal+638r .text:0004C514 ; tzset_internal+644r .text:0004C518 ; --------------------------------------------------------------------------- .text:0004C518 .text:0004C518 loc_4C518 ; CODE XREF: tzset_internal+6ACj .text:0004C518 AND R2, R0, #0xFF .text:0004C51C CMP R2, #0x4D .text:0004C520 BNE loc_4C59C .text:0004C524 MOV R3, #2 .text:0004C528 STR R3, [R5,#4] .text:0004C52C ADD R2, R5, #0xC .text:0004C530 STR R2, [SP,#0x44+var_44] .text:0004C534 SUB R3, R11, #-var_38 .text:0004C538 STR R3, [SP,#0x44+var_40] .text:0004C53C MOV R0, R8 .text:0004C540 ADD R2, R5, #8 .text:0004C544 LDR R1, =aMHu_Hu_HuN ; "M%hu.%hu.%hu%n" .text:0004C548 ADD R3, R5, #0xA .text:0004C54C BL sscanf .text:0004C550 CMP R0, #3 .text:0004C554 BNE loc_4C784 .text:0004C558 LDR R2, [R5,#8] .text:0004C55C MOV R3, R2,LSL#16 .text:0004C560 MOVS R3, R3,LSR#16 .text:0004C564 BEQ loc_4C784 .text:0004C568 CMP R3, #0xC .text:0004C56C BHI loc_4C784 .text:0004C570 MOVS R3, R2,LSR#16 .text:0004C574 BEQ loc_4C784 .text:0004C578 CMP R3, #5 .text:0004C57C BHI loc_4C784 .text:0004C580 LDR R3, [R5,#0xC] .text:0004C584 MOV R3, R3,LSL#16 .text:0004C588 CMP R3, #0x60000 .text:0004C58C BHI loc_4C784 .text:0004C590 LDR R3, [R11,#var_38] .text:0004C594 ADD R8, R8, R3 .text:0004C598 B loc_4C600 .text:0004C59C ; --------------------------------------------------------------------------- .text:0004C59C .text:0004C59C loc_4C59C ; CODE XREF: tzset_internal+768j .text:0004C59C CMP R2, #0 .text:0004C5A0 BNE loc_4C784 .text:0004C5A4 CMP R5, R10 .text:0004C5A8 MOV R3, #2 .text:0004C5AC STR R3, [R5,#4] .text:0004C5B0 BNE loc_4C5DC .text:0004C5B4 MOV R3, #4 .text:0004C5B8 STRB R3, [R10,#8] .text:0004C5BC STRB R2, [R10,#9] .text:0004C5C0 MOV R3, #1 .text:0004C5C4 STRB R3, [R10,#0xA] .text:0004C5C8 STRB R2, [R10,#0xB] .text:0004C5CC MOV R3, R2 .text:0004C5D0 STRB R3, [R10,#0xC] .text:0004C5D4 STRB R3, [R10,#0xD] .text:0004C5D8 B loc_4C600 .text:0004C5DC ; --------------------------------------------------------------------------- .text:0004C5DC .text:0004C5DC loc_4C5DC ; CODE XREF: tzset_internal+7F8j .text:0004C5DC MOV R3, #0xA .text:0004C5E0 STRB R3, [R5,#8] .text:0004C5E4 STRB R2, [R5,#9] .text:0004C5E8 MOV R3, #5 .text:0004C5EC STRB R3, [R5,#0xA] .text:0004C5F0 STRB R2, [R5,#0xB] .text:0004C5F4 MOV R3, R2 .text:0004C5F8 STRB R3, [R5,#0xC] .text:0004C5FC STRB R3, [R5,#0xD] .text:0004C600 .text:0004C600 loc_4C600 ; CODE XREF: tzset_internal+748j .text:0004C600 ; tzset_internal+7E0j ... .text:0004C600 LDRB R3, [R8] .text:0004C604 CMP R3, #0 .text:0004C608 CMPNE R3, #0x2F .text:0004C60C BEQ loc_4C618 .text:0004C610 CMP R3, #0x2C .text:0004C614 BNE loc_4C784 .text:0004C618 .text:0004C618 loc_4C618 ; CODE XREF: tzset_internal+854j .text:0004C618 CMP R3, #0x2F .text:0004C61C BNE loc_4C754 .text:0004C620 LDRB R3, [R8,#1]! .text:0004C624 CMP R3, #0 .text:0004C628 BEQ loc_4C784 .text:0004C62C SUB R3, R11, #-var_2E .text:0004C630 STR R3, [SP,#0x44+var_44] .text:0004C634 MOV R0, R8 .text:0004C638 SUB R2, R11, #-(var_2C+2) .text:0004C63C LDR R1, =aHuHuHu ; "%hu:%hu:%hu" .text:0004C640 SUB R3, R11, #-var_2C .text:0004C644 BL sscanf .text:0004C648 CMP R0, #2 .text:0004C64C BEQ loc_4C684 .text:0004C650 BGT loc_4C660 .text:0004C654 CMP R0, #1 .text:0004C658 BEQ loc_4C678 .text:0004C65C B loc_4C668 .text:0004C660 ; --------------------------------------------------------------------------- .text:0004C660 .text:0004C660 loc_4C660 ; CODE XREF: tzset_internal+898j .text:0004C660 CMP R0, #3 .text:0004C664 BEQ loc_4C690 .text:0004C668 .text:0004C668 loc_4C668 ; CODE XREF: tzset_internal+8A4j .text:0004C668 MOV R3, #2 .text:0004C66C STRB R3, [R11,#var_2C+2] .text:0004C670 MOV R1, #0 .text:0004C674 STRB R1, [R11,#var_2C+3] .text:0004C678 .text:0004C678 loc_4C678 ; CODE XREF: tzset_internal+8A0j .text:0004C678 MOV R2, #0 .text:0004C67C STRB R2, [R11,#var_2C] .text:0004C680 STRB R2, [R11,#var_2C+1] .text:0004C684 .text:0004C684 loc_4C684 ; CODE XREF: tzset_internal+894j .text:0004C684 MOV R3, #0 .text:0004C688 STRB R3, [R11,#var_2E] .text:0004C68C STRB R3, [R11,#var_2D] .text:0004C690 .text:0004C690 loc_4C690 ; CODE XREF: tzset_internal+8ACj .text:0004C690 LDRB R9, [R11,#var_2E] .text:0004C694 LDRB R7, [R11,#var_2C] .text:0004C698 LDRB R6, [R11,#var_2C+2] .text:0004C69C LDR R1, [R11,#var_3C] .text:0004C6A0 MOV R4, #0 .text:0004C6A4 LDR R3, =__ctype_b .text:0004C6A8 ADD LR, R1, #1 .text:0004C6AC LDR R12, [R3] .text:0004C6B0 .text:0004C6B0 loc_4C6B0 ; CODE XREF: tzset_internal+954j .text:0004C6B0 LDRB R3, [R8] .text:0004C6B4 MOV R3, R3,LSL#1 .text:0004C6B8 ADD R3, R3, R12 .text:0004C6BC LDRB R2, [R3,#1] .text:0004C6C0 ADD R0, R4, #1 .text:0004C6C4 TST R2, #8 .text:0004C6C8 BEQ loc_4C6EC .text:0004C6CC LDR R2, =__ctype_b .text:0004C6D0 LDR R1, [R2] .text:0004C6D4 .text:0004C6D4 loc_4C6D4 ; CODE XREF: tzset_internal+930j .text:0004C6D4 LDRB R3, [R8,#1]! .text:0004C6D8 MOV R3, R3,LSL#1 .text:0004C6DC ADD R3, R3, R1 .text:0004C6E0 LDRB R2, [R3,#1] .text:0004C6E4 TST R2, #8 .text:0004C6E8 BNE loc_4C6D4 .text:0004C6EC .text:0004C6EC loc_4C6EC ; CODE XREF: tzset_internal+910j .text:0004C6EC CMP R4, #1 .text:0004C6F0 BHI loc_4C704 .text:0004C6F4 MOV R3, R8 .text:0004C6F8 LDRB R2, [R3],#1 .text:0004C6FC CMP R2, #0x3A .text:0004C700 MOVEQ R8, R3 .text:0004C704 .text:0004C704 loc_4C704 ; CODE XREF: tzset_internal+938j .text:0004C704 MOV R4, R0 .text:0004C708 CMP R4, #2 .text:0004C70C BLS loc_4C6B0 .text:0004C710 LDRB R3, [R11,#var_2C+3] .text:0004C714 LDRB R2, [R11,#var_2C+1] .text:0004C718 LDRB R1, [R11,#var_2D] .text:0004C71C ORR R3, R6, R3,LSL#8 .text:0004C720 RSB R3, R3, R3,LSL#4 .text:0004C724 RSB R3, R3, R3,LSL#4 .text:0004C728 ORR R2, R7, R2,LSL#8 .text:0004C72C RSB R2, R2, R2,LSL#4 .text:0004C730 MOV R2, R2,LSL#2 .text:0004C734 ADD R2, R2, R3,LSL#4 .text:0004C738 ORR R1, R9, R1,LSL#8 .text:0004C73C ADD R2, R2, R1 .text:0004C740 STR R2, [R5,#0x10] .text:0004C744 B loc_4C768 .text:0004C744 ; --------------------------------------------------------------------------- .text:0004C748 off_4C748 DCD aMHu_Hu_HuN ; DATA XREF: tzset_internal+78Cr .text:0004C748 ; "M%hu.%hu.%hu%n" .text:0004C74C off_4C74C DCD aHuHuHu ; DATA XREF: tzset_internal+884r .text:0004C74C ; "%hu:%hu:%hu" .text:0004C750 off_4C750 DCD __ctype_b ; DATA XREF: tzset_internal+8ECr .text:0004C750 ; tzset_internal+914r .text:0004C754 ; --------------------------------------------------------------------------- .text:0004C754 .text:0004C754 loc_4C754 ; CODE XREF: tzset_internal+864j .text:0004C754 MOV R3, #0x1C00 .text:0004C758 LDR R1, [R11,#var_3C] .text:0004C75C ADD R3, R3, #0x20 .text:0004C760 STR R3, [R5,#0x10] .text:0004C764 ADD LR, R1, #1 .text:0004C768 .text:0004C768 loc_4C768 ; CODE XREF: tzset_internal+98Cj .text:0004C768 MOV R3, LR,LSL#16 .text:0004C76C MOV R3, R3,LSR#16 .text:0004C770 STR R3, [R11,#var_3C] .text:0004C774 CMP R3, #1 .text:0004C778 MOV R3, 0xFFFFFFFF .text:0004C77C STR R3, [R5,#0x1C] .text:0004C780 BLS loc_4C428 .text:0004C784 .text:0004C784 loc_4C784 ; CODE XREF: tzset_internal+664j .text:0004C784 ; tzset_internal+6E4j ... .text:0004C784 LDR R3, [R10,#0x14] .text:0004C788 LDR R2, =timezone .text:0004C78C RSB R3, R3, #0 .text:0004C790 STR R3, [R2] .text:0004C794 B locret_4C79C .text:0004C794 ; --------------------------------------------------------------------------- .text:0004C798 off_4C798 DCD timezone ; DATA XREF: tzset_internal+9D0r .text:0004C79C ; --------------------------------------------------------------------------- .text:0004C79C .text:0004C79C locret_4C79C ; CODE XREF: tzset_internal+30j .text:0004C79C ; tzset_internal+98j ... .text:0004C79C LDMDB R11, {R4-R11,SP,PC} .text:0004C79C ; End of function tzset_internal .text:0004C79C .text:0004C7A0 .text:0004C7A0 ; =============== S U B R O U T I N E ======================================= .text:0004C7A0 .text:0004C7A0 ; Attributes: bp-based frame .text:0004C7A0 .text:0004C7A0 EXPORT __tzname_max .text:0004C7A0 __tzname_max ; CODE XREF: sysconf:loc_34650p .text:0004C7A0 MOV R12, SP .text:0004C7A4 STMFD SP!, {R11,R12,LR,PC} .text:0004C7A8 LDR R3, =0 .text:0004C7AC SUB R11, R12, #4 .text:0004C7B0 CMP R3, #0 .text:0004C7B4 BEQ loc_4C7C4 .text:0004C7B8 LDR R0, =tzset_lock .text:0004C7BC MOV LR, PC .text:0004C7C0 MOV PC, R3 .text:0004C7C4 .text:0004C7C4 loc_4C7C4 ; CODE XREF: __tzname_max+14j .text:0004C7C4 MOV R0, #0 .text:0004C7C8 BL tzset_internal .text:0004C7CC LDR R3, =0 .text:0004C7D0 CMP R3, #0 .text:0004C7D4 BEQ loc_4C7E4 .text:0004C7D8 LDR R0, =tzset_lock .text:0004C7DC MOV LR, PC .text:0004C7E0 MOV PC, R3 .text:0004C7E4 .text:0004C7E4 loc_4C7E4 ; CODE XREF: __tzname_max+34j .text:0004C7E4 LDR R3, =__tzname_cur_max .text:0004C7E8 LDR R0, [R3] .text:0004C7EC LDMDB R11, {R11,SP,PC} .text:0004C7EC ; End of function __tzname_max .text:0004C7EC .text:0004C7EC ; --------------------------------------------------------------------------- .text:0004C7F0 off_4C7F0 DCD 0 ; DATA XREF: __tzname_max+8r .text:0004C7F4 off_4C7F4 DCD tzset_lock ; DATA XREF: __tzname_max+18r .text:0004C7F4 ; __tzname_max+38r .text:0004C7F8 off_4C7F8 DCD 0 ; DATA XREF: __tzname_max+2Cr .text:0004C7FC off_4C7FC DCD __tzname_cur_max ; DATA XREF: __tzname_max:loc_4C7E4r .text:0004C800 .text:0004C800 ; =============== S U B R O U T I N E ======================================= .text:0004C800 .text:0004C800 ; Attributes: bp-based frame .text:0004C800 .text:0004C800 compute_change ; CODE XREF: tz_compute+28p .text:0004C800 ; tz_compute+48p ... .text:0004C800 .text:0004C800 var_40 = -0x40 .text:0004C800 var_3C = -0x3C .text:0004C800 var_38 = -0x38 .text:0004C800 var_34 = -0x34 .text:0004C800 var_30 = -0x30 .text:0004C800 var_2C = -0x2C .text:0004C800 .text:0004C800 MOV R12, SP .text:0004C804 STMFD SP!, {R4-R12,LR,PC} .text:0004C808 SUB R11, R12, #4 .text:0004C80C MOV R10, R1 .text:0004C810 CMN R10, #1 .text:0004C814 MOV R7, R0 .text:0004C818 SUB SP, SP, #0x18 .text:0004C81C BEQ loc_4C830 .text:0004C820 LDR R3, [R7,#0x1C] .text:0004C824 CMP R3, R10 .text:0004C828 MOVEQ R0, #1 .text:0004C82C BEQ loc_4CBB4 .text:0004C830 .text:0004C830 loc_4C830 ; CODE XREF: compute_change+1Cj .text:0004C830 MOV R3, 0x7B2 .text:0004C838 CMP R10, R3 .text:0004C83C BLE loc_4C8A4 .text:0004C840 SUB R5, R10, #1 .text:0004C844 MOV R0, R5 .text:0004C848 MOV R1, #0x64 .text:0004C84C RSB R4, R3, R10 .text:0004C850 ADD R3, R4, R4,LSL#3 .text:0004C854 ADD R4, R4, R3,LSL#3 .text:0004C858 ADD R4, R4, R4,LSL#2 .text:0004C85C SUB R4, R4, #0x1EC .text:0004C860 CMP R5, #0 .text:0004C864 ADDLT R3, R5, #3 .text:0004C868 MOVGE R3, R5 .text:0004C86C ADD R4, R4, R3,ASR#2 .text:0004C870 ADD R4, R4, #0x13 .text:0004C874 BL __divsi3 .text:0004C878 RSB R4, R0, R4 .text:0004C87C MOV R0, R5 .text:0004C880 MOV R1, #0x190 .text:0004C884 SUB R4, R4, #4 .text:0004C888 BL __divsi3 .text:0004C88C ADD R4, R4, R0 .text:0004C890 ADD R4, R4, R4,LSL#1 .text:0004C894 RSB R4, R4, R4,LSL#4 .text:0004C898 RSB R4, R4, R4,LSL#4 .text:0004C89C MOV R8, R4,LSL#7 .text:0004C8A0 B loc_4C8A8 .text:0004C8A4 ; --------------------------------------------------------------------------- .text:0004C8A4 .text:0004C8A4 loc_4C8A4 ; CODE XREF: compute_change+3Cj .text:0004C8A4 MOV R8, #0 .text:0004C8A8 .text:0004C8A8 loc_4C8A8 ; CODE XREF: compute_change+A0j .text:0004C8A8 LDR R3, [R7,#4] .text:0004C8AC CMP R3, #1 .text:0004C8B0 BEQ loc_4C8D4 .text:0004C8B4 BCC loc_4C970 .text:0004C8B8 CMP R3, #2 .text:0004C8BC BEQ loc_4C9A0 .text:0004C8C0 LDR R1, [R7,#0x14] .text:0004C8C4 STR R1, [R11,#var_40] .text:0004C8C8 LDR R2, [R7,#0x10] .text:0004C8CC STR R2, [R11,#var_3C] .text:0004C8D0 B loc_4CB98 .text:0004C8D4 ; --------------------------------------------------------------------------- .text:0004C8D4 .text:0004C8D4 loc_4C8D4 ; CODE XREF: compute_change+B0j .text:0004C8D4 LDR R3, [R7,#0x14] .text:0004C8D8 STR R3, [R11,#var_40] .text:0004C8DC LDRB R3, [R7,#0xC] .text:0004C8E0 LDRB R2, [R7,#0xD] .text:0004C8E4 LDR R9, [R7,#0x10] .text:0004C8E8 ORR R3, R3, R2,LSL#8 .text:0004C8EC STR R9, [R11,#var_3C] .text:0004C8F0 SUB R3, R3, #1 .text:0004C8F4 ADD R3, R3, R3,LSL#1 .text:0004C8F8 RSB R3, R3, R3,LSL#4 .text:0004C8FC RSB R3, R3, R3,LSL#4 .text:0004C900 LDR R2, [R7,#0xC] .text:0004C904 ADD R8, R8, R3,LSL#7 .text:0004C908 MOV R2, R2,LSL#16 .text:0004C90C CMP R2, #0x3B0000 .text:0004C910 BLS loc_4CB98 .text:0004C914 TST R10, #3 .text:0004C918 BNE loc_4CB98 .text:0004C91C MOV R0, R10 .text:0004C920 MOV R1, #0x64 .text:0004C924 BL __modsi3 .text:0004C928 CMP R0, #0 .text:0004C92C BNE loc_4C954 .text:0004C930 MOV R0, R10 .text:0004C934 MOV R1, #0x190 .text:0004C938 BL __modsi3 .text:0004C93C LDR R12, [R7,#0x14] .text:0004C940 STR R12, [R11,#var_40] .text:0004C944 LDR R1, [R7,#0x10] .text:0004C948 CMP R0, #0 .text:0004C94C STR R1, [R11,#var_3C] .text:0004C950 BNE loc_4CB98 .text:0004C954 .text:0004C954 loc_4C954 ; CODE XREF: compute_change+12Cj .text:0004C954 LDR R2, [R7,#0x14] .text:0004C958 STR R2, [R11,#var_40] .text:0004C95C ADD R8, R8, #0x15000 .text:0004C960 LDR R3, [R7,#0x10] .text:0004C964 ADD R8, R8, #0x180 .text:0004C968 STR R3, [R11,#var_3C] .text:0004C96C B loc_4CB98 .text:0004C970 ; --------------------------------------------------------------------------- .text:0004C970 .text:0004C970 loc_4C970 ; CODE XREF: compute_change+B4j .text:0004C970 LDR R9, [R7,#0x14] .text:0004C974 STR R9, [R11,#var_40] .text:0004C978 LDRB R3, [R7,#0xC] .text:0004C97C LDRB R2, [R7,#0xD] .text:0004C980 LDR R12, [R7,#0x10] .text:0004C984 ORR R3, R3, R2,LSL#8 .text:0004C988 ADD R3, R3, R3,LSL#1 .text:0004C98C RSB R3, R3, R3,LSL#4 .text:0004C990 RSB R3, R3, R3,LSL#4 .text:0004C994 ADD R8, R8, R3,LSL#7 .text:0004C998 STR R12, [R11,#var_3C] .text:0004C99C B loc_4CB98 .text:0004C9A0 ; --------------------------------------------------------------------------- .text:0004C9A0 .text:0004C9A0 loc_4C9A0 ; CODE XREF: compute_change+BCj .text:0004C9A0 MOV R4, #0 .text:0004C9A4 TST R10, #3 .text:0004C9A8 BNE loc_4C9D8 .text:0004C9AC MOV R0, R10 .text:0004C9B0 MOV R1, #0x64 .text:0004C9B4 BL __modsi3 .text:0004C9B8 CMP R0, R4 .text:0004C9BC BNE loc_4C9D4 .text:0004C9C0 MOV R0, R10 .text:0004C9C4 MOV R1, #0x190 .text:0004C9C8 BL __modsi3 .text:0004C9CC CMP R0, R4 .text:0004C9D0 BNE loc_4C9D8 .text:0004C9D4 .text:0004C9D4 loc_4C9D4 ; CODE XREF: compute_change+1BCj .text:0004C9D4 MOV R4, #1 .text:0004C9D8 .text:0004C9D8 loc_4C9D8 ; CODE XREF: compute_change+1A8j .text:0004C9D8 ; compute_change+1D0j .text:0004C9D8 LDRB R0, [R7,#8] .text:0004C9DC CMP R4, #0 .text:0004C9E0 LDRB R2, [R7,#9] .text:0004C9E4 MOVNE R4, #0x1A .text:0004C9E8 MOVEQ R4, #0 .text:0004C9EC STR R4, [R11,#var_30] .text:0004C9F0 LDR R3, =__mon_yday .text:0004C9F4 ORR R0, R0, R2,LSL#8 .text:0004C9F8 ADD R9, R3, R0,LSL#1 .text:0004C9FC ADD R2, R4, R9 .text:0004CA00 STR R2, [R11,#var_2C] .text:0004CA04 LDRB R3, [R2,#-2] .text:0004CA08 SUB R12, R2, #2 .text:0004CA0C STR R12, [R11,#var_34] .text:0004CA10 MOV R1, #0xC .text:0004CA14 LDRB R2, [R12,#1] .text:0004CA18 ADD R0, R0, #9 .text:0004CA1C ORR R3, R3, R2,LSL#8 .text:0004CA20 ADD R3, R3, R3,LSL#1 .text:0004CA24 RSB R3, R3, R3,LSL#4 .text:0004CA28 RSB R3, R3, R3,LSL#4 .text:0004CA2C ADD R8, R8, R3,LSL#7 .text:0004CA30 BL __modsi3 .text:0004CA34 MOV R1, #0x64 .text:0004CA38 LDR R4, [R7,#8] .text:0004CA3C ADD R5, R0, #1 .text:0004CA40 MOV R4, R4,LSL#16 .text:0004CA44 CMP R4, #0x20000 .text:0004CA48 MOVHI R4, R10 .text:0004CA4C SUBLS R4, R10, #1 .text:0004CA50 MOV R0, R4 .text:0004CA54 BL __divsi3 .text:0004CA58 MOV R6, R0 .text:0004CA5C MOV R0, R4 .text:0004CA60 MOV R1, #0x64 .text:0004CA64 BL __modsi3 .text:0004CA68 MOV R4, R0 .text:0004CA6C ADD R3, R5, R5,LSL#1 .text:0004CA70 ADD R5, R5, R3,LSL#2 .text:0004CA74 MOV R5, R5,LSL#1 .text:0004CA78 SUB R0, R5, #2 .text:0004CA7C MOV R1, #0xA .text:0004CA80 BL __divsi3 .text:0004CA84 ADD R3, R4, #1 .text:0004CA88 ADD R0, R0, R3 .text:0004CA8C CMP R4, #0 .text:0004CA90 ADDLT R4, R4, #3 .text:0004CA94 ADD R0, R0, R4,ASR#2 .text:0004CA98 CMP R6, #0 .text:0004CA9C ADDLT R3, R6, #3 .text:0004CAA0 MOVGE R3, R6 .text:0004CAA4 ADD R0, R0, R3,ASR#2 .text:0004CAA8 SUB R0, R0, R6,LSL#1 .text:0004CAAC MOV R1, #7 .text:0004CAB0 BL __modsi3 .text:0004CAB4 LDR R1, [R7,#0x14] .text:0004CAB8 STR R1, [R11,#var_40] .text:0004CABC LDR R2, [R7,#0x10] .text:0004CAC0 STR R2, [R11,#var_3C] .text:0004CAC4 MOV LR, #1 .text:0004CAC8 LDRB R2, [R7,#0xD] .text:0004CACC CMP R0, #0 .text:0004CAD0 LDRB R3, [R7,#0xC] .text:0004CAD4 ADD R1, R0, #7 .text:0004CAD8 ORR R3, R3, R2,LSL#8 .text:0004CADC SUBGE R12, R3, R0 .text:0004CAE0 SUBLT R12, R3, R1 .text:0004CAE4 ADD R3, R12, #7 .text:0004CAE8 LDRB R0, [R7,#0xA] .text:0004CAEC CMP R12, #0 .text:0004CAF0 LDRB R2, [R7,#0xB] .text:0004CAF4 MOVLT R12, R3 .text:0004CAF8 ORR R4, R0, R2,LSL#8 .text:0004CAFC CMP LR, R4 .text:0004CB00 BCS loc_4CB88 .text:0004CB04 SUB R1, R11, #-var_30 .text:0004CB08 LDMIA R1, {R1,R2} .text:0004CB0C LDRB R3, [R1,R9] .text:0004CB10 LDRB R5, [R2,#1] .text:0004CB14 LDRB R6, [R2,#-2] .text:0004CB18 ADD R1, R12, #7 .text:0004CB1C LDR R9, [R11,#var_34] .text:0004CB20 MOV R0, R1 .text:0004CB24 LDRB R2, [R9,#1] .text:0004CB28 ORR R3, R3, R5,LSL#8 .text:0004CB2C ORR R2, R6, R2,LSL#8 .text:0004CB30 RSB R3, R2, R3 .text:0004CB34 CMP R1, R3 .text:0004CB38 BGE loc_4CB88 .text:0004CB3C STR R4, [R11,#var_38] .text:0004CB40 MOV R9, R5 .text:0004CB44 MOV R5, R6 .text:0004CB48 LDR R4, [R11,#var_34] .text:0004CB4C .text:0004CB4C loc_4CB4C ; CODE XREF: compute_change+384j .text:0004CB4C MOV R12, R0 .text:0004CB50 LDR R1, [R11,#var_38] .text:0004CB54 ADD LR, LR, #1 .text:0004CB58 CMP LR, R1 .text:0004CB5C BCS loc_4CB88 .text:0004CB60 LDR R3, [R11,#var_2C] .text:0004CB64 ADD R1, R12, #7 .text:0004CB68 LDRB R2, [R3] .text:0004CB6C MOV R0, R1 .text:0004CB70 LDRB R3, [R4,#1] .text:0004CB74 ORR R2, R2, R9,LSL#8 .text:0004CB78 ORR R3, R5, R3,LSL#8 .text:0004CB7C RSB R2, R3, R2 .text:0004CB80 CMP R1, R2 .text:0004CB84 BLT loc_4CB4C .text:0004CB88 .text:0004CB88 loc_4CB88 ; CODE XREF: compute_change+300j .text:0004CB88 ; compute_change+338j ... .text:0004CB88 ADD R3, R12, R12,LSL#1 .text:0004CB8C RSB R3, R3, R3,LSL#4 .text:0004CB90 RSB R3, R3, R3,LSL#4 .text:0004CB94 ADD R8, R8, R3,LSL#7 .text:0004CB98 .text:0004CB98 loc_4CB98 ; CODE XREF: compute_change+D0j .text:0004CB98 ; compute_change+110j ... .text:0004CB98 SUB R9, R11, #-var_40 .text:0004CB9C LDMIA R9, {R9,R12} .text:0004CBA0 MOV R0, #1 .text:0004CBA4 STR R10, [R7,#0x1C] .text:0004CBA8 RSB R3, R9, R8 .text:0004CBAC ADD R3, R3, R12 .text:0004CBB0 STR R3, [R7,#0x18] .text:0004CBB4 .text:0004CBB4 loc_4CBB4 ; CODE XREF: compute_change+2Cj .text:0004CBB4 B locret_4CBBC .text:0004CBB4 ; --------------------------------------------------------------------------- .text:0004CBB8 off_4CBB8 DCD __mon_yday ; DATA XREF: compute_change+1F0r .text:0004CBBC ; --------------------------------------------------------------------------- .text:0004CBBC .text:0004CBBC locret_4CBBC ; CODE XREF: compute_change:loc_4CBB4j .text:0004CBBC LDMDB R11, {R4-R11,SP,PC} .text:0004CBBC ; End of function compute_change .text:0004CBBC .text:0004CBC0 .text:0004CBC0 ; =============== S U B R O U T I N E ======================================= .text:0004CBC0 .text:0004CBC0 ; Attributes: bp-based frame .text:0004CBC0 .text:0004CBC0 tz_compute ; CODE XREF: __tz_convert+B4p .text:0004CBC0 MOV R12, SP .text:0004CBC4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0004CBC8 SUB R11, R12, #4 .text:0004CBCC MOV R5, 0x76C .text:0004CBD4 LDR R4, =tz_rules .text:0004CBD8 MOV R6, R0 .text:0004CBDC LDR R1, [R6,#0x14] .text:0004CBE0 MOV R0, R4 .text:0004CBE4 ADD R1, R1, R5 .text:0004CBE8 BL compute_change .text:0004CBEC CMP R0, #0 .text:0004CBF0 MOV R7, R4 .text:0004CBF4 BEQ loc_4CC14 .text:0004CBF8 ADD R4, R7, #0x20 .text:0004CBFC LDR R1, [R6,#0x14] .text:0004CC00 MOV R0, R4 .text:0004CC04 ADD R1, R1, R5 .text:0004CC08 BL compute_change .text:0004CC0C CMP R0, #0 .text:0004CC10 BNE loc_4CC1C .text:0004CC14 .text:0004CC14 loc_4CC14 ; CODE XREF: tz_compute+34j .text:0004CC14 MOV R0, #0 .text:0004CC18 LDMDB R11, {R4-R7,R11,SP,PC} .text:0004CC1C ; --------------------------------------------------------------------------- .text:0004CC1C .text:0004CC1C loc_4CC1C ; CODE XREF: tz_compute+50j .text:0004CC1C LDR R2, [R7,#0x18] .text:0004CC20 LDR R3, [R7,#0x38] .text:0004CC24 CMP R2, R3 .text:0004CC28 BLE loc_4CC48 .text:0004CC2C LDR R1, [R6,#0x14] .text:0004CC30 MOV R0, R4 .text:0004CC34 ADD R1, R1, #0x760 .text:0004CC38 ADD R1, R1, #0xD .text:0004CC3C BL compute_change .text:0004CC40 CMP R0, #0 .text:0004CC44 LDMEQDB R11, {R4-R7,R11,SP,PC} .text:0004CC48 .text:0004CC48 loc_4CC48 ; CODE XREF: tz_compute+68j .text:0004CC48 LDR R2, [R7,#0x14] .text:0004CC4C LDR R3, [R7,#0x34] .text:0004CC50 LDR R1, =daylight .text:0004CC54 SUBS R3, R2, R3 .text:0004CC58 MOVNE R3, #1 .text:0004CC5C STR R3, [R1] .text:0004CC60 LDR R0, =timezone .text:0004CC64 RSB R2, R2, #0 .text:0004CC68 STR R2, [R0] .text:0004CC6C LDR R4, =tzname .text:0004CC70 LDR R0, [R7] .text:0004CC74 STR R0, [R4] .text:0004CC78 LDR R3, [R7,#0x20] .text:0004CC7C STR R3, [R4,#(tzname+4 - 0x6C1E8)] .text:0004CC80 BL strlen .text:0004CC84 MOV R5, R0 .text:0004CC88 LDR R0, [R4,#(tzname+4 - 0x6C1E8)] .text:0004CC8C BL strlen .text:0004CC90 LDR R2, =__tzname_cur_max .text:0004CC94 LDR R3, [R2] .text:0004CC98 CMP R5, R3 .text:0004CC9C STRHI R5, [R2] .text:0004CCA0 LDR R3, [R2] .text:0004CCA4 CMP R0, R3 .text:0004CCA8 STRHI R0, [R2] .text:0004CCAC MOV R0, #1 .text:0004CCB0 LDMDB R11, {R4-R7,R11,SP,PC} .text:0004CCB0 ; End of function tz_compute .text:0004CCB0 .text:0004CCB0 ; --------------------------------------------------------------------------- .text:0004CCB4 off_4CCB4 DCD tz_rules ; DATA XREF: tz_compute+14r .text:0004CCB8 off_4CCB8 DCD daylight ; DATA XREF: tz_compute+90r .text:0004CCBC off_4CCBC DCD timezone ; DATA XREF: tz_compute+A0r .text:0004CCC0 off_4CCC0 DCD tzname ; DATA XREF: tz_compute+ACr .text:0004CCC4 off_4CCC4 DCD __tzname_cur_max ; DATA XREF: tz_compute+D0r .text:0004CCC8 .text:0004CCC8 ; =============== S U B R O U T I N E ======================================= .text:0004CCC8 .text:0004CCC8 ; Attributes: bp-based frame .text:0004CCC8 .text:0004CCC8 WEAK tzset .text:0004CCC8 tzset ; CODE XREF: timelocal+10p .text:0004CCC8 MOV R12, SP .text:0004CCCC STMFD SP!, {R11,R12,LR,PC} .text:0004CCD0 LDR R3, =0 .text:0004CCD4 SUB R11, R12, #4 .text:0004CCD8 CMP R3, #0 .text:0004CCDC BEQ loc_4CCEC .text:0004CCE0 LDR R0, =tzset_lock .text:0004CCE4 MOV LR, PC .text:0004CCE8 MOV PC, R3 .text:0004CCEC .text:0004CCEC loc_4CCEC ; CODE XREF: tzset+14j .text:0004CCEC MOV R0, #1 .text:0004CCF0 BL tzset_internal .text:0004CCF4 LDR R3, =__use_tzfile .text:0004CCF8 LDR R2, [R3] .text:0004CCFC CMP R2, #0 .text:0004CD00 BNE loc_4CD1C .text:0004CD04 LDR R1, =tz_rules .text:0004CD08 LDR R0, =tzname .text:0004CD0C LDR R3, [R1] .text:0004CD10 STR R3, [R0] .text:0004CD14 LDR R2, [R1,#(dword_95B8C - 0x95B6C)] .text:0004CD18 STR R2, [R0,#(tzname+4 - 0x6C1E8)] .text:0004CD1C .text:0004CD1C loc_4CD1C ; CODE XREF: tzset+38j .text:0004CD1C LDR R3, =0 .text:0004CD20 CMP R3, #0 .text:0004CD24 LDMEQDB R11, {R11,SP,PC} .text:0004CD28 LDR R0, =tzset_lock .text:0004CD2C MOV LR, PC .text:0004CD30 MOV PC, R3 .text:0004CD34 LDMDB R11, {R11,SP,PC} .text:0004CD34 ; End of function tzset .text:0004CD34 .text:0004CD34 ; --------------------------------------------------------------------------- .text:0004CD38 off_4CD38 DCD 0 ; DATA XREF: tzset+8r .text:0004CD3C off_4CD3C DCD tzset_lock ; DATA XREF: tzset+18r .text:0004CD3C ; tzset+60r .text:0004CD40 off_4CD40 DCD __use_tzfile ; DATA XREF: tzset+2Cr .text:0004CD44 off_4CD44 DCD tz_rules ; DATA XREF: tzset+3Cr .text:0004CD48 off_4CD48 DCD tzname ; DATA XREF: tzset+40r .text:0004CD4C off_4CD4C DCD 0 ; DATA XREF: tzset:loc_4CD1Cr .text:0004CD50 .text:0004CD50 ; =============== S U B R O U T I N E ======================================= .text:0004CD50 .text:0004CD50 ; Attributes: bp-based frame .text:0004CD50 .text:0004CD50 EXPORT __tz_convert .text:0004CD50 __tz_convert ; CODE XREF: localtime_r+14p .text:0004CD50 ; localtime+14p .text:0004CD50 .text:0004CD50 var_2C = -0x2C .text:0004CD50 var_28 = -0x28 .text:0004CD50 var_24 = -0x24 .text:0004CD50 .text:0004CD50 MOV R12, SP .text:0004CD54 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0004CD58 SUB R11, R12, #4 .text:0004CD5C MOV R4, R2 .text:0004CD60 MOV R6, R1 .text:0004CD64 SUBS R7, R0, #0 .text:0004CD68 SUB SP, SP, #0xC .text:0004CD6C BNE loc_4CD84 .text:0004CD70 BL __errno_location .text:0004CD74 MOV R3, #0x16 .text:0004CD78 STR R3, [R0] .text:0004CD7C MOV R0, R7 .text:0004CD80 B loc_4CF04 .text:0004CD84 ; --------------------------------------------------------------------------- .text:0004CD84 .text:0004CD84 loc_4CD84 ; CODE XREF: __tz_convert+1Cj .text:0004CD84 LDR R3, =0 .text:0004CD88 CMP R3, #0 .text:0004CD8C BEQ loc_4CD9C .text:0004CD90 LDR R0, =tzset_lock .text:0004CD94 MOV LR, PC .text:0004CD98 MOV PC, R3 .text:0004CD9C .text:0004CD9C loc_4CD9C ; CODE XREF: __tz_convert+3Cj .text:0004CD9C LDR R0, =_tmbuf .text:0004CDA0 CMP R4, R0 .text:0004CDA4 MOVNE R0, #0 .text:0004CDA8 MOVEQ R0, #1 .text:0004CDAC BL tzset_internal .text:0004CDB0 LDR R3, =__use_tzfile .text:0004CDB4 LDR R5, [R3] .text:0004CDB8 MOV R8, R3 .text:0004CDBC CMP R5, #0 .text:0004CDC0 BEQ loc_4CDE8 .text:0004CDC4 LDR R0, [R7] .text:0004CDC8 STR R4, [SP,#0x2C+var_2C] .text:0004CDCC MOV R1, R6 .text:0004CDD0 SUB R2, R11, #-var_24 .text:0004CDD4 SUB R3, R11, #-var_28 .text:0004CDD8 BL __tzfile_compute .text:0004CDDC CMP R0, #0 .text:0004CDE0 MOVEQ R4, #0 .text:0004CDE4 B loc_4CE20 .text:0004CDE8 ; --------------------------------------------------------------------------- .text:0004CDE8 .text:0004CDE8 loc_4CDE8 ; CODE XREF: __tz_convert+70j .text:0004CDE8 MOV R0, R7 .text:0004CDEC MOV R1, R5 .text:0004CDF0 MOV R2, R4 .text:0004CDF4 BL __offtime .text:0004CDF8 CMP R0, #0 .text:0004CDFC BEQ loc_4CE10 .text:0004CE00 MOV R0, R4 .text:0004CE04 BL tz_compute .text:0004CE08 CMP R0, #0 .text:0004CE0C BNE loc_4CE14 .text:0004CE10 .text:0004CE10 loc_4CE10 ; CODE XREF: __tz_convert+ACj .text:0004CE10 MOV R4, R5 .text:0004CE14 .text:0004CE14 loc_4CE14 ; CODE XREF: __tz_convert+BCj .text:0004CE14 MOV R3, #0 .text:0004CE18 STR R3, [R11,#var_24] .text:0004CE1C STR R3, [R11,#var_28] .text:0004CE20 .text:0004CE20 loc_4CE20 ; CODE XREF: __tz_convert+94j .text:0004CE20 CMP R4, #0 .text:0004CE24 BEQ loc_4CEE8 .text:0004CE28 CMP R6, #0 .text:0004CE2C BEQ loc_4CE84 .text:0004CE30 LDR R2, [R8] .text:0004CE34 CMP R2, #0 .text:0004CE38 BNE loc_4CE94 .text:0004CE3C LDR R12, =tz_rules .text:0004CE40 LDR R0, [R7] .text:0004CE44 LDR R3, [R12,#(dword_95B84 - 0x95B6C)] .text:0004CE48 MOV R1, R2 .text:0004CE4C CMP R0, R3 .text:0004CE50 BLT loc_4CE64 .text:0004CE54 LDR R3, [R12,#(dword_95BA4 - 0x95B6C)] .text:0004CE58 CMP R0, R3 .text:0004CE5C MOVGE R1, #0 .text:0004CE60 MOVLT R1, #1 .text:0004CE64 .text:0004CE64 loc_4CE64 ; CODE XREF: __tz_convert+100j .text:0004CE64 STR R1, [R4,#0x20] .text:0004CE68 LDR R3, =tzname .text:0004CE6C LDR R2, [R3,R1,LSL#2] .text:0004CE70 STR R2, [R4,#0x28] .text:0004CE74 ADD R3, R12, #0x14 .text:0004CE78 LDR R2, [R3,R1,LSL#5] .text:0004CE7C STR R2, [R4,#0x24] .text:0004CE80 B loc_4CE94 .text:0004CE84 ; --------------------------------------------------------------------------- .text:0004CE84 .text:0004CE84 loc_4CE84 ; CODE XREF: __tz_convert+DCj .text:0004CE84 STR R6, [R4,#0x20] .text:0004CE88 STR R6, [R4,#0x24] .text:0004CE8C LDR R3, =dword_62290 .text:0004CE90 STR R3, [R4,#0x28] .text:0004CE94 .text:0004CE94 loc_4CE94 ; CODE XREF: __tz_convert+E8j .text:0004CE94 ; __tz_convert+130j .text:0004CE94 LDR R3, [R4,#0x24] .text:0004CE98 MOV R0, R7 .text:0004CE9C LDR R1, [R11,#var_24] .text:0004CEA0 MOV R2, R4 .text:0004CEA4 RSB R1, R1, R3 .text:0004CEA8 BL __offtime .text:0004CEAC CMP R0, #0 .text:0004CEB0 BEQ loc_4CEE4 .text:0004CEB4 LDR R3, [R4] .text:0004CEB8 LDR R2, [R11,#var_28] .text:0004CEBC ADD R3, R3, R2 .text:0004CEC0 STR R3, [R4] .text:0004CEC4 B loc_4CEE8 .text:0004CEC4 ; --------------------------------------------------------------------------- .text:0004CEC8 off_4CEC8 DCD 0 ; DATA XREF: __tz_convert:loc_4CD84r .text:0004CECC off_4CECC DCD tzset_lock ; DATA XREF: __tz_convert+40r .text:0004CED0 off_4CED0 DCD _tmbuf ; DATA XREF: __tz_convert:loc_4CD9Cr .text:0004CED4 off_4CED4 DCD __use_tzfile ; DATA XREF: __tz_convert+60r .text:0004CED8 off_4CED8 DCD tz_rules ; DATA XREF: __tz_convert+ECr .text:0004CEDC off_4CEDC DCD tzname ; DATA XREF: __tz_convert+118r .text:0004CEE0 off_4CEE0 DCD dword_62290 ; DATA XREF: __tz_convert+13Cr .text:0004CEE4 ; --------------------------------------------------------------------------- .text:0004CEE4 .text:0004CEE4 loc_4CEE4 ; CODE XREF: __tz_convert+160j .text:0004CEE4 MOV R4, R0 .text:0004CEE8 .text:0004CEE8 loc_4CEE8 ; CODE XREF: __tz_convert+D4j .text:0004CEE8 ; __tz_convert+174j .text:0004CEE8 LDR R3, =0 .text:0004CEEC CMP R3, #0 .text:0004CEF0 BEQ loc_4CF00 .text:0004CEF4 LDR R0, =tzset_lock .text:0004CEF8 MOV LR, PC .text:0004CEFC MOV PC, R3 .text:0004CF00 .text:0004CF00 loc_4CF00 ; CODE XREF: __tz_convert+1A0j .text:0004CF00 MOV R0, R4 .text:0004CF04 .text:0004CF04 loc_4CF04 ; CODE XREF: __tz_convert+30j .text:0004CF04 B locret_4CF10 .text:0004CF04 ; --------------------------------------------------------------------------- .text:0004CF08 off_4CF08 DCD 0 ; DATA XREF: __tz_convert:loc_4CEE8r .text:0004CF0C off_4CF0C DCD tzset_lock ; DATA XREF: __tz_convert+1A4r .text:0004CF10 ; --------------------------------------------------------------------------- .text:0004CF10 .text:0004CF10 locret_4CF10 ; CODE XREF: __tz_convert:loc_4CF04j .text:0004CF10 LDMDB R11, {R4-R8,R11,SP,PC} .text:0004CF10 ; End of function __tz_convert .text:0004CF10 .text:0004CF14 .text:0004CF14 ; =============== S U B R O U T I N E ======================================= .text:0004CF14 .text:0004CF14 ; Attributes: bp-based frame .text:0004CF14 .text:0004CF14 free_mem_10 .text:0004CF14 MOV R12, SP .text:0004CF18 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004CF1C LDR R0, =tzstring_list .text:0004CF20 LDR R3, [R0] .text:0004CF24 SUB R11, R12, #4 .text:0004CF28 LDR R5, =old_tz .text:0004CF2C CMP R3, #0 .text:0004CF30 BEQ loc_4CF54 .text:0004CF34 MOV R4, R0 .text:0004CF38 .text:0004CF38 loc_4CF38 ; CODE XREF: free_mem_10+3Cj .text:0004CF38 LDR R0, [R4] .text:0004CF3C LDR R3, [R0] .text:0004CF40 STR R3, [R4] .text:0004CF44 BL free .text:0004CF48 LDR R3, [R4] .text:0004CF4C CMP R3, #0 .text:0004CF50 BNE loc_4CF38 .text:0004CF54 .text:0004CF54 loc_4CF54 ; CODE XREF: free_mem_10+1Cj .text:0004CF54 LDR R0, [R5] .text:0004CF58 BL free .text:0004CF5C MOV R3, #0 .text:0004CF60 STR R3, [R5] .text:0004CF64 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004CF64 ; End of function free_mem_10 .text:0004CF64 .text:0004CF64 ; --------------------------------------------------------------------------- .text:0004CF68 off_4CF68 DCD tzstring_list ; DATA XREF: free_mem_10+8r .text:0004CF6C off_4CF6C DCD old_tz ; DATA XREF: free_mem_10+14r .text:0004CF70 .text:0004CF70 ; =============== S U B R O U T I N E ======================================= .text:0004CF70 .text:0004CF70 ; Attributes: bp-based frame .text:0004CF70 .text:0004CF70 EXPORT __tzfile_read .text:0004CF70 __tzfile_read ; CODE XREF: tzset_internal+ECp .text:0004CF70 ; __tzfile_default+44p .text:0004CF70 .text:0004CF70 var_74 = -0x74 .text:0004CF70 var_70 = -0x70 .text:0004CF70 var_6C = -0x6C .text:0004CF70 var_68 = -0x68 .text:0004CF70 var_64 = -0x64 .text:0004CF70 var_60 = -0x60 .text:0004CF70 var_5C = -0x5C .text:0004CF70 var_58 = -0x58 .text:0004CF70 var_54 = -0x54 .text:0004CF70 var_40 = -0x40 .text:0004CF70 var_3C = -0x3C .text:0004CF70 var_38 = -0x38 .text:0004CF70 var_34 = -0x34 .text:0004CF70 var_30 = -0x30 .text:0004CF70 var_2C = -0x2C .text:0004CF70 .text:0004CF70 MOV R12, SP .text:0004CF74 STMFD SP!, {R4-R12,LR,PC} .text:0004CF78 SUB R11, R12, #4 .text:0004CF7C LDR R3, =__use_tzfile .text:0004CF80 MOV R6, R0 .text:0004CF84 LDR R12, =transitions .text:0004CF88 SUB SP, SP, #0x4C .text:0004CF8C LDR R0, [R12] .text:0004CF90 MOV R4, #0 .text:0004CF94 STR R4, [R3] .text:0004CF98 STR R1, [R11,#var_60] .text:0004CF9C STR R2, [R11,#var_64] .text:0004CFA0 CMP R0, R4 .text:0004CFA4 BEQ loc_4CFAC .text:0004CFA8 BL free .text:0004CFAC .text:0004CFAC loc_4CFAC ; CODE XREF: __tzfile_read+34j .text:0004CFAC LDR R1, =transitions .text:0004CFB0 CMP R6, #0 .text:0004CFB4 STR R4, [R1] .text:0004CFB8 LDREQ R6, =byte_62334 .text:0004CFBC BEQ loc_4D028 .text:0004CFC0 LDRB R1, [R6] .text:0004CFC4 CMP R1, #0 .text:0004CFC8 BEQ locret_4D93C .text:0004CFCC LDR R3, =__libc_enable_secure .text:0004CFD0 LDR R2, [R3] .text:0004CFD4 CMP R2, #0 .text:0004CFD8 BEQ loc_4D028 .text:0004CFDC CMP R1, #0x2F .text:0004CFE0 BNE loc_4D014 .text:0004CFE4 MOV R0, R6 .text:0004CFE8 LDR R1, =byte_62334 .text:0004CFEC MOV R2, #0x2E .text:0004CFF0 BL memcmp .text:0004CFF4 CMP R0, #0 .text:0004CFF8 BEQ loc_4D014 .text:0004CFFC MOV R0, R6 .text:0004D000 LDR R1, =default_tzdir.120 ; "/usr/local/arm/2.95.3/arm-linux/share/z"... .text:0004D004 MOV R2, #0x2E .text:0004D008 BL memcmp .text:0004D00C CMP R0, #0 .text:0004D010 BNE locret_4D93C .text:0004D014 .text:0004D014 loc_4D014 ; CODE XREF: __tzfile_read+70j .text:0004D014 ; __tzfile_read+88j .text:0004D014 LDR R1, =a__ ; "../" .text:0004D018 MOV R0, R6 .text:0004D01C BL strstr .text:0004D020 CMP R0, #0 .text:0004D024 BNE locret_4D93C .text:0004D028 .text:0004D028 loc_4D028 ; CODE XREF: __tzfile_read+4Cj .text:0004D028 ; __tzfile_read+68j .text:0004D028 LDRB R3, [R6] .text:0004D02C CMP R3, #0x2F .text:0004D030 BEQ loc_4D0AC .text:0004D034 LDR R0, =aTzdir ; "TZDIR" .text:0004D038 BL getenv .text:0004D03C SUBS R5, R0, #0 .text:0004D040 BEQ loc_4D050 .text:0004D044 LDRB R3, [R5] .text:0004D048 CMP R3, #0 .text:0004D04C BNE loc_4D05C .text:0004D050 .text:0004D050 loc_4D050 ; CODE XREF: __tzfile_read+D0j .text:0004D050 MOV R7, #0x2E .text:0004D054 LDR R5, =default_tzdir.120 ; "/usr/local/arm/2.95.3/arm-linux/share/z"... .text:0004D058 B loc_4D068 .text:0004D05C ; --------------------------------------------------------------------------- .text:0004D05C .text:0004D05C loc_4D05C ; CODE XREF: __tzfile_read+DCj .text:0004D05C MOV R0, R5 .text:0004D060 BL strlen .text:0004D064 MOV R7, R0 .text:0004D068 .text:0004D068 loc_4D068 ; CODE XREF: __tzfile_read+E8j .text:0004D068 MOV R0, R6 .text:0004D06C BL strlen .text:0004D070 ADD R4, R0, #1 .text:0004D074 ADD R3, R4, R7 .text:0004D078 ADD R3, R3, #4 .text:0004D07C BIC R3, R3, #3 .text:0004D080 RSB SP, R3, SP .text:0004D084 MOV R0, SP .text:0004D088 MOV R1, R5 .text:0004D08C MOV R2, R7 .text:0004D090 BL mempcpy .text:0004D094 MOV R3, #0x2F .text:0004D098 STRB R3, [R0],#1 .text:0004D09C MOV R1, R6 .text:0004D0A0 MOV R2, R4 .text:0004D0A4 BL memcpy .text:0004D0A8 MOV R6, SP .text:0004D0AC .text:0004D0AC loc_4D0AC ; CODE XREF: __tzfile_read+C0j .text:0004D0AC LDR R1, =aR_1 ; "r" .text:0004D0B0 MOV R0, R6 .text:0004D0B4 BL fopen .text:0004D0B8 SUBS R7, R0, #0 .text:0004D0BC BEQ locret_4D93C .text:0004D0C0 SUB R0, R11, #-var_54 .text:0004D0C4 MOV R1, #0x2C .text:0004D0C8 MOV R2, #1 .text:0004D0CC MOV R3, R7 .text:0004D0D0 BL fread_unlocked .text:0004D0D4 STR R0, [R11,#var_74] .text:0004D0D8 CMP R0, #1 .text:0004D0DC BNE loc_4D934 .text:0004D0E0 LDR R1, [R11,#var_34] .text:0004D0E4 LDR R6, =num_transitions .text:0004D0E8 LDR R12, [R11,#var_30] .text:0004D0EC AND R3, R1, #0xFF0000 .text:0004D0F0 MOV R3, R3,LSR#8 .text:0004D0F4 ORR R3, R3, R1,LSR#24 .text:0004D0F8 AND R2, R1, #0xFF00 .text:0004D0FC ORR R3, R3, R2,LSL#8 .text:0004D100 ORR R3, R3, R1,LSL#24 .text:0004D104 ADD R2, R3, R3,LSL#2 .text:0004D108 ADD R2, R2, #3 .text:0004D10C BIC LR, R2, #3 .text:0004D110 STR R3, [R6] .text:0004D114 AND R1, R12, #0xFF0000 .text:0004D118 MOV R1, R1,LSR#8 .text:0004D11C ORR R1, R1, R12,LSR#24 .text:0004D120 AND R3, R12, #0xFF00 .text:0004D124 LDR R0, [R11,#var_2C] .text:0004D128 ORR R1, R1, R3,LSL#8 .text:0004D12C AND R3, R0, #0xFF0000 .text:0004D130 MOV R3, R3,LSR#8 .text:0004D134 ORR R3, R3, R0,LSR#24 .text:0004D138 AND R2, R0, #0xFF00 .text:0004D13C ORR R3, R3, R2,LSL#8 .text:0004D140 ORR R0, R3, R0,LSL#24 .text:0004D144 STR R0, [R11,#var_70] .text:0004D148 LDR R5, =num_types .text:0004D14C LDR R4, =num_leaps .text:0004D150 ORR R1, R1, R12,LSL#24 .text:0004D154 ADD R3, R0, R1,LSL#3 .text:0004D158 LDR R0, [R11,#var_38] .text:0004D15C STR R1, [R5] .text:0004D160 MOV R9, LR .text:0004D164 ADD LR, LR, R3 .text:0004D168 ADD R3, LR, #3 .text:0004D16C BIC LR, R3, #3 .text:0004D170 LDR R12, [R11,#var_3C] .text:0004D174 AND R3, R0, #0xFF0000 .text:0004D178 MOV R3, R3,LSR#8 .text:0004D17C ORR R3, R3, R0,LSR#24 .text:0004D180 AND R2, R0, #0xFF00 .text:0004D184 ORR R3, R3, R2,LSL#8 .text:0004D188 LDR R2, [R11,#var_60] .text:0004D18C ORR R3, R3, R0,LSL#24 .text:0004D190 STR R3, [R4] .text:0004D194 MOV R8, LR .text:0004D198 ADD LR, LR, R3,LSL#3 .text:0004D19C AND R3, R12, #0xFF00 .text:0004D1A0 LDR R1, [R11,#var_40] .text:0004D1A4 ADD R0, LR, R2 .text:0004D1A8 AND R2, R12, #0xFF0000 .text:0004D1AC MOV R2, R2,LSR#8 .text:0004D1B0 ORR R2, R2, R12,LSR#24 .text:0004D1B4 ORR R2, R2, R3,LSL#8 .text:0004D1B8 ORR R12, R2, R12,LSL#24 .text:0004D1BC AND R3, R1, #0xFF0000 .text:0004D1C0 MOV R3, R3,LSR#8 .text:0004D1C4 ORR R3, R3, R1,LSR#24 .text:0004D1C8 AND R2, R1, #0xFF00 .text:0004D1CC STR R12, [R11,#var_68] .text:0004D1D0 ORR R3, R3, R2,LSL#8 .text:0004D1D4 ORR R1, R3, R1,LSL#24 .text:0004D1D8 STR R1, [R11,#var_6C] .text:0004D1DC BL malloc .text:0004D1E0 MOV LR, R0 .text:0004D1E4 CMP LR, #0 .text:0004D1E8 LDR R3, =transitions .text:0004D1EC MOV R10, R5 .text:0004D1F0 STR LR, [R3] .text:0004D1F4 BEQ loc_4D934 .text:0004D1F8 LDR R3, [R6] .text:0004D1FC LDR R12, =type_idxs .text:0004D200 ADD R3, LR, R3,LSL#2 .text:0004D204 STR R3, [R12] .text:0004D208 LDR R0, =types .text:0004D20C ADD R3, LR, R9 .text:0004D210 STR R3, [R0] .text:0004D214 LDR R2, [R10] .text:0004D218 LDR R1, =zone_names .text:0004D21C ADD R3, R3, R2,LSL#3 .text:0004D220 STR R3, [R1] .text:0004D224 LDR R2, [R11,#var_60] .text:0004D228 LDR R3, =leaps .text:0004D22C CMP R2, #0 .text:0004D230 ADD R2, LR, R8 .text:0004D234 STR R2, [R3] .text:0004D238 LDRNE R3, [R4] .text:0004D23C LDRNE R1, [R11,#var_64] .text:0004D240 ADDNE R3, R2, R3,LSL#3 .text:0004D244 STRNE R3, [R1] .text:0004D248 LDR R2, =num_transitions .text:0004D24C LDR R4, [R2] .text:0004D250 ADD R4, R4, R4,LSL#2 .text:0004D254 LDR R3, =transitions .text:0004D258 LDR R0, [R3] .text:0004D25C MOV R2, R4 .text:0004D260 LDR R1, [R11,#var_74] .text:0004D264 MOV R3, R7 .text:0004D268 BL fread_unlocked .text:0004D26C CMP R0, R4 .text:0004D270 BNE loc_4D934 .text:0004D274 LDR R1, =num_transitions .text:0004D278 LDR R3, [R1] .text:0004D27C MOV R6, #0 .text:0004D280 CMP R6, R3 .text:0004D284 BCS loc_4D2B0 .text:0004D288 LDR R2, =type_idxs .text:0004D28C LDR R0, [R2] .text:0004D290 MOV R1, R3 .text:0004D294 LDR R2, [R10] .text:0004D298 .text:0004D298 loc_4D298 ; CODE XREF: __tzfile_read+33Cj .text:0004D298 LDRB R3, [R0,R6] .text:0004D29C CMP R3, R2 .text:0004D2A0 BCS loc_4D934 .text:0004D2A4 ADD R6, R6, #1 .text:0004D2A8 CMP R6, R1 .text:0004D2AC BCC loc_4D298 .text:0004D2B0 .text:0004D2B0 loc_4D2B0 ; CODE XREF: __tzfile_read+314j .text:0004D2B0 LDR R3, =num_transitions .text:0004D2B4 LDR R6, [R3] .text:0004D2B8 MOV R3, R6 .text:0004D2BC SUB R6, R6, #1 .text:0004D2C0 CMP R3, #0 .text:0004D2C4 BEQ loc_4D300 .text:0004D2C8 LDR R12, =transitions .text:0004D2CC .text:0004D2CC loc_4D2CC ; CODE XREF: __tzfile_read+38Cj .text:0004D2CC LDR R0, [R12] .text:0004D2D0 MOV R2, R6 .text:0004D2D4 LDR R1, [R0,R6,LSL#2] .text:0004D2D8 CMP R2, #0 .text:0004D2DC AND R3, R1, #0xFF0000 .text:0004D2E0 MOV R3, R3,LSR#8 .text:0004D2E4 ORR R3, R3, R1,LSR#24 .text:0004D2E8 AND R2, R1, #0xFF00 .text:0004D2EC ORR R3, R3, R2,LSL#8 .text:0004D2F0 ORR R3, R3, R1,LSL#24 .text:0004D2F4 STR R3, [R0,R6,LSL#2] .text:0004D2F8 SUB R6, R6, #1 .text:0004D2FC BNE loc_4D2CC .text:0004D300 .text:0004D300 loc_4D300 ; CODE XREF: __tzfile_read+354j .text:0004D300 LDR R3, [R10] .text:0004D304 MOV R6, #0 .text:0004D308 CMP R6, R3 .text:0004D30C BCS loc_4D450 .text:0004D310 MOV R8, R6 .text:0004D314 LDR R9, =types .text:0004D318 .text:0004D318 loc_4D318 ; CODE XREF: __tzfile_read+4DCj .text:0004D318 SUB R5, R11, #-var_58 .text:0004D31C MOV R4, #4 .text:0004D320 B loc_4D32C .text:0004D324 ; --------------------------------------------------------------------------- .text:0004D324 .text:0004D324 loc_4D324 ; CODE XREF: __tzfile_read+424j .text:0004D324 SUB R4, R4, #1 .text:0004D328 STRB R0, [R5],#1 .text:0004D32C .text:0004D32C loc_4D32C ; CODE XREF: __tzfile_read+3B0j .text:0004D32C CMP R4, #0 .text:0004D330 BEQ loc_4D398 .text:0004D334 LDMIB R7, {R2,R3} .text:0004D338 CMP R2, R3 .text:0004D33C BCC loc_4D388 .text:0004D340 MOV R0, R7 .text:0004D344 BL __uflow .text:0004D348 B loc_4D390 .text:0004D348 ; --------------------------------------------------------------------------- .text:0004D34C off_4D34C DCD __use_tzfile ; DATA XREF: __tzfile_read+Cr .text:0004D350 off_4D350 DCD transitions ; DATA XREF: __tzfile_read+14r .text:0004D350 ; __tzfile_read:loc_4CFACr ... .text:0004D354 off_4D354 DCD byte_62334 ; DATA XREF: __tzfile_read+48r .text:0004D354 ; __tzfile_read+78r .text:0004D358 off_4D358 DCD __libc_enable_secure ; DATA XREF: __tzfile_read+5Cr .text:0004D35C off_4D35C DCD default_tzdir.120 ; DATA XREF: __tzfile_read+90r .text:0004D35C ; __tzfile_read+E4r .text:0004D35C ; "/usr/local/arm/2.95.3/arm-linux/share/z"... .text:0004D360 off_4D360 DCD a__ ; DATA XREF: __tzfile_read:loc_4D014r .text:0004D360 ; "../" .text:0004D364 off_4D364 DCD aTzdir ; DATA XREF: __tzfile_read+C4r .text:0004D364 ; "TZDIR" .text:0004D368 off_4D368 DCD aR_1 ; DATA XREF: __tzfile_read:loc_4D0ACr .text:0004D368 ; "r" .text:0004D36C off_4D36C DCD num_transitions ; DATA XREF: __tzfile_read+174r .text:0004D36C ; __tzfile_read+2D8r ... .text:0004D370 off_4D370 DCD num_types ; DATA XREF: __tzfile_read+1D8r .text:0004D374 off_4D374 DCD num_leaps ; DATA XREF: __tzfile_read+1DCr .text:0004D378 off_4D378 DCD type_idxs ; DATA XREF: __tzfile_read+28Cr .text:0004D378 ; __tzfile_read+318r .text:0004D37C off_4D37C DCD types ; DATA XREF: __tzfile_read+298r .text:0004D37C ; __tzfile_read+3A4r .text:0004D380 off_4D380 DCD zone_names ; DATA XREF: __tzfile_read+2A8r .text:0004D384 off_4D384 DCD leaps ; DATA XREF: __tzfile_read+2B8r .text:0004D388 ; --------------------------------------------------------------------------- .text:0004D388 .text:0004D388 loc_4D388 ; CODE XREF: __tzfile_read+3CCj .text:0004D388 LDRB R0, [R2],#1 .text:0004D38C STR R2, [R7,#4] .text:0004D390 .text:0004D390 loc_4D390 ; CODE XREF: __tzfile_read+3D8j .text:0004D390 CMN R0, #1 .text:0004D394 BNE loc_4D324 .text:0004D398 .text:0004D398 loc_4D398 ; CODE XREF: __tzfile_read+3C0j .text:0004D398 CMP R4, #0 .text:0004D39C BNE loc_4D934 .text:0004D3A0 LDMIB R7, {R2,R3} .text:0004D3A4 CMP R2, R3 .text:0004D3A8 BCC loc_4D3B8 .text:0004D3AC MOV R0, R7 .text:0004D3B0 BL __uflow .text:0004D3B4 B loc_4D3C4 .text:0004D3B8 ; --------------------------------------------------------------------------- .text:0004D3B8 .text:0004D3B8 loc_4D3B8 ; CODE XREF: __tzfile_read+438j .text:0004D3B8 LDRB R3, [R2],#1 .text:0004D3BC MOV R0, R3 .text:0004D3C0 STR R2, [R7,#4] .text:0004D3C4 .text:0004D3C4 loc_4D3C4 ; CODE XREF: __tzfile_read+444j .text:0004D3C4 CMP R0, #1 .text:0004D3C8 BHI loc_4D934 .text:0004D3CC LDR R1, =types .text:0004D3D0 LDR R3, [R1] .text:0004D3D4 ADD R3, R8, R3 .text:0004D3D8 STRB R0, [R3,#4] .text:0004D3DC LDMIB R7, {R2,R3} .text:0004D3E0 CMP R2, R3 .text:0004D3E4 BCC loc_4D3F4 .text:0004D3E8 MOV R0, R7 .text:0004D3EC BL __uflow .text:0004D3F0 B loc_4D400 .text:0004D3F4 ; --------------------------------------------------------------------------- .text:0004D3F4 .text:0004D3F4 loc_4D3F4 ; CODE XREF: __tzfile_read+474j .text:0004D3F4 LDRB R3, [R2],#1 .text:0004D3F8 MOV R0, R3 .text:0004D3FC STR R2, [R7,#4] .text:0004D400 .text:0004D400 loc_4D400 ; CODE XREF: __tzfile_read+480j .text:0004D400 LDR R2, [R11,#var_70] .text:0004D404 CMP R0, R2 .text:0004D408 BHI loc_4D934 .text:0004D40C LDR R3, [R9] .text:0004D410 ADD R3, R8, R3 .text:0004D414 STRB R0, [R3,#5] .text:0004D418 LDR R1, [R11,#var_58] .text:0004D41C AND R3, R1, #0xFF0000 .text:0004D420 MOV R3, R3,LSR#8 .text:0004D424 ORR R3, R3, R1,LSR#24 .text:0004D428 AND R2, R1, #0xFF00 .text:0004D42C ORR R3, R3, R2,LSL#8 .text:0004D430 LDR R0, [R9] .text:0004D434 ORR R3, R3, R1,LSL#24 .text:0004D438 STR R3, [R8,R0] .text:0004D43C ADD R6, R6, #1 .text:0004D440 LDR R3, [R10] .text:0004D444 ADD R8, R8, #8 .text:0004D448 CMP R6, R3 .text:0004D44C BCC loc_4D318 .text:0004D450 .text:0004D450 loc_4D450 ; CODE XREF: __tzfile_read+39Cj .text:0004D450 LDR R3, =zone_names .text:0004D454 LDR R0, [R3] .text:0004D458 MOV R1, #1 .text:0004D45C LDR R2, [R11,#var_70] .text:0004D460 MOV R3, R7 .text:0004D464 BL fread_unlocked .text:0004D468 LDR R1, [R11,#var_70] .text:0004D46C CMP R0, R1 .text:0004D470 BNE loc_4D934 .text:0004D474 LDR R2, =num_leaps .text:0004D478 LDR R3, [R2] .text:0004D47C MOV R6, #0 .text:0004D480 CMP R6, R3 .text:0004D484 BCS loc_4D598 .text:0004D488 SUB R9, R11, #-var_5C .text:0004D48C MOV R8, R6 .text:0004D490 .text:0004D490 loc_4D490 ; CODE XREF: __tzfile_read+624j .text:0004D490 SUB R5, R11, #-var_5C .text:0004D494 MOV R4, #4 .text:0004D498 B loc_4D4A4 .text:0004D49C ; --------------------------------------------------------------------------- .text:0004D49C .text:0004D49C loc_4D49C ; CODE XREF: __tzfile_read+560j .text:0004D49C SUB R4, R4, #1 .text:0004D4A0 STRB R0, [R5],#1 .text:0004D4A4 .text:0004D4A4 loc_4D4A4 ; CODE XREF: __tzfile_read+528j .text:0004D4A4 CMP R4, #0 .text:0004D4A8 BEQ loc_4D4D4 .text:0004D4AC LDMIB R7, {R2,R3} .text:0004D4B0 CMP R2, R3 .text:0004D4B4 BCC loc_4D4C4 .text:0004D4B8 MOV R0, R7 .text:0004D4BC BL __uflow .text:0004D4C0 B loc_4D4CC .text:0004D4C4 ; --------------------------------------------------------------------------- .text:0004D4C4 .text:0004D4C4 loc_4D4C4 ; CODE XREF: __tzfile_read+544j .text:0004D4C4 LDRB R0, [R2],#1 .text:0004D4C8 STR R2, [R7,#4] .text:0004D4CC .text:0004D4CC loc_4D4CC ; CODE XREF: __tzfile_read+550j .text:0004D4CC CMN R0, #1 .text:0004D4D0 BNE loc_4D49C .text:0004D4D4 .text:0004D4D4 loc_4D4D4 ; CODE XREF: __tzfile_read+538j .text:0004D4D4 RSB R3, R4, #4 .text:0004D4D8 CMP R3, #4 .text:0004D4DC BNE loc_4D934 .text:0004D4E0 LDR R0, [R11,#var_5C] .text:0004D4E4 MOV R4, R3 .text:0004D4E8 AND R3, R0, #0xFF0000 .text:0004D4EC MOV R3, R3,LSR#8 .text:0004D4F0 ORR R3, R3, R0,LSR#24 .text:0004D4F4 AND R2, R0, #0xFF00 .text:0004D4F8 ORR R3, R3, R2,LSL#8 .text:0004D4FC LDR R2, =leaps .text:0004D500 MOV R5, R9 .text:0004D504 LDR R1, [R2] .text:0004D508 ORR R3, R3, R0,LSL#24 .text:0004D50C STR R3, [R1,R6,LSL#3] .text:0004D510 B loc_4D51C .text:0004D514 ; --------------------------------------------------------------------------- .text:0004D514 .text:0004D514 loc_4D514 ; CODE XREF: __tzfile_read+5D8j .text:0004D514 SUB R4, R4, #1 .text:0004D518 STRB R0, [R5],#1 .text:0004D51C .text:0004D51C loc_4D51C ; CODE XREF: __tzfile_read+5A0j .text:0004D51C CMP R4, #0 .text:0004D520 BEQ loc_4D54C .text:0004D524 LDMIB R7, {R2,R3} .text:0004D528 CMP R2, R3 .text:0004D52C BCC loc_4D53C .text:0004D530 MOV R0, R7 .text:0004D534 BL __uflow .text:0004D538 B loc_4D544 .text:0004D53C ; --------------------------------------------------------------------------- .text:0004D53C .text:0004D53C loc_4D53C ; CODE XREF: __tzfile_read+5BCj .text:0004D53C LDRB R0, [R2],#1 .text:0004D540 STR R2, [R7,#4] .text:0004D544 .text:0004D544 loc_4D544 ; CODE XREF: __tzfile_read+5C8j .text:0004D544 CMN R0, #1 .text:0004D548 BNE loc_4D514 .text:0004D54C .text:0004D54C loc_4D54C ; CODE XREF: __tzfile_read+5B0j .text:0004D54C CMP R4, #0 .text:0004D550 BNE loc_4D934 .text:0004D554 LDR R0, [R11,#var_5C] .text:0004D558 AND R3, R0, #0xFF0000 .text:0004D55C MOV R3, R3,LSR#8 .text:0004D560 ORR R3, R3, R0,LSR#24 .text:0004D564 AND R2, R0, #0xFF00 .text:0004D568 ORR R3, R3, R2,LSL#8 .text:0004D56C LDR R2, =leaps .text:0004D570 LDR R1, [R2] .text:0004D574 ORR R3, R3, R0,LSL#24 .text:0004D578 ADD R1, R8, R1 .text:0004D57C STR R3, [R1,#4] .text:0004D580 LDR R1, =num_leaps .text:0004D584 ADD R6, R6, #1 .text:0004D588 LDR R3, [R1] .text:0004D58C ADD R8, R8, #8 .text:0004D590 CMP R6, R3 .text:0004D594 BCC loc_4D490 .text:0004D598 .text:0004D598 loc_4D598 ; CODE XREF: __tzfile_read+514j .text:0004D598 LDR R2, [R11,#var_68] .text:0004D59C MOV R6, #0 .text:0004D5A0 CMP R6, R2 .text:0004D5A4 BCS loc_4D5FC .text:0004D5A8 .text:0004D5A8 loc_4D5A8 ; CODE XREF: __tzfile_read+688j .text:0004D5A8 LDMIB R7, {R1,R3} .text:0004D5AC CMP R1, R3 .text:0004D5B0 BCC loc_4D5C0 .text:0004D5B4 MOV R0, R7 .text:0004D5B8 BL __uflow .text:0004D5BC B loc_4D5CC .text:0004D5C0 ; --------------------------------------------------------------------------- .text:0004D5C0 .text:0004D5C0 loc_4D5C0 ; CODE XREF: __tzfile_read+640j .text:0004D5C0 LDRB R3, [R1],#1 .text:0004D5C4 MOV R0, R3 .text:0004D5C8 STR R1, [R7,#4] .text:0004D5CC .text:0004D5CC loc_4D5CC ; CODE XREF: __tzfile_read+64Cj .text:0004D5CC CMN R0, #1 .text:0004D5D0 BEQ loc_4D934 .text:0004D5D4 LDR R1, =types .text:0004D5D8 LDR R3, [R1] .text:0004D5DC SUBS R2, R0, #0 .text:0004D5E0 MOVNE R2, #1 .text:0004D5E4 LDR R1, [R11,#var_68] .text:0004D5E8 ADD R3, R3, R6,LSL#3 .text:0004D5EC ADD R6, R6, #1 .text:0004D5F0 CMP R6, R1 .text:0004D5F4 STRB R2, [R3,#6] .text:0004D5F8 BCC loc_4D5A8 .text:0004D5FC .text:0004D5FC loc_4D5FC ; CODE XREF: __tzfile_read+634j .text:0004D5FC LDR R3, [R10] .text:0004D600 CMP R6, R3 .text:0004D604 BCS loc_4D62C .text:0004D608 MOV R0, #0 .text:0004D60C LDR R1, =types .text:0004D610 .text:0004D610 loc_4D610 ; CODE XREF: __tzfile_read+6B8j .text:0004D610 LDR R3, [R1] .text:0004D614 ADD R3, R3, R6,LSL#3 .text:0004D618 STRB R0, [R3,#6] .text:0004D61C LDR R2, [R10] .text:0004D620 ADD R6, R6, #1 .text:0004D624 CMP R6, R2 .text:0004D628 BCC loc_4D610 .text:0004D62C .text:0004D62C loc_4D62C ; CODE XREF: __tzfile_read+694j .text:0004D62C LDR R2, [R11,#var_6C] .text:0004D630 MOV R6, #0 .text:0004D634 CMP R6, R2 .text:0004D638 BCS loc_4D6A0 .text:0004D63C .text:0004D63C loc_4D63C ; CODE XREF: __tzfile_read+72Cj .text:0004D63C LDMIB R7, {R1,R3} .text:0004D640 CMP R1, R3 .text:0004D644 BCC loc_4D664 .text:0004D648 MOV R0, R7 .text:0004D64C BL __uflow .text:0004D650 B loc_4D670 .text:0004D650 ; --------------------------------------------------------------------------- .text:0004D654 off_4D654 DCD types ; DATA XREF: __tzfile_read+45Cr .text:0004D654 ; __tzfile_read+664r ... .text:0004D658 off_4D658 DCD zone_names ; DATA XREF: __tzfile_read:loc_4D450r .text:0004D65C off_4D65C DCD num_leaps ; DATA XREF: __tzfile_read+504r .text:0004D65C ; __tzfile_read+610r .text:0004D660 off_4D660 DCD leaps ; DATA XREF: __tzfile_read+58Cr .text:0004D660 ; __tzfile_read+5FCr .text:0004D664 ; --------------------------------------------------------------------------- .text:0004D664 .text:0004D664 loc_4D664 ; CODE XREF: __tzfile_read+6D4j .text:0004D664 LDRB R3, [R1],#1 .text:0004D668 MOV R0, R3 .text:0004D66C STR R1, [R7,#4] .text:0004D670 .text:0004D670 loc_4D670 ; CODE XREF: __tzfile_read+6E0j .text:0004D670 CMN R0, #1 .text:0004D674 BEQ loc_4D934 .text:0004D678 LDR R1, =types .text:0004D67C LDR R3, [R1] .text:0004D680 SUBS R2, R0, #0 .text:0004D684 MOVNE R2, #1 .text:0004D688 LDR R1, [R11,#var_6C] .text:0004D68C ADD R3, R3, R6,LSL#3 .text:0004D690 ADD R6, R6, #1 .text:0004D694 CMP R6, R1 .text:0004D698 STRB R2, [R3,#7] .text:0004D69C BCC loc_4D63C .text:0004D6A0 .text:0004D6A0 loc_4D6A0 ; CODE XREF: __tzfile_read+6C8j .text:0004D6A0 LDR R3, [R10] .text:0004D6A4 LDR R5, =tzname .text:0004D6A8 LDR R9, =rule_stdoff .text:0004D6AC LDR R8, =rule_dstoff .text:0004D6B0 CMP R6, R3 .text:0004D6B4 BCS loc_4D6DC .text:0004D6B8 MOV R0, #0 .text:0004D6BC LDR R1, =types .text:0004D6C0 .text:0004D6C0 loc_4D6C0 ; CODE XREF: __tzfile_read+768j .text:0004D6C0 LDR R3, [R1] .text:0004D6C4 ADD R3, R3, R6,LSL#3 .text:0004D6C8 STRB R0, [R3,#7] .text:0004D6CC LDR R2, [R10] .text:0004D6D0 ADD R6, R6, #1 .text:0004D6D4 CMP R6, R2 .text:0004D6D8 BCC loc_4D6C0 .text:0004D6DC .text:0004D6DC loc_4D6DC ; CODE XREF: __tzfile_read+744j .text:0004D6DC MOV R0, R7 .text:0004D6E0 BL fclose .text:0004D6E4 LDR R3, [R10] .text:0004D6E8 MOV R6, #0 .text:0004D6EC CMP R6, R3 .text:0004D6F0 BCS loc_4D724 .text:0004D6F4 .text:0004D6F4 loc_4D6F4 ; CODE XREF: __tzfile_read+7B0j .text:0004D6F4 LDR R2, =types .text:0004D6F8 LDR R3, [R2] .text:0004D6FC ADD R3, R3, R6,LSL#3 .text:0004D700 LDRB R2, [R3,#5] .text:0004D704 LDR R3, =zone_names .text:0004D708 LDR R0, [R3] .text:0004D70C ADD R0, R0, R2 .text:0004D710 BL __tzstring .text:0004D714 LDR R3, [R10] .text:0004D718 ADD R6, R6, #1 .text:0004D71C CMP R6, R3 .text:0004D720 BCC loc_4D6F4 .text:0004D724 .text:0004D724 loc_4D724 ; CODE XREF: __tzfile_read+780j .text:0004D724 MOV R3, #0 .text:0004D728 STR R3, [R5] .text:0004D72C LDR R1, =num_transitions .text:0004D730 LDR R6, [R1] .text:0004D734 STR R3, [R5,#4] .text:0004D738 CMP R6, R3 .text:0004D73C BEQ loc_4D7A0 .text:0004D740 .text:0004D740 loc_4D740 ; CODE XREF: __tzfile_read+82Cj .text:0004D740 LDR R3, =type_idxs .text:0004D744 LDR R2, [R3] .text:0004D748 SUB R6, R6, #1 .text:0004D74C LDRB R1, [R2,R6] .text:0004D750 LDR R2, =types .text:0004D754 LDR R3, [R2] .text:0004D758 ADD R2, R3, R1,LSL#3 .text:0004D75C LDRB R7, [R2,#4] .text:0004D760 MOV R4, R7,LSL#2 .text:0004D764 LDR R3, [R4,R5] .text:0004D768 CMP R3, #0 .text:0004D76C BNE loc_4D798 .text:0004D770 LDR R1, =zone_names .text:0004D774 LDRB R3, [R2,#5] .text:0004D778 LDR R0, [R1] .text:0004D77C ADD R0, R0, R3 .text:0004D780 BL __tzstring .text:0004D784 STR R0, [R4,R5] .text:0004D788 RSB R3, R7, #1 .text:0004D78C LDR R2, [R5,R3,LSL#2] .text:0004D790 CMP R2, #0 .text:0004D794 BNE loc_4D7A0 .text:0004D798 .text:0004D798 loc_4D798 ; CODE XREF: __tzfile_read+7FCj .text:0004D798 CMP R6, #0 .text:0004D79C BNE loc_4D740 .text:0004D7A0 .text:0004D7A0 loc_4D7A0 ; CODE XREF: __tzfile_read+7CCj .text:0004D7A0 ; __tzfile_read+824j .text:0004D7A0 LDR R3, [R5] .text:0004D7A4 CMP R3, #0 .text:0004D7A8 BNE loc_4D7E0 .text:0004D7AC LDR R3, [R10] .text:0004D7B0 CMP R3, #1 .text:0004D7B4 BEQ loc_4D7D0 .text:0004D7B8 LDR R0, =aNum_types1 ; "num_types == 1" .text:0004D7BC LDR R1, =aTzfile_c ; "tzfile.c" .text:0004D7C0 MOV R2, #0x12C .text:0004D7C4 LDR R3, =a__tzfile_read ; "__tzfile_read" .text:0004D7C8 ADD R2, R2, #3 .text:0004D7CC BL __assert_fail .text:0004D7D0 ; --------------------------------------------------------------------------- .text:0004D7D0 .text:0004D7D0 loc_4D7D0 ; CODE XREF: __tzfile_read+844j .text:0004D7D0 LDR R2, =zone_names .text:0004D7D4 LDR R0, [R2] .text:0004D7D8 BL __tzstring .text:0004D7DC STR R0, [R5] .text:0004D7E0 .text:0004D7E0 loc_4D7E0 ; CODE XREF: __tzfile_read+838j .text:0004D7E0 LDR R3, [R5,#4] .text:0004D7E4 CMP R3, #0 .text:0004D7E8 LDREQ R3, [R5] .text:0004D7EC STREQ R3, [R5,#4] .text:0004D7F0 LDR R0, [R11,#var_70] .text:0004D7F4 BL compute_tzname_max .text:0004D7F8 LDR R3, =num_transitions .text:0004D7FC LDR R2, [R3] .text:0004D800 CMP R2, #0 .text:0004D804 BNE loc_4D820 .text:0004D808 LDR R1, =types .text:0004D80C LDR R3, [R1] .text:0004D810 LDR R2, [R3] .text:0004D814 STR R2, [R8] .text:0004D818 STR R2, [R9] .text:0004D81C B loc_4D8CC .text:0004D820 ; --------------------------------------------------------------------------- .text:0004D820 .text:0004D820 loc_4D820 ; CODE XREF: __tzfile_read+894j .text:0004D820 MOV R12, #0 .text:0004D824 STR R12, [R8] .text:0004D828 STR R12, [R9] .text:0004D82C MOV LR, R12 .text:0004D830 SUB R6, R2, #1 .text:0004D834 MOV R10, R9 .text:0004D838 LDR R5, =type_idxs .text:0004D83C MOV R7, R8 .text:0004D840 LDR R4, =types .text:0004D844 .text:0004D844 loc_4D844 ; CODE XREF: __tzfile_read+94Cj .text:0004D844 CMP LR, #0 .text:0004D848 BNE loc_4D878 .text:0004D84C LDR R3, [R5] .text:0004D850 LDRB R2, [R3,R6] .text:0004D854 LDR R0, [R4] .text:0004D858 MOV R1, R2,LSL#3 .text:0004D85C ADD R3, R1, R0 .text:0004D860 LDRB R2, [R3,#4] .text:0004D864 CMP R2, #0 .text:0004D868 LDREQ R3, [R1,R0] .text:0004D86C MOVEQ LR, #1 .text:0004D870 STREQ R3, [R10] .text:0004D874 BEQ loc_4D8A8 .text:0004D878 .text:0004D878 loc_4D878 ; CODE XREF: __tzfile_read+8D8j .text:0004D878 CMP R12, #0 .text:0004D87C BNE loc_4D8A8 .text:0004D880 LDR R3, [R5] .text:0004D884 LDRB R2, [R3,R6] .text:0004D888 LDR R0, [R4] .text:0004D88C MOV R1, R2,LSL#3 .text:0004D890 ADD R3, R1, R0 .text:0004D894 LDRB R2, [R3,#4] .text:0004D898 CMP R2, #0 .text:0004D89C LDRNE R3, [R1,R0] .text:0004D8A0 MOVNE R12, #1 .text:0004D8A4 STRNE R3, [R7] .text:0004D8A8 .text:0004D8A8 loc_4D8A8 ; CODE XREF: __tzfile_read+904j .text:0004D8A8 ; __tzfile_read+90Cj .text:0004D8A8 TST LR, R12 .text:0004D8AC BNE loc_4D8C0 .text:0004D8B0 MOV R3, R6 .text:0004D8B4 SUB R6, R6, #1 .text:0004D8B8 CMP R3, #0 .text:0004D8BC BNE loc_4D844 .text:0004D8C0 .text:0004D8C0 loc_4D8C0 ; CODE XREF: __tzfile_read+93Cj .text:0004D8C0 CMP R12, #0 .text:0004D8C4 LDREQ R3, [R9] .text:0004D8C8 STREQ R3, [R8] .text:0004D8CC .text:0004D8CC loc_4D8CC ; CODE XREF: __tzfile_read+8ACj .text:0004D8CC LDR R2, =__use_tzfile .text:0004D8D0 MOV R3, #1 .text:0004D8D4 STR R3, [R2] .text:0004D8D8 LDR R3, [R8] .text:0004D8DC LDR R1, [R9] .text:0004D8E0 LDR R2, =daylight .text:0004D8E4 SUBS R3, R1, R3 .text:0004D8E8 MOVNE R3, #1 .text:0004D8EC STR R3, [R2] .text:0004D8F0 LDR R3, =timezone .text:0004D8F4 RSB R1, R1, #0 .text:0004D8F8 STR R1, [R3] .text:0004D8FC B locret_4D93C .text:0004D8FC ; --------------------------------------------------------------------------- .text:0004D900 off_4D900 DCD types ; DATA XREF: __tzfile_read+708r .text:0004D900 ; __tzfile_read+74Cr ... .text:0004D904 off_4D904 DCD tzname ; DATA XREF: __tzfile_read+734r .text:0004D908 off_4D908 DCD rule_stdoff ; DATA XREF: __tzfile_read+738r .text:0004D90C off_4D90C DCD rule_dstoff ; DATA XREF: __tzfile_read+73Cr .text:0004D910 off_4D910 DCD zone_names ; DATA XREF: __tzfile_read+794r .text:0004D910 ; __tzfile_read+800r ... .text:0004D914 off_4D914 DCD num_transitions ; DATA XREF: __tzfile_read+7BCr .text:0004D914 ; __tzfile_read+888r .text:0004D918 off_4D918 DCD type_idxs ; DATA XREF: __tzfile_read:loc_4D740r .text:0004D918 ; __tzfile_read+8C8r .text:0004D91C off_4D91C DCD aNum_types1 ; DATA XREF: __tzfile_read+848r .text:0004D91C ; "num_types == 1" .text:0004D920 off_4D920 DCD aTzfile_c ; DATA XREF: __tzfile_read+84Cr .text:0004D920 ; "tzfile.c" .text:0004D924 off_4D924 DCD a__tzfile_read ; DATA XREF: __tzfile_read+854r .text:0004D924 ; "__tzfile_read" .text:0004D928 off_4D928 DCD __use_tzfile ; DATA XREF: __tzfile_read:loc_4D8CCr .text:0004D92C off_4D92C DCD daylight ; DATA XREF: __tzfile_read+970r .text:0004D930 off_4D930 DCD timezone ; DATA XREF: __tzfile_read+980r .text:0004D934 ; --------------------------------------------------------------------------- .text:0004D934 .text:0004D934 loc_4D934 ; CODE XREF: __tzfile_read+16Cj .text:0004D934 ; __tzfile_read+284j ... .text:0004D934 MOV R0, R7 .text:0004D938 BL fclose .text:0004D93C .text:0004D93C locret_4D93C ; CODE XREF: __tzfile_read+58j .text:0004D93C ; __tzfile_read+A0j ... .text:0004D93C LDMDB R11, {R4-R11,SP,PC} .text:0004D93C ; End of function __tzfile_read .text:0004D93C .text:0004D940 .text:0004D940 ; =============== S U B R O U T I N E ======================================= .text:0004D940 .text:0004D940 ; Attributes: bp-based frame .text:0004D940 .text:0004D940 EXPORT __tzfile_default .text:0004D940 __tzfile_default ; CODE XREF: tzset_internal+624p .text:0004D940 .text:0004D940 var_38 = -0x38 .text:0004D940 var_34 = -0x34 .text:0004D940 var_30 = -0x30 .text:0004D940 var_2C = -0x2C .text:0004D940 .text:0004D940 MOV R12, SP .text:0004D944 STMFD SP!, {R4-R12,LR,PC} .text:0004D948 SUB R11, R12, #4 .text:0004D94C SUB SP, SP, #0x10 .text:0004D950 STR R0, [R11,#var_30] .text:0004D954 STR R1, [R11,#var_34] .text:0004D958 MOV R7, R2 .text:0004D95C MOV R9, R3 .text:0004D960 BL strlen .text:0004D964 ADD R8, R0, #1 .text:0004D968 LDR R0, [R11,#var_34] .text:0004D96C BL strlen .text:0004D970 ADD R4, R0, #1 .text:0004D974 ADD R10, R8, R4 .text:0004D978 MOV R1, R10 .text:0004D97C LDR R0, =aPosixrules ; "posixrules" .text:0004D980 SUB R2, R11, #-var_2C .text:0004D984 BL __tzfile_read .text:0004D988 LDR R2, =__use_tzfile .text:0004D98C LDR R3, [R2] .text:0004D990 CMP R3, #0 .text:0004D994 BEQ locret_4DB38 .text:0004D998 LDR R5, =num_types .text:0004D99C LDR R3, [R5] .text:0004D9A0 CMP R3, #1 .text:0004D9A4 MOVLS R3, #0 .text:0004D9A8 STRLS R3, [R2] .text:0004D9AC BLS locret_4DB38 .text:0004D9B0 LDR R1, [R11,#var_30] .text:0004D9B4 LDR R0, [R11,#var_2C] .text:0004D9B8 MOV R2, R8 .text:0004D9BC BL mempcpy .text:0004D9C0 LDR R1, [R11,#var_34] .text:0004D9C4 MOV R2, R4 .text:0004D9C8 BL mempcpy .text:0004D9CC MOV R3, #2 .text:0004D9D0 STR R3, [R5] .text:0004D9D4 LDR R2, =zone_names .text:0004D9D8 LDR R3, [R11,#var_2C] .text:0004D9DC STR R3, [R2] .text:0004D9E0 LDR R1, =num_transitions .text:0004D9E4 LDR R6, =types .text:0004D9E8 MOV LR, #0 .text:0004D9EC LDR R3, [R1] .text:0004D9F0 MOV R4, LR .text:0004D9F4 STR R10, [R11,#var_38] .text:0004D9F8 CMP LR, R3 .text:0004D9FC BCS loc_4DABC .text:0004DA00 LDR R5, =transitions .text:0004DA04 LDR R10, =rule_dstoff .text:0004DA08 .text:0004DA08 loc_4DA08 ; CODE XREF: __tzfile_default+178j .text:0004DA08 LDR R2, =type_idxs .text:0004DA0C LDR R0, [R2] .text:0004DA10 LDR R2, =types .text:0004DA14 LDRB R1, [R0,LR] .text:0004DA18 LDR R3, [R2] .text:0004DA1C ADD R12, R3, R1,LSL#3 .text:0004DA20 LDRB R2, [R12,#4] .text:0004DA24 STRB R2, [R0,LR] .text:0004DA28 LDRB R3, [R12,#7] .text:0004DA2C CMP R3, #0 .text:0004DA30 BNE loc_4DAA4 .text:0004DA34 CMP R4, #0 .text:0004DA38 BEQ loc_4DA88 .text:0004DA3C LDRB R3, [R12,#6] .text:0004DA40 CMP R3, #0 .text:0004DA44 BNE loc_4DA88 .text:0004DA48 LDR R3, [R5] .text:0004DA4C LDR R2, [R10] .text:0004DA50 LDR R1, [R3,LR,LSL#2] .text:0004DA54 RSB R2, R2, R9 .text:0004DA58 ADD R1, R1, R2 .text:0004DA5C STR R1, [R3,LR,LSL#2] .text:0004DA60 B loc_4DAA4 .text:0004DA60 ; --------------------------------------------------------------------------- .text:0004DA64 off_4DA64 DCD aPosixrules ; DATA XREF: __tzfile_default+3Cr .text:0004DA64 ; "posixrules" .text:0004DA68 off_4DA68 DCD __use_tzfile ; DATA XREF: __tzfile_default+48r .text:0004DA6C off_4DA6C DCD num_types ; DATA XREF: __tzfile_default+58r .text:0004DA70 off_4DA70 DCD zone_names ; DATA XREF: __tzfile_default+94r .text:0004DA74 off_4DA74 DCD num_transitions ; DATA XREF: __tzfile_default+A0r .text:0004DA78 off_4DA78 DCD types ; DATA XREF: __tzfile_default+A4r .text:0004DA78 ; __tzfile_default+D0r .text:0004DA7C off_4DA7C DCD transitions ; DATA XREF: __tzfile_default+C0r .text:0004DA80 off_4DA80 DCD rule_dstoff ; DATA XREF: __tzfile_default+C4r .text:0004DA84 off_4DA84 DCD type_idxs ; DATA XREF: __tzfile_default:loc_4DA08r .text:0004DA88 ; --------------------------------------------------------------------------- .text:0004DA88 .text:0004DA88 loc_4DA88 ; CODE XREF: __tzfile_default+F8j .text:0004DA88 ; __tzfile_default+104j .text:0004DA88 LDR R1, =rule_stdoff .text:0004DA8C LDR R0, [R5] .text:0004DA90 LDR R3, [R1] .text:0004DA94 LDR R2, [R0,LR,LSL#2] .text:0004DA98 RSB R3, R3, R7 .text:0004DA9C ADD R2, R2, R3 .text:0004DAA0 STR R2, [R0,LR,LSL#2] .text:0004DAA4 .text:0004DAA4 loc_4DAA4 ; CODE XREF: __tzfile_default+F0j .text:0004DAA4 ; __tzfile_default+120j .text:0004DAA4 LDR R2, =num_transitions .text:0004DAA8 LDR R3, [R2] .text:0004DAAC ADD LR, LR, #1 .text:0004DAB0 LDRB R4, [R12,#4] .text:0004DAB4 CMP LR, R3 .text:0004DAB8 BCC loc_4DA08 .text:0004DABC .text:0004DABC loc_4DABC ; CODE XREF: __tzfile_default+BCj .text:0004DABC LDR R3, [R6] .text:0004DAC0 MOV R1, #0 .text:0004DAC4 STRB R1, [R3,#5] .text:0004DAC8 LDR R2, [R6] .text:0004DACC STR R7, [R2] .text:0004DAD0 STRB R1, [R2,#4] .text:0004DAD4 LDR R3, [R6] .text:0004DAD8 STRB R8, [R3,#0xD] .text:0004DADC LDR R2, [R6] .text:0004DAE0 ADD R1, R1, #8 .text:0004DAE4 STR R9, [R2,R1] .text:0004DAE8 MOV R3, #1 .text:0004DAEC ADD R2, R2, R1 .text:0004DAF0 STRB R3, [R2,#4] .text:0004DAF4 LDR R2, [R11,#var_30] .text:0004DAF8 LDR R3, =tzname .text:0004DAFC STR R2, [R3] .text:0004DB00 LDR R2, [R11,#var_34] .text:0004DB04 STR R2, [R3,#(tzname+4 - 0x6C1E8)] .text:0004DB08 LDR R2, [R6] .text:0004DB0C LDR R3, [R2] .text:0004DB10 LDR R2, =timezone .text:0004DB14 RSB R3, R3, #0 .text:0004DB18 STR R3, [R2] .text:0004DB1C LDR R0, [R11,#var_38] .text:0004DB20 BL compute_tzname_max .text:0004DB24 B locret_4DB38 .text:0004DB24 ; --------------------------------------------------------------------------- .text:0004DB28 off_4DB28 DCD rule_stdoff ; DATA XREF: __tzfile_default:loc_4DA88r .text:0004DB2C off_4DB2C DCD num_transitions ; DATA XREF: __tzfile_default:loc_4DAA4r .text:0004DB30 off_4DB30 DCD tzname ; DATA XREF: __tzfile_default+1B8r .text:0004DB34 off_4DB34 DCD timezone ; DATA XREF: __tzfile_default+1D0r .text:0004DB38 ; --------------------------------------------------------------------------- .text:0004DB38 .text:0004DB38 locret_4DB38 ; CODE XREF: __tzfile_default+54j .text:0004DB38 ; __tzfile_default+6Cj ... .text:0004DB38 LDMDB R11, {R4-R11,SP,PC} .text:0004DB38 ; End of function __tzfile_default .text:0004DB38 .text:0004DB3C .text:0004DB3C ; =============== S U B R O U T I N E ======================================= .text:0004DB3C .text:0004DB3C ; Attributes: bp-based frame .text:0004DB3C .text:0004DB3C find_transition ; CODE XREF: __tzfile_compute+24p .text:0004DB3C MOV R12, SP .text:0004DB40 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004DB44 LDR R3, =num_transitions .text:0004DB48 LDR R2, [R3] .text:0004DB4C SUB R11, R12, #4 .text:0004DB50 CMP R2, #0 .text:0004DB54 BEQ loc_4DB6C .text:0004DB58 LDR LR, =transitions .text:0004DB5C LDR R12, [LR] .text:0004DB60 LDR R3, [R12] .text:0004DB64 CMP R0, R3 .text:0004DB68 BGE loc_4DBCC .text:0004DB6C .text:0004DB6C loc_4DB6C ; CODE XREF: find_transition+18j .text:0004DB6C LDR R3, =num_types .text:0004DB70 LDR R5, =types .text:0004DB74 MOV R1, #0 .text:0004DB78 LDR R12, [R3] .text:0004DB7C MOV R4, R3 .text:0004DB80 CMP R1, R12 .text:0004DB84 BCS loc_4DBBC .text:0004DB88 LDR R3, [R5] .text:0004DB8C LDRB R2, [R3,#4] .text:0004DB90 MOV LR, R5 .text:0004DB94 CMP R2, R1 .text:0004DB98 BEQ loc_4DBBC .text:0004DB9C .text:0004DB9C loc_4DB9C ; CODE XREF: find_transition+7Cj .text:0004DB9C ADD R1, R1, #1 .text:0004DBA0 CMP R1, R12 .text:0004DBA4 BCS loc_4DBBC .text:0004DBA8 LDR R3, [LR] .text:0004DBAC ADD R3, R3, R1,LSL#3 .text:0004DBB0 LDRB R2, [R3,#4] .text:0004DBB4 CMP R2, #0 .text:0004DBB8 BNE loc_4DB9C .text:0004DBBC .text:0004DBBC loc_4DBBC ; CODE XREF: find_transition+48j .text:0004DBBC ; find_transition+5Cj ... .text:0004DBBC LDR R3, [R4] .text:0004DBC0 CMP R1, R3 .text:0004DBC4 MOVEQ R1, #0 .text:0004DBC8 B loc_4DC18 .text:0004DBCC ; --------------------------------------------------------------------------- .text:0004DBCC .text:0004DBCC loc_4DBCC ; CODE XREF: find_transition+2Cj .text:0004DBCC MOV R1, #1 .text:0004DBD0 LDR R5, =types .text:0004DBD4 CMP R1, R2 .text:0004DBD8 LDR R4, =type_idxs .text:0004DBDC BCS loc_4DC0C .text:0004DBE0 LDR R3, [R12,#4] .text:0004DBE4 CMP R0, R3 .text:0004DBE8 BLT loc_4DC0C .text:0004DBEC MOV R12, R2 .text:0004DBF0 .text:0004DBF0 loc_4DBF0 ; CODE XREF: find_transition+CCj .text:0004DBF0 ADD R1, R1, #1 .text:0004DBF4 CMP R1, R12 .text:0004DBF8 BCS loc_4DC0C .text:0004DBFC LDR R3, [LR] .text:0004DC00 LDR R2, [R3,R1,LSL#2] .text:0004DC04 CMP R0, R2 .text:0004DC08 BGE loc_4DBF0 .text:0004DC0C .text:0004DC0C loc_4DC0C ; CODE XREF: find_transition+A0j .text:0004DC0C ; find_transition+ACj ... .text:0004DC0C LDR R3, [R4] .text:0004DC10 ADD R3, R1, R3 .text:0004DC14 LDRB R1, [R3,#-1] .text:0004DC18 .text:0004DC18 loc_4DC18 ; CODE XREF: find_transition+8Cj .text:0004DC18 LDR R0, [R5] .text:0004DC1C ADD R0, R0, R1,LSL#3 .text:0004DC20 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004DC20 ; End of function find_transition .text:0004DC20 .text:0004DC20 ; --------------------------------------------------------------------------- .text:0004DC24 off_4DC24 DCD num_transitions ; DATA XREF: find_transition+8r .text:0004DC28 off_4DC28 DCD transitions ; DATA XREF: find_transition+1Cr .text:0004DC2C off_4DC2C DCD num_types ; DATA XREF: find_transition:loc_4DB6Cr .text:0004DC30 off_4DC30 DCD types ; DATA XREF: find_transition+34r .text:0004DC30 ; find_transition+94r .text:0004DC34 off_4DC34 DCD type_idxs ; DATA XREF: find_transition+9Cr .text:0004DC38 .text:0004DC38 ; =============== S U B R O U T I N E ======================================= .text:0004DC38 .text:0004DC38 ; Attributes: bp-based frame .text:0004DC38 .text:0004DC38 EXPORT __tzfile_compute .text:0004DC38 __tzfile_compute ; CODE XREF: __tz_convert+88p .text:0004DC38 .text:0004DC38 var_30 = -0x30 .text:0004DC38 var_2C = -0x2C .text:0004DC38 arg_0 = 4 .text:0004DC38 .text:0004DC38 MOV R12, SP .text:0004DC3C STMFD SP!, {R4-R12,LR,PC} .text:0004DC40 SUB R11, R12, #4 .text:0004DC44 SUB SP, SP, #8 .text:0004DC48 STR R2, [R11,#var_2C] .text:0004DC4C CMP R1, #0 .text:0004DC50 MOV R9, R0 .text:0004DC54 STR R3, [R11,#var_30] .text:0004DC58 BEQ loc_4DDC0 .text:0004DC5C BL find_transition .text:0004DC60 LDR R4, =tzname .text:0004DC64 MOV R3, #0 .text:0004DC68 STR R3, [R4] .text:0004DC6C STR R3, [R4,#(tzname+4 - 0x6C1E8)] .text:0004DC70 LDR R12, =rule_dstoff .text:0004DC74 LDR R2, =rule_stdoff .text:0004DC78 LDR R3, [R12] .text:0004DC7C LDR R1, [R2] .text:0004DC80 LDR LR, =daylight .text:0004DC84 SUBS R3, R1, R3 .text:0004DC88 MOVNE R3, #1 .text:0004DC8C STR R3, [LR] .text:0004DC90 LDR R10, =zone_names .text:0004DC94 LDR R2, =num_transitions .text:0004DC98 MOV R8, R0 .text:0004DC9C LDR R3, =timezone .text:0004DCA0 MOV R7, R4 .text:0004DCA4 LDR R6, [R2] .text:0004DCA8 RSB R1, R1, #0 .text:0004DCAC STR R1, [R3] .text:0004DCB0 .text:0004DCB0 loc_4DCB0 ; CODE XREF: __tzfile_compute+B0j .text:0004DCB0 ; __tzfile_compute+D0j .text:0004DCB0 CMP R6, #0 .text:0004DCB4 BEQ loc_4DD0C .text:0004DCB8 LDR R3, =type_idxs .text:0004DCBC LDR R0, =types .text:0004DCC0 LDR R1, [R3] .text:0004DCC4 LDR R2, [R0] .text:0004DCC8 SUB R6, R6, #1 .text:0004DCCC LDRB R3, [R1,R6] .text:0004DCD0 ADD R2, R2, R3,LSL#3 .text:0004DCD4 LDRB R5, [R2,#4] .text:0004DCD8 MOV R4, R5,LSL#2 .text:0004DCDC LDR R3, [R4,R7] .text:0004DCE0 CMP R3, #0 .text:0004DCE4 LDRB R3, [R2,#5] .text:0004DCE8 BNE loc_4DCB0 .text:0004DCEC LDR R0, [R10] .text:0004DCF0 ADD R0, R0, R3 .text:0004DCF4 BL __tzstring .text:0004DCF8 STR R0, [R4,R7] .text:0004DCFC RSB R3, R5, #1 .text:0004DD00 LDR R2, [R7,R3,LSL#2] .text:0004DD04 CMP R2, #0 .text:0004DD08 BEQ loc_4DCB0 .text:0004DD0C .text:0004DD0C loc_4DD0C ; CODE XREF: __tzfile_compute+7Cj .text:0004DD0C LDR R3, [R7] .text:0004DD10 CMP R3, #0 .text:0004DD14 BNE loc_4DD80 .text:0004DD18 LDR R3, =num_types .text:0004DD1C LDR R2, [R3] .text:0004DD20 CMP R2, #1 .text:0004DD24 BEQ loc_4DD74 .text:0004DD28 LDR R0, =aNum_types1 ; "num_types == 1" .text:0004DD2C LDR R1, =aTzfile_c ; "tzfile.c" .text:0004DD30 MOV R2, #0x1EC .text:0004DD34 LDR R3, =a__tzfile_compu ; "__tzfile_compute" .text:0004DD38 ADD R2, R2, #2 .text:0004DD3C BL __assert_fail .text:0004DD3C ; --------------------------------------------------------------------------- .text:0004DD40 off_4DD40 DCD tzname ; DATA XREF: __tzfile_compute+28r .text:0004DD44 off_4DD44 DCD rule_dstoff ; DATA XREF: __tzfile_compute+38r .text:0004DD48 off_4DD48 DCD rule_stdoff ; DATA XREF: __tzfile_compute+3Cr .text:0004DD4C off_4DD4C DCD daylight ; DATA XREF: __tzfile_compute+48r .text:0004DD50 off_4DD50 DCD zone_names ; DATA XREF: __tzfile_compute+58r .text:0004DD54 off_4DD54 DCD num_transitions ; DATA XREF: __tzfile_compute+5Cr .text:0004DD58 off_4DD58 DCD timezone ; DATA XREF: __tzfile_compute+64r .text:0004DD5C off_4DD5C DCD type_idxs ; DATA XREF: __tzfile_compute+80r .text:0004DD60 off_4DD60 DCD types ; DATA XREF: __tzfile_compute+84r .text:0004DD64 off_4DD64 DCD num_types ; DATA XREF: __tzfile_compute+E0r .text:0004DD68 off_4DD68 DCD aNum_types1 ; DATA XREF: __tzfile_compute+F0r .text:0004DD68 ; "num_types == 1" .text:0004DD6C off_4DD6C DCD aTzfile_c ; DATA XREF: __tzfile_compute+F4r .text:0004DD6C ; "tzfile.c" .text:0004DD70 off_4DD70 DCD a__tzfile_compu ; DATA XREF: __tzfile_compute+FCr .text:0004DD70 ; "__tzfile_compute" .text:0004DD74 ; --------------------------------------------------------------------------- .text:0004DD74 .text:0004DD74 loc_4DD74 ; CODE XREF: __tzfile_compute+ECj .text:0004DD74 LDR R0, [R10] .text:0004DD78 BL __tzstring .text:0004DD7C STR R0, [R7] .text:0004DD80 .text:0004DD80 loc_4DD80 ; CODE XREF: __tzfile_compute+DCj .text:0004DD80 LDR R3, [R7,#4] .text:0004DD84 CMP R3, #0 .text:0004DD88 LDREQ R3, [R7] .text:0004DD8C STREQ R3, [R7,#4] .text:0004DD90 LDRB R3, [R8,#4] .text:0004DD94 LDR R2, [R11,#arg_0] .text:0004DD98 STR R3, [R2,#0x20] .text:0004DD9C LDRB R2, [R8,#5] .text:0004DDA0 LDR R0, [R10] .text:0004DDA4 ADD R0, R0, R2 .text:0004DDA8 BL __tzstring .text:0004DDAC LDR R3, [R11,#arg_0] .text:0004DDB0 STR R0, [R3,#0x28] .text:0004DDB4 LDR R2, [R11,#arg_0] .text:0004DDB8 LDR R3, [R8] .text:0004DDBC STR R3, [R2,#0x24] .text:0004DDC0 .text:0004DDC0 loc_4DDC0 ; CODE XREF: __tzfile_compute+20j .text:0004DDC0 LDR R2, [R11,#var_2C] .text:0004DDC4 MOV R3, #0 .text:0004DDC8 STR R3, [R2] .text:0004DDCC LDR R2, [R11,#var_30] .text:0004DDD0 STR R3, [R2] .text:0004DDD4 LDR R3, =num_leaps .text:0004DDD8 LDR R6, [R3] .text:0004DDDC LDR LR, =leaps .text:0004DDE0 MOV R1, R6,LSL#3 .text:0004DDE4 .text:0004DDE4 loc_4DDE4 ; CODE XREF: __tzfile_compute+1D0j .text:0004DDE4 SUB R1, R1, #8 .text:0004DDE8 SUB R6, R6, #1 .text:0004DDEC CMN R6, #1 .text:0004DDF0 BEQ loc_4DEF8 .text:0004DDF4 LDR R3, [LR] .text:0004DDF8 LDR R2, [R1,R3] .text:0004DDFC MOV R12, R1 .text:0004DE00 LDR R0, =leaps .text:0004DE04 CMP R9, R2 .text:0004DE08 BLT loc_4DDE4 .text:0004DE0C LDR R3, [R0] .text:0004DE10 ADD R3, R12, R3 .text:0004DE14 LDR R2, [R3,#4] .text:0004DE18 LDR R3, [R11,#var_2C] .text:0004DE1C STR R2, [R3] .text:0004DE20 LDR R2, [R0] .text:0004DE24 LDR R3, [R12,R2] .text:0004DE28 ADD R1, R12, R2 .text:0004DE2C CMP R9, R3 .text:0004DE30 BNE loc_4DEF8 .text:0004DE34 CMP R6, #0 .text:0004DE38 BNE loc_4DE48 .text:0004DE3C LDR R3, [R2,#4] .text:0004DE40 CMP R3, #0 .text:0004DE44 BGT loc_4DE58 .text:0004DE48 .text:0004DE48 loc_4DE48 ; CODE XREF: __tzfile_compute+200j .text:0004DE48 LDR R2, [R1,#4] .text:0004DE4C LDR R3, [R1,#-4] .text:0004DE50 CMP R2, R3 .text:0004DE54 BLE loc_4DEF8 .text:0004DE58 .text:0004DE58 loc_4DE58 ; CODE XREF: __tzfile_compute+20Cj .text:0004DE58 CMP R6, #0 .text:0004DE5C LDR R2, [R11,#var_30] .text:0004DE60 MOV R3, #1 .text:0004DE64 STR R3, [R2] .text:0004DE68 BEQ loc_4DEF8 .text:0004DE6C MOV R5, R0 .text:0004DE70 LDR R0, [R5] .text:0004DE74 MOV LR, 0xFFFFFFF8 .text:0004DE78 ADD R2, R12, R0 .text:0004DE7C LDR R3, [R2,LR] .text:0004DE80 LDR R1, [R12,R0] .text:0004DE84 ADD R3, R3, #1 .text:0004DE88 CMP R1, R3 .text:0004DE8C BNE loc_4DEF8 .text:0004DE90 MOV R7, R5 .text:0004DE94 MOV R4, LR .text:0004DE98 MOV LR, R12 .text:0004DE9C .text:0004DE9C loc_4DE9C ; CODE XREF: __tzfile_compute+2BCj .text:0004DE9C LDR R1, [R7] .text:0004DEA0 ADD R1, LR, R1 .text:0004DEA4 ADD R3, R1, R4 .text:0004DEA8 LDR R2, [R3,#4] .text:0004DEAC LDR R0, [R1,#4] .text:0004DEB0 ADD R2, R2, #1 .text:0004DEB4 CMP R0, R2 .text:0004DEB8 BNE loc_4DEF8 .text:0004DEBC LDR R2, [R11,#var_30] .text:0004DEC0 SUB LR, LR, #8 .text:0004DEC4 LDR R3, [R2] .text:0004DEC8 SUBS R6, R6, #1 .text:0004DECC ADD R3, R3, #1 .text:0004DED0 STR R3, [R2] .text:0004DED4 BEQ loc_4DEF8 .text:0004DED8 LDR R0, [R5] .text:0004DEDC MOV R12, LR .text:0004DEE0 ADD R3, R12, R0 .text:0004DEE4 LDR R2, [R3,R4] .text:0004DEE8 LDR R1, [R12,R0] .text:0004DEEC ADD R2, R2, #1 .text:0004DEF0 CMP R1, R2 .text:0004DEF4 BEQ loc_4DE9C .text:0004DEF8 .text:0004DEF8 loc_4DEF8 ; CODE XREF: __tzfile_compute+1B8j .text:0004DEF8 ; __tzfile_compute+1F8j ... .text:0004DEF8 MOV R0, #1 .text:0004DEFC B locret_4DF08 .text:0004DEFC ; --------------------------------------------------------------------------- .text:0004DF00 off_4DF00 DCD num_leaps ; DATA XREF: __tzfile_compute+19Cr .text:0004DF04 off_4DF04 DCD leaps ; DATA XREF: __tzfile_compute+1A4r .text:0004DF04 ; __tzfile_compute+1C8r .text:0004DF08 ; --------------------------------------------------------------------------- .text:0004DF08 .text:0004DF08 locret_4DF08 ; CODE XREF: __tzfile_compute+2C4j .text:0004DF08 LDMDB R11, {R4-R11,SP,PC} .text:0004DF08 ; End of function __tzfile_compute .text:0004DF08 .text:0004DF0C .text:0004DF0C ; =============== S U B R O U T I N E ======================================= .text:0004DF0C .text:0004DF0C ; Attributes: bp-based frame .text:0004DF0C .text:0004DF0C compute_tzname_max ; CODE XREF: __tzfile_read+884p .text:0004DF0C ; __tzfile_default+1E0p .text:0004DF0C MOV R12, SP .text:0004DF10 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004DF14 SUB R11, R12, #4 .text:0004DF18 LDR R12, =__tzname_cur_max .text:0004DF1C LDR R3, =zone_names .text:0004DF20 MOV R4, R12 .text:0004DF24 MOV LR, R3 .text:0004DF28 LDR R2, [R3] .text:0004DF2C .text:0004DF2C loc_4DF2C ; CODE XREF: compute_tzname_max+5Cj .text:0004DF2C LDRB R3, [R2] .text:0004DF30 MOV R1, R2 .text:0004DF34 CMP R3, #0 .text:0004DF38 BEQ loc_4DF48 .text:0004DF3C .text:0004DF3C loc_4DF3C ; CODE XREF: compute_tzname_max+38j .text:0004DF3C LDRB R3, [R2,#1]! .text:0004DF40 CMP R3, #0 .text:0004DF44 BNE loc_4DF3C .text:0004DF48 .text:0004DF48 loc_4DF48 ; CODE XREF: compute_tzname_max+2Cj .text:0004DF48 LDR R3, [R4] .text:0004DF4C RSB R1, R1, R2 .text:0004DF50 CMP R1, R3 .text:0004DF54 STRHI R1, [R12] .text:0004DF58 LDR R3, [LR] .text:0004DF5C ADD R2, R2, #1 .text:0004DF60 ADD R3, R3, R0 .text:0004DF64 CMP R2, R3 .text:0004DF68 BCC loc_4DF2C .text:0004DF6C LDMDB R11, {R4,R11,SP,PC} .text:0004DF6C ; End of function compute_tzname_max .text:0004DF6C .text:0004DF6C ; --------------------------------------------------------------------------- .text:0004DF70 off_4DF70 DCD __tzname_cur_max ; DATA XREF: compute_tzname_max+Cr .text:0004DF74 off_4DF74 DCD zone_names ; DATA XREF: compute_tzname_max+10r .text:0004DF78 .text:0004DF78 ; =============== S U B R O U T I N E ======================================= .text:0004DF78 .text:0004DF78 ; Attributes: bp-based frame .text:0004DF78 .text:0004DF78 freeres .text:0004DF78 MOV R12, SP .text:0004DF7C STMFD SP!, {R11,R12,LR,PC} .text:0004DF80 LDR R3, =transitions .text:0004DF84 LDR R0, [R3] .text:0004DF88 SUB R11, R12, #4 .text:0004DF8C CMP R0, #0 .text:0004DF90 LDMEQDB R11, {R11,SP,PC} .text:0004DF94 BL free .text:0004DF98 LDMDB R11, {R11,SP,PC} .text:0004DF98 ; End of function freeres .text:0004DF98 .text:0004DF98 ; --------------------------------------------------------------------------- .text:0004DF9C off_4DF9C DCD transitions ; DATA XREF: freeres+8r .text:0004DFA0 .text:0004DFA0 ; =============== S U B R O U T I N E ======================================= .text:0004DFA0 .text:0004DFA0 ; Attributes: bp-based frame .text:0004DFA0 .text:0004DFA0 tryopen_o_directory ; CODE XREF: opendir+44p .text:0004DFA0 MOV R12, SP .text:0004DFA4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004DFA8 SUB R11, R12, #4 .text:0004DFAC BL __errno_location .text:0004DFB0 LDR R4, [R0] .text:0004DFB4 LDR R0, =aDevNull_0 ; "/dev/null" .text:0004DFB8 MOV R1, #0x4800 .text:0004DFBC BL open .text:0004DFC0 CMP R0, #0 .text:0004DFC4 BLT loc_4DFD8 .text:0004DFC8 BL close .text:0004DFCC LDR R2, =o_directory_works .text:0004DFD0 MOV R3, 0xFFFFFFFF .text:0004DFD4 B loc_4DFF4 .text:0004DFD8 ; --------------------------------------------------------------------------- .text:0004DFD8 .text:0004DFD8 loc_4DFD8 ; CODE XREF: tryopen_o_directory+24j .text:0004DFD8 BL __errno_location .text:0004DFDC LDR R3, [R0] .text:0004DFE0 CMP R3, #0x14 .text:0004DFE4 LDRNE R2, =o_directory_works .text:0004DFE8 MOVNE R3, 0xFFFFFFFF .text:0004DFEC LDREQ R2, =o_directory_works .text:0004DFF0 MOVEQ R3, #1 .text:0004DFF4 .text:0004DFF4 loc_4DFF4 ; CODE XREF: tryopen_o_directory+34j .text:0004DFF4 STR R3, [R2] .text:0004DFF8 BL __errno_location .text:0004DFFC STR R4, [R0] .text:0004E000 LDMDB R11, {R4,R11,SP,PC} .text:0004E000 ; End of function tryopen_o_directory .text:0004E000 .text:0004E000 ; --------------------------------------------------------------------------- .text:0004E004 off_4E004 DCD aDevNull_0 ; DATA XREF: tryopen_o_directory+14r .text:0004E004 ; "/dev/null" .text:0004E008 off_4E008 DCD o_directory_works ; DATA XREF: tryopen_o_directory+2Cr .text:0004E008 ; tryopen_o_directory+44r ... .text:0004E00C .text:0004E00C ; =============== S U B R O U T I N E ======================================= .text:0004E00C .text:0004E00C ; Attributes: bp-based frame .text:0004E00C .text:0004E00C WEAK opendir .text:0004E00C opendir ; CODE XREF: generic_getcwd+204p .text:0004E00C .text:0004E00C var_78 = -0x78 .text:0004E00C var_68 = -0x68 .text:0004E00C var_44 = -0x44 .text:0004E00C .text:0004E00C MOV R12, SP .text:0004E010 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004E014 MOV R5, R0 .text:0004E018 SUB SP, SP, #0x60 .text:0004E01C LDRB R4, [R5] .text:0004E020 SUB R11, R12, #4 .text:0004E024 CMP R4, #0 .text:0004E028 BNE loc_4E03C .text:0004E02C BL __errno_location .text:0004E030 MOV R3, #2 .text:0004E034 STR R3, [R0] .text:0004E038 B loc_4E168 .text:0004E03C ; --------------------------------------------------------------------------- .text:0004E03C .text:0004E03C loc_4E03C ; CODE XREF: opendir+1Cj .text:0004E03C LDR R2, =o_directory_works .text:0004E040 LDR R3, [R2] .text:0004E044 MOV R4, R2 .text:0004E048 CMP R3, #0 .text:0004E04C BNE loc_4E054 .text:0004E050 BL tryopen_o_directory .text:0004E054 .text:0004E054 loc_4E054 ; CODE XREF: opendir+40j .text:0004E054 LDR R3, [R4] .text:0004E058 CMP R3, #0 .text:0004E05C BGE loc_4E09C .text:0004E060 MOV R0, #3 .text:0004E064 MOV R1, R5 .text:0004E068 SUB R2, R11, #-var_78 .text:0004E06C BL __xstat64 .text:0004E070 CMP R0, #0 .text:0004E074 BLT loc_4E094 .text:0004E078 LDR R3, [R11,#var_68] .text:0004E07C AND R3, R3, #0xF000 .text:0004E080 CMP R3, #0x4000 .text:0004E084 BEQ loc_4E09C .text:0004E088 BL __errno_location .text:0004E08C MOV R3, #0x14 .text:0004E090 STR R3, [R0] .text:0004E094 .text:0004E094 loc_4E094 ; CODE XREF: opendir+68j .text:0004E094 ; opendir+A0j ... .text:0004E094 MOV R0, #0 .text:0004E098 B loc_4E16C .text:0004E09C ; --------------------------------------------------------------------------- .text:0004E09C .text:0004E09C loc_4E09C ; CODE XREF: opendir+50j .text:0004E09C ; opendir+78j .text:0004E09C MOV R0, R5 .text:0004E0A0 MOV R1, #0x4800 .text:0004E0A4 BL open64 .text:0004E0A8 SUBS R6, R0, #0 .text:0004E0AC BLT loc_4E094 .text:0004E0B0 MOV R0, #3 .text:0004E0B4 MOV R1, R6 .text:0004E0B8 SUB R2, R11, #-var_78 .text:0004E0BC BL __fxstat64 .text:0004E0C0 CMP R0, #0 .text:0004E0C4 BLT loc_4E120 .text:0004E0C8 LDR R3, [R4] .text:0004E0CC CMP R3, #0 .text:0004E0D0 BGT loc_4E0E4 .text:0004E0D4 LDR R3, [R11,#var_68] .text:0004E0D8 AND R3, R3, #0xF000 .text:0004E0DC CMP R3, #0x4000 .text:0004E0E0 BNE loc_4E120 .text:0004E0E4 .text:0004E0E4 loc_4E0E4 ; CODE XREF: opendir+C4j .text:0004E0E4 MOV R0, R6 .text:0004E0E8 MOV R1, #2 .text:0004E0EC MOV R2, #1 .text:0004E0F0 BL fcntl .text:0004E0F4 CMP R0, #0 .text:0004E0F8 BLT loc_4E120 .text:0004E0FC LDR R3, [R11,#var_44] .text:0004E100 MOV R0, #1 .text:0004E104 CMP R3, #0x10C .text:0004E108 MOVCS R5, R3 .text:0004E10C MOVCC R5, #0x10C .text:0004E110 ADD R1, R5, #0x30 .text:0004E114 BL calloc .text:0004E118 SUBS R4, R0, #0 .text:0004E11C BNE loc_4E140 .text:0004E120 .text:0004E120 loc_4E120 ; CODE XREF: opendir+B8j .text:0004E120 ; opendir+D4j ... .text:0004E120 BL __errno_location .text:0004E124 LDR R4, [R0] .text:0004E128 MOV R0, R6 .text:0004E12C BL close .text:0004E130 BL __errno_location .text:0004E134 STR R4, [R0] .text:0004E138 B loc_4E094 .text:0004E138 ; --------------------------------------------------------------------------- .text:0004E13C off_4E13C DCD o_directory_works ; DATA XREF: opendir:loc_4E03Cr .text:0004E140 ; --------------------------------------------------------------------------- .text:0004E140 .text:0004E140 loc_4E140 ; CODE XREF: opendir+110j .text:0004E140 ADD R3, R4, #0x30 .text:0004E144 STMIB R4, {R3,R5} .text:0004E148 LDR R3, =0 .text:0004E14C STR R6, [R4] .text:0004E150 CMP R3, #0 .text:0004E154 BEQ loc_4E168 .text:0004E158 ADD R0, R4, #0x18 .text:0004E15C MOV R1, #0 .text:0004E160 MOV LR, PC .text:0004E164 MOV PC, R3 .text:0004E168 .text:0004E168 loc_4E168 ; CODE XREF: opendir+2Cj .text:0004E168 ; opendir+148j .text:0004E168 MOV R0, R4 .text:0004E16C .text:0004E16C loc_4E16C ; CODE XREF: opendir+8Cj .text:0004E16C B locret_4E174 .text:0004E16C ; --------------------------------------------------------------------------- .text:0004E170 off_4E170 DCD 0 ; DATA XREF: opendir+13Cr .text:0004E174 ; --------------------------------------------------------------------------- .text:0004E174 .text:0004E174 locret_4E174 ; CODE XREF: opendir:loc_4E16Cj .text:0004E174 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004E174 ; End of function opendir .text:0004E174 .text:0004E178 .text:0004E178 ; =============== S U B R O U T I N E ======================================= .text:0004E178 .text:0004E178 ; Attributes: bp-based frame .text:0004E178 .text:0004E178 WEAK closedir .text:0004E178 closedir ; CODE XREF: generic_getcwd+40Cp .text:0004E178 ; generic_getcwd+4B0p ... .text:0004E178 MOV R12, SP .text:0004E17C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004E180 SUB R11, R12, #4 .text:0004E184 SUBS R4, R0, #0 .text:0004E188 BNE loc_4E1A0 .text:0004E18C BL __errno_location .text:0004E190 MOV R3, #0x16 .text:0004E194 STR R3, [R0] .text:0004E198 MOV R0, 0xFFFFFFFF .text:0004E19C LDMDB R11, {R4,R5,R11,SP,PC} .text:0004E1A0 ; --------------------------------------------------------------------------- .text:0004E1A0 .text:0004E1A0 loc_4E1A0 ; CODE XREF: closedir+10j .text:0004E1A0 LDR R3, =0 .text:0004E1A4 CMP R3, #0 .text:0004E1A8 BEQ loc_4E1B8 .text:0004E1AC ADD R0, R4, #0x18 .text:0004E1B0 MOV LR, PC .text:0004E1B4 MOV PC, R3 .text:0004E1B8 .text:0004E1B8 loc_4E1B8 ; CODE XREF: closedir+30j .text:0004E1B8 LDR R3, =0 .text:0004E1BC LDR R5, [R4] .text:0004E1C0 CMP R3, #0 .text:0004E1C4 BEQ loc_4E1D4 .text:0004E1C8 ADD R0, R4, #0x18 .text:0004E1CC MOV LR, PC .text:0004E1D0 MOV PC, R3 .text:0004E1D4 .text:0004E1D4 loc_4E1D4 ; CODE XREF: closedir+4Cj .text:0004E1D4 MOV R0, R4 .text:0004E1D8 BL free .text:0004E1DC MOV R0, R5 .text:0004E1E0 BL close .text:0004E1E4 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004E1E4 ; End of function closedir .text:0004E1E4 .text:0004E1E4 ; --------------------------------------------------------------------------- .text:0004E1E8 off_4E1E8 DCD 0 ; DATA XREF: closedir:loc_4E1A0r .text:0004E1EC off_4E1EC DCD 0 ; DATA XREF: closedir:loc_4E1B8r .text:0004E1F0 .text:0004E1F0 ; =============== S U B R O U T I N E ======================================= .text:0004E1F0 .text:0004E1F0 ; Attributes: bp-based frame .text:0004E1F0 .text:0004E1F0 WEAK readdir .text:0004E1F0 readdir ; CODE XREF: generic_getcwd+330p .text:0004E1F0 MOV R12, SP ; Alternative name is '__readdir' .text:0004E1F4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004E1F8 SUB R11, R12, #4 .text:0004E1FC LDR R3, =0 .text:0004E200 MOV R4, R0 .text:0004E204 CMP R3, #0 .text:0004E208 BEQ loc_4E218 .text:0004E20C ADD R0, R4, #0x18 .text:0004E210 MOV LR, PC .text:0004E214 MOV PC, R3 .text:0004E218 .text:0004E218 loc_4E218 ; CODE XREF: readdir+18j .text:0004E218 LDR R6, =0 .text:0004E21C .text:0004E21C loc_4E21C ; CODE XREF: readdir+8Cj .text:0004E21C LDR R2, [R4,#0x10] .text:0004E220 LDR R3, [R4,#0xC] .text:0004E224 CMP R2, R3 .text:0004E228 BCC loc_4E24C .text:0004E22C LDMIA R4, {R0-R2} .text:0004E230 BL __getdents .text:0004E234 CMP R0, #0 .text:0004E238 MOVLE R5, #0 .text:0004E23C BLE loc_4E280 .text:0004E240 STR R0, [R4,#0xC] .text:0004E244 MOV R3, #0 .text:0004E248 STR R3, [R4,#0x10] .text:0004E24C .text:0004E24C loc_4E24C ; CODE XREF: readdir+38j .text:0004E24C LDR R0, [R4,#4] .text:0004E250 LDR R1, [R4,#0x10] .text:0004E254 ADD R5, R0, R1 .text:0004E258 LDRB R3, [R5,#8] .text:0004E25C LDRB R2, [R5,#9] .text:0004E260 ORR R3, R3, R2,LSL#8 .text:0004E264 ADD R3, R1, R3 .text:0004E268 STR R3, [R4,#0x10] .text:0004E26C LDR R2, [R5,#4] .text:0004E270 STR R2, [R4,#0x14] .text:0004E274 LDR R3, [R0,R1] .text:0004E278 CMP R3, #0 .text:0004E27C BEQ loc_4E21C .text:0004E280 .text:0004E280 loc_4E280 ; CODE XREF: readdir+4Cj .text:0004E280 CMP R6, #0 .text:0004E284 BEQ loc_4E294 .text:0004E288 ADD R0, R4, #0x18 .text:0004E28C MOV LR, PC .text:0004E290 MOV PC, R6 .text:0004E294 .text:0004E294 loc_4E294 ; CODE XREF: readdir+94j .text:0004E294 MOV R0, R5 .text:0004E298 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004E298 ; End of function readdir .text:0004E298 .text:0004E298 ; --------------------------------------------------------------------------- .text:0004E29C off_4E29C DCD 0 ; DATA XREF: readdir+Cr .text:0004E2A0 dword_4E2A0 DCD 0 ; DATA XREF: readdir:loc_4E218r .text:0004E2A4 .text:0004E2A4 ; =============== S U B R O U T I N E ======================================= .text:0004E2A4 .text:0004E2A4 ; Attributes: bp-based frame .text:0004E2A4 .text:0004E2A4 EXPORT __getdents .text:0004E2A4 __getdents ; CODE XREF: readdir+40p .text:0004E2A4 .text:0004E2A4 var_54 = -0x54 .text:0004E2A4 var_4C = -0x4C .text:0004E2A4 var_48 = -0x48 .text:0004E2A4 var_44 = -0x44 .text:0004E2A4 var_40 = -0x40 .text:0004E2A4 var_3C = -0x3C .text:0004E2A4 var_38 = -0x38 .text:0004E2A4 var_34 = -0x34 .text:0004E2A4 var_30 = -0x30 .text:0004E2A4 var_2C = -0x2C .text:0004E2A4 .text:0004E2A4 MOV R12, SP .text:0004E2A8 STMFD SP!, {R4-R12,LR,PC} .text:0004E2AC SUB R11, R12, #4 .text:0004E2B0 MOV R5, 0xFFFFFFFF .text:0004E2B4 MOV R4, 0xFFFFFFFF .text:0004E2B8 LDR LR, =__have_no_getdents64 .text:0004E2BC SUB SP, SP, #0x2C .text:0004E2C0 LDR R3, [LR] .text:0004E2C4 SUB R9, R11, #-var_30 .text:0004E2C8 STMDB R9, {R4,R5} .text:0004E2CC STR R0, [R11,#var_2C] .text:0004E2D0 MOV R8, R2 .text:0004E2D4 MOV R6, LR .text:0004E2D8 STR R1, [R11,#var_30] .text:0004E2DC CMP R3, #0 .text:0004E2E0 BNE loc_4E49C .text:0004E2E4 STR R1, [R11,#var_3C] .text:0004E2E8 BL __errno_location .text:0004E2EC MOV R2, R8 .text:0004E2F0 CMP R8, #0x10C .text:0004E2F4 LDR R5, [R0] .text:0004E2F8 BHI loc_4E310 .text:0004E2FC ADD R2, R8, #8 .text:0004E300 ADD R3, R8, #0xB .text:0004E304 BIC R3, R3, #3 .text:0004E308 RSB SP, R3, SP .text:0004E30C STR SP, [R11,#var_3C] .text:0004E310 .text:0004E310 loc_4E310 ; CODE XREF: __getdents+54j .text:0004E310 LDR R1, [R11,#var_3C] .text:0004E314 LDR R0, [R11,#var_2C] .text:0004E318 SVC 0x9000D9 .text:0004E31C STR R0, [R11,#var_40] .text:0004E320 CMN R0, #0x1000 .text:0004E324 BLS loc_4E340 .text:0004E328 BL __errno_location .text:0004E32C LDR R10, [R11,#var_40] .text:0004E330 RSB R3, R10, #0 .text:0004E334 MOV R12, 0xFFFFFFFF .text:0004E338 STR R12, [R11,#var_40] .text:0004E33C STR R3, [R0] .text:0004E340 .text:0004E340 loc_4E340 ; CODE XREF: __getdents+80j .text:0004E340 LDR R4, [R11,#var_40] .text:0004E344 CMN R4, #1 .text:0004E348 BEQ loc_4E48C .text:0004E34C BL __errno_location .text:0004E350 LDR R3, [R0] .text:0004E354 CMN R3, #0x16 .text:0004E358 BEQ loc_4E48C .text:0004E35C LDR R10, [R11,#var_3C] .text:0004E360 LDR R12, [R11,#var_30] .text:0004E364 ADD R3, R10, R4 .text:0004E368 CMP R10, R3 .text:0004E36C BCS loc_4E480 .text:0004E370 .text:0004E370 loc_4E370 ; CODE XREF: __getdents+1D8j .text:0004E370 LDRB R1, [R10,#0x10] .text:0004E374 MOV R3, R10 .text:0004E378 LDMIA R3!, {R4,R5} .text:0004E37C LDRB R2, [R10,#0x11] .text:0004E380 LDMIA R3, {R6,R7} .text:0004E384 LDRB R3, [R10,#0x12] .text:0004E388 STR R3, [R11,#var_48] .text:0004E38C MOV R8, R4 .text:0004E390 MOV R9, #0 .text:0004E394 CMP R8, R4 .text:0004E398 STR R4, [R12] .text:0004E39C ORR R2, R1, R2,LSL#8 .text:0004E3A0 SUB R3, R2, #5 .text:0004E3A4 STR R6, [R12,#4] .text:0004E3A8 BIC LR, R3, #3 .text:0004E3AC MOV R3, R6 .text:0004E3B0 STR R2, [R11,#var_44] .text:0004E3B4 BNE loc_4E3D8 .text:0004E3B8 CMP R9, R5 .text:0004E3BC BNE loc_4E3D8 .text:0004E3C0 MOV R2, R3 .text:0004E3C4 MOV R3, R2,ASR#31 .text:0004E3C8 CMP R2, R6 .text:0004E3CC BNE loc_4E3D8 .text:0004E3D0 CMP R3, R7 .text:0004E3D4 BEQ loc_4E42C .text:0004E3D8 .text:0004E3D8 loc_4E3D8 ; CODE XREF: __getdents+110j .text:0004E3D8 ; __getdents+118j ... .text:0004E3D8 LDR R4, [R11,#var_38] .text:0004E3DC CMN R4, #1 .text:0004E3E0 BNE loc_4E3F0 .text:0004E3E4 LDR R5, [R11,#var_34] .text:0004E3E8 CMN R5, #1 .text:0004E3EC BEQ loc_4E418 .text:0004E3F0 .text:0004E3F0 loc_4E3F0 ; CODE XREF: __getdents+13Cj .text:0004E3F0 SUB R9, R11, #-var_30 .text:0004E3F4 LDMDB R9, {R1,R2} .text:0004E3F8 STR R12, [R11,#var_4C] .text:0004E3FC LDR R0, [R11,#var_2C] .text:0004E400 MOV R3, #0 .text:0004E404 BL lseek64 .text:0004E408 LDR R12, [R11,#var_4C] .text:0004E40C LDR R10, [R11,#var_30] .text:0004E410 RSB R0, R10, R12 .text:0004E414 B locret_4E638 .text:0004E418 ; --------------------------------------------------------------------------- .text:0004E418 .text:0004E418 loc_4E418 ; CODE XREF: __getdents+148j .text:0004E418 BL __errno_location .text:0004E41C MOV R3, #0x4B .text:0004E420 STR R3, [R0] .text:0004E424 MOV R0, 0xFFFFFFFF .text:0004E428 B locret_4E638 .text:0004E42C ; --------------------------------------------------------------------------- .text:0004E42C .text:0004E42C loc_4E42C ; CODE XREF: __getdents+130j .text:0004E42C STRB LR, [R12,#8] .text:0004E430 MOV R3, LR,ASR#8 .text:0004E434 STRB R3, [R12,#9] .text:0004E438 SUB R1, R11, #-var_30 .text:0004E43C STMDB R1, {R6,R7} .text:0004E440 LDR R2, [R11,#var_48] .text:0004E444 STRB R2, [R12,#0xA] .text:0004E448 ADD R0, R12, #0xB .text:0004E44C ADD R12, R12, LR .text:0004E450 STR R12, [R11,#var_4C] .text:0004E454 LDR R3, [R11,#var_44] .text:0004E458 ADD R1, R10, #0x13 .text:0004E45C SUB R2, R3, #0x13 .text:0004E460 ADD R10, R10, R3 .text:0004E464 BL memmove .text:0004E468 LDR R4, [R11,#var_3C] .text:0004E46C LDR R5, [R11,#var_40] .text:0004E470 LDR R12, [R11,#var_4C] .text:0004E474 ADD R3, R4, R5 .text:0004E478 CMP R10, R3 .text:0004E47C BCC loc_4E370 .text:0004E480 .text:0004E480 loc_4E480 ; CODE XREF: __getdents+C8j .text:0004E480 LDR R9, [R11,#var_30] .text:0004E484 RSB R0, R9, R12 .text:0004E488 B locret_4E638 .text:0004E48C ; --------------------------------------------------------------------------- .text:0004E48C .text:0004E48C loc_4E48C ; CODE XREF: __getdents+A4j .text:0004E48C ; __getdents+B4j .text:0004E48C BL __errno_location .text:0004E490 STR R5, [R0] .text:0004E494 MOV R3, #1 .text:0004E498 STR R3, [R6] .text:0004E49C .text:0004E49C loc_4E49C ; CODE XREF: __getdents+3Cj .text:0004E49C MOV R0, R8 .text:0004E4A0 MOV R1, #0x19 .text:0004E4A4 BL __udivsi3 .text:0004E4A8 SUB R2, R8, #1 .text:0004E4AC RSB R0, R0, R8 .text:0004E4B0 CMP R2, R0 .text:0004E4B4 MOVCS R2, R0 .text:0004E4B8 ADD R3, R2, #3 .text:0004E4BC BIC R3, R3, #3 .text:0004E4C0 RSB SP, R3, SP .text:0004E4C4 STR SP, [R11,#var_54] .text:0004E4C8 MOV R4, SP .text:0004E4CC LDR R12, [R11,#var_30] .text:0004E4D0 MOV R1, SP .text:0004E4D4 LDR R0, [R11,#var_2C] .text:0004E4D8 SVC 0x90008D .text:0004E4DC MOV R6, R0 .text:0004E4E0 CMN R6, #0x1000 .text:0004E4E4 BLS loc_4E500 .text:0004E4E8 STR R12, [R11,#var_4C] .text:0004E4EC BL __errno_location .text:0004E4F0 RSB R3, R6, #0 .text:0004E4F4 STR R3, [R0] .text:0004E4F8 MOV R6, 0xFFFFFFFF .text:0004E4FC LDR R12, [R11,#var_4C] .text:0004E500 .text:0004E500 loc_4E500 ; CODE XREF: __getdents+240j .text:0004E500 CMN R6, #1 .text:0004E504 MOVEQ R0, 0xFFFFFFFF .text:0004E508 BEQ locret_4E638 .text:0004E50C ADD R3, SP, R6 .text:0004E510 CMP SP, R3 .text:0004E514 BCS loc_4E630 .text:0004E518 .text:0004E518 loc_4E518 ; CODE XREF: __getdents+388j .text:0004E518 LDRB R3, [R4,#8] .text:0004E51C ADD R5, R4, #8 .text:0004E520 LDRB R2, [R5,#1] .text:0004E524 LDR R10, [R11,#var_30] .text:0004E528 ORR R3, R3, R2,LSL#8 .text:0004E52C ADD R3, R3, #4 .text:0004E530 BIC R2, R3, #3 .text:0004E534 ADD R7, R12, R2 .text:0004E538 ADD R3, R10, R8 .text:0004E53C CMP R7, R3 .text:0004E540 BLS loc_4E5BC .text:0004E544 LDR R1, [R11,#var_38] .text:0004E548 CMN R1, #1 .text:0004E54C BNE loc_4E570 .text:0004E550 LDR R2, [R11,#var_34] .text:0004E554 CMN R2, #1 .text:0004E558 BNE loc_4E570 .text:0004E55C LDR R0, =aLast_offset1 ; "last_offset != -1" .text:0004E560 LDR R1, =a__SysdepsUnixS ; "../sysdeps/unix/sysv/linux/getdents.c" .text:0004E564 LDR R3, =a__getdents ; "__getdents" .text:0004E568 MOV R2, #0xE0 .text:0004E56C BL __assert_fail .text:0004E570 ; --------------------------------------------------------------------------- .text:0004E570 .text:0004E570 loc_4E570 ; CODE XREF: __getdents+2A8j .text:0004E570 ; __getdents+2B4j .text:0004E570 SUB R3, R11, #-var_30 .text:0004E574 LDMDB R3, {R1,R2} .text:0004E578 STR R12, [R11,#var_4C] .text:0004E57C LDR R0, [R11,#var_2C] .text:0004E580 MOV R3, #0 .text:0004E584 BL lseek64 .text:0004E588 LDR R12, [R11,#var_4C] .text:0004E58C LDR R4, [R11,#var_30] .text:0004E590 CMP R12, R4 .text:0004E594 BNE loc_4E630 .text:0004E598 BL __errno_location .text:0004E59C MOV R3, #0x16 .text:0004E5A0 STR R3, [R0] .text:0004E5A4 MOV R0, 0xFFFFFFFF .text:0004E5A8 B locret_4E638 .text:0004E5A8 ; --------------------------------------------------------------------------- .text:0004E5AC off_4E5AC DCD __have_no_getdents64 ; DATA XREF: __getdents+14r .text:0004E5B0 off_4E5B0 DCD aLast_offset1 ; DATA XREF: __getdents+2B8r .text:0004E5B0 ; "last_offset != -1" .text:0004E5B4 off_4E5B4 DCD a__SysdepsUnixS ; DATA XREF: __getdents+2BCr .text:0004E5B4 ; "../sysdeps/unix/sysv/linux/getdents.c" .text:0004E5B8 off_4E5B8 DCD a__getdents ; DATA XREF: __getdents+2C0r .text:0004E5B8 ; "__getdents" .text:0004E5BC ; --------------------------------------------------------------------------- .text:0004E5BC .text:0004E5BC loc_4E5BC ; CODE XREF: __getdents+29Cj .text:0004E5BC LDMIA R4, {R3,LR} .text:0004E5C0 STR R3, [R12] .text:0004E5C4 LDR R1, [R4,#4] .text:0004E5C8 STRB R2, [R12,#8] .text:0004E5CC MOV R3, R2,ASR#8 .text:0004E5D0 STRB R3, [R12,#9] .text:0004E5D4 MOV R2, #0 .text:0004E5D8 STRB R2, [R12,#0xA] .text:0004E5DC STR R1, [R12,#4] .text:0004E5E0 ADD R0, R12, #0xB .text:0004E5E4 LDRB R2, [R4,#8] .text:0004E5E8 MOV R9, LR .text:0004E5EC MOV R10, R9,ASR#31 .text:0004E5F0 LDRB R3, [R5,#1] .text:0004E5F4 SUB R12, R11, #-var_30 .text:0004E5F8 STMDB R12, {R9,R10} .text:0004E5FC ADD R1, R4, #0xA .text:0004E600 ORR R2, R2, R3,LSL#8 .text:0004E604 SUB R2, R2, #0xA .text:0004E608 BL memcpy .text:0004E60C LDRB R2, [R4,#8] .text:0004E610 LDRB R3, [R5,#1] .text:0004E614 MOV R12, R7 .text:0004E618 LDR R1, [R11,#var_54] .text:0004E61C ORR R2, R2, R3,LSL#8 .text:0004E620 ADD R4, R4, R2 .text:0004E624 ADD R3, R1, R6 .text:0004E628 CMP R4, R3 .text:0004E62C BCC loc_4E518 .text:0004E630 .text:0004E630 loc_4E630 ; CODE XREF: __getdents+270j .text:0004E630 ; __getdents+2F0j .text:0004E630 LDR R2, [R11,#var_30] .text:0004E634 RSB R0, R2, R12 .text:0004E638 .text:0004E638 locret_4E638 ; CODE XREF: __getdents+170j .text:0004E638 ; __getdents+184j ... .text:0004E638 LDMDB R11, {R4-R11,SP,PC} .text:0004E638 ; End of function __getdents .text:0004E638 .text:0004E63C .text:0004E63C ; =============== S U B R O U T I N E ======================================= .text:0004E63C .text:0004E63C ; Attributes: bp-based frame .text:0004E63C .text:0004E63C WEAK _lxstat .text:0004E63C _lxstat ; CODE XREF: generic_getcwd+CCp .text:0004E63C ; generic_getcwd+F4p ... .text:0004E63C .text:0004E63C var_C8 = -0xC8 .text:0004E63C var_BC = -0xBC .text:0004E63C var_B8 = -0xB8 .text:0004E63C var_B4 = -0xB4 .text:0004E63C var_B0 = -0xB0 .text:0004E63C var_AC = -0xAC .text:0004E63C var_A8 = -0xA8 .text:0004E63C var_9C = -0x9C .text:0004E63C var_98 = -0x98 .text:0004E63C var_94 = -0x94 .text:0004E63C var_8C = -0x8C .text:0004E63C var_88 = -0x88 .text:0004E63C var_80 = -0x80 .text:0004E63C var_78 = -0x78 .text:0004E63C var_70 = -0x70 .text:0004E63C var_6C = -0x6C .text:0004E63C var_68 = -0x68 .text:0004E63C var_67 = -0x67 .text:0004E63C var_64 = -0x64 .text:0004E63C var_60 = -0x60 .text:0004E63C var_5F = -0x5F .text:0004E63C var_5E = -0x5E .text:0004E63C var_5D = -0x5D .text:0004E63C var_5C = -0x5C .text:0004E63C var_5B = -0x5B .text:0004E63C var_5A = -0x5A .text:0004E63C var_59 = -0x59 .text:0004E63C var_58 = -0x58 .text:0004E63C var_57 = -0x57 .text:0004E63C var_54 = -0x54 .text:0004E63C var_50 = -0x50 .text:0004E63C var_4C = -0x4C .text:0004E63C var_48 = -0x48 .text:0004E63C var_40 = -0x40 .text:0004E63C var_38 = -0x38 .text:0004E63C .text:0004E63C MOV R12, SP ; Alternative name is '__lxstat' .text:0004E640 STMFD SP!, {R4-R12,LR,PC} .text:0004E644 SUB R11, R12, #4 .text:0004E648 MOV R8, R0 .text:0004E64C CMP R8, #1 .text:0004E650 MOV R10, R1 .text:0004E654 MOV R5, R2 .text:0004E658 SUB SP, SP, #0xA0 .text:0004E65C BNE loc_4E690 .text:0004E660 MOV R1, R5 .text:0004E664 MOV R0, R10 .text:0004E668 SVC 0x90006B .text:0004E66C MOV R4, R0 .text:0004E670 CMN R4, #0x1000 .text:0004E674 BLS loc_4E688 .text:0004E678 BL __errno_location .text:0004E67C RSB R3, R4, #0 .text:0004E680 MOV R4, 0xFFFFFFFF .text:0004E684 STR R3, [R0] .text:0004E688 .text:0004E688 loc_4E688 ; CODE XREF: _lxstat+38j .text:0004E688 MOV R0, R4 .text:0004E68C B locret_4E9A0 .text:0004E690 ; --------------------------------------------------------------------------- .text:0004E690 .text:0004E690 loc_4E690 ; CODE XREF: _lxstat+20j .text:0004E690 LDR R2, =__have_no_stat64 .text:0004E694 LDR R3, [R2] .text:0004E698 MOV R9, R2 .text:0004E69C CMP R3, #0 .text:0004E6A0 BNE loc_4E83C .text:0004E6A4 SUB R7, R11, #-var_C8 .text:0004E6A8 MOV R1, R7 .text:0004E6AC MOV R0, R10 .text:0004E6B0 SVC 0x9000C4 .text:0004E6B4 MOV R4, R0 .text:0004E6B8 CMN R4, #0x1000 .text:0004E6BC BLS loc_4E6D0 .text:0004E6C0 BL __errno_location .text:0004E6C4 RSB R3, R4, #0 .text:0004E6C8 MOV R4, 0xFFFFFFFF .text:0004E6CC STR R3, [R0] .text:0004E6D0 .text:0004E6D0 loc_4E6D0 ; CODE XREF: _lxstat+80j .text:0004E6D0 SUBS R6, R4, #0 .text:0004E6D4 BNE loc_4E81C .text:0004E6D8 CMP R8, #3 .text:0004E6DC BNE loc_4E804 .text:0004E6E0 STRB R6, [R5,#8] .text:0004E6E4 STRB R6, [R5,#9] .text:0004E6E8 SUB R1, R11, #-var_70 .text:0004E6EC LDMIA R1, {R1,R3} .text:0004E6F0 ORR R3, R1, R3 .text:0004E6F4 LDMIA R7, {R1,R2} .text:0004E6F8 STMIA R5, {R1,R2} .text:0004E6FC CMP R3, #0 .text:0004E700 LDR R0, [R11,#var_6C] .text:0004E704 LDREQ R3, [R11,#var_BC] .text:0004E708 STREQ R3, [R5,#0xC] .text:0004E70C BEQ loc_4E730 .text:0004E710 LDR R3, [R11,#var_70] .text:0004E714 MOV R1, R3 .text:0004E718 MOV R2, #0 .text:0004E71C CMP R1, R3 .text:0004E720 STR R3, [R5,#0xC] .text:0004E724 BNE loc_4E7C0 .text:0004E728 CMP R2, R0 .text:0004E72C BNE loc_4E7C0 .text:0004E730 .text:0004E730 loc_4E730 ; CODE XREF: _lxstat+D0j .text:0004E730 LDR R3, [R11,#var_B8] .text:0004E734 STR R3, [R5,#0x10] .text:0004E738 LDR R2, [R11,#var_B4] .text:0004E73C STR R2, [R5,#0x14] .text:0004E740 LDR R3, [R11,#var_B0] .text:0004E744 STR R3, [R5,#0x18] .text:0004E748 LDR R2, [R11,#var_AC] .text:0004E74C STR R2, [R5,#0x1C] .text:0004E750 SUB R0, R11, #-var_A8 .text:0004E754 LDMIA R0, {R2,R3} .text:0004E758 ADD R1, R5, #0x20 .text:0004E75C STMIA R1, {R2,R3} .text:0004E760 MOV R12, #0 .text:0004E764 MOV R3, R12 .text:0004E768 STRB R3, [R5,#0x28] .text:0004E76C LDR R2, [R11,#var_9C] .text:0004E770 STRB R12, [R5,#0x29] .text:0004E774 MOV R0, R2 .text:0004E778 MOV R1, R0,ASR#31 .text:0004E77C CMP R0, R2 .text:0004E780 STR R2, [R5,#0x2C] .text:0004E784 BNE loc_4E7C0 .text:0004E788 LDR R3, [R11,#var_98] .text:0004E78C CMP R1, R3 .text:0004E790 BNE loc_4E7C0 .text:0004E794 SUB R2, R11, #-var_94 .text:0004E798 LDMIA R2, {R2,R3} .text:0004E79C STR R2, [R5,#0x30] .text:0004E7A0 MOV R1, R3 .text:0004E7A4 MOV R2, R1,ASR#31 .text:0004E7A8 CMP R1, R3 .text:0004E7AC STR R3, [R5,#0x34] .text:0004E7B0 BNE loc_4E7C0 .text:0004E7B4 LDR R3, [R11,#var_8C] .text:0004E7B8 CMP R2, R3 .text:0004E7BC BEQ loc_4E7D4 .text:0004E7C0 .text:0004E7C0 loc_4E7C0 ; CODE XREF: _lxstat+E8j .text:0004E7C0 ; _lxstat+F0j ... .text:0004E7C0 MOV R6, 0xFFFFFFFF .text:0004E7C4 BL __errno_location .text:0004E7C8 MOV R3, #0x4B .text:0004E7CC STR R3, [R0] .text:0004E7D0 B loc_4E81C .text:0004E7D4 ; --------------------------------------------------------------------------- .text:0004E7D4 .text:0004E7D4 loc_4E7D4 ; CODE XREF: _lxstat+180j .text:0004E7D4 STR R12, [R5,#0x3C] .text:0004E7D8 STR R12, [R5,#0x44] .text:0004E7DC STR R12, [R5,#0x4C] .text:0004E7E0 STR R12, [R5,#0x50] .text:0004E7E4 STR R12, [R5,#0x54] .text:0004E7E8 LDR R3, [R11,#var_88] .text:0004E7EC STR R3, [R5,#0x38] .text:0004E7F0 LDR R2, [R11,#var_80] .text:0004E7F4 STR R2, [R5,#0x40] .text:0004E7F8 LDR R3, [R11,#var_78] .text:0004E7FC STR R3, [R5,#0x48] .text:0004E800 B loc_4E818 .text:0004E804 ; --------------------------------------------------------------------------- .text:0004E804 .text:0004E804 loc_4E804 ; CODE XREF: _lxstat+A0j .text:0004E804 MOV R6, 0xFFFFFFFF .text:0004E808 BL __errno_location .text:0004E80C MOV R3, #0x16 .text:0004E810 STR R3, [R0] .text:0004E814 B loc_4E81C .text:0004E818 ; --------------------------------------------------------------------------- .text:0004E818 .text:0004E818 loc_4E818 ; CODE XREF: _lxstat+1C4j .text:0004E818 MOV R6, #0 .text:0004E81C .text:0004E81C loc_4E81C ; CODE XREF: _lxstat+98j .text:0004E81C ; _lxstat+194j ... .text:0004E81C CMN R6, #1 .text:0004E820 BNE loc_4E99C .text:0004E824 BL __errno_location .text:0004E828 LDR R3, [R0] .text:0004E82C CMP R3, #0x26 .text:0004E830 BNE loc_4E99C .text:0004E834 MOV R3, #1 .text:0004E838 STR R3, [R9] .text:0004E83C .text:0004E83C loc_4E83C ; CODE XREF: _lxstat+64j .text:0004E83C SUB R7, R11, #-var_68 .text:0004E840 MOV R1, R7 .text:0004E844 MOV R0, R10 .text:0004E848 SVC 0x90006B .text:0004E84C MOV R4, R0 .text:0004E850 CMN R4, #0x1000 .text:0004E854 BLS loc_4E868 .text:0004E858 BL __errno_location .text:0004E85C RSB R3, R4, #0 .text:0004E860 MOV R4, 0xFFFFFFFF .text:0004E864 STR R3, [R0] .text:0004E868 .text:0004E868 loc_4E868 ; CODE XREF: _lxstat+218j .text:0004E868 SUBS R6, R4, #0 .text:0004E86C BNE loc_4E99C .text:0004E870 CMP R8, #1 .text:0004E874 BEQ loc_4E884 .text:0004E878 CMP R8, #3 .text:0004E87C BEQ loc_4E8B0 .text:0004E880 B loc_4E980 .text:0004E884 ; --------------------------------------------------------------------------- .text:0004E884 .text:0004E884 loc_4E884 ; CODE XREF: _lxstat+238j .text:0004E884 MOV LR, R7 .text:0004E888 LDMIA LR!, {R0-R3} .text:0004E88C MOV R12, R5 .text:0004E890 STMIA R12!, {R0-R3} .text:0004E894 LDMIA LR!, {R0-R3} .text:0004E898 STMIA R12!, {R0-R3} .text:0004E89C LDMIA LR!, {R0-R3} .text:0004E8A0 STMIA R12!, {R0-R3} .text:0004E8A4 LDMIA LR, {R0-R3} .text:0004E8A8 STMIA R12, {R0-R3} .text:0004E8AC B loc_4E998 .text:0004E8B0 ; --------------------------------------------------------------------------- .text:0004E8B0 .text:0004E8B0 loc_4E8B0 ; CODE XREF: _lxstat+240j .text:0004E8B0 LDRB R1, [R11,#var_68] .text:0004E8B4 LDRB R2, [R11,#var_67] .text:0004E8B8 ORR R3, R1, R2,LSL#8 .text:0004E8BC MOV R4, #0 .text:0004E8C0 STMIA R5, {R3,R4} .text:0004E8C4 MOV LR, R6 .text:0004E8C8 STRB LR, [R5,#8] .text:0004E8CC STRB R6, [R5,#9] .text:0004E8D0 LDR R2, [R11,#var_64] .text:0004E8D4 STR R2, [R5,#0xC] .text:0004E8D8 LDRB R3, [R11,#var_60] .text:0004E8DC LDRB R2, [R11,#var_5F] .text:0004E8E0 ORR R3, R3, R2,LSL#8 .text:0004E8E4 STR R3, [R5,#0x10] .text:0004E8E8 LDRB R3, [R11,#var_5D] .text:0004E8EC LDRB R2, [R11,#var_5E] .text:0004E8F0 ORR R2, R2, R3,LSL#8 .text:0004E8F4 STR R2, [R5,#0x14] .text:0004E8F8 LDRB R2, [R11,#var_5B] .text:0004E8FC LDRB R3, [R11,#var_5C] .text:0004E900 ORR R3, R3, R2,LSL#8 .text:0004E904 STR R3, [R5,#0x18] .text:0004E908 LDRB R2, [R11,#var_5A] .text:0004E90C LDRB R12, [R11,#var_58] .text:0004E910 LDRB R0, [R11,#var_57] .text:0004E914 LDRB R1, [R11,#var_59] .text:0004E918 ORR R3, R12, R0,LSL#8 .text:0004E91C ORR R2, R2, R1,LSL#8 .text:0004E920 STR R2, [R5,#0x1C] .text:0004E924 MOV R4, #0 .text:0004E928 ADD R2, R5, #0x20 .text:0004E92C STMIA R2, {R3,R4} .text:0004E930 STRB LR, [R5,#0x28] .text:0004E934 STRB LR, [R5,#0x29] .text:0004E938 LDR R3, [R11,#var_54] .text:0004E93C STR R3, [R5,#0x2C] .text:0004E940 LDR R2, [R11,#var_50] .text:0004E944 STR R2, [R5,#0x30] .text:0004E948 LDR R3, [R11,#var_4C] .text:0004E94C STR R3, [R5,#0x34] .text:0004E950 LDR R2, [R11,#var_48] .text:0004E954 STR R6, [R5,#0x3C] .text:0004E958 STR R2, [R5,#0x38] .text:0004E95C LDR R3, [R11,#var_40] .text:0004E960 STR R3, [R5,#0x40] .text:0004E964 STR R6, [R5,#0x44] .text:0004E968 STR R6, [R5,#0x4C] .text:0004E96C STR R6, [R5,#0x50] .text:0004E970 STR R6, [R5,#0x54] .text:0004E974 LDR R3, [R11,#var_38] .text:0004E978 STR R3, [R5,#0x48] .text:0004E97C B loc_4E998 .text:0004E980 ; --------------------------------------------------------------------------- .text:0004E980 .text:0004E980 loc_4E980 ; CODE XREF: _lxstat+244j .text:0004E980 MOV R6, 0xFFFFFFFF .text:0004E984 BL __errno_location .text:0004E988 MOV R3, #0x16 .text:0004E98C STR R3, [R0] .text:0004E990 B loc_4E99C .text:0004E990 ; --------------------------------------------------------------------------- .text:0004E994 off_4E994 DCD __have_no_stat64 ; DATA XREF: _lxstat:loc_4E690r .text:0004E998 ; --------------------------------------------------------------------------- .text:0004E998 .text:0004E998 loc_4E998 ; CODE XREF: _lxstat+270j .text:0004E998 ; _lxstat+340j .text:0004E998 MOV R6, #0 .text:0004E99C .text:0004E99C loc_4E99C ; CODE XREF: _lxstat+1E4j .text:0004E99C ; _lxstat+1F4j ... .text:0004E99C MOV R0, R6 .text:0004E9A0 .text:0004E9A0 locret_4E9A0 ; CODE XREF: _lxstat+50j .text:0004E9A0 LDMDB R11, {R4-R11,SP,PC} .text:0004E9A0 ; End of function _lxstat .text:0004E9A0 .text:0004E9A4 .text:0004E9A4 ; =============== S U B R O U T I N E ======================================= .text:0004E9A4 .text:0004E9A4 ; Attributes: bp-based frame .text:0004E9A4 .text:0004E9A4 WEAK isatty .text:0004E9A4 isatty ; CODE XREF: _IO_file_doallocate+CCp .text:0004E9A4 ; _IO_wfile_doallocate+E4p .text:0004E9A4 .text:0004E9A4 var_48 = -0x48 .text:0004E9A4 .text:0004E9A4 MOV R12, SP ; Alternative name is '__isatty' .text:0004E9A8 STMFD SP!, {R11,R12,LR,PC} .text:0004E9AC SUB R11, R12, #4 .text:0004E9B0 SUB R1, R11, #-var_48 .text:0004E9B4 SUB SP, SP, #0x3C .text:0004E9B8 BL tcgetattr .text:0004E9BC CMP R0, #0 .text:0004E9C0 MOVNE R0, #0 .text:0004E9C4 MOVEQ R0, #1 .text:0004E9C8 LDMDB R11, {R11,SP,PC} .text:0004E9C8 ; End of function isatty .text:0004E9C8 .text:0004E9CC .text:0004E9CC ; =============== S U B R O U T I N E ======================================= .text:0004E9CC .text:0004E9CC ; Attributes: bp-based frame .text:0004E9CC .text:0004E9CC WEAK tcgetattr .text:0004E9CC tcgetattr ; CODE XREF: isatty+14p .text:0004E9CC .text:0004E9CC var_38 = -0x38 .text:0004E9CC var_34 = -0x34 .text:0004E9CC var_30 = -0x30 .text:0004E9CC var_2C = -0x2C .text:0004E9CC var_28 = -0x28 .text:0004E9CC var_27 = -0x27 .text:0004E9CC .text:0004E9CC MOV R12, SP .text:0004E9D0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004E9D4 SUB R11, R12, #4 .text:0004E9D8 MOV R4, R1 .text:0004E9DC MOV R1, 0x5401 .text:0004E9E4 SUB R2, R11, #-var_38 .text:0004E9E8 SUB SP, SP, #0x24 .text:0004E9EC BL ioctl .text:0004E9F0 LDR R3, [R11,#var_38] .text:0004E9F4 STR R3, [R4] .text:0004E9F8 LDR R2, [R11,#var_34] .text:0004E9FC STR R2, [R4,#4] .text:0004EA00 LDR R3, [R11,#var_30] .text:0004EA04 STR R3, [R4,#8] .text:0004EA08 LDR R2, [R11,#var_2C] .text:0004EA0C STR R2, [R4,#0xC] .text:0004EA10 LDRB R3, [R11,#var_28] .text:0004EA14 STRB R3, [R4,#0x10] .text:0004EA18 MOV R5, R0 .text:0004EA1C ADD R0, R4, #0x11 .text:0004EA20 SUB R1, R11, #-var_27 .text:0004EA24 MOV R2, #0x13 .text:0004EA28 BL mempcpy .text:0004EA2C MOV R1, #0 .text:0004EA30 MOV R2, #0xD .text:0004EA34 BL memset .text:0004EA38 MOV R0, R5 .text:0004EA3C LDMDB R11, {R4,R5,R11,SP,PC} .text:0004EA3C ; End of function tcgetattr .text:0004EA3C .text:0004EA40 .text:0004EA40 ; =============== S U B R O U T I N E ======================================= .text:0004EA40 .text:0004EA40 ; Attributes: bp-based frame .text:0004EA40 .text:0004EA40 WEAK getrlimit .text:0004EA40 getrlimit ; CODE XREF: getdtablesize+18p .text:0004EA40 MOV R12, SP ; Alternative name is '__new_getrlimit' .text:0004EA44 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0004EA48 SUB R11, R12, #4 .text:0004EA4C LDR R6, =__have_no_new_getrlimit .text:0004EA50 MOV R7, R0 .text:0004EA54 LDR R3, [R6] .text:0004EA58 MOV R5, R1 .text:0004EA5C CMP R3, #0 .text:0004EA60 BGT loc_4EAB4 .text:0004EA64 SVC 0x9000BF .text:0004EA68 MOV R4, R0 .text:0004EA6C CMN R4, #0x1000 .text:0004EA70 BLS loc_4EA84 .text:0004EA74 BL __errno_location .text:0004EA78 RSB R3, R4, #0 .text:0004EA7C MOV R4, 0xFFFFFFFF .text:0004EA80 STR R3, [R0] .text:0004EA84 .text:0004EA84 loc_4EA84 ; CODE XREF: getrlimit+30j .text:0004EA84 CMN R4, #1 .text:0004EA88 BNE loc_4EA9C .text:0004EA8C BL __errno_location .text:0004EA90 LDR R3, [R0] .text:0004EA94 CMP R3, #0x26 .text:0004EA98 BEQ loc_4EAAC .text:0004EA9C .text:0004EA9C loc_4EA9C ; CODE XREF: getrlimit+48j .text:0004EA9C MOV R0, R4 .text:0004EAA0 MOV R3, 0xFFFFFFFF .text:0004EAA4 STR R3, [R6] .text:0004EAA8 LDMDB R11, {R4-R7,R11,SP,PC} .text:0004EAAC ; --------------------------------------------------------------------------- .text:0004EAAC .text:0004EAAC loc_4EAAC ; CODE XREF: getrlimit+58j .text:0004EAAC MOV R3, #1 .text:0004EAB0 STR R3, [R6] .text:0004EAB4 .text:0004EAB4 loc_4EAB4 ; CODE XREF: getrlimit+20j .text:0004EAB4 MOV R1, R5 .text:0004EAB8 MOV R0, R7 .text:0004EABC SVC 0x90004C .text:0004EAC0 MOV R4, R0 .text:0004EAC4 CMN R4, #0x1000 .text:0004EAC8 BLS loc_4EADC .text:0004EACC BL __errno_location .text:0004EAD0 RSB R3, R4, #0 .text:0004EAD4 MOV R4, 0xFFFFFFFF .text:0004EAD8 STR R3, [R0] .text:0004EADC .text:0004EADC loc_4EADC ; CODE XREF: getrlimit+88j .text:0004EADC CMN R4, #1 .text:0004EAE0 MOVEQ R0, R4 .text:0004EAE4 LDMEQDB R11, {R4-R7,R11,SP,PC} .text:0004EAE8 LDR R3, [R5] .text:0004EAEC CMN R3, #0x80000001 .text:0004EAF0 MOVEQ R3, 0xFFFFFFFF .text:0004EAF4 STREQ R3, [R5] .text:0004EAF8 LDR R3, [R5,#4] .text:0004EAFC CMN R3, #0x80000001 .text:0004EB00 MOVEQ R3, 0xFFFFFFFF .text:0004EB04 STREQ R3, [R5,#4] .text:0004EB08 MOV R0, R4 .text:0004EB0C LDMDB R11, {R4-R7,R11,SP,PC} .text:0004EB0C ; End of function getrlimit .text:0004EB0C .text:0004EB0C ; --------------------------------------------------------------------------- .text:0004EB10 off_4EB10 DCD __have_no_new_getrlimit ; DATA XREF: getrlimit+Cr .text:0004EB14 ALIGN 0x10 .text:0004EB20 .text:0004EB20 ; =============== S U B R O U T I N E ======================================= .text:0004EB20 .text:0004EB20 .text:0004EB20 WEAK ioctl .text:0004EB20 ioctl ; CODE XREF: tcgetattr+20p .text:0004EB20 SVC 0x900036 ; Alternative name is '__ioctl' .text:0004EB24 CMN R0, #0x1000 .text:0004EB28 MOVCC PC, LR .text:0004EB2C B __syscall_error .text:0004EB2C ; End of function ioctl .text:0004EB2C .text:0004EB30 .text:0004EB30 ; =============== S U B R O U T I N E ======================================= .text:0004EB30 .text:0004EB30 ; Attributes: bp-based frame .text:0004EB30 .text:0004EB30 WEAK setmntent .text:0004EB30 setmntent ; CODE XREF: get_proc_path+28p .text:0004EB30 ; get_proc_path+3Cp .text:0004EB30 MOV R12, SP ; Alternative name is '__setmntent' .text:0004EB34 STMFD SP!, {R11,R12,LR,PC} .text:0004EB38 SUB R11, R12, #4 .text:0004EB3C BL fopen .text:0004EB40 LDMDB R11, {R11,SP,PC} .text:0004EB40 ; End of function setmntent .text:0004EB40 .text:0004EB44 .text:0004EB44 ; =============== S U B R O U T I N E ======================================= .text:0004EB44 .text:0004EB44 ; Attributes: bp-based frame .text:0004EB44 .text:0004EB44 WEAK endmntent .text:0004EB44 endmntent ; CODE XREF: get_proc_path+88p .text:0004EB44 MOV R12, SP .text:0004EB48 STMFD SP!, {R11,R12,LR,PC} .text:0004EB4C SUB R11, R12, #4 .text:0004EB50 CMP R0, #0 .text:0004EB54 BEQ loc_4EB5C .text:0004EB58 BL fclose .text:0004EB5C .text:0004EB5C loc_4EB5C ; CODE XREF: endmntent+10j .text:0004EB5C MOV R0, #1 .text:0004EB60 LDMDB R11, {R11,SP,PC} .text:0004EB60 ; End of function endmntent .text:0004EB60 .text:0004EB64 .text:0004EB64 ; =============== S U B R O U T I N E ======================================= .text:0004EB64 .text:0004EB64 ; Attributes: bp-based frame .text:0004EB64 .text:0004EB64 decode_name ; CODE XREF: getmntent_r+16Cp .text:0004EB64 ; getmntent_r+244p ... .text:0004EB64 MOV R12, SP .text:0004EB68 STMFD SP!, {R11,R12,LR,PC} .text:0004EB6C SUB R11, R12, #4 .text:0004EB70 MOV R2, R0 .text:0004EB74 MOV R1, R0 .text:0004EB78 .text:0004EB78 loc_4EB78 ; CODE XREF: decode_name+B4j .text:0004EB78 LDRB R3, [R2] .text:0004EB7C CMP R3, #0x5C .text:0004EB80 MOV R12, R3 .text:0004EB84 BNE loc_4EBB4 .text:0004EB88 LDRB R3, [R2,#1] .text:0004EB8C CMP R3, #0x30 .text:0004EB90 BNE loc_4EBB4 .text:0004EB94 LDRB R3, [R2,#2] .text:0004EB98 CMP R3, #0x34 .text:0004EB9C BNE loc_4EBB4 .text:0004EBA0 LDRB R3, [R2,#3] .text:0004EBA4 CMP R3, #0x30 .text:0004EBA8 ADDEQ R2, R2, #3 .text:0004EBAC MOVEQ R3, #0x20 .text:0004EBB0 BEQ loc_4EC0C .text:0004EBB4 .text:0004EBB4 loc_4EBB4 ; CODE XREF: decode_name+20j .text:0004EBB4 ; decode_name+2Cj ... .text:0004EBB4 AND R3, R12, #0xFF .text:0004EBB8 CMP R3, #0x5C .text:0004EBBC BNE loc_4EBEC .text:0004EBC0 LDRB R3, [R2,#1] .text:0004EBC4 CMP R3, #0x30 .text:0004EBC8 BNE loc_4EBEC .text:0004EBCC LDRB R3, [R2,#2] .text:0004EBD0 CMP R3, #0x31 .text:0004EBD4 BNE loc_4EBEC .text:0004EBD8 LDRB R3, [R2,#3] .text:0004EBDC CMP R3, #0x32 .text:0004EBE0 ADDEQ R2, R2, #3 .text:0004EBE4 MOVEQ R3, #9 .text:0004EBE8 BEQ loc_4EC0C .text:0004EBEC .text:0004EBEC loc_4EBEC ; CODE XREF: decode_name+58j .text:0004EBEC ; decode_name+64j ... .text:0004EBEC AND R3, R12, #0xFF .text:0004EBF0 CMP R3, #0x5C .text:0004EBF4 BNE loc_4EC08 .text:0004EBF8 LDRB R3, [R2,#1] .text:0004EBFC CMP R3, #0x5C .text:0004EC00 ADDEQ R2, R2, #1 .text:0004EC04 BEQ loc_4EC0C .text:0004EC08 .text:0004EC08 loc_4EC08 ; CODE XREF: decode_name+90j .text:0004EC08 LDRB R3, [R2] .text:0004EC0C .text:0004EC0C loc_4EC0C ; CODE XREF: decode_name+4Cj .text:0004EC0C ; decode_name+84j ... .text:0004EC0C STRB R3, [R1],#1 .text:0004EC10 LDRB R3, [R2],#1 .text:0004EC14 CMP R3, #0 .text:0004EC18 BNE loc_4EB78 .text:0004EC1C LDMDB R11, {R11,SP,PC} .text:0004EC1C ; End of function decode_name .text:0004EC1C .text:0004EC20 .text:0004EC20 ; =============== S U B R O U T I N E ======================================= .text:0004EC20 .text:0004EC20 ; Attributes: bp-based frame .text:0004EC20 .text:0004EC20 WEAK getmntent_r .text:0004EC20 getmntent_r ; CODE XREF: get_proc_path+78p .text:0004EC20 .text:0004EC20 var_428 = -0x428 .text:0004EC20 var_420 = -0x420 .text:0004EC20 .text:0004EC20 MOV R12, SP .text:0004EC24 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0004EC28 SUB R11, R12, #4 .text:0004EC2C MOV R6, R0 .text:0004EC30 MOV R8, R1 .text:0004EC34 MOV R5, R2 .text:0004EC38 MOV R10, R3 .text:0004EC3C MOV R7, #0 .text:0004EC40 SUB SP, SP, #0x400 .text:0004EC44 SUB SP, SP, #4 .text:0004EC48 .text:0004EC48 loc_4EC48 ; CODE XREF: getmntent_r+E0j .text:0004EC48 MOV R0, R5 .text:0004EC4C MOV R1, R10 .text:0004EC50 MOV R2, R6 .text:0004EC54 BL fgets_unlocked .text:0004EC58 CMP R0, #0 .text:0004EC5C MOV R0, #0 .text:0004EC60 BEQ loc_4F068 .text:0004EC64 MOV R0, R5 .text:0004EC68 MOV R1, #0xA .text:0004EC6C BL strchr .text:0004EC70 CMP R0, #0 .text:0004EC74 STRNEB R7, [R0] .text:0004EC78 BNE loc_4ECB0 .text:0004EC7C SUB R4, R11, #-var_420 .text:0004EC80 SUB R4, R4, #4 .text:0004EC84 .text:0004EC84 loc_4EC84 ; CODE XREF: getmntent_r+8Cj .text:0004EC84 MOV R0, R4 .text:0004EC88 MOV R1, #0x400 .text:0004EC8C MOV R2, R6 .text:0004EC90 BL fgets_unlocked .text:0004EC94 CMP R0, #0 .text:0004EC98 BEQ loc_4ECB0 .text:0004EC9C MOV R0, R4 .text:0004ECA0 MOV R1, #0xA .text:0004ECA4 BL strchr .text:0004ECA8 CMP R0, #0 .text:0004ECAC BEQ loc_4EC84 .text:0004ECB0 .text:0004ECB0 loc_4ECB0 ; CODE XREF: getmntent_r+58j .text:0004ECB0 ; getmntent_r+78j .text:0004ECB0 MOV R1, R7 .text:0004ECB4 LDRB R3, [R5,R1] .text:0004ECB8 AND R3, R3, #0xFF .text:0004ECBC B loc_4ECC8 .text:0004ECC0 ; --------------------------------------------------------------------------- .text:0004ECC0 .text:0004ECC0 loc_4ECC0 ; CODE XREF: getmntent_r+ACj .text:0004ECC0 ; getmntent_r+B4j .text:0004ECC0 ADD R1, R1, #1 .text:0004ECC4 LDRB R3, [R5,R1] .text:0004ECC8 .text:0004ECC8 loc_4ECC8 ; CODE XREF: getmntent_r+9Cj .text:0004ECC8 CMP R3, #0x20 .text:0004ECCC BEQ loc_4ECC0 .text:0004ECD0 CMP R3, #9 .text:0004ECD4 BEQ loc_4ECC0 .text:0004ECD8 LDRB R0, [R5,R1] .text:0004ECDC ADD R2, R5, R1 .text:0004ECE0 STR R2, [R11,#var_428] .text:0004ECE4 CMP R0, #0x23 .text:0004ECE8 MOVNE R3, #0 .text:0004ECEC MOVEQ R3, #1 .text:0004ECF0 CMP R0, #0 .text:0004ECF4 MOVNE R12, R3 .text:0004ECF8 MOVEQ R12, #1 .text:0004ECFC CMP R12, #0 .text:0004ED00 BNE loc_4EC48 .text:0004ED04 SUB LR, R11, #-var_420 .text:0004ED08 SUB LR, LR, #4 .text:0004ED0C SUB LR, LR, #4 .text:0004ED10 SUBS R4, R2, #0 .text:0004ED14 MOV R6, LR .text:0004ED18 BEQ loc_4ED80 .text:0004ED1C AND R3, R0, #0xFF .text:0004ED20 CMP R3, #0x20 .text:0004ED24 BEQ loc_4ED30 .text:0004ED28 CMP R3, #9 .text:0004ED2C BNE loc_4ED40 .text:0004ED30 .text:0004ED30 loc_4ED30 ; CODE XREF: getmntent_r+104j .text:0004ED30 STRB R12, [R5,R1] .text:0004ED34 ADD R3, R4, #1 .text:0004ED38 STR R3, [R11,#var_428] .text:0004ED3C B loc_4ED80 .text:0004ED40 ; --------------------------------------------------------------------------- .text:0004ED40 .text:0004ED40 loc_4ED40 ; CODE XREF: getmntent_r+10Cj .text:0004ED40 MOV R2, R4 .text:0004ED44 B loc_4ED50 .text:0004ED48 ; --------------------------------------------------------------------------- .text:0004ED48 .text:0004ED48 loc_4ED48 ; CODE XREF: getmntent_r+144j .text:0004ED48 LDRB R3, [R2,#1]! .text:0004ED4C AND R3, R3, #0xFF .text:0004ED50 .text:0004ED50 loc_4ED50 ; CODE XREF: getmntent_r+124j .text:0004ED50 CMP R3, #0 .text:0004ED54 BEQ loc_4ED68 .text:0004ED58 CMP R3, #0x20 .text:0004ED5C BEQ loc_4ED68 .text:0004ED60 CMP R3, #9 .text:0004ED64 BNE loc_4ED48 .text:0004ED68 .text:0004ED68 loc_4ED68 ; CODE XREF: getmntent_r+134j .text:0004ED68 ; getmntent_r+13Cj .text:0004ED68 LDRB R3, [R2] .text:0004ED6C CMP R3, #0 .text:0004ED70 MOVNE R3, #0 .text:0004ED74 STRNEB R3, [R2],#1 .text:0004ED78 STRNE R2, [LR] .text:0004ED7C STREQ R3, [LR] .text:0004ED80 .text:0004ED80 loc_4ED80 ; CODE XREF: getmntent_r+F8j .text:0004ED80 ; getmntent_r+11Cj .text:0004ED80 MOV R3, R4 .text:0004ED84 SUBS R0, R3, #0 .text:0004ED88 BEQ loc_4ED94 .text:0004ED8C BL decode_name .text:0004ED90 B loc_4ED98 .text:0004ED94 ; --------------------------------------------------------------------------- .text:0004ED94 .text:0004ED94 loc_4ED94 ; CODE XREF: getmntent_r+168j .text:0004ED94 LDR R0, =dword_62418 .text:0004ED98 .text:0004ED98 loc_4ED98 ; CODE XREF: getmntent_r+170j .text:0004ED98 LDR R1, [R11,#var_428] .text:0004ED9C STR R0, [R8] .text:0004EDA0 CMP R1, #0 .text:0004EDA4 BEQ loc_4EDD8 .text:0004EDA8 LDRB R3, [R1] .text:0004EDAC MOV R2, #0 .text:0004EDB0 B loc_4EDBC .text:0004EDB4 ; --------------------------------------------------------------------------- .text:0004EDB4 .text:0004EDB4 loc_4EDB4 ; CODE XREF: getmntent_r+1A0j .text:0004EDB4 ; getmntent_r+1A8j .text:0004EDB4 ADD R2, R2, #1 .text:0004EDB8 LDRB R3, [R1,R2] .text:0004EDBC .text:0004EDBC loc_4EDBC ; CODE XREF: getmntent_r+190j .text:0004EDBC CMP R3, #0x20 .text:0004EDC0 BEQ loc_4EDB4 .text:0004EDC4 CMP R3, #9 .text:0004EDC8 BEQ loc_4EDB4 .text:0004EDCC LDR R3, [R11,#var_428] .text:0004EDD0 ADD R3, R3, R2 .text:0004EDD4 STR R3, [R11,#var_428] .text:0004EDD8 .text:0004EDD8 loc_4EDD8 ; CODE XREF: getmntent_r+184j .text:0004EDD8 LDR R1, [R11,#var_428] .text:0004EDDC CMP R1, #0 .text:0004EDE0 BEQ loc_4EE58 .text:0004EDE4 LDRB R3, [R1] .text:0004EDE8 CMP R3, #0x20 .text:0004EDEC BEQ loc_4EDF8 .text:0004EDF0 CMP R3, #9 .text:0004EDF4 BNE loc_4EE0C .text:0004EDF8 .text:0004EDF8 loc_4EDF8 ; CODE XREF: getmntent_r+1CCj .text:0004EDF8 MOV R2, R1 .text:0004EDFC MOV R3, #0 .text:0004EE00 STRB R3, [R2],#1 .text:0004EE04 STR R2, [R11,#var_428] .text:0004EE08 B loc_4EE58 .text:0004EE0C ; --------------------------------------------------------------------------- .text:0004EE0C .text:0004EE0C loc_4EE0C ; CODE XREF: getmntent_r+1D4j .text:0004EE0C MOV R2, R1 .text:0004EE10 B loc_4EE1C .text:0004EE14 ; --------------------------------------------------------------------------- .text:0004EE14 .text:0004EE14 loc_4EE14 ; CODE XREF: getmntent_r+210j .text:0004EE14 LDRB R3, [R2,#1]! .text:0004EE18 AND R3, R3, #0xFF .text:0004EE1C .text:0004EE1C loc_4EE1C ; CODE XREF: getmntent_r+1F0j .text:0004EE1C CMP R3, #0 .text:0004EE20 BEQ loc_4EE34 .text:0004EE24 CMP R3, #0x20 .text:0004EE28 BEQ loc_4EE34 .text:0004EE2C CMP R3, #9 .text:0004EE30 BNE loc_4EE14 .text:0004EE34 .text:0004EE34 loc_4EE34 ; CODE XREF: getmntent_r+200j .text:0004EE34 ; getmntent_r+208j .text:0004EE34 LDRB R3, [R2] .text:0004EE38 CMP R3, #0 .text:0004EE3C BEQ loc_4EE54 .text:0004EE40 STR R2, [R6] .text:0004EE44 MOV R3, #0 .text:0004EE48 STRB R3, [R2],#1 .text:0004EE4C STR R2, [R6] .text:0004EE50 B loc_4EE58 .text:0004EE54 ; --------------------------------------------------------------------------- .text:0004EE54 .text:0004EE54 loc_4EE54 ; CODE XREF: getmntent_r+21Cj .text:0004EE54 STR R3, [R6] .text:0004EE58 .text:0004EE58 loc_4EE58 ; CODE XREF: getmntent_r+1C0j .text:0004EE58 ; getmntent_r+1E8j ... .text:0004EE58 MOV R3, R1 .text:0004EE5C SUBS R0, R3, #0 .text:0004EE60 BEQ loc_4EE6C .text:0004EE64 BL decode_name .text:0004EE68 B loc_4EE70 .text:0004EE6C ; --------------------------------------------------------------------------- .text:0004EE6C .text:0004EE6C loc_4EE6C ; CODE XREF: getmntent_r+240j .text:0004EE6C LDR R0, =dword_62418 .text:0004EE70 .text:0004EE70 loc_4EE70 ; CODE XREF: getmntent_r+248j .text:0004EE70 LDR R1, [R11,#var_428] .text:0004EE74 STR R0, [R8,#4] .text:0004EE78 CMP R1, #0 .text:0004EE7C BEQ loc_4EEB0 .text:0004EE80 LDRB R3, [R1] .text:0004EE84 MOV R2, #0 .text:0004EE88 B loc_4EE94 .text:0004EE8C ; --------------------------------------------------------------------------- .text:0004EE8C .text:0004EE8C loc_4EE8C ; CODE XREF: getmntent_r+278j .text:0004EE8C ; getmntent_r+280j .text:0004EE8C ADD R2, R2, #1 .text:0004EE90 LDRB R3, [R1,R2] .text:0004EE94 .text:0004EE94 loc_4EE94 ; CODE XREF: getmntent_r+268j .text:0004EE94 CMP R3, #0x20 .text:0004EE98 BEQ loc_4EE8C .text:0004EE9C CMP R3, #9 .text:0004EEA0 BEQ loc_4EE8C .text:0004EEA4 LDR R3, [R11,#var_428] .text:0004EEA8 ADD R3, R3, R2 .text:0004EEAC STR R3, [R11,#var_428] .text:0004EEB0 .text:0004EEB0 loc_4EEB0 ; CODE XREF: getmntent_r+25Cj .text:0004EEB0 LDR R1, [R11,#var_428] .text:0004EEB4 CMP R1, #0 .text:0004EEB8 BEQ loc_4EF30 .text:0004EEBC LDRB R3, [R1] .text:0004EEC0 CMP R3, #0x20 .text:0004EEC4 BEQ loc_4EED0 .text:0004EEC8 CMP R3, #9 .text:0004EECC BNE loc_4EEE4 .text:0004EED0 .text:0004EED0 loc_4EED0 ; CODE XREF: getmntent_r+2A4j .text:0004EED0 MOV R2, R1 .text:0004EED4 MOV R3, #0 .text:0004EED8 STRB R3, [R2],#1 .text:0004EEDC STR R2, [R11,#var_428] .text:0004EEE0 B loc_4EF30 .text:0004EEE4 ; --------------------------------------------------------------------------- .text:0004EEE4 .text:0004EEE4 loc_4EEE4 ; CODE XREF: getmntent_r+2ACj .text:0004EEE4 MOV R2, R1 .text:0004EEE8 B loc_4EEF4 .text:0004EEEC ; --------------------------------------------------------------------------- .text:0004EEEC .text:0004EEEC loc_4EEEC ; CODE XREF: getmntent_r+2E8j .text:0004EEEC LDRB R3, [R2,#1]! .text:0004EEF0 AND R3, R3, #0xFF .text:0004EEF4 .text:0004EEF4 loc_4EEF4 ; CODE XREF: getmntent_r+2C8j .text:0004EEF4 CMP R3, #0 .text:0004EEF8 BEQ loc_4EF0C .text:0004EEFC CMP R3, #0x20 .text:0004EF00 BEQ loc_4EF0C .text:0004EF04 CMP R3, #9 .text:0004EF08 BNE loc_4EEEC .text:0004EF0C .text:0004EF0C loc_4EF0C ; CODE XREF: getmntent_r+2D8j .text:0004EF0C ; getmntent_r+2E0j .text:0004EF0C LDRB R3, [R2] .text:0004EF10 CMP R3, #0 .text:0004EF14 BEQ loc_4EF2C .text:0004EF18 STR R2, [R6] .text:0004EF1C MOV R3, #0 .text:0004EF20 STRB R3, [R2],#1 .text:0004EF24 STR R2, [R6] .text:0004EF28 B loc_4EF30 .text:0004EF2C ; --------------------------------------------------------------------------- .text:0004EF2C .text:0004EF2C loc_4EF2C ; CODE XREF: getmntent_r+2F4j .text:0004EF2C STR R3, [R6] .text:0004EF30 .text:0004EF30 loc_4EF30 ; CODE XREF: getmntent_r+298j .text:0004EF30 ; getmntent_r+2C0j ... .text:0004EF30 MOV R3, R1 .text:0004EF34 SUBS R0, R3, #0 .text:0004EF38 BEQ loc_4EF44 .text:0004EF3C BL decode_name .text:0004EF40 B loc_4EF48 .text:0004EF44 ; --------------------------------------------------------------------------- .text:0004EF44 .text:0004EF44 loc_4EF44 ; CODE XREF: getmntent_r+318j .text:0004EF44 LDR R0, =dword_62418 .text:0004EF48 .text:0004EF48 loc_4EF48 ; CODE XREF: getmntent_r+320j .text:0004EF48 LDR R1, [R11,#var_428] .text:0004EF4C STR R0, [R8,#8] .text:0004EF50 CMP R1, #0 .text:0004EF54 BEQ loc_4EF88 .text:0004EF58 LDRB R3, [R1] .text:0004EF5C MOV R2, #0 .text:0004EF60 B loc_4EF6C .text:0004EF64 ; --------------------------------------------------------------------------- .text:0004EF64 .text:0004EF64 loc_4EF64 ; CODE XREF: getmntent_r+350j .text:0004EF64 ; getmntent_r+358j .text:0004EF64 ADD R2, R2, #1 .text:0004EF68 LDRB R3, [R1,R2] .text:0004EF6C .text:0004EF6C loc_4EF6C ; CODE XREF: getmntent_r+340j .text:0004EF6C CMP R3, #0x20 .text:0004EF70 BEQ loc_4EF64 .text:0004EF74 CMP R3, #9 .text:0004EF78 BEQ loc_4EF64 .text:0004EF7C LDR R3, [R11,#var_428] .text:0004EF80 ADD R3, R3, R2 .text:0004EF84 STR R3, [R11,#var_428] .text:0004EF88 .text:0004EF88 loc_4EF88 ; CODE XREF: getmntent_r+334j .text:0004EF88 LDR R1, [R11,#var_428] .text:0004EF8C CMP R1, #0 .text:0004EF90 BEQ loc_4F008 .text:0004EF94 LDRB R3, [R1] .text:0004EF98 CMP R3, #0x20 .text:0004EF9C BEQ loc_4EFA8 .text:0004EFA0 CMP R3, #9 .text:0004EFA4 BNE loc_4EFBC .text:0004EFA8 .text:0004EFA8 loc_4EFA8 ; CODE XREF: getmntent_r+37Cj .text:0004EFA8 MOV R2, R1 .text:0004EFAC MOV R3, #0 .text:0004EFB0 STRB R3, [R2],#1 .text:0004EFB4 STR R2, [R11,#var_428] .text:0004EFB8 B loc_4F008 .text:0004EFBC ; --------------------------------------------------------------------------- .text:0004EFBC .text:0004EFBC loc_4EFBC ; CODE XREF: getmntent_r+384j .text:0004EFBC MOV R2, R1 .text:0004EFC0 B loc_4EFCC .text:0004EFC4 ; --------------------------------------------------------------------------- .text:0004EFC4 .text:0004EFC4 loc_4EFC4 ; CODE XREF: getmntent_r+3C0j .text:0004EFC4 LDRB R3, [R2,#1]! .text:0004EFC8 AND R3, R3, #0xFF .text:0004EFCC .text:0004EFCC loc_4EFCC ; CODE XREF: getmntent_r+3A0j .text:0004EFCC CMP R3, #0 .text:0004EFD0 BEQ loc_4EFE4 .text:0004EFD4 CMP R3, #0x20 .text:0004EFD8 BEQ loc_4EFE4 .text:0004EFDC CMP R3, #9 .text:0004EFE0 BNE loc_4EFC4 .text:0004EFE4 .text:0004EFE4 loc_4EFE4 ; CODE XREF: getmntent_r+3B0j .text:0004EFE4 ; getmntent_r+3B8j .text:0004EFE4 LDRB R3, [R2] .text:0004EFE8 CMP R3, #0 .text:0004EFEC BEQ loc_4F004 .text:0004EFF0 STR R2, [R6] .text:0004EFF4 MOV R3, #0 .text:0004EFF8 STRB R3, [R2],#1 .text:0004EFFC STR R2, [R6] .text:0004F000 B loc_4F008 .text:0004F004 ; --------------------------------------------------------------------------- .text:0004F004 .text:0004F004 loc_4F004 ; CODE XREF: getmntent_r+3CCj .text:0004F004 STR R3, [R6] .text:0004F008 .text:0004F008 loc_4F008 ; CODE XREF: getmntent_r+370j .text:0004F008 ; getmntent_r+398j ... .text:0004F008 MOV R0, R1 .text:0004F00C CMP R0, #0 .text:0004F010 BEQ loc_4F024 .text:0004F014 BL decode_name .text:0004F018 MOV R3, R0 .text:0004F01C B loc_4F028 .text:0004F01C ; --------------------------------------------------------------------------- .text:0004F020 off_4F020 DCD dword_62418 ; DATA XREF: getmntent_r:loc_4ED94r .text:0004F020 ; getmntent_r:loc_4EE6Cr ... .text:0004F024 ; --------------------------------------------------------------------------- .text:0004F024 .text:0004F024 loc_4F024 ; CODE XREF: getmntent_r+3F0j .text:0004F024 LDR R3, =dword_62418 .text:0004F028 .text:0004F028 loc_4F028 ; CODE XREF: getmntent_r+3FCj .text:0004F028 LDR R0, [R11,#var_428] .text:0004F02C STR R3, [R8,#0xC] .text:0004F030 CMP R0, #0 .text:0004F034 ADDNE R2, R8, #0x10 .text:0004F038 LDRNE R1, =aDD ; " %d %d " .text:0004F03C ADDNE R3, R8, #0x14 .text:0004F040 BLNE sscanf .text:0004F044 CMP R0, #1 .text:0004F048 BEQ loc_4F05C .text:0004F04C BGT loc_4F064 .text:0004F050 CMP R0, #0 .text:0004F054 BNE loc_4F064 .text:0004F058 STR R0, [R8,#0x10] .text:0004F05C .text:0004F05C loc_4F05C ; CODE XREF: getmntent_r+428j .text:0004F05C MOV R3, #0 .text:0004F060 STR R3, [R8,#0x14] .text:0004F064 .text:0004F064 loc_4F064 ; CODE XREF: getmntent_r+42Cj .text:0004F064 ; getmntent_r+434j .text:0004F064 MOV R0, R8 .text:0004F068 .text:0004F068 loc_4F068 ; CODE XREF: getmntent_r+40j .text:0004F068 B locret_4F074 .text:0004F068 ; --------------------------------------------------------------------------- .text:0004F06C off_4F06C DCD dword_62418 ; DATA XREF: getmntent_r:loc_4F024r .text:0004F070 off_4F070 DCD aDD ; DATA XREF: getmntent_r+418r .text:0004F070 ; " %d %d " .text:0004F074 ; --------------------------------------------------------------------------- .text:0004F074 .text:0004F074 locret_4F074 ; CODE XREF: getmntent_r:loc_4F068j .text:0004F074 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0004F074 ; End of function getmntent_r .text:0004F074 .text:0004F078 .text:0004F078 ; =============== S U B R O U T I N E ======================================= .text:0004F078 .text:0004F078 ; Attributes: bp-based frame .text:0004F078 .text:0004F078 WEAK addmntent .text:0004F078 addmntent .text:0004F078 .text:0004F078 var_44 = -0x44 .text:0004F078 var_40 = -0x40 .text:0004F078 var_3C = -0x3C .text:0004F078 var_38 = -0x38 .text:0004F078 var_34 = -0x34 .text:0004F078 var_30 = -0x30 .text:0004F078 var_2C = -0x2C .text:0004F078 var_28 = -0x28 .text:0004F078 var_24 = -0x24 .text:0004F078 var_20 = -0x20 .text:0004F078 .text:0004F078 MOV R12, SP ; Alternative name is '__addmntent' .text:0004F07C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0004F080 SUB R11, R12, #4 .text:0004F084 MOV LR, R1 .text:0004F088 MOV R7, R0 .text:0004F08C SUB SP, SP, #0x28 .text:0004F090 LDMIA LR!, {R0-R3} .text:0004F094 SUB R12, R11, #-var_34 .text:0004F098 STMIA R12!, {R0-R3} .text:0004F09C LDMIA LR, {R0,R1} .text:0004F0A0 STMIA R12, {R0,R1} .text:0004F0A4 MOV R2, #2 .text:0004F0A8 MOV R0, R7 .text:0004F0AC MOV R1, #0 .text:0004F0B0 BL fseek .text:0004F0B4 CMP R0, #0 .text:0004F0B8 MOVNE R0, #1 .text:0004F0BC BNE locret_4F448 .text:0004F0C0 LDR R4, [R11,#var_34] .text:0004F0C4 LDR R6, =aSSSSDD ; "%s %s %s %s %d %d\n" .text:0004F0C8 LDRB R3, [R4] .text:0004F0CC MOV R2, R4 .text:0004F0D0 B loc_4F0DC .text:0004F0D4 ; --------------------------------------------------------------------------- .text:0004F0D4 .text:0004F0D4 loc_4F0D4 ; CODE XREF: addmntent+7Cj .text:0004F0D4 LDRB R3, [R4,#1]! .text:0004F0D8 AND R3, R3, #0xFF .text:0004F0DC .text:0004F0DC loc_4F0DC ; CODE XREF: addmntent+58j .text:0004F0DC CMP R3, #0 .text:0004F0E0 BEQ loc_4F0F8 .text:0004F0E4 CMP R3, #9 .text:0004F0E8 CMPNE R3, #0x20 .text:0004F0EC BEQ loc_4F0F8 .text:0004F0F0 CMP R3, #0x5C .text:0004F0F4 BNE loc_4F0D4 .text:0004F0F8 .text:0004F0F8 loc_4F0F8 ; CODE XREF: addmntent+68j .text:0004F0F8 ; addmntent+74j .text:0004F0F8 LDRB R3, [R4] .text:0004F0FC CMP R3, #0 .text:0004F100 BEQ loc_4F194 .text:0004F104 MOV R4, R2 .text:0004F108 MOV R0, R4 .text:0004F10C BL strlen .text:0004F110 MOV R0, R0,LSL#2 .text:0004F114 ADD R0, R0, #4 .text:0004F118 RSB SP, R0, SP .text:0004F11C ADD R2, SP, #0x44+var_34 .text:0004F120 MOV R12, #0x5C .text:0004F124 MOV R0, #0x30 .text:0004F128 MOV R5, #0x34 .text:0004F12C MOV LR, #0x31 .text:0004F130 STR R2, [R11,#var_34] .text:0004F134 .text:0004F134 loc_4F134 ; CODE XREF: addmntent+118j .text:0004F134 LDRB R1, [R4] .text:0004F138 AND R3, R1, #0xFF .text:0004F13C CMP R3, #0x20 .text:0004F140 BNE loc_4F158 .text:0004F144 STRB R12, [R2],#1 .text:0004F148 STRB R0, [R2],#1 .text:0004F14C STRB R5, [R2],#1 .text:0004F150 STRB R0, [R2],#1 .text:0004F154 B loc_4F188 .text:0004F158 ; --------------------------------------------------------------------------- .text:0004F158 .text:0004F158 loc_4F158 ; CODE XREF: addmntent+C8j .text:0004F158 CMP R3, #9 .text:0004F15C BNE loc_4F178 .text:0004F160 STRB R12, [R2],#1 .text:0004F164 STRB R0, [R2],#1 .text:0004F168 STRB LR, [R2],#1 .text:0004F16C MOV R3, #0x32 .text:0004F170 STRB R3, [R2],#1 .text:0004F174 B loc_4F188 .text:0004F178 ; --------------------------------------------------------------------------- .text:0004F178 .text:0004F178 loc_4F178 ; CODE XREF: addmntent+E4j .text:0004F178 CMP R3, #0x5C .text:0004F17C STREQB R3, [R2],#1 .text:0004F180 STREQB R3, [R2],#1 .text:0004F184 STRNEB R1, [R2],#1 .text:0004F188 .text:0004F188 loc_4F188 ; CODE XREF: addmntent+DCj .text:0004F188 ; addmntent+FCj .text:0004F188 LDRB R3, [R4],#1 .text:0004F18C CMP R3, #0 .text:0004F190 BNE loc_4F134 .text:0004F194 .text:0004F194 loc_4F194 ; CODE XREF: addmntent+88j .text:0004F194 LDR R4, [R11,#var_30] .text:0004F198 LDRB R3, [R4] .text:0004F19C MOV R2, R4 .text:0004F1A0 B loc_4F1AC .text:0004F1A4 ; --------------------------------------------------------------------------- .text:0004F1A4 .text:0004F1A4 loc_4F1A4 ; CODE XREF: addmntent+14Cj .text:0004F1A4 LDRB R3, [R4,#1]! .text:0004F1A8 AND R3, R3, #0xFF .text:0004F1AC .text:0004F1AC loc_4F1AC ; CODE XREF: addmntent+128j .text:0004F1AC CMP R3, #0 .text:0004F1B0 BEQ loc_4F1C8 .text:0004F1B4 CMP R3, #9 .text:0004F1B8 CMPNE R3, #0x20 .text:0004F1BC BEQ loc_4F1C8 .text:0004F1C0 CMP R3, #0x5C .text:0004F1C4 BNE loc_4F1A4 .text:0004F1C8 .text:0004F1C8 loc_4F1C8 ; CODE XREF: addmntent+138j .text:0004F1C8 ; addmntent+144j .text:0004F1C8 LDRB R3, [R4] .text:0004F1CC CMP R3, #0 .text:0004F1D0 BEQ loc_4F264 .text:0004F1D4 MOV R4, R2 .text:0004F1D8 MOV R0, R4 .text:0004F1DC BL strlen .text:0004F1E0 MOV R0, R0,LSL#2 .text:0004F1E4 ADD R0, R0, #4 .text:0004F1E8 RSB SP, R0, SP .text:0004F1EC ADD R2, SP, #0x44+var_34 .text:0004F1F0 MOV R12, #0x5C .text:0004F1F4 MOV R0, #0x30 .text:0004F1F8 MOV R5, #0x34 .text:0004F1FC MOV LR, #0x31 .text:0004F200 STR R2, [R11,#var_30] .text:0004F204 .text:0004F204 loc_4F204 ; CODE XREF: addmntent+1E8j .text:0004F204 LDRB R1, [R4] .text:0004F208 AND R3, R1, #0xFF .text:0004F20C CMP R3, #0x20 .text:0004F210 BNE loc_4F228 .text:0004F214 STRB R12, [R2],#1 .text:0004F218 STRB R0, [R2],#1 .text:0004F21C STRB R5, [R2],#1 .text:0004F220 STRB R0, [R2],#1 .text:0004F224 B loc_4F258 .text:0004F228 ; --------------------------------------------------------------------------- .text:0004F228 .text:0004F228 loc_4F228 ; CODE XREF: addmntent+198j .text:0004F228 CMP R3, #9 .text:0004F22C BNE loc_4F248 .text:0004F230 STRB R12, [R2],#1 .text:0004F234 STRB R0, [R2],#1 .text:0004F238 STRB LR, [R2],#1 .text:0004F23C MOV R3, #0x32 .text:0004F240 STRB R3, [R2],#1 .text:0004F244 B loc_4F258 .text:0004F248 ; --------------------------------------------------------------------------- .text:0004F248 .text:0004F248 loc_4F248 ; CODE XREF: addmntent+1B4j .text:0004F248 CMP R3, #0x5C .text:0004F24C STREQB R3, [R2],#1 .text:0004F250 STREQB R3, [R2],#1 .text:0004F254 STRNEB R1, [R2],#1 .text:0004F258 .text:0004F258 loc_4F258 ; CODE XREF: addmntent+1ACj .text:0004F258 ; addmntent+1CCj .text:0004F258 LDRB R3, [R4],#1 .text:0004F25C CMP R3, #0 .text:0004F260 BNE loc_4F204 .text:0004F264 .text:0004F264 loc_4F264 ; CODE XREF: addmntent+158j .text:0004F264 LDR R4, [R11,#var_2C] .text:0004F268 LDRB R3, [R4] .text:0004F26C MOV R2, R4 .text:0004F270 B loc_4F27C .text:0004F274 ; --------------------------------------------------------------------------- .text:0004F274 .text:0004F274 loc_4F274 ; CODE XREF: addmntent+21Cj .text:0004F274 LDRB R3, [R4,#1]! .text:0004F278 AND R3, R3, #0xFF .text:0004F27C .text:0004F27C loc_4F27C ; CODE XREF: addmntent+1F8j .text:0004F27C CMP R3, #0 .text:0004F280 BEQ loc_4F298 .text:0004F284 CMP R3, #9 .text:0004F288 CMPNE R3, #0x20 .text:0004F28C BEQ loc_4F298 .text:0004F290 CMP R3, #0x5C .text:0004F294 BNE loc_4F274 .text:0004F298 .text:0004F298 loc_4F298 ; CODE XREF: addmntent+208j .text:0004F298 ; addmntent+214j .text:0004F298 LDRB R3, [R4] .text:0004F29C CMP R3, #0 .text:0004F2A0 BEQ loc_4F334 .text:0004F2A4 MOV R4, R2 .text:0004F2A8 MOV R0, R4 .text:0004F2AC BL strlen .text:0004F2B0 MOV R0, R0,LSL#2 .text:0004F2B4 ADD R0, R0, #4 .text:0004F2B8 RSB SP, R0, SP .text:0004F2BC ADD R2, SP, #0x44+var_34 .text:0004F2C0 MOV R12, #0x5C .text:0004F2C4 MOV R0, #0x30 .text:0004F2C8 MOV R5, #0x34 .text:0004F2CC MOV LR, #0x31 .text:0004F2D0 STR R2, [R11,#var_2C] .text:0004F2D4 .text:0004F2D4 loc_4F2D4 ; CODE XREF: addmntent+2B8j .text:0004F2D4 LDRB R1, [R4] .text:0004F2D8 AND R3, R1, #0xFF .text:0004F2DC CMP R3, #0x20 .text:0004F2E0 BNE loc_4F2F8 .text:0004F2E4 STRB R12, [R2],#1 .text:0004F2E8 STRB R0, [R2],#1 .text:0004F2EC STRB R5, [R2],#1 .text:0004F2F0 STRB R0, [R2],#1 .text:0004F2F4 B loc_4F328 .text:0004F2F8 ; --------------------------------------------------------------------------- .text:0004F2F8 .text:0004F2F8 loc_4F2F8 ; CODE XREF: addmntent+268j .text:0004F2F8 CMP R3, #9 .text:0004F2FC BNE loc_4F318 .text:0004F300 STRB R12, [R2],#1 .text:0004F304 STRB R0, [R2],#1 .text:0004F308 STRB LR, [R2],#1 .text:0004F30C MOV R3, #0x32 .text:0004F310 STRB R3, [R2],#1 .text:0004F314 B loc_4F328 .text:0004F318 ; --------------------------------------------------------------------------- .text:0004F318 .text:0004F318 loc_4F318 ; CODE XREF: addmntent+284j .text:0004F318 CMP R3, #0x5C .text:0004F31C STREQB R3, [R2],#1 .text:0004F320 STREQB R3, [R2],#1 .text:0004F324 STRNEB R1, [R2],#1 .text:0004F328 .text:0004F328 loc_4F328 ; CODE XREF: addmntent+27Cj .text:0004F328 ; addmntent+29Cj .text:0004F328 LDRB R3, [R4],#1 .text:0004F32C CMP R3, #0 .text:0004F330 BNE loc_4F2D4 .text:0004F334 .text:0004F334 loc_4F334 ; CODE XREF: addmntent+228j .text:0004F334 LDR R4, [R11,#var_28] .text:0004F338 LDRB R3, [R4] .text:0004F33C MOV R2, R4 .text:0004F340 B loc_4F34C .text:0004F344 ; --------------------------------------------------------------------------- .text:0004F344 .text:0004F344 loc_4F344 ; CODE XREF: addmntent+2ECj .text:0004F344 LDRB R3, [R4,#1]! .text:0004F348 AND R3, R3, #0xFF .text:0004F34C .text:0004F34C loc_4F34C ; CODE XREF: addmntent+2C8j .text:0004F34C CMP R3, #0 .text:0004F350 BEQ loc_4F368 .text:0004F354 CMP R3, #9 .text:0004F358 CMPNE R3, #0x20 .text:0004F35C BEQ loc_4F368 .text:0004F360 CMP R3, #0x5C .text:0004F364 BNE loc_4F344 .text:0004F368 .text:0004F368 loc_4F368 ; CODE XREF: addmntent+2D8j .text:0004F368 ; addmntent+2E4j .text:0004F368 LDRB R3, [R4] .text:0004F36C CMP R3, #0 .text:0004F370 BEQ loc_4F410 .text:0004F374 MOV R4, R2 .text:0004F378 MOV R0, R4 .text:0004F37C BL strlen .text:0004F380 MOV R0, R0,LSL#2 .text:0004F384 ADD R0, R0, #4 .text:0004F388 RSB SP, R0, SP .text:0004F38C ADD R2, SP, #0x44+var_34 .text:0004F390 MOV R12, #0x5C .text:0004F394 MOV R0, #0x30 .text:0004F398 MOV R5, #0x34 .text:0004F39C MOV LR, #0x31 .text:0004F3A0 STR R2, [R11,#var_28] .text:0004F3A4 .text:0004F3A4 loc_4F3A4 ; CODE XREF: addmntent+394j .text:0004F3A4 LDRB R1, [R4] .text:0004F3A8 AND R3, R1, #0xFF .text:0004F3AC CMP R3, #0x20 .text:0004F3B0 BNE loc_4F3C8 .text:0004F3B4 STRB R12, [R2],#1 .text:0004F3B8 STRB R0, [R2],#1 .text:0004F3BC STRB R5, [R2],#1 .text:0004F3C0 STRB R0, [R2],#1 .text:0004F3C4 B loc_4F404 .text:0004F3C8 ; --------------------------------------------------------------------------- .text:0004F3C8 .text:0004F3C8 loc_4F3C8 ; CODE XREF: addmntent+338j .text:0004F3C8 CMP R3, #9 .text:0004F3CC BNE loc_4F3E8 .text:0004F3D0 STRB R12, [R2],#1 .text:0004F3D4 STRB R0, [R2],#1 .text:0004F3D8 STRB LR, [R2],#1 .text:0004F3DC MOV R3, #0x32 .text:0004F3E0 STRB R3, [R2],#1 .text:0004F3E4 B loc_4F404 .text:0004F3E8 ; --------------------------------------------------------------------------- .text:0004F3E8 .text:0004F3E8 loc_4F3E8 ; CODE XREF: addmntent+354j .text:0004F3E8 CMP R3, #0x5C .text:0004F3EC BNE loc_4F400 .text:0004F3F0 STRB R3, [R2],#1 .text:0004F3F4 STRB R3, [R2],#1 .text:0004F3F8 B loc_4F404 .text:0004F3F8 ; --------------------------------------------------------------------------- .text:0004F3FC off_4F3FC DCD aSSSSDD ; DATA XREF: addmntent+4Cr .text:0004F3FC ; "%s %s %s %s %d %d\n" .text:0004F400 ; --------------------------------------------------------------------------- .text:0004F400 .text:0004F400 loc_4F400 ; CODE XREF: addmntent+374j .text:0004F400 STRB R1, [R2],#1 .text:0004F404 .text:0004F404 loc_4F404 ; CODE XREF: addmntent+34Cj .text:0004F404 ; addmntent+36Cj ... .text:0004F404 LDRB R3, [R4],#1 .text:0004F408 CMP R3, #0 .text:0004F40C BNE loc_4F3A4 .text:0004F410 .text:0004F410 loc_4F410 ; CODE XREF: addmntent+2F8j .text:0004F410 LDR R3, [R11,#var_2C] .text:0004F414 STR R3, [SP,#0x44+var_44] .text:0004F418 LDR R2, [R11,#var_28] .text:0004F41C STR R2, [SP,#0x44+var_40] .text:0004F420 LDR R3, [R11,#var_24] .text:0004F424 STR R3, [SP,#0x44+var_3C] .text:0004F428 LDR R2, [R11,#var_20] .text:0004F42C STR R2, [SP,#0x44+var_38] .text:0004F430 LDR R2, [R11,#var_34] .text:0004F434 MOV R0, R7 .text:0004F438 LDR R3, [R11,#var_30] .text:0004F43C MOV R1, R6 .text:0004F440 BL fprintf .text:0004F444 MOV R0, R0,LSR#31 .text:0004F448 .text:0004F448 locret_4F448 ; CODE XREF: addmntent+44j .text:0004F448 LDMDB R11, {R4-R7,R11,SP,PC} .text:0004F448 ; End of function addmntent .text:0004F448 .text:0004F44C .text:0004F44C ; =============== S U B R O U T I N E ======================================= .text:0004F44C .text:0004F44C ; Attributes: bp-based frame .text:0004F44C .text:0004F44C WEAK hasmntopt .text:0004F44C hasmntopt .text:0004F44C MOV R12, SP .text:0004F450 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004F454 SUB R11, R12, #4 .text:0004F458 MOV R4, R0 .text:0004F45C MOV R5, R1 .text:0004F460 MOV R0, R5 .text:0004F464 BL strlen .text:0004F468 LDR R4, [R4,#0xC] .text:0004F46C MOV R6, R0 .text:0004F470 B loc_4F4B8 .text:0004F474 ; --------------------------------------------------------------------------- .text:0004F474 .text:0004F474 loc_4F474 ; CODE XREF: hasmntopt+7Cj .text:0004F474 CMP R0, R4 .text:0004F478 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0004F47C LDRB R3, [R0,#-1] .text:0004F480 CMP R3, #0x2C .text:0004F484 BNE loc_4F4A0 .text:0004F488 LDRB R3, [R0,R6] .text:0004F48C CMP R3, #0x3D .text:0004F490 CMPNE R3, #0 .text:0004F494 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0004F498 CMP R3, #0x2C .text:0004F49C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0004F4A0 .text:0004F4A0 loc_4F4A0 ; CODE XREF: hasmntopt+38j .text:0004F4A0 MOV R0, R4 .text:0004F4A4 MOV R1, #0x2C .text:0004F4A8 BL strchr .text:0004F4AC SUBS R4, R0, #0 .text:0004F4B0 BEQ loc_4F4CC .text:0004F4B4 ADD R4, R4, #1 .text:0004F4B8 .text:0004F4B8 loc_4F4B8 ; CODE XREF: hasmntopt+24j .text:0004F4B8 MOV R0, R4 .text:0004F4BC MOV R1, R5 .text:0004F4C0 BL strstr .text:0004F4C4 CMP R0, #0 .text:0004F4C8 BNE loc_4F474 .text:0004F4CC .text:0004F4CC loc_4F4CC ; CODE XREF: hasmntopt+64j .text:0004F4CC MOV R0, #0 .text:0004F4D0 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004F4D0 ; End of function hasmntopt .text:0004F4D0 .text:0004F4D4 .text:0004F4D4 ; =============== S U B R O U T I N E ======================================= .text:0004F4D4 .text:0004F4D4 ; Attributes: bp-based frame .text:0004F4D4 .text:0004F4D4 EXPORT _dl_start_profile .text:0004F4D4 _dl_start_profile .text:0004F4D4 .text:0004F4D4 var_588 = -0x588 .text:0004F4D4 var_584 = -0x584 .text:0004F4D4 var_580 = -0x580 .text:0004F4D4 var_57C = -0x57C .text:0004F4D4 var_578 = -0x578 .text:0004F4D4 var_574 = -0x574 .text:0004F4D4 var_570 = -0x570 .text:0004F4D4 var_560 = -0x560 .text:0004F4D4 var_3DC = -0x3DC .text:0004F4D4 var_24C = -0x24C .text:0004F4D4 var_BC = -0xBC .text:0004F4D4 var_B8 = -0xB8 .text:0004F4D4 var_B4 = -0xB4 .text:0004F4D4 var_B0 = -0xB0 .text:0004F4D4 var_AC = -0xAC .text:0004F4D4 var_9D = -0x9D .text:0004F4D4 var_9C = -0x9C .text:0004F4D4 var_98 = -0x98 .text:0004F4D4 var_88 = -0x88 .text:0004F4D4 var_78 = -0x78 .text:0004F4D4 var_5C = -0x5C .text:0004F4D4 var_28 = -0x28 .text:0004F4D4 .text:0004F4D4 MOV R12, SP .text:0004F4D8 STMFD SP!, {R4-R12,LR,PC} .text:0004F4DC SUB R11, R12, #4 .text:0004F4E0 MOV R4, R0 .text:0004F4E4 MOV R8, 0xFFFFFFFF .text:0004F4E8 MOV R7, #0 .text:0004F4EC SUB SP, SP, #0x560 .text:0004F4F0 LDR LR, [R4,#0xEC] .text:0004F4F4 MOV R6, R7 .text:0004F4F8 LDRB R3, [R4,#0xF4] .text:0004F4FC MOV R9, R1 .text:0004F500 LDRB R2, [R4,#0xF5] .text:0004F504 SUB R1, R11, #-var_9C .text:0004F508 STR R1, [R11,#var_580] .text:0004F50C ORR R3, R3, R2,LSL#8 .text:0004F510 ADD R3, LR, R3,LSL#5 .text:0004F514 CMP LR, R3 .text:0004F518 SUB R2, R11, #-var_AC .text:0004F51C STR R2, [R11,#var_57C] .text:0004F520 BCS loc_4F584 .text:0004F524 MOV R5, R3 .text:0004F528 LDR R10, =_dl_pagesize .text:0004F52C .text:0004F52C loc_4F52C ; CODE XREF: _dl_start_profile+ACj .text:0004F52C LDR R3, [LR] .text:0004F530 CMP R3, #1 .text:0004F534 BNE loc_4F578 .text:0004F538 LDR R3, [LR,#0x18] .text:0004F53C TST R3, #1 .text:0004F540 BEQ loc_4F578 .text:0004F544 LDR R12, [R10] .text:0004F548 LDR R3, [LR,#8] .text:0004F54C LDR R1, [LR,#0x14] .text:0004F550 RSB R0, R12, #0 .text:0004F554 AND R2, R3, R0 .text:0004F558 CMP R2, R8 .text:0004F55C MOVCC R8, R2 .text:0004F560 ADD R3, R3, R1 .text:0004F564 ADD R3, R3, R12 .text:0004F568 SUB R3, R3, #1 .text:0004F56C AND R3, R3, R0 .text:0004F570 CMP R3, R6 .text:0004F574 MOVCS R6, R3 .text:0004F578 .text:0004F578 loc_4F578 ; CODE XREF: _dl_start_profile+60j .text:0004F578 ; _dl_start_profile+6Cj .text:0004F578 ADD LR, LR, #0x20 .text:0004F57C CMP LR, R5 .text:0004F580 BCC loc_4F52C .text:0004F584 .text:0004F584 loc_4F584 ; CODE XREF: _dl_start_profile+4Cj .text:0004F584 LDR R3, =state .text:0004F588 MOV R12, #3 .text:0004F58C STR R12, [R3] .text:0004F590 LDR R1, =hashfraction .text:0004F594 LDR R2, =lowpc .text:0004F598 LDR R3, [R4] .text:0004F59C MOV R5, #2 .text:0004F5A0 STR R5, [R1] .text:0004F5A4 ADD R4, R8, R3 .text:0004F5A8 BIC R4, R4, #3 .text:0004F5AC ADD R3, R6, R3 .text:0004F5B0 STR R4, [R2] .text:0004F5B4 ADD R3, R3, R12 .text:0004F5B8 BIC R3, R3, #3 .text:0004F5BC STR R3, [R11,#var_574] .text:0004F5C0 RSB R4, R4, R3 .text:0004F5C4 LDR R3, =textsize .text:0004F5C8 STR R4, [R3] .text:0004F5CC MOV R3, R4,LSR#1 .text:0004F5D0 STR R3, [R11,#var_578] .text:0004F5D4 LDR R12, =kcountsize .text:0004F5D8 STR R3, [R12] .text:0004F5DC MOV R0, R5,LSL#3 .text:0004F5E0 BL ffsl .text:0004F5E4 LDR R3, =log_hashfraction .text:0004F5E8 SUB R0, R0, #1 .text:0004F5EC STR R0, [R3] .text:0004F5F0 MOV R1, #0x32 .text:0004F5F4 MOV R0, R4 .text:0004F5F8 BL __udivsi3 .text:0004F5FC LDR R1, =fromlimit .text:0004F600 CMP R0, #0x31 .text:0004F604 STR R0, [R1] .text:0004F608 MOVLS R3, #0x32 .text:0004F60C STRLS R3, [R1] .text:0004F610 LDR R12, =fromlimit .text:0004F614 MOV R2, #0xFF00 .text:0004F618 LDR R3, [R12] .text:0004F61C ADD R2, R2, #0xFE .text:0004F620 CMP R3, R2 .text:0004F624 STRHI R2, [R12] .text:0004F628 LDR R2, =fromlimit .text:0004F62C LDR R3, [R2] .text:0004F630 MOV R12, R3,LSL#3 .text:0004F634 STR R12, [R11,#var_570] .text:0004F638 MOV R1, #0 .text:0004F63C LDR R0, [R11,#var_580] .text:0004F640 MOV R2, #0x14 .text:0004F644 ADD R3, R12, R3,LSL#4 .text:0004F648 MOV R3, R3,LSL#2 .text:0004F64C LDR R12, [R11,#var_578] .text:0004F650 ADD R3, R3, #0x40 .text:0004F654 ADD R10, R12, R3 .text:0004F658 BL memset .text:0004F65C MOV R3, 0x1FFFF .text:0004F664 STR R3, [R11,#var_98] .text:0004F668 STR R8, [R11,#var_BC] .text:0004F66C STR R6, [R11,#var_B8] .text:0004F670 LDR R3, =dword_62438 .text:0004F674 LDR R2, [R3] .text:0004F678 STR R2, [R11,#var_9C] .text:0004F67C LDR R1, =kcountsize .text:0004F680 LDR R3, [R1] .text:0004F684 MOV R3, R3,LSR#1 .text:0004F688 STR R3, [R11,#var_B4] .text:0004F68C BL __profile_frequency .text:0004F690 STR R0, [R11,#var_B0] .text:0004F694 LDR R0, [R11,#var_57C] .text:0004F698 LDR R1, =aSeconds ; "seconds" .text:0004F69C MOV R2, #0xF .text:0004F6A0 BL strncpy .text:0004F6A4 MOV R3, #0x73 .text:0004F6A8 STRB R3, [R11,#var_9D] .text:0004F6AC MOV R0, R9 .text:0004F6B0 BL strlen .text:0004F6B4 LDR R2, =_dl_profile .text:0004F6B8 MOV R4, R0 .text:0004F6BC LDR R0, [R2] .text:0004F6C0 BL strlen .text:0004F6C4 ADD R0, R0, R4 .text:0004F6C8 ADD R0, R0, #0xD .text:0004F6CC BIC R0, R0, #3 .text:0004F6D0 RSB SP, R0, SP .text:0004F6D4 ADD R8, SP, #0x588+var_580 .text:0004F6D8 MOV R0, R8 .text:0004F6DC MOV R1, R9 .text:0004F6E0 BL stpcpy .text:0004F6E4 MOV R3, #0x2F .text:0004F6E8 STRB R3, [R0],#1 .text:0004F6EC LDR R3, =_dl_profile .text:0004F6F0 LDR R1, [R3] .text:0004F6F4 BL stpcpy .text:0004F6F8 LDR R1, =a_profile ; ".profile" .text:0004F6FC BL stpcpy .text:0004F700 MOV R0, R8 .text:0004F704 MOV R1, 0x8042 .text:0004F70C MOV R2, 0x1B6 .text:0004F714 BL open .text:0004F718 MOV R6, R0 .text:0004F71C CMN R6, #1 .text:0004F720 BNE loc_4F748 .text:0004F724 BL __errno_location .text:0004F728 SUB R1, R11, #-var_24C .text:0004F72C LDR R0, [R0] .text:0004F730 MOV R2, #0x190 .text:0004F734 BL strerror_r .text:0004F738 MOV R3, R0 .text:0004F73C MOV R0, R5 .text:0004F740 LDR R1, =aSCannotOpenFil ; "%s: cannot open file: %s\n" .text:0004F744 B loc_4F970 .text:0004F748 ; --------------------------------------------------------------------------- .text:0004F748 .text:0004F748 loc_4F748 ; CODE XREF: _dl_start_profile+24Cj .text:0004F748 MOV R0, #3 .text:0004F74C MOV R1, R6 .text:0004F750 SUB R2, R11, #-var_88 .text:0004F754 BL __fxstat64 .text:0004F758 CMP R0, #0 .text:0004F75C BLT loc_4F770 .text:0004F760 LDR R3, [R11,#var_78] .text:0004F764 AND R3, R3, #0xF000 .text:0004F768 CMP R3, #0x8000 .text:0004F76C BEQ loc_4F7A0 .text:0004F770 .text:0004F770 loc_4F770 ; CODE XREF: _dl_start_profile+288j .text:0004F770 BL __errno_location .text:0004F774 LDR R4, [R0] .text:0004F778 MOV R0, R6 .text:0004F77C BL close .text:0004F780 SUB R1, R11, #-var_3DC .text:0004F784 MOV R2, #0x190 .text:0004F788 MOV R0, R4 .text:0004F78C BL strerror_r .text:0004F790 MOV R3, R0 .text:0004F794 MOV R0, R5 .text:0004F798 LDR R1, =aSCannotStatFil ; "%s: cannot stat file: %s\n" .text:0004F79C B loc_4F970 .text:0004F7A0 ; --------------------------------------------------------------------------- .text:0004F7A0 .text:0004F7A0 loc_4F7A0 ; CODE XREF: _dl_start_profile+298j .text:0004F7A0 MOV R2, 0xFFFFFFCC .text:0004F7A4 SUB R12, R11, #-var_28 .text:0004F7A8 LDR R5, [R12,R2] .text:0004F7AC ADD R2, R2, R11 .text:0004F7B0 SUB R3, R2, #0x28 .text:0004F7B4 LDR R0, [R3,#4] .text:0004F7B8 ORRS R5, R5, R0 .text:0004F7BC BNE loc_4F888 .text:0004F7C0 LDR R4, =_dl_pagesize .text:0004F7C4 MOV R1, R5 .text:0004F7C8 LDR R2, [R4] .text:0004F7CC MOV R9, SP .text:0004F7D0 BIC R3, R2, #0xE0000000 .text:0004F7D4 ADD R3, R3, #3 .text:0004F7D8 BIC R3, R3, #0xC0000003 .text:0004F7DC RSB SP, R3, SP .text:0004F7E0 ADD R7, SP, #0x588+var_580 .text:0004F7E4 MOV R0, R7 .text:0004F7E8 BL memset .text:0004F7EC MOV R0, R6 .text:0004F7F0 LDR R1, [R4] .text:0004F7F4 MOV R2, R5 .text:0004F7F8 RSB R1, R1, #0 .text:0004F7FC AND R1, R10, R1 .text:0004F800 BL lseek .text:0004F804 CMN R0, #1 .text:0004F808 BNE loc_4F844 .text:0004F80C .text:0004F80C loc_4F80C ; CODE XREF: _dl_start_profile+3A8j .text:0004F80C BL __errno_location .text:0004F810 LDR R4, [R0] .text:0004F814 MOV R0, R6 .text:0004F818 BL close .text:0004F81C SUB R1, R11, #-var_560 .text:0004F820 SUB R1, R1, #8 .text:0004F824 SUB R1, R1, #4 .text:0004F828 MOV R2, #0x190 .text:0004F82C MOV R0, R4 .text:0004F830 BL strerror_r .text:0004F834 MOV R3, R0 .text:0004F838 MOV R0, #2 .text:0004F83C LDR R1, =aSCannotCreateF ; "%s: cannot create file: %s\n" .text:0004F840 B loc_4F970 .text:0004F844 ; --------------------------------------------------------------------------- .text:0004F844 .text:0004F844 loc_4F844 ; CODE XREF: _dl_start_profile+334j .text:0004F844 ; _dl_start_profile+3A0j .text:0004F844 MOV R0, R6 .text:0004F848 LDR R2, [R4] .text:0004F84C MOV R1, R7 .text:0004F850 SUB R2, R2, #1 .text:0004F854 AND R2, R10, R2 .text:0004F858 BL write .text:0004F85C MOV R5, R0 .text:0004F860 CMN R5, #1 .text:0004F864 BNE loc_4F878 .text:0004F868 BL __errno_location .text:0004F86C LDR R3, [R0] .text:0004F870 CMP R3, #4 .text:0004F874 BEQ loc_4F844 .text:0004F878 .text:0004F878 loc_4F878 ; CODE XREF: _dl_start_profile+390j .text:0004F878 CMP R5, #0 .text:0004F87C BLT loc_4F80C .text:0004F880 MOV SP, R9 .text:0004F884 B loc_4F914 .text:0004F888 ; --------------------------------------------------------------------------- .text:0004F888 .text:0004F888 loc_4F888 ; CODE XREF: _dl_start_profile+2E8j .text:0004F888 LDR R3, [R11,#var_5C] .text:0004F88C MOV R1, R10 .text:0004F890 MOV R2, R1,ASR#31 .text:0004F894 CMP R3, R1 .text:0004F898 BNE loc_4F8A4 .text:0004F89C CMP R0, R2 .text:0004F8A0 BEQ loc_4F914 .text:0004F8A4 .text:0004F8A4 loc_4F8A4 ; CODE XREF: _dl_start_profile+3C4j .text:0004F8A4 MOV R0, R6 .text:0004F8A8 BL close .text:0004F8AC .text:0004F8AC loc_4F8AC ; CODE XREF: _dl_start_profile+554j .text:0004F8AC ; _dl_start_profile+560j ... .text:0004F8AC CMP R7, #0 .text:0004F8B0 BEQ loc_4F8C0 .text:0004F8B4 MOV R0, R7 .text:0004F8B8 MOV R1, R10 .text:0004F8BC BL munmap .text:0004F8C0 .text:0004F8C0 loc_4F8C0 ; CODE XREF: _dl_start_profile+3DCj .text:0004F8C0 LDR R1, =aSFileIsNoCorre ; "%s: file is no correct profile data fil"... .text:0004F8C4 LDR R2, =_dl_profile .text:0004F8C8 MOV R0, #2 .text:0004F8CC LDR R3, [R2] .text:0004F8D0 B loc_4F970 .text:0004F8D0 ; --------------------------------------------------------------------------- .text:0004F8D4 off_4F8D4 DCD _dl_pagesize ; DATA XREF: _dl_start_profile+54r .text:0004F8D4 ; _dl_start_profile+2ECr .text:0004F8D8 off_4F8D8 DCD state ; DATA XREF: _dl_start_profile:loc_4F584r .text:0004F8DC off_4F8DC DCD hashfraction ; DATA XREF: _dl_start_profile+BCr .text:0004F8E0 off_4F8E0 DCD lowpc ; DATA XREF: _dl_start_profile+C0r .text:0004F8E4 off_4F8E4 DCD textsize ; DATA XREF: _dl_start_profile+F0r .text:0004F8E8 off_4F8E8 DCD kcountsize ; DATA XREF: _dl_start_profile+100r .text:0004F8E8 ; _dl_start_profile+1A8r .text:0004F8EC off_4F8EC DCD log_hashfraction ; DATA XREF: _dl_start_profile+110r .text:0004F8F0 off_4F8F0 DCD fromlimit ; DATA XREF: _dl_start_profile+128r .text:0004F8F0 ; _dl_start_profile+13Cr ... .text:0004F8F4 off_4F8F4 DCD dword_62438 ; DATA XREF: _dl_start_profile+19Cr .text:0004F8F8 off_4F8F8 DCD aSeconds ; DATA XREF: _dl_start_profile+1C4r .text:0004F8F8 ; "seconds" .text:0004F8FC off_4F8FC DCD _dl_profile ; DATA XREF: _dl_start_profile+1E0r .text:0004F8FC ; _dl_start_profile+218r ... .text:0004F900 off_4F900 DCD a_profile ; DATA XREF: _dl_start_profile+224r .text:0004F900 ; ".profile" .text:0004F904 off_4F904 DCD aSCannotOpenFil ; DATA XREF: _dl_start_profile+26Cr .text:0004F904 ; "%s: cannot open file: %s\n" .text:0004F908 off_4F908 DCD aSCannotStatFil ; DATA XREF: _dl_start_profile+2C4r .text:0004F908 ; "%s: cannot stat file: %s\n" .text:0004F90C off_4F90C DCD aSCannotCreateF ; DATA XREF: _dl_start_profile+368r .text:0004F90C ; "%s: cannot create file: %s\n" .text:0004F910 off_4F910 DCD aSFileIsNoCorre ; DATA XREF: _dl_start_profile:loc_4F8C0r .text:0004F910 ; "%s: file is no correct profile data fil"... .text:0004F914 ; --------------------------------------------------------------------------- .text:0004F914 .text:0004F914 loc_4F914 ; CODE XREF: _dl_start_profile+3B0j .text:0004F914 ; _dl_start_profile+3CCj .text:0004F914 STR R6, [SP,#0x588+var_588] .text:0004F918 MOV R0, #0 .text:0004F91C STR R0, [SP,#0x588+var_584] .text:0004F920 MOV R1, R10 .text:0004F924 MOV R2, #3 .text:0004F928 MOV R3, #1 .text:0004F92C BL mmap .text:0004F930 MOV R7, R0 .text:0004F934 CMN R7, #1 .text:0004F938 BNE loc_4F97C .text:0004F93C BL __errno_location .text:0004F940 LDR R4, [R0] .text:0004F944 MOV R0, R6 .text:0004F948 BL close .text:0004F94C SUB R1, R11, #-var_560 .text:0004F950 SUB R1, R1, #8 .text:0004F954 SUB R1, R1, #4 .text:0004F958 MOV R2, #0x190 .text:0004F95C MOV R0, R4 .text:0004F960 BL strerror_r .text:0004F964 MOV R3, R0 .text:0004F968 MOV R0, #2 .text:0004F96C LDR R1, =aSCannotMapFile ; "%s: cannot map file: %s\n" .text:0004F970 .text:0004F970 loc_4F970 ; CODE XREF: _dl_start_profile+270j .text:0004F970 ; _dl_start_profile+2C8j ... .text:0004F970 MOV R2, R8 .text:0004F974 BL _dl_dprintf .text:0004F978 B locret_4FC9C .text:0004F97C ; --------------------------------------------------------------------------- .text:0004F97C .text:0004F97C loc_4F97C ; CODE XREF: _dl_start_profile+464j .text:0004F97C MOV R0, R6 .text:0004F980 BL close .text:0004F984 LDR R4, =kcount .text:0004F988 ADD R2, R7, #0x38 .text:0004F98C STR R2, [R4] .text:0004F990 LDR R12, =kcountsize .text:0004F994 LDR R3, [R12] .text:0004F998 LDR R12, =narcsp .text:0004F99C ADD R2, R2, R3 .text:0004F9A0 ADD R2, R2, #4 .text:0004F9A4 STR R2, [R12] .text:0004F9A8 MOV R0, 0xFFFFFFCC .text:0004F9AC SUB R1, R11, #-var_28 .text:0004F9B0 ADD R2, R2, #4 .text:0004F9B4 LDR R5, [R1,R0] .text:0004F9B8 ADD R0, R0, R11 .text:0004F9BC SUB R1, R0, #0x28 .text:0004F9C0 LDR R3, [R1,#4] .text:0004F9C4 MOV R6, R12 .text:0004F9C8 LDR R1, =data .text:0004F9CC ORRS R5, R5, R3 .text:0004F9D0 STR R2, [R1] .text:0004F9D4 BNE loc_4FA14 .text:0004F9D8 LDR LR, [R11,#var_580] .text:0004F9DC LDMIA LR!, {R0-R3} .text:0004F9E0 MOV R12, R7 .text:0004F9E4 STMIA R12!, {R0-R3} .text:0004F9E8 LDR R3, [LR] .text:0004F9EC STR R3, [R12] .text:0004F9F0 STR R5, [R7,#0x14] .text:0004F9F4 ADD R0, R7, #0x18 .text:0004F9F8 SUB R1, R11, #-var_BC .text:0004F9FC MOV R2, #0x20 .text:0004FA00 BL memcpy .text:0004FA04 LDR R2, [R6] .text:0004FA08 MOV R3, #1 .text:0004FA0C STR R3, [R2,#-4] .text:0004FA10 B loc_4FA60 .text:0004FA14 ; --------------------------------------------------------------------------- .text:0004FA14 .text:0004FA14 loc_4FA14 ; CODE XREF: _dl_start_profile+500j .text:0004FA14 MOV R0, R7 .text:0004FA18 LDR R1, [R11,#var_580] .text:0004FA1C MOV R2, #0x14 .text:0004FA20 BL memcmp .text:0004FA24 CMP R0, #0 .text:0004FA28 BNE loc_4F8AC .text:0004FA2C LDR R3, [R7,#0x14] .text:0004FA30 CMP R3, #0 .text:0004FA34 BNE loc_4F8AC .text:0004FA38 ADD R0, R7, #0x18 .text:0004FA3C SUB R1, R11, #-var_BC .text:0004FA40 MOV R2, #0x20 .text:0004FA44 BL memcmp .text:0004FA48 CMP R0, #0 .text:0004FA4C BNE loc_4F8AC .text:0004FA50 LDR R3, [R6] .text:0004FA54 LDR R2, [R3,#-4] .text:0004FA58 CMP R2, #1 .text:0004FA5C BNE loc_4F8AC .text:0004FA60 .text:0004FA60 loc_4FA60 ; CODE XREF: _dl_start_profile+53Cj .text:0004FA60 LDR R2, [R11,#var_578] .text:0004FA64 LDR R3, [R11,#var_570] .text:0004FA68 MOV R1, #1 .text:0004FA6C ADD R0, R2, R3 .text:0004FA70 BL calloc .text:0004FA74 LDR R4, =tos .text:0004FA78 CMP R0, #0 .text:0004FA7C STR R0, [R4] .text:0004FA80 BNE loc_4FAA4 .text:0004FA84 MOV R0, R7 .text:0004FA88 MOV R1, R10 .text:0004FA8C BL munmap .text:0004FA90 MOV R0, #2 .text:0004FA94 LDR R1, =aOutOfMemoryWhi ; "Out of memory while initializing profil"... .text:0004FA98 BL _dl_dprintf .text:0004FA9C MOV R0, #0x7F ; status .text:0004FAA0 BL _exit .text:0004FAA4 ; --------------------------------------------------------------------------- .text:0004FAA4 .text:0004FAA4 loc_4FAA4 ; CODE XREF: _dl_start_profile+5ACj .text:0004FAA4 LDR R3, [R4] .text:0004FAA8 LDR R12, [R11,#var_578] .text:0004FAAC LDR R1, =froms .text:0004FAB0 ADD R3, R3, R12 .text:0004FAB4 STR R3, [R1] .text:0004FAB8 LDR LR, =fromidx .text:0004FABC MOV R3, #0 .text:0004FAC0 STR R3, [LR] .text:0004FAC4 LDR R2, =fromlimit .text:0004FAC8 LDR R12, [R6] .text:0004FACC LDR R3, [R2] .text:0004FAD0 LDR R2, [R12] .text:0004FAD4 MOV R0, R3 .text:0004FAD8 CMP R2, R3 .text:0004FADC LDRCC R0, [R12] .text:0004FAE0 LDR R3, =narcs .text:0004FAE4 SUBS R7, R0, #0 .text:0004FAE8 STR R0, [R3] .text:0004FAEC BEQ loc_4FBA4 .text:0004FAF0 MOV R9, LR .text:0004FAF4 MOV R10, R4 .text:0004FAF8 ADD R3, R7, R7,LSL#1 .text:0004FAFC MOV R8, R3,LSL#2 .text:0004FB00 .text:0004FB00 loc_4FB00 ; CODE XREF: _dl_start_profile+6CCj .text:0004FB00 LDR R3, =data .text:0004FB04 LDR R12, =hashfraction .text:0004FB08 LDR R4, [R3] .text:0004FB0C SUB R8, R8, #0xC .text:0004FB10 LDR R1, [R12] .text:0004FB14 ADD R4, R8, R4 .text:0004FB18 LDRB R0, [R4,#4] .text:0004FB1C LDRB R2, [R4,#5] .text:0004FB20 LDRB R12, [R4,#6] .text:0004FB24 MOV R1, R1,LSL#1 .text:0004FB28 LDRB R3, [R4,#7] .text:0004FB2C ORR R0, R0, R2,LSL#8 .text:0004FB30 ORR R0, R0, R12,LSL#16 .text:0004FB34 ORR R0, R0, R3,LSL#24 .text:0004FB38 BL __udivsi3 .text:0004FB3C LDR R3, [R9] .text:0004FB40 MOV R5, R3 .text:0004FB44 ADD R3, R3, #1 .text:0004FB48 STR R3, [R9] .text:0004FB4C LDR R1, =froms .text:0004FB50 LDR R6, [R1] .text:0004FB54 MOV LR, R5,LSL#3 .text:0004FB58 STR R4, [LR,R6] .text:0004FB5C LDR R1, [R10] .text:0004FB60 MOV R3, R0,LSL#1 .text:0004FB64 LDRB R2, [R3,R1] .text:0004FB68 ADD R3, R3, R1 .text:0004FB6C LDRB R12, [R3,#1] .text:0004FB70 ADD LR, LR, R6 .text:0004FB74 ORR R2, R2, R12,LSL#8 .text:0004FB78 STRB R2, [LR,#4] .text:0004FB7C MOV R2, R2,ASR#8 .text:0004FB80 STRB R2, [LR,#5] .text:0004FB84 SUB R7, R7, #1 .text:0004FB88 LDR R3, [R10] .text:0004FB8C CMP R7, #0 .text:0004FB90 STRB R5, [R3,R0,LSL#1] .text:0004FB94 ADD R3, R3, R0,LSL#1 .text:0004FB98 MOV R5, R5,ASR#8 .text:0004FB9C STRB R5, [R3,#1] .text:0004FBA0 BNE loc_4FB00 .text:0004FBA4 .text:0004FBA4 loc_4FBA4 ; CODE XREF: _dl_start_profile+618j .text:0004FBA4 LDR R2, =lowpc .text:0004FBA8 LDR R12, =kcountsize .text:0004FBAC LDR R3, [R2] .text:0004FBB0 LDR R2, [R11,#var_574] .text:0004FBB4 LDR R1, [R12] .text:0004FBB8 RSB R4, R3, R2 .text:0004FBBC CMP R1, R4 .text:0004FBC0 BCS loc_4FC5C .text:0004FBC4 MOV R0, R4 .text:0004FBC8 BL __udivsi3 .text:0004FBCC MOV R1, R0 .text:0004FBD0 CMP R1, #0x10000 .text:0004FBD4 MOVCS R3, #1 .text:0004FBD8 BCS loc_4FC60 .text:0004FBDC CMP R1, #0xFF .text:0004FBE0 MOVHI R0, #0x10000 .text:0004FBE4 BHI loc_4FC1C .text:0004FBE8 CMP R4, #0x1000000 .text:0004FBEC BCC loc_4FC04 .text:0004FBF0 LDR R3, =kcountsize .text:0004FBF4 LDR R1, [R3] .text:0004FBF8 MOV R0, R4 .text:0004FBFC MOV R1, R1,LSR#8 .text:0004FC00 B loc_4FC10 .text:0004FC04 ; --------------------------------------------------------------------------- .text:0004FC04 .text:0004FC04 loc_4FC04 ; CODE XREF: _dl_start_profile+718j .text:0004FC04 LDR R12, =kcountsize .text:0004FC08 LDR R1, [R12] .text:0004FC0C MOV R0, R4,LSL#8 .text:0004FC10 .text:0004FC10 loc_4FC10 ; CODE XREF: _dl_start_profile+72Cj .text:0004FC10 BL __udivsi3 .text:0004FC14 MOV R1, R0 .text:0004FC18 MOV R0, #0x1000000 .text:0004FC1C .text:0004FC1C loc_4FC1C ; CODE XREF: _dl_start_profile+710j .text:0004FC1C BL __udivsi3 .text:0004FC20 MOV R3, R0 .text:0004FC24 B loc_4FC60 .text:0004FC24 ; --------------------------------------------------------------------------- .text:0004FC28 off_4FC28 DCD aSCannotMapFile ; DATA XREF: _dl_start_profile+498r .text:0004FC28 ; "%s: cannot map file: %s\n" .text:0004FC2C off_4FC2C DCD kcount ; DATA XREF: _dl_start_profile+4B0r .text:0004FC30 off_4FC30 DCD kcountsize ; DATA XREF: _dl_start_profile+4BCr .text:0004FC30 ; _dl_start_profile+6D4r ... .text:0004FC34 off_4FC34 DCD narcsp ; DATA XREF: _dl_start_profile+4C4r .text:0004FC38 off_4FC38 DCD data ; DATA XREF: _dl_start_profile+4F4r .text:0004FC38 ; _dl_start_profile:loc_4FB00r .text:0004FC3C off_4FC3C DCD tos ; DATA XREF: _dl_start_profile+5A0r .text:0004FC40 off_4FC40 DCD aOutOfMemoryWhi ; DATA XREF: _dl_start_profile+5C0r .text:0004FC40 ; "Out of memory while initializing profil"... .text:0004FC44 off_4FC44 DCD froms ; DATA XREF: _dl_start_profile+5D8r .text:0004FC44 ; _dl_start_profile+678r .text:0004FC48 off_4FC48 DCD fromidx ; DATA XREF: _dl_start_profile+5E4r .text:0004FC4C off_4FC4C DCD fromlimit ; DATA XREF: _dl_start_profile+5F0r .text:0004FC50 off_4FC50 DCD narcs ; DATA XREF: _dl_start_profile+60Cr .text:0004FC54 off_4FC54 DCD hashfraction ; DATA XREF: _dl_start_profile+630r .text:0004FC58 off_4FC58 DCD lowpc ; DATA XREF: _dl_start_profile:loc_4FBA4r .text:0004FC5C ; --------------------------------------------------------------------------- .text:0004FC5C .text:0004FC5C loc_4FC5C ; CODE XREF: _dl_start_profile+6ECj .text:0004FC5C MOV R3, #0x10000 .text:0004FC60 .text:0004FC60 loc_4FC60 ; CODE XREF: _dl_start_profile+704j .text:0004FC60 ; _dl_start_profile+750j .text:0004FC60 LDR R1, =kcount .text:0004FC64 LDR R2, =kcountsize .text:0004FC68 LDR R12, =lowpc .text:0004FC6C LDR R0, [R1] .text:0004FC70 LDR R1, [R2] .text:0004FC74 LDR R2, [R12] .text:0004FC78 BL profil .text:0004FC7C LDR R1, =state .text:0004FC80 MOV R3, #0 .text:0004FC84 STR R3, [R1] .text:0004FC88 B locret_4FC9C .text:0004FC88 ; --------------------------------------------------------------------------- .text:0004FC8C off_4FC8C DCD kcount ; DATA XREF: _dl_start_profile:loc_4FC60r .text:0004FC90 off_4FC90 DCD kcountsize ; DATA XREF: _dl_start_profile+790r .text:0004FC94 off_4FC94 DCD lowpc ; DATA XREF: _dl_start_profile+794r .text:0004FC98 off_4FC98 DCD state ; DATA XREF: _dl_start_profile+7A8r .text:0004FC9C ; --------------------------------------------------------------------------- .text:0004FC9C .text:0004FC9C locret_4FC9C ; CODE XREF: _dl_start_profile+4A4j .text:0004FC9C ; _dl_start_profile+7B4j .text:0004FC9C LDMDB R11, {R4-R11,SP,PC} .text:0004FC9C ; End of function _dl_start_profile .text:0004FC9C .text:0004FCA0 .text:0004FCA0 ; =============== S U B R O U T I N E ======================================= .text:0004FCA0 .text:0004FCA0 ; Attributes: bp-based frame .text:0004FCA0 .text:0004FCA0 EXPORT _dl_mcount .text:0004FCA0 _dl_mcount ; CODE XREF: _dl_mcount_wrapper+14p .text:0004FCA0 ; _dl_mcount_wrapper_check+24p ... .text:0004FCA0 .text:0004FCA0 var_2C = -0x2C .text:0004FCA0 .text:0004FCA0 MOV R12, SP .text:0004FCA4 STMFD SP!, {R4-R12,LR,PC} .text:0004FCA8 LDR R3, =lowpc .text:0004FCAC SUB R11, R12, #4 .text:0004FCB0 LDR R2, =textsize .text:0004FCB4 SUB SP, SP, #4 .text:0004FCB8 LDR R12, [R3] .text:0004FCBC LDR LR, [R2] .text:0004FCC0 RSB R8, R12, R0 .text:0004FCC4 CMP R8, LR .text:0004FCC8 MOVCS R8, #0 .text:0004FCCC RSB R1, R12, R1 .text:0004FCD0 CMP R1, LR .text:0004FCD4 STR R1, [R11,#var_2C] .text:0004FCD8 BCS locret_50058 .text:0004FCDC LDR R3, =log_hashfraction .text:0004FCE0 LDR R1, =tos .text:0004FCE4 LDR R2, [R3] .text:0004FCE8 LDR R3, [R11,#var_2C] .text:0004FCEC LDR R0, [R1] .text:0004FCF0 MOV R2, R3,LSR R2 .text:0004FCF4 MOV R2, R2,LSL#1 .text:0004FCF8 LDRB R1, [R0,R2] .text:0004FCFC ADD R6, R0, R2 .text:0004FD00 LDRB R3, [R6,#1] .text:0004FD04 ORRS R1, R1, R3,LSL#8 .text:0004FD08 BEQ loc_4FDA4 .text:0004FD0C LDR R3, =froms .text:0004FD10 LDR LR, [R3] .text:0004FD14 B loc_50020 .text:0004FD18 ; --------------------------------------------------------------------------- .text:0004FD18 .text:0004FD18 loc_4FD18 ; CODE XREF: _dl_mcount:loc_50054j .text:0004FD18 LDR R3, [R5,#4] .text:0004FD1C MOVS R3, R3,LSL#16 .text:0004FD20 BEQ loc_4FD78 .text:0004FD24 LDR R3, =froms .text:0004FD28 LDR LR, [R3] .text:0004FD2C B loc_4FD58 .text:0004FD30 ; --------------------------------------------------------------------------- .text:0004FD30 .text:0004FD30 loc_4FD30 ; CODE XREF: _dl_mcount+D4j .text:0004FD30 LDR R2, [LR,R1] .text:0004FD34 LDRB R3, [R2] .text:0004FD38 LDRB R1, [R2,#1] .text:0004FD3C LDRB R12, [R2,#2] .text:0004FD40 LDRB R0, [R2,#3] .text:0004FD44 ORR R3, R3, R1,LSL#8 .text:0004FD48 ORR R3, R3, R12,LSL#16 .text:0004FD4C ORR R3, R3, R0,LSL#24 .text:0004FD50 CMP R3, R8 .text:0004FD54 BEQ loc_4FD78 .text:0004FD58 .text:0004FD58 loc_4FD58 ; CODE XREF: _dl_mcount+8Cj .text:0004FD58 LDRB R3, [R5,#4] .text:0004FD5C LDRB R2, [R5,#5] .text:0004FD60 ORR R3, R3, R2,LSL#8 .text:0004FD64 MOV R1, R3,LSL#3 .text:0004FD68 ADD R5, LR, R1 .text:0004FD6C LDR R3, [R5,#4] .text:0004FD70 MOVS R3, R3,LSL#16 .text:0004FD74 BNE loc_4FD30 .text:0004FD78 .text:0004FD78 loc_4FD78 ; CODE XREF: _dl_mcount+80j .text:0004FD78 ; _dl_mcount+B4j .text:0004FD78 LDR R2, [R5] .text:0004FD7C LDRB R3, [R2] .text:0004FD80 LDRB R1, [R2,#1] .text:0004FD84 LDRB R12, [R2,#2] .text:0004FD88 LDRB R0, [R2,#3] .text:0004FD8C ORR R3, R3, R1,LSL#8 .text:0004FD90 ORR R3, R3, R12,LSL#16 .text:0004FD94 ORR R3, R3, R0,LSL#24 .text:0004FD98 CMP R3, R8 .text:0004FD9C BEQ locret_50058 .text:0004FDA0 ADD R6, R5, #4 .text:0004FDA4 .text:0004FDA4 loc_4FDA4 ; CODE XREF: _dl_mcount+68j .text:0004FDA4 LDR R1, =narcsp .text:0004FDA8 LDR R12, =narcs .text:0004FDAC LDR R2, [R1] .text:0004FDB0 LDR R0, [R12] .text:0004FDB4 LDR R3, [R2] .text:0004FDB8 CMP R0, R3 .text:0004FDBC BEQ loc_4FEC4 .text:0004FDC0 LDR R2, =fromlimit .text:0004FDC4 LDR R3, [R2] .text:0004FDC8 CMP R0, R3 .text:0004FDCC BCS loc_4FEC4 .text:0004FDD0 LDR R9, =tos .text:0004FDD4 MOV R10, R12 .text:0004FDD8 LDR R7, =fromidx .text:0004FDDC .text:0004FDDC loc_4FDDC ; CODE XREF: _dl_mcount+220j .text:0004FDDC LDR R1, =data .text:0004FDE0 LDR R3, [R10] .text:0004FDE4 LDR R2, [R1] .text:0004FDE8 ADD R3, R3, R3,LSL#1 .text:0004FDEC ADD R2, R2, R3,LSL#2 .text:0004FDF0 LDRB R0, [R2,#4] .text:0004FDF4 LDRB R1, [R2,#5] .text:0004FDF8 LDRB R12, [R2,#6] .text:0004FDFC LDRB LR, [R2,#7] .text:0004FE00 LDR R3, =hashfraction .text:0004FE04 ORR R0, R0, R1,LSL#8 .text:0004FE08 ORR R0, R0, R12,LSL#16 .text:0004FE0C LDR R1, [R3] .text:0004FE10 ORR R0, R0, LR,LSL#24 .text:0004FE14 MOV R1, R1,LSL#1 .text:0004FE18 BL __udivsi3 .text:0004FE1C MOV R3, #1 .text:0004FE20 .text:0004FE20 loc_4FE20 ; CODE XREF: _dl_mcount+194j .text:0004FE20 LDR R4, [R7] .text:0004FE24 ADD R1, R4, R3 .text:0004FE28 SWP R2, R1, [R7] .text:0004FE2C CMP R4, R2 .text:0004FE30 SWPNE R1, R2, [R7] .text:0004FE34 BNE loc_4FE20 .text:0004FE38 LDR R12, =froms .text:0004FE3C ADD R4, R4, R3 .text:0004FE40 LDR R3, [R10] .text:0004FE44 LDR R1, =data .text:0004FE48 MOV LR, R4,LSL#3 .text:0004FE4C LDR R2, [R1] .text:0004FE50 ADD R3, R3, R3,LSL#1 .text:0004FE54 LDR R5, [R12] .text:0004FE58 ADD R2, R2, R3,LSL#2 .text:0004FE5C STR R2, [LR,R5] .text:0004FE60 LDR R1, [R9] .text:0004FE64 MOV R3, R0,LSL#1 .text:0004FE68 LDRB R2, [R3,R1] .text:0004FE6C ADD R3, R3, R1 .text:0004FE70 LDRB R12, [R3,#1] .text:0004FE74 ADD LR, LR, R5 .text:0004FE78 ORR R2, R2, R12,LSL#8 .text:0004FE7C STRB R2, [LR,#4] .text:0004FE80 MOV R2, R2,ASR#8 .text:0004FE84 STRB R2, [LR,#5] .text:0004FE88 LDR R3, [R9] .text:0004FE8C STRB R4, [R3,R0,LSL#1] .text:0004FE90 ADD R3, R3, R0,LSL#1 .text:0004FE94 MOV R4, R4,ASR#8 .text:0004FE98 STRB R4, [R3,#1] .text:0004FE9C LDR R3, =narcsp .text:0004FEA0 LDR R2, [R3] .text:0004FEA4 LDR R1, [R10] .text:0004FEA8 LDR R3, [R2] .text:0004FEAC CMP R1, R3 .text:0004FEB0 BEQ loc_4FEC4 .text:0004FEB4 LDR R2, =fromlimit .text:0004FEB8 LDR R3, [R2] .text:0004FEBC CMP R1, R3 .text:0004FEC0 BCC loc_4FDDC .text:0004FEC4 .text:0004FEC4 loc_4FEC4 ; CODE XREF: _dl_mcount+11Cj .text:0004FEC4 ; _dl_mcount+12Cj ... .text:0004FEC4 LDRB R2, [R6] .text:0004FEC8 LDRB R3, [R6,#1] .text:0004FECC ORRS R7, R2, R3,LSL#8 .text:0004FED0 BNE loc_5000C .text:0004FED4 LDR R1, =narcsp .text:0004FED8 LDR R2, =fromlimit .text:0004FEDC MOV R4, #1 .text:0004FEE0 LDR R3, [R1] .text:0004FEE4 .text:0004FEE4 loc_4FEE4 ; CODE XREF: _dl_mcount+258j .text:0004FEE4 LDR R12, [R3] .text:0004FEE8 ADD R0, R12, R4 .text:0004FEEC SWP R1, R0, [R3] .text:0004FEF0 CMP R12, R1 .text:0004FEF4 SWPNE R0, R1, [R3] .text:0004FEF8 BNE loc_4FEE4 .text:0004FEFC LDR LR, [R2] .text:0004FF00 ADD R12, R12, R4 .text:0004FF04 CMP R12, LR .text:0004FF08 BCS locret_50058 .text:0004FF0C LDR R3, =fromidx .text:0004FF10 .text:0004FF10 loc_4FF10 ; CODE XREF: _dl_mcount+284j .text:0004FF10 LDR R2, [R3] .text:0004FF14 ADD R0, R2, R4 .text:0004FF18 SWP R1, R0, [R3] .text:0004FF1C CMP R2, R1 .text:0004FF20 SWPNE R0, R1, [R3] .text:0004FF24 BNE loc_4FF10 .text:0004FF28 ADD R2, R2, R4 .text:0004FF2C STRB R2, [R6] .text:0004FF30 MOV R2, R2,ASR#8 .text:0004FF34 STRB R2, [R6,#1] .text:0004FF38 LDR R1, =froms .text:0004FF3C LDR R4, =data .text:0004FF40 LDRB LR, [R6] .text:0004FF44 LDRB R3, [R6,#1] .text:0004FF48 ADD R12, R12, R12,LSL#1 .text:0004FF4C LDR R2, [R4] .text:0004FF50 MOV R12, R12,LSL#2 .text:0004FF54 LDR R5, [R1] .text:0004FF58 ORR LR, LR, R3,LSL#8 .text:0004FF5C MOV LR, LR,LSL#3 .text:0004FF60 ADD R0, R2, R12 .text:0004FF64 STR R0, [R5,LR] .text:0004FF68 STRB R8, [R2,R12] .text:0004FF6C MOV R3, R8,LSR#8 .text:0004FF70 STRB R3, [R0,#1] .text:0004FF74 MOV R2, R8,LSR#16 .text:0004FF78 STRB R2, [R0,#2] .text:0004FF7C MOV R3, R8,LSR#24 .text:0004FF80 STRB R3, [R0,#3] .text:0004FF84 LDR R1, [R4] .text:0004FF88 LDR R2, [R11,#var_2C] .text:0004FF8C ADD R1, R12, R1 .text:0004FF90 STRB R2, [R1,#4] .text:0004FF94 MOV R3, R2,LSR#8 .text:0004FF98 STRB R3, [R1,#5] .text:0004FF9C LDR R3, [R11,#var_2C] .text:0004FFA0 MOV R2, R3,LSR#16 .text:0004FFA4 STRB R2, [R1,#6] .text:0004FFA8 LDR R2, [R11,#var_2C] .text:0004FFAC MOV R3, R2,LSR#24 .text:0004FFB0 STRB R3, [R1,#7] .text:0004FFB4 LDR R2, [R4] .text:0004FFB8 ADD R12, R12, R2 .text:0004FFBC STRB R7, [R12,#8] .text:0004FFC0 STRB R7, [R12,#9] .text:0004FFC4 STRB R7, [R12,#0xA] .text:0004FFC8 STRB R7, [R12,#0xB] .text:0004FFCC ADD R5, R5, LR .text:0004FFD0 MOV R3, R7 .text:0004FFD4 STRB R3, [R5,#4] .text:0004FFD8 STRB R3, [R5,#5] .text:0004FFDC B locret_50058 .text:0004FFDC ; --------------------------------------------------------------------------- .text:0004FFE0 off_4FFE0 DCD lowpc ; DATA XREF: _dl_mcount+8r .text:0004FFE4 off_4FFE4 DCD textsize ; DATA XREF: _dl_mcount+10r .text:0004FFE8 off_4FFE8 DCD log_hashfraction ; DATA XREF: _dl_mcount+3Cr .text:0004FFEC off_4FFEC DCD tos ; DATA XREF: _dl_mcount+40r .text:0004FFEC ; _dl_mcount+130r .text:0004FFF0 off_4FFF0 DCD froms ; DATA XREF: _dl_mcount+6Cr .text:0004FFF0 ; _dl_mcount+84r ... .text:0004FFF4 off_4FFF4 DCD narcsp ; DATA XREF: _dl_mcount:loc_4FDA4r .text:0004FFF4 ; _dl_mcount+1FCr ... .text:0004FFF8 off_4FFF8 DCD narcs ; DATA XREF: _dl_mcount+108r .text:0004FFFC off_4FFFC DCD fromlimit ; DATA XREF: _dl_mcount+120r .text:0004FFFC ; _dl_mcount+214r ... .text:00050000 off_50000 DCD fromidx ; DATA XREF: _dl_mcount+138r .text:00050000 ; _dl_mcount+26Cr .text:00050004 off_50004 DCD data ; DATA XREF: _dl_mcount:loc_4FDDCr .text:00050004 ; _dl_mcount+1A4r ... .text:00050008 off_50008 DCD hashfraction ; DATA XREF: _dl_mcount+160r .text:0005000C ; --------------------------------------------------------------------------- .text:0005000C .text:0005000C loc_5000C ; CODE XREF: _dl_mcount+230j .text:0005000C LDRB R1, [R6] .text:00050010 LDRB R3, [R6,#1] .text:00050014 LDR R2, =froms .text:00050018 ORR R1, R1, R3,LSL#8 .text:0005001C LDR LR, [R2] .text:00050020 .text:00050020 loc_50020 ; CODE XREF: _dl_mcount+74j .text:00050020 MOV R1, R1,LSL#3 .text:00050024 LDR R2, [LR,R1] .text:00050028 LDRB R3, [R2] .text:0005002C LDRB R0, [R2,#1] .text:00050030 LDRB R12, [R2,#2] .text:00050034 ADD R5, LR, R1 .text:00050038 LDRB R1, [R2,#3] .text:0005003C ORR R3, R3, R0,LSL#8 .text:00050040 ORR R3, R3, R12,LSL#16 .text:00050044 ORR R3, R3, R1,LSL#24 .text:00050048 CMP R3, R8 .text:0005004C B loc_50054 .text:0005004C ; --------------------------------------------------------------------------- .text:00050050 off_50050 DCD froms ; DATA XREF: _dl_mcount+374r .text:00050054 ; --------------------------------------------------------------------------- .text:00050054 .text:00050054 loc_50054 ; CODE XREF: _dl_mcount+3ACj .text:00050054 BNE loc_4FD18 .text:00050058 .text:00050058 locret_50058 ; CODE XREF: _dl_mcount+38j .text:00050058 ; _dl_mcount+FCj ... .text:00050058 LDMDB R11, {R4-R11,SP,PC} .text:00050058 ; End of function _dl_mcount .text:00050058 .text:0005005C .text:0005005C ; =============== S U B R O U T I N E ======================================= .text:0005005C .text:0005005C ; Attributes: bp-based frame .text:0005005C .text:0005005C dlerror_run ; CODE XREF: __libc_dlopen+1Cp .text:0005005C ; __libc_dlsym+20p ... .text:0005005C .text:0005005C var_18 = -0x18 .text:0005005C var_14 = -0x14 .text:0005005C .text:0005005C MOV R12, SP .text:00050060 STMFD SP!, {R4,R11,R12,LR,PC} .text:00050064 SUB R11, R12, #4 .text:00050068 MOV R3, #0 .text:0005006C SUB SP, SP, #8 .text:00050070 STR R3, [R11,#var_18] .text:00050074 MOV R2, R0 .text:00050078 SUB R0, R11, #-var_14 .text:0005007C MOV R3, R1 .text:00050080 SUB R1, R11, #-var_18 .text:00050084 BL _dl_catch_error .text:00050088 LDR R0, [R11,#var_18] .text:0005008C SUBS R4, R0, #0 .text:00050090 MOVNE R4, #1 .text:00050094 CMP R4, #0 .text:00050098 BEQ loc_500AC .text:0005009C LDR R3, =_dl_out_of_memory ; "out of memory" .text:000500A0 CMP R0, R3 .text:000500A4 BEQ loc_500AC .text:000500A8 BL free .text:000500AC .text:000500AC loc_500AC ; CODE XREF: dlerror_run+3Cj .text:000500AC ; dlerror_run+48j .text:000500AC MOV R0, R4 .text:000500B0 B locret_500B8 .text:000500B0 ; --------------------------------------------------------------------------- .text:000500B4 off_500B4 DCD _dl_out_of_memory ; DATA XREF: dlerror_run+40r .text:000500B4 ; "out of memory" .text:000500B8 ; --------------------------------------------------------------------------- .text:000500B8 .text:000500B8 locret_500B8 ; CODE XREF: dlerror_run+54j .text:000500B8 LDMDB R11, {R4,R11,SP,PC} .text:000500B8 ; End of function dlerror_run .text:000500B8 .text:000500BC .text:000500BC ; =============== S U B R O U T I N E ======================================= .text:000500BC .text:000500BC ; Attributes: bp-based frame .text:000500BC .text:000500BC do_dlopen ; DATA XREF: __libc_dlopen+14o .text:000500BC ; __libc_dlopen:off_5016Co .text:000500BC MOV R12, SP .text:000500C0 STMFD SP!, {R4,R11,R12,LR,PC} .text:000500C4 SUB R11, R12, #4 .text:000500C8 MOV R4, R0 .text:000500CC MOV R1, #1 .text:000500D0 LDR R0, [R4] .text:000500D4 MOV R2, #0 .text:000500D8 BL _dl_open .text:000500DC STR R0, [R4,#4] .text:000500E0 LDMDB R11, {R4,R11,SP,PC} .text:000500E0 ; End of function do_dlopen .text:000500E0 .text:000500E4 .text:000500E4 ; =============== S U B R O U T I N E ======================================= .text:000500E4 .text:000500E4 ; Attributes: bp-based frame .text:000500E4 .text:000500E4 do_dlsym ; DATA XREF: __libc_dlsym+18o .text:000500E4 ; __libc_dlsym:off_501B4o .text:000500E4 .text:000500E4 var_18 = -0x18 .text:000500E4 var_14 = -0x14 .text:000500E4 .text:000500E4 MOV R12, SP .text:000500E8 STMFD SP!, {R4,R11,R12,LR,PC} .text:000500EC MOV R4, R0 .text:000500F0 MOV R2, #0 .text:000500F4 SUB SP, SP, #8 .text:000500F8 STR R2, [R4,#0xC] .text:000500FC STR R2, [SP,#0x18+var_18] .text:00050100 MOV R3, #1 .text:00050104 STR R3, [SP,#0x18+var_14] .text:00050108 SUB R11, R12, #4 .text:0005010C LDR R1, [R4] .text:00050110 ADD R2, R4, #0xC .text:00050114 LDR R0, [R4,#4] .text:00050118 ADD R3, R1, #0x164 .text:0005011C BL _dl_lookup_symbol .text:00050120 STR R0, [R4,#8] .text:00050124 LDMDB R11, {R4,R11,SP,PC} .text:00050124 ; End of function do_dlsym .text:00050124 .text:00050128 .text:00050128 ; =============== S U B R O U T I N E ======================================= .text:00050128 .text:00050128 ; Attributes: bp-based frame .text:00050128 .text:00050128 do_dlclose ; DATA XREF: __libc_dlclose+Co .text:00050128 ; .text:off_501DCo .text:00050128 MOV R12, SP .text:0005012C STMFD SP!, {R11,R12,LR,PC} .text:00050130 SUB R11, R12, #4 .text:00050134 BL _dl_close .text:00050138 LDMDB R11, {R11,SP,PC} .text:00050138 ; End of function do_dlclose .text:00050138 .text:0005013C .text:0005013C ; =============== S U B R O U T I N E ======================================= .text:0005013C .text:0005013C ; Attributes: bp-based frame .text:0005013C .text:0005013C EXPORT __libc_dlopen .text:0005013C __libc_dlopen ; CODE XREF: open_translit+14p .text:0005013C ; __gconv_find_shlib+B4p .text:0005013C .text:0005013C var_14 = -0x14 .text:0005013C var_10 = -0x10 .text:0005013C .text:0005013C MOV R12, SP .text:00050140 STMFD SP!, {R11,R12,LR,PC} .text:00050144 SUB R11, R12, #4 .text:00050148 SUB SP, SP, #8 .text:0005014C STR R0, [R11,#var_14] .text:00050150 LDR R0, =do_dlopen .text:00050154 SUB R1, R11, #-var_14 .text:00050158 BL dlerror_run .text:0005015C CMP R0, #0 .text:00050160 MOV R0, #0 .text:00050164 LDREQ R0, [R11,#var_10] .text:00050168 B locret_50170 .text:00050168 ; --------------------------------------------------------------------------- .text:0005016C off_5016C DCD do_dlopen ; DATA XREF: __libc_dlopen+14r .text:00050170 ; --------------------------------------------------------------------------- .text:00050170 .text:00050170 locret_50170 ; CODE XREF: __libc_dlopen+2Cj .text:00050170 LDMDB R11, {R11,SP,PC} .text:00050170 ; End of function __libc_dlopen .text:00050170 .text:00050174 .text:00050174 ; =============== S U B R O U T I N E ======================================= .text:00050174 .text:00050174 ; Attributes: bp-based frame .text:00050174 .text:00050174 EXPORT __libc_dlsym .text:00050174 __libc_dlsym ; CODE XREF: open_translit+30p .text:00050174 ; open_translit+78p ... .text:00050174 .text:00050174 var_1C = -0x1C .text:00050174 var_18 = -0x18 .text:00050174 var_14 = -0x14 .text:00050174 .text:00050174 MOV R12, SP .text:00050178 STMFD SP!, {R11,R12,LR,PC} .text:0005017C SUB R11, R12, #4 .text:00050180 SUB SP, SP, #0x10 .text:00050184 STR R0, [R11,#var_1C] .text:00050188 STR R1, [R11,#var_18] .text:0005018C LDR R0, =do_dlsym .text:00050190 SUB R1, R11, #-var_1C .text:00050194 BL dlerror_run .text:00050198 CMP R0, #0 .text:0005019C BNE loc_501B8 .text:000501A0 SUB R1, R11, #-var_14 .text:000501A4 LDMIA R1, {R1,R3} .text:000501A8 LDR R2, [R3,#4] .text:000501AC ADD R0, R1, R2 .text:000501B0 B locret_501BC .text:000501B0 ; --------------------------------------------------------------------------- .text:000501B4 off_501B4 DCD do_dlsym ; DATA XREF: __libc_dlsym+18r .text:000501B8 ; --------------------------------------------------------------------------- .text:000501B8 .text:000501B8 loc_501B8 ; CODE XREF: __libc_dlsym+28j .text:000501B8 MOV R0, #0 .text:000501BC .text:000501BC locret_501BC ; CODE XREF: __libc_dlsym+3Cj .text:000501BC LDMDB R11, {R11,SP,PC} .text:000501BC ; End of function __libc_dlsym .text:000501BC .text:000501C0 .text:000501C0 ; =============== S U B R O U T I N E ======================================= .text:000501C0 .text:000501C0 ; Attributes: bp-based frame .text:000501C0 .text:000501C0 EXPORT __libc_dlclose .text:000501C0 __libc_dlclose ; CODE XREF: open_translit+40p .text:000501C0 ; do_release_shlib+94p ... .text:000501C0 MOV R12, SP .text:000501C4 STMFD SP!, {R11,R12,LR,PC} .text:000501C8 MOV R1, R0 .text:000501CC LDR R0, =do_dlclose .text:000501D0 SUB R11, R12, #4 .text:000501D4 BL dlerror_run .text:000501D8 LDMDB R11, {R11,SP,PC} .text:000501D8 ; End of function __libc_dlclose .text:000501D8 .text:000501D8 ; --------------------------------------------------------------------------- .text:000501DC off_501DC DCD do_dlclose ; DATA XREF: __libc_dlclose+Cr .text:000501E0 .text:000501E0 ; =============== S U B R O U T I N E ======================================= .text:000501E0 .text:000501E0 ; Attributes: bp-based frame .text:000501E0 .text:000501E0 free_mem_11 .text:000501E0 MOV R12, SP .text:000501E4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000501E8 LDR R3, =_dl_all_dirs .text:000501EC LDR R2, =_dl_init_all_dirs .text:000501F0 LDR R4, [R3] .text:000501F4 SUB R11, R12, #4 .text:000501F8 LDR R3, [R2] .text:000501FC MOV R5, R2 .text:00050200 CMP R4, R3 .text:00050204 BEQ loc_50220 .text:00050208 .text:00050208 loc_50208 ; CODE XREF: free_mem_11+3Cj .text:00050208 MOV R0, R4 .text:0005020C LDR R4, [R4] .text:00050210 BL free .text:00050214 LDR R3, [R5] .text:00050218 CMP R4, R3 .text:0005021C BNE loc_50208 .text:00050220 .text:00050220 loc_50220 ; CODE XREF: free_mem_11+24j .text:00050220 LDR R3, =_dl_loaded .text:00050224 LDR R5, [R3] .text:00050228 CMP R5, #0 .text:0005022C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00050230 MOV R6, #0 .text:00050234 .text:00050234 loc_50234 ; CODE XREF: free_mem_11+8Cj .text:00050234 LDR R3, [R5,#0x14] .text:00050238 LDR R4, [R3,#4] .text:0005023C STR R6, [R3,#4] .text:00050240 .text:00050240 loc_50240 ; CODE XREF: free_mem_11+78j .text:00050240 ; free_mem_11+80j .text:00050240 CMP R4, #0 .text:00050244 BEQ loc_50264 .text:00050248 MOV R0, R4 .text:0005024C LDR R3, [R0,#8] .text:00050250 LDR R4, [R4,#4] .text:00050254 CMP R3, #0 .text:00050258 BNE loc_50240 .text:0005025C BL free .text:00050260 B loc_50240 .text:00050264 ; --------------------------------------------------------------------------- .text:00050264 .text:00050264 loc_50264 ; CODE XREF: free_mem_11+64j .text:00050264 LDR R5, [R5,#0xC] .text:00050268 CMP R5, #0 .text:0005026C BNE loc_50234 .text:00050270 LDMDB R11, {R4-R6,R11,SP,PC} .text:00050270 ; End of function free_mem_11 .text:00050270 .text:00050270 ; --------------------------------------------------------------------------- .text:00050274 off_50274 DCD _dl_all_dirs ; DATA XREF: free_mem_11+8r .text:00050278 off_50278 DCD _dl_init_all_dirs ; DATA XREF: free_mem_11+Cr .text:0005027C off_5027C DCD _dl_loaded ; DATA XREF: free_mem_11:loc_50220r .text:00050280 .text:00050280 ; =============== S U B R O U T I N E ======================================= .text:00050280 .text:00050280 ; Attributes: bp-based frame .text:00050280 .text:00050280 EXPORT __mpn_addmul_1 .text:00050280 __mpn_addmul_1 ; CODE XREF: __mpn_mul+118p .text:00050280 ; __mpn_impn_mul_n_basecase+E8p ... .text:00050280 MOV R12, SP .text:00050284 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00050288 SUB R11, R12, #4 .text:0005028C MOV R5, R3 .text:00050290 RSB R4, R2, #0 .text:00050294 MOV R3, R4,LSL#2 .text:00050298 RSB R7, R3, R0 .text:0005029C RSB R8, R3, R1 .text:000502A0 MOV R6, #0 .text:000502A4 .text:000502A4 loc_502A4 ; CODE XREF: __mpn_addmul_1+78j .text:000502A4 LDR R3, [R8,R4,LSL#2] .text:000502A8 MOV R12, R3,LSR#16 .text:000502AC MOV LR, R5,LSR#16 .text:000502B0 BIC R0, R3, R12,LSL#16 .text:000502B4 BIC R1, R5, LR,LSL#16 .text:000502B8 MUL R2, R0, R1 .text:000502BC MUL R1, R12, R1 .text:000502C0 MUL R0, LR, R0 .text:000502C4 MUL LR, R12, LR .text:000502C8 ADDS R0, R1, R0 .text:000502CC ADDCS LR, LR, #0x10000 .text:000502D0 ADDS R2, R2, R0,LSL#16 .text:000502D4 ADC LR, LR, R0,LSR#16 .text:000502D8 ADDS R2, R2, R6 .text:000502DC LDR R3, [R7,R4,LSL#2] .text:000502E0 MOVCC R6, LR .text:000502E4 ADDCS R6, LR, #1 .text:000502E8 ADDS R2, R2, R3 .text:000502EC ADDCS R6, R6, #1 .text:000502F0 STR R2, [R7,R4,LSL#2] .text:000502F4 ADDS R4, R4, #1 .text:000502F8 BNE loc_502A4 .text:000502FC MOV R0, R6 .text:00050300 LDMDB R11, {R4-R8,R11,SP,PC} .text:00050300 ; End of function __mpn_addmul_1 .text:00050300 .text:00050304 .text:00050304 ; =============== S U B R O U T I N E ======================================= .text:00050304 .text:00050304 ; Attributes: bp-based frame .text:00050304 .text:00050304 EXPORT fseek .text:00050304 fseek ; CODE XREF: addmntent+38p .text:00050304 .text:00050304 var_30 = -0x30 .text:00050304 var_2C = -0x2C .text:00050304 .text:00050304 MOV R12, SP .text:00050308 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0005030C SUB R11, R12, #4 .text:00050310 MOV R4, R0 .text:00050314 MOV R5, #0 .text:00050318 MOV R6, R1 .text:0005031C SUB SP, SP, #0x14 .text:00050320 LDR R3, [R4] .text:00050324 MOV R7, R2 .text:00050328 TST R3, #0x8000 .text:0005032C BNE loc_5033C .text:00050330 LDR R3, =0 .text:00050334 SUBS R5, R3, R5 .text:00050338 MOVNE R5, #1 .text:0005033C .text:0005033C loc_5033C ; CODE XREF: fseek+28j .text:0005033C CMP R5, #0 .text:00050340 BEQ loc_50354 .text:00050344 SUB R0, R11, #-var_2C .text:00050348 LDR R1, =funlockfile .text:0005034C MOV R2, R4 .text:00050350 BL 0 .text:00050354 .text:00050354 loc_50354 ; CODE XREF: fseek+3Cj .text:00050354 LDR R3, [R4] .text:00050358 TST R3, #0x8000 .text:0005035C BNE loc_50368 .text:00050360 MOV R0, R4 .text:00050364 BL flockfile .text:00050368 .text:00050368 loc_50368 ; CODE XREF: fseek+58j .text:00050368 MOV R3, #3 .text:0005036C STR R3, [SP,#0x30+var_30] .text:00050370 MOV R0, R4 .text:00050374 MOV R1, R6 .text:00050378 MOV R2, R1,ASR#31 .text:0005037C MOV R3, R7 .text:00050380 BL _IO_seekoff .text:00050384 CMN R0, #1 .text:00050388 MOV R6, #0 .text:0005038C BNE loc_5039C .text:00050390 CMN R1, #1 .text:00050394 MOVNE R6, #0 .text:00050398 MOVEQ R6, 0xFFFFFFFF .text:0005039C .text:0005039C loc_5039C ; CODE XREF: fseek+88j .text:0005039C LDR R3, [R4] .text:000503A0 TST R3, #0x8000 .text:000503A4 BNE loc_503B0 .text:000503A8 MOV R0, R4 .text:000503AC BL funlockfile .text:000503B0 .text:000503B0 loc_503B0 ; CODE XREF: fseek+A0j .text:000503B0 CMP R5, #0 .text:000503B4 BEQ loc_503C4 .text:000503B8 SUB R0, R11, #-var_2C .text:000503BC MOV R1, #0 .text:000503C0 BL 0 .text:000503C4 .text:000503C4 loc_503C4 ; CODE XREF: fseek+B0j .text:000503C4 MOV R0, R6 .text:000503C8 B locret_503D4 .text:000503C8 ; --------------------------------------------------------------------------- .text:000503CC dword_503CC DCD 0 ; DATA XREF: fseek+2Cr .text:000503D0 off_503D0 DCD funlockfile ; DATA XREF: fseek+44r .text:000503D4 ; --------------------------------------------------------------------------- .text:000503D4 .text:000503D4 locret_503D4 ; CODE XREF: fseek+C4j .text:000503D4 LDMDB R11, {R4-R7,R11,SP,PC} .text:000503D4 ; End of function fseek .text:000503D4 .text:000503D8 .text:000503D8 ; =============== S U B R O U T I N E ======================================= .text:000503D8 .text:000503D8 ; Attributes: bp-based frame .text:000503D8 .text:000503D8 EXPORT fread_unlocked .text:000503D8 fread_unlocked ; CODE XREF: __tzfile_read+160p .text:000503D8 ; __tzfile_read+2F8p ... .text:000503D8 MOV R12, SP .text:000503DC STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000503E0 MOV R5, R1 .text:000503E4 MOV R4, R2 .text:000503E8 MULS R6, R4, R5 .text:000503EC SUB R11, R12, #4 .text:000503F0 MOV R1, R0 .text:000503F4 MOV R0, #0 .text:000503F8 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:000503FC MOV R0, R3 .text:00050400 MOV R2, R6 .text:00050404 BL _IO_sgetn .text:00050408 CMP R6, R0 .text:0005040C BEQ loc_5041C .text:00050410 MOV R1, R5 .text:00050414 BL __udivsi3 .text:00050418 LDMDB R11, {R4-R6,R11,SP,PC} .text:0005041C ; --------------------------------------------------------------------------- .text:0005041C .text:0005041C loc_5041C ; CODE XREF: fread_unlocked+34j .text:0005041C MOV R0, R4 .text:00050420 LDMDB R11, {R4-R6,R11,SP,PC} .text:00050420 ; End of function fread_unlocked .text:00050420 .text:00050424 .text:00050424 ; =============== S U B R O U T I N E ======================================= .text:00050424 .text:00050424 ; Attributes: bp-based frame .text:00050424 .text:00050424 EXPORT strncpy .text:00050424 strncpy ; CODE XREF: _dl_start_profile+1CCp .text:00050424 MOV R12, SP .text:00050428 STMFD SP!, {R11,R12,LR,PC} .text:0005042C SUB R11, R12, #4 .text:00050430 SUB R12, R0, #1 .text:00050434 CMP R2, #3 .text:00050438 BLS loc_504C4 .text:0005043C MOV LR, R2,LSR#2 .text:00050440 LDRB R3, [R1],#1 .text:00050444 MOV R12, R0 .text:00050448 CMP R3, #0 .text:0005044C STRB R3, [R0] .text:00050450 BEQ loc_504B0 .text:00050454 LDRB R3, [R1],#1 .text:00050458 ADD R12, R0, #1 .text:0005045C CMP R3, #0 .text:00050460 STRB R3, [R0,#1] .text:00050464 B loc_5049C .text:00050468 ; --------------------------------------------------------------------------- .text:00050468 .text:00050468 loc_50468 ; CODE XREF: strncpy+88j .text:00050468 LDRB R3, [R1],#1 .text:0005046C CMP R3, #0 .text:00050470 STRB R3, [R12,#1]! .text:00050474 BEQ loc_504B0 .text:00050478 SUBS LR, LR, #1 .text:0005047C BEQ loc_504C4 .text:00050480 LDRB R3, [R1],#1 .text:00050484 CMP R3, #0 .text:00050488 STRB R3, [R12,#1]! .text:0005048C BEQ loc_504B0 .text:00050490 LDRB R3, [R1],#1 .text:00050494 CMP R3, #0 .text:00050498 STRB R3, [R12,#1]! .text:0005049C .text:0005049C loc_5049C ; CODE XREF: strncpy+40j .text:0005049C BEQ loc_504B0 .text:000504A0 LDRB R3, [R1],#1 .text:000504A4 CMP R3, #0 .text:000504A8 STRB R3, [R12,#1]! .text:000504AC BNE loc_50468 .text:000504B0 .text:000504B0 loc_504B0 ; CODE XREF: strncpy+2Cj .text:000504B0 ; strncpy+50j ... .text:000504B0 RSB R3, R0, R12 .text:000504B4 RSB R3, R3, R2 .text:000504B8 SUBS R2, R3, #1 .text:000504BC BNE loc_504E8 .text:000504C0 LDMDB R11, {R11,SP,PC} .text:000504C4 ; --------------------------------------------------------------------------- .text:000504C4 .text:000504C4 loc_504C4 ; CODE XREF: strncpy+14j .text:000504C4 ; strncpy+58j .text:000504C4 ANDS R2, R2, #3 .text:000504C8 BNE loc_504D0 .text:000504CC LDMDB R11, {R11,SP,PC} .text:000504D0 ; --------------------------------------------------------------------------- .text:000504D0 .text:000504D0 loc_504D0 ; CODE XREF: strncpy+A4j .text:000504D0 ; strncpy+C0j .text:000504D0 LDRB R3, [R1],#1 .text:000504D4 SUBS R2, R2, #1 .text:000504D8 STRB R3, [R12,#1]! .text:000504DC LDMEQDB R11, {R11,SP,PC} .text:000504E0 CMP R3, #0 .text:000504E4 BNE loc_504D0 .text:000504E8 .text:000504E8 loc_504E8 ; CODE XREF: strncpy+98j .text:000504E8 MOV R3, #0 .text:000504EC .text:000504EC loc_504EC ; CODE XREF: strncpy+D0j .text:000504EC SUBS R2, R2, #1 .text:000504F0 STRB R3, [R12,#1]! .text:000504F4 BNE loc_504EC .text:000504F8 LDMDB R11, {R11,SP,PC} .text:000504F8 ; End of function strncpy .text:000504F8 .text:000504FC .text:000504FC ; =============== S U B R O U T I N E ======================================= .text:000504FC .text:000504FC ; Attributes: bp-based frame .text:000504FC .text:000504FC WEAK ffsl .text:000504FC ffsl ; CODE XREF: _dl_start_profile+10Cp .text:000504FC MOV R12, SP ; Alternative name is 'ffs' .text:00050500 STMFD SP!, {R11,R12,LR,PC} .text:00050504 SUB R11, R12, #4 .text:00050508 RSB R3, R0, #0 .text:0005050C AND R2, R3, R0 .text:00050510 CMP R2, #0x10000 .text:00050514 BCS loc_50528 .text:00050518 CMP R2, #0xFF .text:0005051C MOVHI R1, #8 .text:00050520 MOVLS R1, #0 .text:00050524 B loc_50534 .text:00050528 ; --------------------------------------------------------------------------- .text:00050528 .text:00050528 loc_50528 ; CODE XREF: ffsl+18j .text:00050528 CMP R2, #0x1000000 .text:0005052C MOVCS R1, #0x18 .text:00050530 MOVCC R1, #0x10 .text:00050534 .text:00050534 loc_50534 ; CODE XREF: ffsl+28j .text:00050534 LDR R3, =table.45 .text:00050538 MOV R2, R2,LSR R1 .text:0005053C LDRB R0, [R3,R2] .text:00050540 ADD R0, R0, R1 .text:00050544 LDMDB R11, {R11,SP,PC} .text:00050544 ; End of function ffsl .text:00050544 .text:00050544 ; --------------------------------------------------------------------------- .text:00050548 off_50548 DCD table.45 ; DATA XREF: ffsl:loc_50534r .text:0005054C .text:0005054C ; =============== S U B R O U T I N E ======================================= .text:0005054C .text:0005054C ; Attributes: bp-based frame .text:0005054C .text:0005054C EXPORT __offtime .text:0005054C __offtime ; CODE XREF: __tz_convert+A4p .text:0005054C ; __tz_convert+158p .text:0005054C .text:0005054C var_3C = -0x3C .text:0005054C var_38 = -0x38 .text:0005054C var_34 = -0x34 .text:0005054C var_30 = -0x30 .text:0005054C var_2C = -0x2C .text:0005054C .text:0005054C MOV R12, SP .text:00050550 STMFD SP!, {R4-R12,LR,PC} .text:00050554 MOV R4, R0 .text:00050558 SUB SP, SP, #0x14 .text:0005055C LDR R0, [R4] .text:00050560 SUB R11, R12, #4 .text:00050564 STR R2, [R11,#var_2C] .text:00050568 MOV R6, 0x15180 .text:00050570 MOV R5, R1 .text:00050574 MOV R1, R6 .text:00050578 BL __divsi3 .text:0005057C MOV R8, R0 .text:00050580 LDR R0, [R4] .text:00050584 MOV R1, R6 .text:00050588 BL __modsi3 .text:0005058C ADDS R4, R0, R5 .text:00050590 BPL loc_505A4 .text:00050594 MOV R1, R6 .text:00050598 .text:00050598 loc_50598 ; CODE XREF: __offtime+54j .text:00050598 SUB R8, R8, #1 .text:0005059C ADDS R4, R4, R1 .text:000505A0 BMI loc_50598 .text:000505A4 .text:000505A4 loc_505A4 ; CODE XREF: __offtime+44j .text:000505A4 MOV R2, 0x1517F .text:000505B0 CMP R4, R2 .text:000505B4 BLE loc_505D4 .text:000505B8 MOV R3, 0xFFFEAE80 .text:000505C4 .text:000505C4 loc_505C4 ; CODE XREF: __offtime+84j .text:000505C4 ADD R4, R4, R3 .text:000505C8 ADD R8, R8, #1 .text:000505CC CMP R4, R2 .text:000505D0 BGT loc_505C4 .text:000505D4 .text:000505D4 loc_505D4 ; CODE XREF: __offtime+68j .text:000505D4 MOV R0, R4 .text:000505D8 MOV R1, #0xE10 .text:000505DC BL __divsi3 .text:000505E0 LDR R2, [R11,#var_2C] .text:000505E4 STR R0, [R2,#8] .text:000505E8 MOV R1, #0xE10 .text:000505EC MOV R0, R4 .text:000505F0 BL __modsi3 .text:000505F4 MOV R4, R0 .text:000505F8 MOV R1, #0x3C .text:000505FC BL __divsi3 .text:00050600 LDR R3, [R11,#var_2C] .text:00050604 STR R0, [R3,#4] .text:00050608 MOV R1, #0x3C .text:0005060C MOV R0, R4 .text:00050610 BL __modsi3 .text:00050614 LDR R2, [R11,#var_2C] .text:00050618 STR R0, [R2] .text:0005061C MOV R1, #7 .text:00050620 ADD R0, R8, #4 .text:00050624 BL __modsi3 .text:00050628 LDR R3, [R11,#var_2C] .text:0005062C CMP R0, #0 .text:00050630 STR R0, [R3,#0x18] .text:00050634 LDRLT R2, [R11,#var_2C] .text:00050638 ADDLT R3, R0, #7 .text:0005063C STRLT R3, [R2,#0x18] .text:00050640 MOV R6, 0x7B2 .text:00050648 MOV R3, 0x16D .text:00050650 STR R3, [R11,#var_30] .text:00050654 B loc_507A0 .text:00050658 ; --------------------------------------------------------------------------- .text:00050658 .text:00050658 loc_50658 ; CODE XREF: __offtime+258j .text:00050658 ; __offtime:loc_507ECj .text:00050658 LDR R1, [R11,#var_30] .text:0005065C MOV R0, R8 .text:00050660 BL __divsi3 .text:00050664 ADD R5, R6, R0 .text:00050668 LDR R1, [R11,#var_30] .text:0005066C MOV R0, R8 .text:00050670 BL __modsi3 .text:00050674 SUB R5, R5, R0,LSR#31 .text:00050678 STR R5, [R11,#var_34] .text:0005067C SUB R4, R6, #1 .text:00050680 MOV R0, R4 .text:00050684 MOV R1, #0x190 .text:00050688 BL __divsi3 .text:0005068C STR R0, [R11,#var_38] .text:00050690 MOV R0, R4 .text:00050694 MOV R1, #0x64 .text:00050698 BL __divsi3 .text:0005069C CMP R4, #0 .text:000506A0 ADDLT R3, R4, #3 .text:000506A4 MOVGE R3, R4 .text:000506A8 MOV R5, R3,ASR#2 .text:000506AC MOV R2, R5 .text:000506B0 SUB R5, R4, R5,LSL#2 .text:000506B4 SUB R5, R2, R5,LSR#31 .text:000506B8 MOV R7, R0 .text:000506BC MOV R0, R4 .text:000506C0 MOV R1, #0x64 .text:000506C4 BL __modsi3 .text:000506C8 CMP R0, #0 .text:000506CC STR R4, [R11,#var_3C] .text:000506D0 ADDLT R3, R5, #1 .text:000506D4 RSBLT R10, R7, R3 .text:000506D8 RSBGE R10, R7, R5 .text:000506DC LDR R2, [R11,#var_34] .text:000506E0 MOV R1, #0x190 .text:000506E4 SUB R4, R2, #1 .text:000506E8 MOV R0, R4 .text:000506EC BL __divsi3 .text:000506F0 MOV R9, R0 .text:000506F4 MOV R0, R4 .text:000506F8 MOV R1, #0x64 .text:000506FC BL __divsi3 .text:00050700 CMP R4, #0 .text:00050704 ADDLT R3, R4, #3 .text:00050708 MOVGE R3, R4 .text:0005070C MOV R5, R3,ASR#2 .text:00050710 MOV R2, R5 .text:00050714 SUB R5, R4, R5,LSL#2 .text:00050718 SUB R5, R2, R5,LSR#31 .text:0005071C MOV R7, R0 .text:00050720 MOV R0, R4 .text:00050724 MOV R1, #0x64 .text:00050728 BL __modsi3 .text:0005072C CMP R0, #0 .text:00050730 MOV R0, R4 .text:00050734 ADDLT R3, R5, #1 .text:00050738 RSBLT R4, R7, R3 .text:0005073C RSBGE R4, R7, R5 .text:00050740 LDR R2, [R11,#var_34] .text:00050744 MOV R1, #0x190 .text:00050748 RSB R3, R6, R2 .text:0005074C ADD R2, R3, R3,LSL#3 .text:00050750 ADD R3, R3, R2,LSL#3 .text:00050754 ADD R5, R3, R3,LSL#2 .text:00050758 BL __modsi3 .text:0005075C CMP R0, #0 .text:00050760 SUBLT R3, R4, #1 .text:00050764 ADDLT R3, R3, R9 .text:00050768 ADDGE R3, R4, R9 .text:0005076C ADD R4, R5, R3 .text:00050770 LDR R0, [R11,#var_3C] .text:00050774 MOV R1, #0x190 .text:00050778 BL __modsi3 .text:0005077C CMP R0, #0 .text:00050780 LDRLT R2, [R11,#var_38] .text:00050784 SUBLT R3, R10, #1 .text:00050788 ADDLT R3, R3, R2 .text:0005078C LDRGE R2, [R11,#var_38] .text:00050790 ADDGE R3, R10, R2 .text:00050794 RSB R3, R3, R4 .text:00050798 RSB R8, R3, R8 .text:0005079C LDR R6, [R11,#var_34] .text:000507A0 .text:000507A0 loc_507A0 ; CODE XREF: __offtime+108j .text:000507A0 CMP R8, #0 .text:000507A4 BLT loc_50658 .text:000507A8 ANDS R3, R6, #3 .text:000507AC MOV R4, R3 .text:000507B0 BNE loc_507E8 .text:000507B4 MOV R0, R6 .text:000507B8 MOV R1, #0x64 .text:000507BC BL __modsi3 .text:000507C0 CMP R0, #0 .text:000507C4 BNE loc_507DC .text:000507C8 MOV R0, R6 .text:000507CC MOV R1, #0x190 .text:000507D0 BL __modsi3 .text:000507D4 CMP R0, #0 .text:000507D8 BNE loc_507E8 .text:000507DC .text:000507DC loc_507DC ; CODE XREF: __offtime+278j .text:000507DC LDR R3, [R11,#var_30] .text:000507E0 CMP R8, R3 .text:000507E4 B loc_507EC .text:000507E8 ; --------------------------------------------------------------------------- .text:000507E8 .text:000507E8 loc_507E8 ; CODE XREF: __offtime+264j .text:000507E8 ; __offtime+28Cj .text:000507E8 CMP R8, #0x16C .text:000507EC .text:000507EC loc_507EC ; CODE XREF: __offtime+298j .text:000507EC BGT loc_50658 .text:000507F0 SUB R3, R6, #0x760 .text:000507F4 LDR R2, [R11,#var_2C] .text:000507F8 SUB R3, R3, #0xC .text:000507FC STR R3, [R2,#0x14] .text:00050800 MOV R5, #0 .text:00050804 CMP R4, R5 .text:00050808 STR R8, [R2,#0x1C] .text:0005080C BNE loc_5083C .text:00050810 MOV R0, R6 .text:00050814 MOV R1, #0x64 .text:00050818 BL __modsi3 .text:0005081C CMP R0, R5 .text:00050820 BNE loc_50838 .text:00050824 MOV R0, R6 .text:00050828 MOV R1, #0x190 .text:0005082C BL __modsi3 .text:00050830 CMP R0, R5 .text:00050834 BNE loc_5083C .text:00050838 .text:00050838 loc_50838 ; CODE XREF: __offtime+2D4j .text:00050838 MOV R5, #1 .text:0005083C .text:0005083C loc_5083C ; CODE XREF: __offtime+2C0j .text:0005083C ; __offtime+2E8j .text:0005083C MOV R6, #0xB .text:00050840 CMP R5, #0 .text:00050844 MOVNE R1, #0x1A .text:00050848 MOVEQ R1, #0 .text:0005084C LDR R2, =__mon_yday .text:00050850 MOV R3, R6,LSL#1 .text:00050854 ADD R0, R1, R2 .text:00050858 LDRB R2, [R0,R3] .text:0005085C ADD R3, R0, R3 .text:00050860 LDRB R1, [R3,#1] .text:00050864 ORR R2, R2, R1,LSL#8 .text:00050868 CMP R8, R2 .text:0005086C BGE loc_50890 .text:00050870 ADD R1, R0, #0x16 .text:00050874 .text:00050874 loc_50874 ; CODE XREF: __offtime+340j .text:00050874 SUB R6, R6, #1 .text:00050878 LDRB R2, [R0,R6,LSL#1] .text:0005087C SUB R1, R1, #2 .text:00050880 LDRB R3, [R1,#1] .text:00050884 ORR R2, R2, R3,LSL#8 .text:00050888 CMP R8, R2 .text:0005088C BLT loc_50874 .text:00050890 .text:00050890 loc_50890 ; CODE XREF: __offtime+320j .text:00050890 MOV R3, R6,LSL#1 .text:00050894 LDRB R2, [R3,R0] .text:00050898 ADD R3, R3, R0 .text:0005089C LDRB R1, [R3,#1] .text:000508A0 LDR R3, [R11,#var_2C] .text:000508A4 STR R6, [R3,#0x10] .text:000508A8 MOV R0, #1 .text:000508AC ORR R2, R2, R1,LSL#8 .text:000508B0 RSB R8, R2, R8 .text:000508B4 LDR R2, [R11,#var_2C] .text:000508B8 ADD R3, R8, R0 .text:000508BC STR R3, [R2,#0xC] .text:000508C0 B locret_508C8 .text:000508C0 ; --------------------------------------------------------------------------- .text:000508C4 off_508C4 DCD __mon_yday ; DATA XREF: __offtime+300r .text:000508C8 ; --------------------------------------------------------------------------- .text:000508C8 .text:000508C8 locret_508C8 ; CODE XREF: __offtime+374j .text:000508C8 LDMDB R11, {R4-R11,SP,PC} .text:000508C8 ; End of function __offtime .text:000508C8 .text:000508CC .text:000508CC ; =============== S U B R O U T I N E ======================================= .text:000508CC .text:000508CC ; Attributes: bp-based frame .text:000508CC .text:000508CC WEAK localtime_r .text:000508CC localtime_r ; DATA XREF: timelocal+14o .text:000508CC ; .text:off_50F8Co .text:000508CC MOV R12, SP .text:000508D0 STMFD SP!, {R11,R12,LR,PC} .text:000508D4 SUB R11, R12, #4 .text:000508D8 MOV R2, R1 .text:000508DC MOV R1, #1 .text:000508E0 BL __tz_convert .text:000508E4 LDMDB R11, {R11,SP,PC} .text:000508E4 ; End of function localtime_r .text:000508E4 .text:000508E8 .text:000508E8 ; =============== S U B R O U T I N E ======================================= .text:000508E8 .text:000508E8 ; Attributes: bp-based frame .text:000508E8 .text:000508E8 EXPORT localtime .text:000508E8 localtime .text:000508E8 MOV R12, SP .text:000508EC STMFD SP!, {R11,R12,LR,PC} .text:000508F0 SUB R11, R12, #4 .text:000508F4 LDR R2, =_tmbuf .text:000508F8 MOV R1, #1 .text:000508FC BL __tz_convert .text:00050900 LDMDB R11, {R11,SP,PC} .text:00050900 ; End of function localtime .text:00050900 .text:00050900 ; --------------------------------------------------------------------------- .text:00050904 off_50904 DCD _tmbuf ; DATA XREF: localtime+Cr .text:00050908 .text:00050908 ; =============== S U B R O U T I N E ======================================= .text:00050908 .text:00050908 ; Attributes: bp-based frame .text:00050908 .text:00050908 ydhms_tm_diff ; CODE XREF: __mktime_internal+160p .text:00050908 ; __mktime_internal+208p ... .text:00050908 .text:00050908 var_30 = -0x30 .text:00050908 var_2C = -0x2C .text:00050908 arg_0 = 4 .text:00050908 arg_4 = 8 .text:00050908 .text:00050908 MOV R12, SP .text:0005090C STMFD SP!, {R4-R12,LR,PC} .text:00050910 SUB R11, R12, #4 .text:00050914 SUB SP, SP, #8 .text:00050918 STR R2, [R11,#var_2C] .text:0005091C MOV R10, R0 .text:00050920 LDR R8, [R11,#arg_4] .text:00050924 MOV R9, R1 .text:00050928 STR R3, [R11,#var_30] .text:0005092C CMP R8, #0 .text:00050930 BEQ loc_50A14 .text:00050934 MOV R5, 0x1DB .text:0005093C TST R10, #3 .text:00050940 ADD R6, R5, R10,ASR#2 .text:00050944 SUBEQ R6, R6, #1 .text:00050948 MOV R0, R6 .text:0005094C LDR R3, [R8,#0x14] .text:00050950 MOV R1, #0x19 .text:00050954 TST R3, #3 .text:00050958 ADD R5, R5, R3,ASR#2 .text:0005095C SUBEQ R5, R5, #1 .text:00050960 BL __divsi3 .text:00050964 MOV R7, R0 .text:00050968 MOV R0, R6 .text:0005096C MOV R1, #0x19 .text:00050970 BL __modsi3 .text:00050974 SUB R7, R7, R0,LSR#31 .text:00050978 MOV R0, R5 .text:0005097C MOV R1, #0x19 .text:00050980 BL __divsi3 .text:00050984 MOV R4, R0 .text:00050988 MOV R0, R5 .text:0005098C MOV R1, #0x19 .text:00050990 BL __modsi3 .text:00050994 SUB R4, R4, R0,LSR#31 .text:00050998 MOV R2, R4,ASR#2 .text:0005099C RSB R6, R5, R6 .text:000509A0 RSB R4, R4, R7 .text:000509A4 RSB R6, R4, R6 .text:000509A8 LDR R3, [R8,#0x14] .text:000509AC RSB R2, R2, R7,ASR#2 .text:000509B0 LDR R1, [R8,#0x1C] .text:000509B4 ADD R6, R6, R2 .text:000509B8 LDR R0, [R11,#arg_0] .text:000509BC RSB R3, R3, R10 .text:000509C0 ADD R2, R3, R3,LSL#3 .text:000509C4 ADD R3, R3, R2,LSL#3 .text:000509C8 ADD R3, R3, R3,LSL#2 .text:000509CC ADD R3, R3, R6 .text:000509D0 RSB R1, R1, R9 .text:000509D4 LDR R2, [R8,#8] .text:000509D8 ADD R3, R3, R1 .text:000509DC LDR R1, [R11,#var_2C] .text:000509E0 ADD R3, R3, R3,LSL#1 .text:000509E4 RSB R2, R2, R1 .text:000509E8 LDR R1, [R8,#4] .text:000509EC ADD R2, R2, R3,LSL#3 .text:000509F0 LDR R3, [R11,#var_30] .text:000509F4 RSB R2, R2, R2,LSL#4 .text:000509F8 RSB R1, R1, R3 .text:000509FC ADD R1, R1, R2,LSL#2 .text:00050A00 LDR R3, [R8] .text:00050A04 RSB R1, R1, R1,LSL#4 .text:00050A08 RSB R0, R3, R0 .text:00050A0C ADD R0, R0, R1,LSL#2 .text:00050A10 B locret_50A18 .text:00050A14 ; --------------------------------------------------------------------------- .text:00050A14 .text:00050A14 loc_50A14 ; CODE XREF: ydhms_tm_diff+28j .text:00050A14 MOV R0, #1 .text:00050A18 .text:00050A18 locret_50A18 ; CODE XREF: ydhms_tm_diff+108j .text:00050A18 LDMDB R11, {R4-R11,SP,PC} .text:00050A18 ; End of function ydhms_tm_diff .text:00050A18 .text:00050A1C .text:00050A1C ; =============== S U B R O U T I N E ======================================= .text:00050A1C .text:00050A1C ; Attributes: bp-based frame .text:00050A1C .text:00050A1C ranged_convert ; CODE XREF: __mktime_internal+1ECp .text:00050A1C ; __mktime_internal+28Cp ... .text:00050A1C .text:00050A1C var_54 = -0x54 .text:00050A1C .text:00050A1C MOV R12, SP .text:00050A20 STMFD SP!, {R4-R12,LR,PC} .text:00050A24 SUB R11, R12, #4 .text:00050A28 MOV R9, R0 .text:00050A2C MOV R8, R1 .text:00050A30 MOV R0, R8 .text:00050A34 MOV R10, R2 .text:00050A38 MOV R1, R10 .text:00050A3C SUB SP, SP, #0x2C .text:00050A40 MOV LR, PC .text:00050A44 MOV PC, R9 .text:00050A48 SUBS R6, R0, #0 .text:00050A4C BNE loc_50B18 .text:00050A50 LDR R3, [R8] .text:00050A54 CMP R3, #0 .text:00050A58 BEQ loc_50B18 .text:00050A5C MOV R4, R3 .text:00050A60 MOV R7, R6 .text:00050A64 B loc_50AC4 .text:00050A68 ; --------------------------------------------------------------------------- .text:00050A68 .text:00050A68 loc_50A68 ; CODE XREF: ranged_convert+B8j .text:00050A68 CMP R4, #0 .text:00050A6C RSBLT R3, R4, R7 .text:00050A70 ADDLT R5, R4, R3,ASR#1 .text:00050A74 RSBGE R3, R7, R4 .text:00050A78 ADDGE R5, R7, R3,ASR#1 .text:00050A7C STR R5, [R8] .text:00050A80 MOV R0, R8 .text:00050A84 MOV R1, R10 .text:00050A88 MOV LR, PC .text:00050A8C MOV PC, R9 .text:00050A90 SUBS R6, R0, #0 .text:00050A94 BEQ loc_50AC0 .text:00050A98 MOV R12, R6 .text:00050A9C LDMIA R12!, {R0-R3} .text:00050AA0 SUB LR, R11, #-var_54 .text:00050AA4 STMIA LR!, {R0-R3} .text:00050AA8 LDMIA R12!, {R0-R3} .text:00050AAC STMIA LR!, {R0-R3} .text:00050AB0 LDMIA R12, {R0-R2} .text:00050AB4 MOV R7, R5 .text:00050AB8 STMIA LR, {R0-R2} .text:00050ABC B loc_50AC4 .text:00050AC0 ; --------------------------------------------------------------------------- .text:00050AC0 .text:00050AC0 loc_50AC0 ; CODE XREF: ranged_convert+78j .text:00050AC0 MOV R4, R5 .text:00050AC4 .text:00050AC4 loc_50AC4 ; CODE XREF: ranged_convert+48j .text:00050AC4 ; ranged_convert+A0j .text:00050AC4 CMP R4, #0 .text:00050AC8 ADD R3, R7, #1 .text:00050ACC SUBLT R3, R7, #1 .text:00050AD0 CMP R4, R3 .text:00050AD4 BNE loc_50A68 .text:00050AD8 SUBS R3, R7, #0 .text:00050ADC MOVNE R3, #1 .text:00050AE0 CMP R6, #0 .text:00050AE4 MOVNE R3, #0 .text:00050AE8 CMP R3, #0 .text:00050AEC BEQ loc_50B18 .text:00050AF0 STR R7, [R8] .text:00050AF4 SUB R12, R11, #-var_54 .text:00050AF8 LDMIA R12!, {R0-R3} .text:00050AFC MOV LR, R10 .text:00050B00 STMIA LR!, {R0-R3} .text:00050B04 LDMIA R12!, {R0-R3} .text:00050B08 STMIA LR!, {R0-R3} .text:00050B0C LDMIA R12, {R0-R2} .text:00050B10 MOV R6, R10 .text:00050B14 STMIA LR, {R0-R2} .text:00050B18 .text:00050B18 loc_50B18 ; CODE XREF: ranged_convert+30j .text:00050B18 ; ranged_convert+3Cj ... .text:00050B18 MOV R0, R6 .text:00050B1C LDMDB R11, {R4-R11,SP,PC} .text:00050B1C ; End of function ranged_convert .text:00050B1C .text:00050B20 .text:00050B20 ; =============== S U B R O U T I N E ======================================= .text:00050B20 .text:00050B20 ; Attributes: bp-based frame .text:00050B20 .text:00050B20 EXPORT __mktime_internal .text:00050B20 __mktime_internal ; CODE XREF: timelocal+20p .text:00050B20 .text:00050B20 var_C4 = -0xC4 .text:00050B20 var_C0 = -0xC0 .text:00050B20 var_BC = -0xBC .text:00050B20 var_B8 = -0xB8 .text:00050B20 var_B4 = -0xB4 .text:00050B20 var_B0 = -0xB0 .text:00050B20 var_AC = -0xAC .text:00050B20 var_A8 = -0xA8 .text:00050B20 var_A4 = -0xA4 .text:00050B20 var_A0 = -0xA0 .text:00050B20 var_9C = -0x9C .text:00050B20 var_98 = -0x98 .text:00050B20 var_94 = -0x94 .text:00050B20 var_90 = -0x90 .text:00050B20 var_8C = -0x8C .text:00050B20 var_88 = -0x88 .text:00050B20 var_84 = -0x84 .text:00050B20 var_80 = -0x80 .text:00050B20 var_60 = -0x60 .text:00050B20 var_54 = -0x54 .text:00050B20 var_50 = -0x50 .text:00050B20 var_4C = -0x4C .text:00050B20 var_40 = -0x40 .text:00050B20 var_38 = -0x38 .text:00050B20 var_34 = -0x34 .text:00050B20 .text:00050B20 MOV R12, SP .text:00050B24 STMFD SP!, {R4-R12,LR,PC} .text:00050B28 SUB R11, R12, #4 .text:00050B2C SUB SP, SP, #0x9C .text:00050B30 STR R1, [R11,#var_90] .text:00050B34 STR R0, [R11,#var_8C] .text:00050B38 LDR R5, [R0,#0x10] .text:00050B3C LDR R10, [R0] .text:00050B40 STR R2, [R11,#var_94] .text:00050B44 MOV R9, #0 .text:00050B48 MOV R1, #0xC .text:00050B4C MOV R0, R5 .text:00050B50 BL __modsi3 .text:00050B54 MOV R4, R0 .text:00050B58 MOV R0, R5 .text:00050B5C MOV R1, #0xC .text:00050B60 BL __divsi3 .text:00050B64 LDR R1, [R11,#var_8C] .text:00050B68 MOV R3, R4,LSR#31 .text:00050B6C LDR R1, [R1,#0x14] .text:00050B70 RSB R0, R3, R0 .text:00050B74 STR R0, [R11,#var_AC] .text:00050B78 STR R1, [R11,#var_A8] .text:00050B7C ADD R2, R1, R0 .text:00050B80 STR R2, [R11,#var_B0] .text:00050B84 LDR R12, [R11,#var_8C] .text:00050B88 LDR R12, [R12,#4] .text:00050B8C STR R12, [R11,#var_9C] .text:00050B90 LDR R1, [R11,#var_8C] .text:00050B94 LDR R1, [R1,#8] .text:00050B98 STR R1, [R11,#var_A0] .text:00050B9C ADD R5, R2, #0x760 .text:00050BA0 LDR R2, [R11,#var_8C] .text:00050BA4 LDR R2, [R2,#0xC] .text:00050BA8 STR R2, [R11,#var_A4] .text:00050BAC MOV R7, #6 .text:00050BB0 CMP R3, R9 .text:00050BB4 MOVNE R3, #0xC .text:00050BB8 MOVEQ R3, R9 .text:00050BBC ADD R4, R4, R3 .text:00050BC0 LDR R3, [R11,#var_8C] .text:00050BC4 MOV R4, R4,LSL#1 .text:00050BC8 LDR R6, =__mon_yday .text:00050BCC ADD R5, R5, #0xC .text:00050BD0 TST R5, #3 .text:00050BD4 LDR R8, [R3,#0x20] .text:00050BD8 BNE loc_50C08 .text:00050BDC MOV R0, R5 .text:00050BE0 MOV R1, #0x64 .text:00050BE4 BL __modsi3 .text:00050BE8 CMP R0, R9 .text:00050BEC BNE loc_50C04 .text:00050BF0 MOV R0, R5 .text:00050BF4 MOV R1, #0x190 .text:00050BF8 BL __modsi3 .text:00050BFC CMP R0, R9 .text:00050C00 BNE loc_50C08 .text:00050C04 .text:00050C04 loc_50C04 ; CODE XREF: __mktime_internal+CCj .text:00050C04 MOV R9, #1 .text:00050C08 .text:00050C08 loc_50C08 ; CODE XREF: __mktime_internal+B8j .text:00050C08 ; __mktime_internal+E0j .text:00050C08 MOV R2, #0x46 .text:00050C0C STR R2, [R11,#var_40] .text:00050C10 MOV R3, #0 .text:00050C14 STR R3, [R11,#var_54] .text:00050C18 STR R3, [R11,#var_50] .text:00050C1C STR R3, [R11,#var_4C] .text:00050C20 CMP R9, R3 .text:00050C24 STR R3, [R11,#var_38] .text:00050C28 MOVNE R12, #0x1A .text:00050C2C MOVEQ R12, R3 .text:00050C30 CMP R10, #0 .text:00050C34 STR R10, [R11,#var_B8] .text:00050C38 MOVLT R10, R3 .text:00050C3C CMP R10, #0x3B .text:00050C40 MOVGE R10, #0x3B .text:00050C44 STR R10, [SP,#0xC4+var_C4] .text:00050C48 LDR R0, [R11,#var_B0] .text:00050C4C LDR R2, [R11,#var_A0] .text:00050C50 ADD R12, R4, R12 .text:00050C54 LDR R3, [R11,#var_9C] .text:00050C58 SUB R4, R11, #-var_54 .text:00050C5C STR R4, [SP,#0xC4+var_C0] .text:00050C60 LDRB R1, [R6,R12] .text:00050C64 ADD R12, R6, R12 .text:00050C68 LDRB LR, [R12,#1] .text:00050C6C LDR R12, [R11,#var_A4] .text:00050C70 ORR R1, R1, LR,LSL#8 .text:00050C74 ADD R1, R1, R12 .text:00050C78 SUB R1, R1, #1 .text:00050C7C STR R1, [R11,#var_B4] .text:00050C80 BL ydhms_tm_diff .text:00050C84 LDR R1, [R11,#var_94] .text:00050C88 LDR R3, [R1] .text:00050C8C STR R0, [R11,#var_98] .text:00050C90 ADD R5, R0, R3 .text:00050C94 STR R5, [R11,#var_84] .text:00050C98 MOV R6, R5 .text:00050C9C SUB R2, R11, #-var_84 .text:00050CA0 STR R2, [R11,#var_BC] .text:00050CA4 B loc_50D00 .text:00050CA8 ; --------------------------------------------------------------------------- .text:00050CA8 .text:00050CA8 loc_50CA8 ; CODE XREF: __mktime_internal+210j .text:00050CA8 LDR R3, [R11,#var_84] .text:00050CAC CMP R3, R6 .text:00050CB0 BNE loc_50CE8 .text:00050CB4 CMP R6, R5 .text:00050CB8 BEQ loc_50CE8 .text:00050CBC CMP R8, #0 .text:00050CC0 BLT loc_50D34 .text:00050CC4 LDR R3, [R11,#var_34] .text:00050CC8 CMP R3, #0 .text:00050CCC BLT loc_50D34 .text:00050CD0 SUBS R2, R8, #0 .text:00050CD4 MOVNE R2, #1 .text:00050CD8 SUBS R3, R3, #0 .text:00050CDC MOVNE R3, #1 .text:00050CE0 CMP R2, R3 .text:00050CE4 BNE loc_50D34 .text:00050CE8 .text:00050CE8 loc_50CE8 ; CODE XREF: __mktime_internal+190j .text:00050CE8 ; __mktime_internal+198j .text:00050CE8 SUBS R7, R7, #1 .text:00050CEC BEQ loc_50E38 .text:00050CF0 MOV R6, R5 .text:00050CF4 LDR R5, [R11,#var_84] .text:00050CF8 ADD R3, R5, R0 .text:00050CFC STR R3, [R11,#var_84] .text:00050D00 .text:00050D00 loc_50D00 ; CODE XREF: __mktime_internal+184j .text:00050D00 LDR R0, [R11,#var_90] .text:00050D04 LDR R1, [R11,#var_BC] .text:00050D08 SUB R2, R11, #-var_54 .text:00050D0C BL ranged_convert .text:00050D10 STR R10, [SP,#0xC4+var_C4] .text:00050D14 STR R0, [SP,#0xC4+var_C0] .text:00050D18 LDR R0, [R11,#var_B0] .text:00050D1C LDR R1, [R11,#var_B4] .text:00050D20 SUB R2, R11, #-var_A0 .text:00050D24 LDMIA R2, {R2,R3} .text:00050D28 BL ydhms_tm_diff .text:00050D2C CMP R0, #0 .text:00050D30 BNE loc_50CA8 .text:00050D34 .text:00050D34 loc_50D34 ; CODE XREF: __mktime_internal+1A0j .text:00050D34 ; __mktime_internal+1ACj ... .text:00050D34 CMP R0, #0 .text:00050D38 BNE loc_50DCC .text:00050D3C LDR R2, [R11,#var_34] .text:00050D40 MVN R3, R8 .text:00050D44 MOV R3, R3,LSR#31 .text:00050D48 CMP R8, R2 .text:00050D4C MOVEQ R3, #0 .text:00050D50 CMP R3, #0 .text:00050D54 BEQ loc_50DCC .text:00050D58 CMP R2, #0 .text:00050D5C BLT loc_50DCC .text:00050D60 MOV R5, 0x786156 .text:00050D6C MOV R3, 0x81692402 .text:00050D78 MOV R7, #1 .text:00050D7C SUB R9, R11, #-var_88 .text:00050D80 LDR R2, [R11,#var_84] .text:00050D84 SUB R6, R11, #-var_80 .text:00050D88 CMP R2, R3 .text:00050D8C RSBLT R5, R5, #0 .text:00050D90 MOV R4, R5 .text:00050D94 .text:00050D94 loc_50D94 ; CODE XREF: __mktime_internal+2A8j .text:00050D94 LDR R3, [R11,#var_84] .text:00050D98 RSB R3, R4, R3 .text:00050D9C STR R3, [R11,#var_88] .text:00050DA0 MOV R1, R9 .text:00050DA4 LDR R0, [R11,#var_90] .text:00050DA8 MOV R2, R6 .text:00050DAC BL ranged_convert .text:00050DB0 LDR R3, [R11,#var_60] .text:00050DB4 CMP R3, R8 .text:00050DB8 BEQ loc_50E40 .text:00050DBC ADD R4, R4, R5 .text:00050DC0 ADD R7, R7, #1 .text:00050DC4 CMP R7, #3 .text:00050DC8 BLE loc_50D94 .text:00050DCC .text:00050DCC loc_50DCC ; CODE XREF: __mktime_internal+218j .text:00050DCC ; __mktime_internal+234j ... .text:00050DCC LDR R2, [R11,#var_54] .text:00050DD0 LDR R0, [R11,#var_84] .text:00050DD4 LDR R3, [R11,#var_B8] .text:00050DD8 LDR R12, [R11,#var_98] .text:00050DDC LDR R1, [R11,#var_94] .text:00050DE0 CMP R3, R2 .text:00050DE4 RSB R3, R12, R0 .text:00050DE8 STR R3, [R1] .text:00050DEC BEQ loc_50E7C .text:00050DF0 MOV R1, #0 .text:00050DF4 LDR R12, [R11,#var_B8] .text:00050DF8 CMP R10, R1 .text:00050DFC RSB R3, R10, R12 .text:00050E00 BNE loc_50E10 .text:00050E04 CMP R2, #0x3C .text:00050E08 MOVNE R1, #0 .text:00050E0C MOVEQ R1, #1 .text:00050E10 .text:00050E10 loc_50E10 ; CODE XREF: __mktime_internal+2E0j .text:00050E10 ADD R3, R3, R1 .text:00050E14 ADD R3, R0, R3 .text:00050E18 STR R3, [R11,#var_84] .text:00050E1C LDR R0, [R11,#var_BC] .text:00050E20 LDR R2, [R11,#var_90] .text:00050E24 SUB R1, R11, #-var_54 .text:00050E28 MOV LR, PC .text:00050E2C MOV PC, R2 .text:00050E30 CMP R0, #0 .text:00050E34 BNE loc_50E7C .text:00050E38 .text:00050E38 loc_50E38 ; CODE XREF: __mktime_internal+1CCj .text:00050E38 ; __mktime_internal:loc_50F2Cj .text:00050E38 MOV R0, 0xFFFFFFFF .text:00050E3C B loc_50F54 .text:00050E40 ; --------------------------------------------------------------------------- .text:00050E40 .text:00050E40 loc_50E40 ; CODE XREF: __mktime_internal+298j .text:00050E40 STR R10, [SP,#0xC4+var_C4] .text:00050E44 STR R6, [SP,#0xC4+var_C0] .text:00050E48 LDR R0, [R11,#var_B0] .text:00050E4C LDR R1, [R11,#var_B4] .text:00050E50 SUB R2, R11, #-var_A0 .text:00050E54 LDMIA R2, {R2,R3} .text:00050E58 BL ydhms_tm_diff .text:00050E5C LDR R3, [R11,#var_88] .text:00050E60 ADD R3, R3, R0 .text:00050E64 STR R3, [R11,#var_84] .text:00050E68 LDR R1, [R11,#var_BC] .text:00050E6C LDR R0, [R11,#var_90] .text:00050E70 SUB R2, R11, #-var_54 .text:00050E74 BL ranged_convert .text:00050E78 B loc_50DCC .text:00050E7C ; --------------------------------------------------------------------------- .text:00050E7C .text:00050E7C loc_50E7C ; CODE XREF: __mktime_internal+2CCj .text:00050E7C ; __mktime_internal+314j .text:00050E7C LDR R3, [R11,#var_A8] .text:00050E80 MCR p1, 0, R3,c0,c0, 4 .text:00050E84 LDR R12, [R11,#var_AC] .text:00050E88 MCR p1, 0, R12,c1,c0, 4 .text:00050E8C LDR R3, [R11,#var_40] .text:00050E90 MCR p1, 0, R3,c2,c0, 4 .text:00050E94 CDP p1, 0, c0,c0,c1, 4 .text:00050E98 CDP p1, 2, c0,c0,c2, 4 .text:00050E9C LDC p1, c9, dword_50F04 .text:00050EA0 CDP p1, 1, c0,c0,c1, 4 .text:00050EA4 LDR R1, [R11,#var_A4] .text:00050EA8 MCR p1, 0, R1,c2,c0, 4 .text:00050EAC CDP p1, 0, c0,c0,c2, 4 .text:00050EB0 LDC p1, c9, dword_50F0C .text:00050EB4 CDP p1, 1, c0,c0,c1, 4 .text:00050EB8 LDR R2, [R11,#var_A0] .text:00050EBC MCR p1, 0, R2,c2,c0, 4 .text:00050EC0 CDP p1, 0, c0,c0,c2, 4 .text:00050EC4 LDC p1, c11, dword_50F14 .text:00050EC8 CDP p1, 1, c0,c0,c3, 4 .text:00050ECC LDR R3, [R11,#var_9C] .text:00050ED0 MCR p1, 0, R3,c1,c0, 4 .text:00050ED4 CDP p1, 0, c0,c0,c1, 4 .text:00050ED8 CDP p1, 1, c0,c0,c3, 4 .text:00050EDC LDR R12, [R11,#var_B8] .text:00050EE0 MCR p1, 0, R12,c1,c0, 4 .text:00050EE4 CDP p1, 0, c2,c0,c1, 4 .text:00050EE8 MRC p1, 6, PC,c2,c8, 0 .text:00050EEC BPL loc_50F24 .text:00050EF0 LDC p1, c9, dword_50F1C .text:00050EF4 CDP p1, 1, c8,c0,c2, 4 .text:00050EF8 MRC p1, 6, PC,c0,c1, 0 .text:00050EFC B loc_50F2C .text:00050EFC ; --------------------------------------------------------------------------- .text:00050F00 off_50F00 DCD __mon_yday ; DATA XREF: __mktime_internal+A8r .text:00050F04 dword_50F04 DCD 0x4076E000 ; DATA XREF: __mktime_internal+37Cr .text:00050F08 DCD 0 .text:00050F0C dword_50F0C DCD 0x40380000 ; DATA XREF: __mktime_internal+390r .text:00050F10 DCD 0 .text:00050F14 dword_50F14 DCD 0x404E0000 ; DATA XREF: __mktime_internal+3A4r .text:00050F18 DCD 0 .text:00050F1C dword_50F1C DCD 0x41D55555 ; DATA XREF: __mktime_internal+3D0r .text:00050F20 DCD 0x55000000 .text:00050F24 ; --------------------------------------------------------------------------- .text:00050F24 .text:00050F24 loc_50F24 ; CODE XREF: __mktime_internal+3CCj .text:00050F24 LDC p1, c8, dword_50F58 .text:00050F28 MRC p1, 6, PC,c2,c0, 0 .text:00050F2C .text:00050F2C loc_50F2C ; CODE XREF: __mktime_internal+3DCj .text:00050F2C BGT loc_50E38 .text:00050F30 SUB LR, R11, #-var_54 .text:00050F34 LDMIA LR!, {R0-R3} .text:00050F38 LDR R12, [R11,#var_8C] .text:00050F3C STMIA R12!, {R0-R3} .text:00050F40 LDMIA LR!, {R0-R3} .text:00050F44 STMIA R12!, {R0-R3} .text:00050F48 LDMIA LR, {R0-R2} .text:00050F4C STMIA R12, {R0-R2} .text:00050F50 LDR R0, [R11,#var_84] .text:00050F54 .text:00050F54 loc_50F54 ; CODE XREF: __mktime_internal+31Cj .text:00050F54 B locret_50F60 .text:00050F54 ; --------------------------------------------------------------------------- .text:00050F58 dword_50F58 DCD 0x41D55555 ; DATA XREF: __mktime_internal:loc_50F24r .text:00050F5C DCD 0x55000000 .text:00050F60 ; --------------------------------------------------------------------------- .text:00050F60 .text:00050F60 locret_50F60 ; CODE XREF: __mktime_internal:loc_50F54j .text:00050F60 LDMDB R11, {R4-R11,SP,PC} .text:00050F60 ; End of function __mktime_internal .text:00050F60 .text:00050F64 .text:00050F64 ; =============== S U B R O U T I N E ======================================= .text:00050F64 .text:00050F64 ; Attributes: bp-based frame .text:00050F64 .text:00050F64 WEAK timelocal .text:00050F64 timelocal .text:00050F64 MOV R12, SP .text:00050F68 STMFD SP!, {R4,R11,R12,LR,PC} .text:00050F6C SUB R11, R12, #4 .text:00050F70 MOV R4, R0 .text:00050F74 BL tzset .text:00050F78 LDR R1, =localtime_r .text:00050F7C LDR R2, =localtime_offset .text:00050F80 MOV R0, R4 .text:00050F84 BL __mktime_internal .text:00050F88 LDMDB R11, {R4,R11,SP,PC} .text:00050F88 ; End of function timelocal .text:00050F88 .text:00050F88 ; --------------------------------------------------------------------------- .text:00050F8C off_50F8C DCD localtime_r ; DATA XREF: timelocal+14r .text:00050F90 off_50F90 DCD localtime_offset ; DATA XREF: timelocal+18r .text:00050F94 .text:00050F94 ; =============== S U B R O U T I N E ======================================= .text:00050F94 .text:00050F94 ; Attributes: bp-based frame .text:00050F94 .text:00050F94 EXPORT profil_counter .text:00050F94 profil_counter ; DATA XREF: profil+D4o .text:00050F94 ; profil:off_5118Co .text:00050F94 .text:00050F94 arg_0 = 4 .text:00050F94 arg_40 = 0x44 .text:00050F94 arg_48 = 0x4C .text:00050F94 .text:00050F94 MOV R12, SP .text:00050F98 STMFD SP!, {R4,R11,R12,LR,PC} .text:00050F9C SUB R11, R12, #4 .text:00050FA0 LDR R2, [R11,#arg_0] .text:00050FA4 LDR R3, =0x4B534154 .text:00050FA8 CMP R2, R3 .text:00050FAC LDREQ R1, [R11,#arg_40] .text:00050FB0 LDRNE R1, [R11,#arg_48] .text:00050FB4 LDR R2, =pc_offset .text:00050FB8 LDR R3, [R2] .text:00050FBC RSB R3, R3, R1 .text:00050FC0 ADD R3, R3, R3,LSR#31 .text:00050FC4 LDR R1, =pc_scale .text:00050FC8 MOV R12, R3,ASR#1 .text:00050FCC LDR R2, [R1] .text:00050FD0 MOV R0, R12 .text:00050FD4 MOV R1, #0 .text:00050FD8 MOV R3, #0 .text:00050FDC BL __muldi3 .text:00050FE0 MOV R2, R0,LSR#16 .text:00050FE4 ORR R3, R2, R1,LSL#16 .text:00050FE8 LDR R2, =nsamples .text:00050FEC LDR R1, [R2] .text:00050FF0 MOV R12, R3 .text:00050FF4 CMP R12, R1 .text:00050FF8 LDMCSDB R11, {R4,R11,SP,PC} .text:00050FFC LDR R3, =samples .text:00051000 LDR R0, [R3] .text:00051004 MOV R2, R12,LSL#1 .text:00051008 LDRB R3, [R2,R0] .text:0005100C ADD R2, R2, R0 .text:00051010 LDRB R1, [R2,#1] .text:00051014 ORR R3, R3, R1,LSL#8 .text:00051018 ADD R3, R3, #1 .text:0005101C STRB R3, [R0,R12,LSL#1] .text:00051020 ADD R0, R0, R12,LSL#1 .text:00051024 MOV R3, R3,ASR#8 .text:00051028 STRB R3, [R0,#1] .text:0005102C LDMDB R11, {R4,R11,SP,PC} .text:0005102C ; End of function profil_counter .text:0005102C .text:0005102C ; --------------------------------------------------------------------------- .text:00051030 dword_51030 DCD 0x4B534154 ; DATA XREF: profil_counter+10r .text:00051034 off_51034 DCD pc_offset ; DATA XREF: profil_counter+20r .text:00051038 off_51038 DCD pc_scale ; DATA XREF: profil_counter+30r .text:0005103C off_5103C DCD nsamples ; DATA XREF: profil_counter+54r .text:00051040 off_51040 DCD samples ; DATA XREF: profil_counter+68r .text:00051044 .text:00051044 ; =============== S U B R O U T I N E ======================================= .text:00051044 .text:00051044 ; Attributes: bp-based frame .text:00051044 .text:00051044 WEAK profil .text:00051044 profil ; CODE XREF: _dl_start_profile+7A4p .text:00051044 .text:00051044 var_BC = -0xBC .text:00051044 var_B4 = -0xB4 .text:00051044 var_B0 = -0xB0 .text:00051044 var_AC = -0xAC .text:00051044 var_A8 = -0xA8 .text:00051044 var_28 = -0x28 .text:00051044 .text:00051044 MOV R12, SP .text:00051048 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0005104C SUB R11, R12, #4 .text:00051050 MOV R5, R1 .text:00051054 MOV R6, R2 .text:00051058 MOV R7, R3 .text:0005105C SUBS R4, R0, #0 .text:00051060 SUB SP, SP, #0x9C .text:00051064 BNE loc_510AC .text:00051068 LDR R5, =samples .text:0005106C LDR R3, [R5] .text:00051070 CMP R3, #0 .text:00051074 MOVEQ R0, R4 .text:00051078 BEQ locret_51194 .text:0005107C MOV R0, #2 .text:00051080 LDR R1, =otimer.19 .text:00051084 MOV R2, R4 .text:00051088 BL setitimer .text:0005108C CMP R0, #0 .text:00051090 BLT loc_51190 .text:00051094 STR R4, [R5] .text:00051098 MOV R0, #0x1B .text:0005109C LDR R1, =oact.18 .text:000510A0 MOV R2, R4 .text:000510A4 BL sigaction .text:000510A8 B locret_51194 .text:000510AC ; --------------------------------------------------------------------------- .text:000510AC .text:000510AC loc_510AC ; CODE XREF: profil+20j .text:000510AC LDR R2, =samples .text:000510B0 LDR R3, [R2] .text:000510B4 MOV R8, R2 .text:000510B8 CMP R3, #0 .text:000510BC BEQ loc_510F0 .text:000510C0 MOV R0, #2 .text:000510C4 LDR R1, =otimer.19 .text:000510C8 MOV R2, #0 .text:000510CC BL setitimer .text:000510D0 CMP R0, #0 .text:000510D4 BLT loc_51190 .text:000510D8 MOV R0, #0x1B .text:000510DC LDR R1, =oact.18 .text:000510E0 MOV R2, #0 .text:000510E4 BL sigaction .text:000510E8 CMP R0, #0 .text:000510EC BLT loc_51190 .text:000510F0 .text:000510F0 loc_510F0 ; CODE XREF: profil+78j .text:000510F0 STR R4, [R8] .text:000510F4 MOV R3, #0x10000000 .text:000510F8 STR R3, [R11,#var_28] .text:000510FC LDR R1, =nsamples .text:00051100 MOV R3, R5,LSR#1 .text:00051104 STR R3, [R1] .text:00051108 LDR R2, =pc_offset .text:0005110C STR R6, [R2] .text:00051110 LDR R3, =pc_scale .text:00051114 STR R7, [R3] .text:00051118 LDR R2, =profil_counter .text:0005111C STR R2, [R11,#var_AC] .text:00051120 SUB R0, R11, #-var_A8 .text:00051124 SUB R4, R11, #-var_AC .text:00051128 BL sigfillset .text:0005112C MOV R0, #0x1B .text:00051130 LDR R2, =oact.18 .text:00051134 MOV R1, R4 .text:00051138 BL sigaction .text:0005113C CMP R0, #0 .text:00051140 BLT loc_51190 .text:00051144 MOV R3, #0 .text:00051148 STR R3, [R11,#var_B4] .text:0005114C MOV R2, #1 .text:00051150 STR R2, [R11,#var_B0] .text:00051154 SUB R0, R11, #-var_B4 .text:00051158 LDMIA R0, {R2,R3} .text:0005115C SUB R1, R11, #-var_BC .text:00051160 STMIA R1, {R2,R3} .text:00051164 LDR R2, =otimer.19 .text:00051168 MOV R0, #2 .text:0005116C BL setitimer .text:00051170 B locret_51194 .text:00051170 ; --------------------------------------------------------------------------- .text:00051174 off_51174 DCD samples ; DATA XREF: profil+24r .text:00051174 ; profil:loc_510ACr .text:00051178 off_51178 DCD otimer.19 ; DATA XREF: profil+3Cr .text:00051178 ; profil+80r ... .text:0005117C off_5117C DCD oact.18 ; DATA XREF: profil+58r .text:0005117C ; profil+98r ... .text:00051180 off_51180 DCD nsamples ; DATA XREF: profil+B8r .text:00051184 off_51184 DCD pc_offset ; DATA XREF: profil+C4r .text:00051188 off_51188 DCD pc_scale ; DATA XREF: profil+CCr .text:0005118C off_5118C DCD profil_counter ; DATA XREF: profil+D4r .text:00051190 ; --------------------------------------------------------------------------- .text:00051190 .text:00051190 loc_51190 ; CODE XREF: profil+4Cj .text:00051190 ; profil+90j ... .text:00051190 MOV R0, 0xFFFFFFFF .text:00051194 .text:00051194 locret_51194 ; CODE XREF: profil+34j .text:00051194 ; profil+64j ... .text:00051194 LDMDB R11, {R4-R8,R11,SP,PC} .text:00051194 ; End of function profil .text:00051194 .text:00051198 .text:00051198 ; =============== S U B R O U T I N E ======================================= .text:00051198 .text:00051198 ; Attributes: bp-based frame .text:00051198 .text:00051198 EXPORT __profile_frequency .text:00051198 __profile_frequency ; CODE XREF: _dl_start_profile+1B8p .text:00051198 .text:00051198 var_24 = -0x24 .text:00051198 var_20 = -0x20 .text:00051198 var_1C = -0x1C .text:00051198 var_18 = -0x18 .text:00051198 .text:00051198 MOV R12, SP .text:0005119C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000511A0 SUB R11, R12, #4 .text:000511A4 MOV R5, #0 .text:000511A8 SUB SP, SP, #0x10 .text:000511AC STR R5, [R11,#var_24] .text:000511B0 MOV R3, #1 .text:000511B4 STR R3, [R11,#var_20] .text:000511B8 STR R5, [R11,#var_1C] .text:000511BC STR R5, [R11,#var_18] .text:000511C0 MOV R0, R5 .text:000511C4 SUB R4, R11, #-var_24 .text:000511C8 MOV R1, R4 .text:000511CC MOV R2, R5 .text:000511D0 BL setitimer .text:000511D4 MOV R0, R5 .text:000511D8 MOV R1, R5 .text:000511DC MOV R2, R4 .text:000511E0 BL setitimer .text:000511E4 LDR R1, [R11,#var_20] .text:000511E8 CMP R1, #1 .text:000511EC BLE loc_51200 .text:000511F0 MOV R0, 0xF4240 .text:000511F8 BL __divsi3 .text:000511FC B locret_51204 .text:00051200 ; --------------------------------------------------------------------------- .text:00051200 .text:00051200 loc_51200 ; CODE XREF: __profile_frequency+54j .text:00051200 MOV R0, R5 .text:00051204 .text:00051204 locret_51204 ; CODE XREF: __profile_frequency+64j .text:00051204 LDMDB R11, {R4,R5,R11,SP,PC} .text:00051204 ; End of function __profile_frequency .text:00051204 .text:00051208 .text:00051208 ; =============== S U B R O U T I N E ======================================= .text:00051208 .text:00051208 ; Attributes: bp-based frame .text:00051208 .text:00051208 add_to_global ; CODE XREF: dl_open_worker+204p .text:00051208 ; dl_open_worker+36Cp .text:00051208 MOV R12, SP .text:0005120C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00051210 SUB R11, R12, #4 .text:00051214 MOV R12, #0 .text:00051218 LDR R7, =_dl_global_scope_alloc .text:0005121C MOV R6, R0 .text:00051220 LDR R1, [R6,#0xFC] .text:00051224 MOV R5, R12 .text:00051228 LDR R8, =_dl_main_searchlist .text:0005122C CMP R12, R1 .text:00051230 BCS loc_51254 .text:00051234 LDR R0, [R6,#0xF8] .text:00051238 .text:00051238 loc_51238 ; CODE XREF: add_to_global+48j .text:00051238 LDR R3, [R0,R12,LSL#2] .text:0005123C LDRB R2, [R3,#0x12C] .text:00051240 ADD R12, R12, #1 .text:00051244 TST R2, #0x10 .text:00051248 ADDEQ R5, R5, #1 .text:0005124C CMP R12, R1 .text:00051250 BCC loc_51238 .text:00051254 .text:00051254 loc_51254 ; CODE XREF: add_to_global+28j .text:00051254 LDR R1, [R7] .text:00051258 CMP R1, #0 .text:0005125C BNE loc_512C0 .text:00051260 LDR R3, [R8] .text:00051264 LDR R0, [R3,#4] .text:00051268 ADD R0, R0, R5 .text:0005126C ADD R0, R0, #8 .text:00051270 STR R0, [R7] .text:00051274 MOV R0, R0,LSL#2 .text:00051278 BL malloc .text:0005127C SUBS R4, R0, #0 .text:00051280 BNE loc_5129C .text:00051284 STR R4, [R7] .text:00051288 .text:00051288 loc_51288 ; CODE XREF: add_to_global+E4j .text:00051288 LDR R3, [R6,#0x14] .text:0005128C LDR R2, =aCannotExtendGl ; "cannot extend global scope" .text:00051290 LDR R1, [R3] .text:00051294 MOV R0, #0xC .text:00051298 BL _dl_signal_error .text:0005129C ; --------------------------------------------------------------------------- .text:0005129C .text:0005129C loc_5129C ; CODE XREF: add_to_global+78j .text:0005129C LDR R3, [R8] .text:000512A0 LDR R2, [R3,#4] .text:000512A4 MOV R0, R4 .text:000512A8 LDR R1, [R3] .text:000512AC MOV R2, R2,LSL#2 .text:000512B0 BL memcpy .text:000512B4 LDR R3, [R8] .text:000512B8 STR R4, [R3] .text:000512BC B loc_51308 .text:000512C0 ; --------------------------------------------------------------------------- .text:000512C0 .text:000512C0 loc_512C0 ; CODE XREF: add_to_global+54j .text:000512C0 LDR R0, [R8] .text:000512C4 LDR R3, [R0,#4] .text:000512C8 ADD R3, R3, R5 .text:000512CC CMP R3, R1 .text:000512D0 BLS loc_51308 .text:000512D4 ADD R1, R1, R5 .text:000512D8 ADD R1, R1, #8 .text:000512DC LDR R0, [R0] .text:000512E0 MOV R1, R1,LSL#2 .text:000512E4 BL realloc .text:000512E8 SUBS R4, R0, #0 .text:000512EC BEQ loc_51288 .text:000512F0 LDR R3, [R7] .text:000512F4 ADD R3, R3, #8 .text:000512F8 ADD R3, R3, R5 .text:000512FC STR R3, [R7] .text:00051300 LDR R2, [R8] .text:00051304 STR R4, [R2] .text:00051308 .text:00051308 loc_51308 ; CODE XREF: add_to_global+B4j .text:00051308 ; add_to_global+C8j .text:00051308 LDR R3, [R6,#0xFC] .text:0005130C MOV R12, #0 .text:00051310 CMP R12, R3 .text:00051314 BCS loc_51368 .text:00051318 LDR LR, =_dl_main_searchlist .text:0005131C .text:0005131C loc_5131C ; CODE XREF: add_to_global+15Cj .text:0005131C LDR R3, [R6,#0xF8] .text:00051320 LDR R0, [R3,R12,LSL#2] .text:00051324 LDRB R3, [R0,#0x12C] .text:00051328 TST R3, #0x10 .text:0005132C BNE loc_51358 .text:00051330 ORR R3, R3, #0x10 .text:00051334 STRB R3, [R0,#0x12C] .text:00051338 LDR R2, [LR] .text:0005133C LDR R1, [R2,#4] .text:00051340 LDR R3, [R2] .text:00051344 STR R0, [R3,R1,LSL#2] .text:00051348 LDR R2, [LR] .text:0005134C LDR R3, [R2,#4] .text:00051350 ADD R3, R3, #1 .text:00051354 STR R3, [R2,#4] .text:00051358 .text:00051358 loc_51358 ; CODE XREF: add_to_global+124j .text:00051358 LDR R3, [R6,#0xFC] .text:0005135C ADD R12, R12, #1 .text:00051360 CMP R12, R3 .text:00051364 BCC loc_5131C .text:00051368 .text:00051368 loc_51368 ; CODE XREF: add_to_global+10Cj .text:00051368 MOV R0, #0 .text:0005136C LDMDB R11, {R4-R8,R11,SP,PC} .text:0005136C ; End of function add_to_global .text:0005136C .text:0005136C ; --------------------------------------------------------------------------- .text:00051370 off_51370 DCD _dl_global_scope_alloc ; DATA XREF: add_to_global+10r .text:00051374 off_51374 DCD _dl_main_searchlist ; DATA XREF: add_to_global+20r .text:00051374 ; add_to_global+110r .text:00051378 off_51378 DCD aCannotExtendGl ; DATA XREF: add_to_global+84r .text:00051378 ; "cannot extend global scope" .text:0005137C .text:0005137C ; =============== S U B R O U T I N E ======================================= .text:0005137C .text:0005137C ; Attributes: bp-based frame .text:0005137C .text:0005137C dl_open_worker ; DATA XREF: .text:000517C4o .text:0005137C ; .text:off_518ECo .text:0005137C .text:0005137C var_2C = -0x2C .text:0005137C .text:0005137C MOV R12, SP .text:00051380 STMFD SP!, {R4-R12,LR,PC} .text:00051384 SUB R11, R12, #4 .text:00051388 MOV R8, R0 .text:0005138C SUB SP, SP, #0xC .text:00051390 LDR R7, [R8] .text:00051394 MOV R1, #0x24 .text:00051398 LDR R10, [R8,#4] .text:0005139C MOV R0, R7 .text:000513A0 BL strchr .text:000513A4 CMP R0, #0 .text:000513A8 STR R0, [R11,#var_2C] .text:000513AC BEQ loc_514F8 .text:000513B0 MOV R0, R7 .text:000513B4 LDR R5, [R8,#8] .text:000513B8 BL strlen .text:000513BC LDR R3, =__libc_enable_secure .text:000513C0 LDR R2, [R3] .text:000513C4 MOV R9, R0 .text:000513C8 CMP R2, #0 .text:000513CC BEQ loc_513E0 .text:000513D0 LDR R1, =aDlopen ; "dlopen" .text:000513D4 LDR R2, =aDstNotAllowedI ; "DST not allowed in SUID/SGID programs" .text:000513D8 MOV R0, #0 .text:000513DC BL _dl_signal_error .text:000513E0 ; --------------------------------------------------------------------------- .text:000513E0 .text:000513E0 loc_513E0 ; CODE XREF: dl_open_worker+50j .text:000513E0 LDR R3, =_dl_loaded .text:000513E4 MOV R6, R2 .text:000513E8 LDR R4, [R3] .text:000513EC MOV R2, R3 .text:000513F0 B loc_513F8 .text:000513F4 ; --------------------------------------------------------------------------- .text:000513F4 .text:000513F4 loc_513F4 ; CODE XREF: dl_open_worker+8Cj .text:000513F4 ; dl_open_worker+98j ... .text:000513F4 LDR R4, [R4,#0xC] .text:000513F8 .text:000513F8 loc_513F8 ; CODE XREF: dl_open_worker+74j .text:000513F8 CMP R4, #0 .text:000513FC BEQ loc_51428 .text:00051400 LDR R3, [R4] .text:00051404 CMP R3, #0 .text:00051408 BEQ loc_513F4 .text:0005140C LDR R3, [R4,#0x14C] .text:00051410 CMP R5, R3 .text:00051414 BCC loc_513F4 .text:00051418 LDR R3, [R4,#0x150] .text:0005141C CMP R5, R3 .text:00051420 BCS loc_513F4 .text:00051424 MOV R6, R4 .text:00051428 .text:00051428 loc_51428 ; CODE XREF: dl_open_worker+80j .text:00051428 CMP R6, #0 .text:0005142C LDREQ R6, [R2] .text:00051430 LDR R4, [R6,#0x148] .text:00051434 CMP R4, #0 .text:00051438 BNE loc_51478 .text:0005143C LDR R3, [R6,#4] .text:00051440 LDRB R2, [R3] .text:00051444 CMP R2, #0 .text:00051448 BEQ loc_51460 .text:0005144C LDR R0, =aCall_mapL_name ; "(call_map)->l_name[0] == '\\0'" .text:00051450 LDR R1, =aDlOpen_c ; "dl-open.c" .text:00051454 LDR R3, =aDl_open_worker ; "dl_open_worker" .text:00051458 MOV R2, #0xD4 .text:0005145C BL __assert_fail .text:00051460 ; --------------------------------------------------------------------------- .text:00051460 .text:00051460 loc_51460 ; CODE XREF: dl_open_worker+CCj .text:00051460 BL _dl_get_origin .text:00051464 CMP R0, #0 .text:00051468 CMNNE R0, #1 .text:0005146C STR R0, [R6,#0x148] .text:00051470 BEQ loc_51494 .text:00051474 B loc_51484 .text:00051478 ; --------------------------------------------------------------------------- .text:00051478 .text:00051478 loc_51478 ; CODE XREF: dl_open_worker+BCj .text:00051478 CMN R4, #1 .text:0005147C BEQ loc_51490 .text:00051480 MOV R0, R4 .text:00051484 .text:00051484 loc_51484 ; CODE XREF: dl_open_worker+F8j .text:00051484 BL strlen .text:00051488 MOV R4, R0 .text:0005148C B loc_51494 .text:00051490 ; --------------------------------------------------------------------------- .text:00051490 .text:00051490 loc_51490 ; CODE XREF: dl_open_worker+100j .text:00051490 MOV R4, #0 .text:00051494 .text:00051494 loc_51494 ; CODE XREF: dl_open_worker+F4j .text:00051494 ; dl_open_worker+110j .text:00051494 LDR R0, [R11,#var_2C] .text:00051498 MOV R1, #0 .text:0005149C BL _dl_dst_count .text:000514A0 LDR R2, =_dl_platformlen .text:000514A4 LDR R3, [R2] .text:000514A8 CMP R3, R4 .text:000514AC MOVCC R3, R4 .text:000514B0 SUB R3, R3, #7 .text:000514B4 MLA R2, R3, R0, R9 .text:000514B8 MOV R1, R7 .text:000514BC MOV R3, #0 .text:000514C0 MOV R0, R6 .text:000514C4 ADD R2, R2, #4 .text:000514C8 BIC R2, R2, #3 .text:000514CC RSB SP, R2, SP .text:000514D0 ADD R4, SP, #0x34+var_2C .text:000514D4 MOV R2, R4 .text:000514D8 BL _dl_dst_substitute .text:000514DC LDRB R0, [SP,#0x34+var_2C] .text:000514E0 CMP R0, #0 .text:000514E4 BNE loc_514F4 .text:000514E8 LDR R1, =aDlopen ; "dlopen" .text:000514EC LDR R2, =aEmptyDynamicSt ; "empty dynamic string token substitution"... .text:000514F0 BL _dl_signal_error .text:000514F4 ; --------------------------------------------------------------------------- .text:000514F4 .text:000514F4 loc_514F4 ; CODE XREF: dl_open_worker+168j .text:000514F4 MOV R7, R4 .text:000514F8 .text:000514F8 loc_514F8 ; CODE XREF: dl_open_worker+30j .text:000514F8 MOV R0, #0 .text:000514FC STMEA SP, {R0,R10} .text:00051500 MOV R1, R7 .text:00051504 MOV R2, R0 .text:00051508 MOV R3, #2 .text:0005150C BL _dl_map_object .text:00051510 MOV R5, R0 .text:00051514 CMP R5, #0 .text:00051518 STR R5, [R8,#0xC] .text:0005151C BNE loc_5153C .text:00051520 TST R10, #4 .text:00051524 BNE locret_51758 .text:00051528 LDR R0, =aMode0x00004 ; "mode & 0x00004" .text:0005152C LDR R1, =aDlOpen_c ; "dl-open.c" .text:00051530 LDR R3, =aDl_open_worker ; "dl_open_worker" .text:00051534 MOV R2, #0xED .text:00051538 BL __assert_fail .text:0005153C ; --------------------------------------------------------------------------- .text:0005153C .text:0005153C loc_5153C ; CODE XREF: dl_open_worker+1A0j .text:0005153C LDR R4, [R5,#0xF8] .text:00051540 CMP R4, #0 .text:00051544 BEQ loc_51594 .text:00051548 LDR R3, =_dl_debug_mask .text:0005154C LDR R2, [R3] .text:00051550 TST R2, #0x40 .text:00051554 BEQ loc_51568 .text:00051558 LDR R0, =aOpeningFileSOp ; "opening file=%s; opencount == %u\n\n" .text:0005155C LDR R1, [R5,#4] .text:00051560 LDR R2, [R5,#0x128] .text:00051564 BL _dl_debug_printf .text:00051568 .text:00051568 loc_51568 ; CODE XREF: dl_open_worker+1D8j .text:00051568 TST R10, #0x100 .text:0005156C BEQ loc_51584 .text:00051570 LDRB R3, [R5,#0x12C] .text:00051574 TST R3, #0x10 .text:00051578 BNE loc_51584 .text:0005157C MOV R0, R5 .text:00051580 BL add_to_global .text:00051584 .text:00051584 loc_51584 ; CODE XREF: dl_open_worker+1F0j .text:00051584 ; dl_open_worker+1FCj .text:00051584 LDR R3, [R5,#0x128] .text:00051588 ADD R3, R3, #1 .text:0005158C STR R3, [R5,#0x128] .text:00051590 B locret_51758 .text:00051594 ; --------------------------------------------------------------------------- .text:00051594 .text:00051594 loc_51594 ; CODE XREF: dl_open_worker+1C8j .text:00051594 MOV R0, R5 .text:00051598 MOV R1, R4 .text:0005159C MOV R2, R4 .text:000515A0 MOV R3, R4 .text:000515A4 BL _dl_map_object_deps .text:000515A8 AND R8, R10, #0x100 .text:000515AC LDR R3, [R5,#0xFC] .text:000515B0 AND R7, R10, #3 .text:000515B4 CMP R4, R3 .text:000515B8 BCS loc_515E8 .text:000515BC .text:000515BC loc_515BC ; CODE XREF: dl_open_worker+268j .text:000515BC LDR R3, [R5,#0xF8] .text:000515C0 LDR R0, [R3,R4,LSL#2] .text:000515C4 LDR R1, [R0,#0x134] .text:000515C8 CMP R1, #0 .text:000515CC BNE loc_515D8 .text:000515D0 MOV R2, R1 .text:000515D4 BL _dl_check_map_versions .text:000515D8 .text:000515D8 loc_515D8 ; CODE XREF: dl_open_worker+250j .text:000515D8 LDR R3, [R5,#0xFC] .text:000515DC ADD R4, R4, #1 .text:000515E0 CMP R4, R3 .text:000515E4 BCC loc_515BC .text:000515E8 .text:000515E8 loc_515E8 ; CODE XREF: dl_open_worker+23Cj .text:000515E8 MOV R6, #0 .text:000515EC CMP R7, #1 .text:000515F0 BNE loc_51604 .text:000515F4 LDR R3, =_dl_lazy .text:000515F8 LDR R2, [R3] .text:000515FC SUBS R6, R2, R6 .text:00051600 MOVNE R6, #1 .text:00051604 .text:00051604 loc_51604 ; CODE XREF: dl_open_worker+274j .text:00051604 LDR R3, [R5,#0xC] .text:00051608 MOV R4, R5 .text:0005160C CMP R3, #0 .text:00051610 BEQ loc_51660 .text:00051614 .text:00051614 loc_51614 ; CODE XREF: dl_open_worker+2A4j .text:00051614 LDR R4, [R4,#0xC] .text:00051618 LDR R3, [R4,#0xC] .text:0005161C CMP R3, #0 .text:00051620 BNE loc_51614 .text:00051624 B loc_51660 .text:00051624 ; --------------------------------------------------------------------------- .text:00051628 off_51628 DCD __libc_enable_secure ; DATA XREF: dl_open_worker+40r .text:0005162C off_5162C DCD aDlopen ; DATA XREF: dl_open_worker+54r .text:0005162C ; dl_open_worker+16Cr .text:0005162C ; "dlopen" .text:00051630 off_51630 DCD aDstNotAllowedI ; DATA XREF: dl_open_worker+58r .text:00051630 ; "DST not allowed in SUID/SGID programs" .text:00051634 off_51634 DCD _dl_loaded ; DATA XREF: dl_open_worker:loc_513E0r .text:00051638 off_51638 DCD aCall_mapL_name ; DATA XREF: dl_open_worker+D0r .text:00051638 ; "(call_map)->l_name[0] == '\\0'" .text:0005163C off_5163C DCD aDlOpen_c ; DATA XREF: dl_open_worker+D4r .text:0005163C ; dl_open_worker+1B0r .text:0005163C ; "dl-open.c" .text:00051640 off_51640 DCD aDl_open_worker ; DATA XREF: dl_open_worker+D8r .text:00051640 ; dl_open_worker+1B4r .text:00051640 ; "dl_open_worker" .text:00051644 off_51644 DCD _dl_platformlen ; DATA XREF: dl_open_worker+124r .text:00051648 off_51648 DCD aEmptyDynamicSt ; DATA XREF: dl_open_worker+170r .text:00051648 ; "empty dynamic string token substitution"... .text:0005164C off_5164C DCD aMode0x00004 ; DATA XREF: dl_open_worker+1ACr .text:0005164C ; "mode & 0x00004" .text:00051650 off_51650 DCD _dl_debug_mask ; DATA XREF: dl_open_worker+1CCr .text:00051654 off_51654 DCD aOpeningFileSOp ; DATA XREF: dl_open_worker+1DCr .text:00051654 ; "opening file=%s; opencount == %u\n\n" .text:00051658 off_51658 DCD _dl_lazy ; DATA XREF: dl_open_worker+278r .text:0005165C ; --------------------------------------------------------------------------- .text:0005165C .text:0005165C loc_5165C ; CODE XREF: dl_open_worker+308j .text:0005165C LDR R4, [R4,#0x10] .text:00051660 .text:00051660 loc_51660 ; CODE XREF: dl_open_worker+294j .text:00051660 ; dl_open_worker+2A8j .text:00051660 LDRB R3, [R4,#0x12C] .text:00051664 MOV R3, R3,LSR#2 .text:00051668 ANDS R3, R3, #1 .text:0005166C BNE loc_51680 .text:00051670 MOV R0, R4 .text:00051674 ADD R1, R4, #0x154 .text:00051678 MOV R2, R6 .text:0005167C BL _dl_relocate_object .text:00051680 .text:00051680 loc_51680 ; CODE XREF: dl_open_worker+2F0j .text:00051680 CMP R4, R5 .text:00051684 BNE loc_5165C .text:00051688 LDR R3, [R5,#0xFC] .text:0005168C MOV R4, #0 .text:00051690 CMP R4, R3 .text:00051694 BCS loc_516BC .text:00051698 .text:00051698 loc_51698 ; CODE XREF: dl_open_worker+33Cj .text:00051698 LDR R2, [R5,#0xF8] .text:0005169C LDR R1, [R2,R4,LSL#2] .text:000516A0 LDR R3, [R1,#0x128] .text:000516A4 ADD R3, R3, #1 .text:000516A8 STR R3, [R1,#0x128] .text:000516AC LDR R2, [R5,#0xFC] .text:000516B0 ADD R4, R4, #1 .text:000516B4 CMP R4, R2 .text:000516B8 BCC loc_51698 .text:000516BC .text:000516BC loc_516BC ; CODE XREF: dl_open_worker+318j .text:000516BC LDR R3, =__libc_argc .text:000516C0 LDR R0, =__libc_argv .text:000516C4 LDR R12, =environ .text:000516C8 LDR R1, [R3] .text:000516CC LDR R2, [R0] .text:000516D0 LDR R3, [R12] .text:000516D4 MOV R0, R5 .text:000516D8 BL _dl_init .text:000516DC CMP R8, #0 .text:000516E0 BEQ loc_516F4 .text:000516E4 MOV R0, R5 .text:000516E8 BL add_to_global .text:000516EC CMP R0, #0 .text:000516F0 BNE locret_51758 .text:000516F4 .text:000516F4 loc_516F4 ; CODE XREF: dl_open_worker+364j .text:000516F4 TST R10, #0x1000 .text:000516F8 LDRNE R3, [R5,#0x198] .text:000516FC ORRNE R3, R3, #8 .text:00051700 STRNE R3, [R5,#0x198] .text:00051704 LDR R3, =0 .text:00051708 CMP R3, #0 .text:0005170C LDREQ R2, =__libc_multiple_libcs .text:00051710 MOVEQ R3, #1 .text:00051714 STREQ R3, [R2] .text:00051718 LDR R3, =_dl_debug_mask .text:0005171C LDR R2, [R3] .text:00051720 TST R2, #0x40 .text:00051724 BEQ locret_51758 .text:00051728 LDR R0, =aOpeningFileSOp ; "opening file=%s; opencount == %u\n\n" .text:0005172C LDR R1, [R5,#4] .text:00051730 LDR R2, [R5,#0x128] .text:00051734 BL _dl_debug_printf .text:00051738 B locret_51758 .text:00051738 ; --------------------------------------------------------------------------- .text:0005173C off_5173C DCD __libc_argc ; DATA XREF: dl_open_worker:loc_516BCr .text:00051740 off_51740 DCD __libc_argv ; DATA XREF: dl_open_worker+344r .text:00051744 off_51744 DCD environ ; DATA XREF: dl_open_worker+348r .text:00051748 dword_51748 DCD 0 ; DATA XREF: dl_open_worker+388r .text:0005174C off_5174C DCD __libc_multiple_libcs ; DATA XREF: dl_open_worker+390r .text:00051750 off_51750 DCD _dl_debug_mask ; DATA XREF: dl_open_worker+39Cr .text:00051754 off_51754 DCD aOpeningFileSOp ; DATA XREF: dl_open_worker+3ACr .text:00051754 ; "opening file=%s; opencount == %u\n\n" .text:00051758 ; --------------------------------------------------------------------------- .text:00051758 .text:00051758 locret_51758 ; CODE XREF: dl_open_worker+1A8j .text:00051758 ; dl_open_worker+214j ... .text:00051758 LDMDB R11, {R4-R11,SP,PC} .text:00051758 ; End of function dl_open_worker .text:00051758 .text:0005175C ; --------------------------------------------------------------------------- .text:0005175C .text:0005175C EXPORT _dl_open .text:0005175C _dl_open ; CODE XREF: do_dlopen+1Cp .text:0005175C MOV R12, SP .text:00051760 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00051764 SUB R11, R12, #4 .text:00051768 MOV R5, R1 .text:0005176C TST R5, #3 .text:00051770 MOV R4, R0 .text:00051774 MOV R6, R2 .text:00051778 SUB SP, SP, #0x18 .text:0005177C BNE loc_51790 .text:00051780 MOV R0, #0x16 .text:00051784 LDR R2, =aInvalidModeFor ; "invalid mode for dlopen()" .text:00051788 MOV R1, R4 .text:0005178C BL _dl_signal_error .text:00051790 ; --------------------------------------------------------------------------- .text:00051790 .text:00051790 loc_51790 ; CODE XREF: .text:0005177Cj .text:00051790 LDR R3, =0 .text:00051794 CMP R3, #0 .text:00051798 BEQ loc_517A8 .text:0005179C LDR R0, =_dl_load_lock .text:000517A0 MOV LR, PC .text:000517A4 MOV PC, R3 .text:000517A8 .text:000517A8 loc_517A8 ; CODE XREF: .text:00051798j .text:000517A8 STR R4, [R11,#-0x28] .text:000517AC STR R5, [R11,#-0x24] .text:000517B0 STR R6, [R11,#-0x20] .text:000517B4 MOV R4, #0 .text:000517B8 STR R4, [R11,#-0x1C] .text:000517BC SUB R0, R11, #0x2C .text:000517C0 SUB R1, R11, #0x30 .text:000517C4 LDR R2, =dl_open_worker .text:000517C8 SUB R3, R11, #0x28 .text:000517CC BL _dl_catch_error .text:000517D0 MOV R6, R0 .text:000517D4 BL _dl_unload_cache .text:000517D8 LDR R3, =0 .text:000517DC CMP R3, R4 .text:000517E0 BEQ loc_517F0 .text:000517E4 LDR R0, =_dl_load_lock .text:000517E8 MOV LR, PC .text:000517EC MOV PC, R3 .text:000517F0 .text:000517F0 loc_517F0 ; CODE XREF: .text:000517E0j .text:000517F0 LDR R3, [R11,#-0x30] .text:000517F4 CMP R3, #0 .text:000517F8 BEQ loc_518F8 .text:000517FC LDR R2, [R11,#-0x1C] .text:00051800 CMP R2, #0 .text:00051804 BEQ loc_51848 .text:00051808 LDR R3, [R2,#0xFC] .text:0005180C MOV R0, R4 .text:00051810 CMP R0, R3 .text:00051814 BCS loc_51840 .text:00051818 .text:00051818 loc_51818 ; CODE XREF: .text:0005183Cj .text:00051818 LDR R2, [R2,#0xF8] .text:0005181C LDR R1, [R2,R0,LSL#2] .text:00051820 LDR R3, [R1,#0x128] .text:00051824 ADD R3, R3, #1 .text:00051828 STR R3, [R1,#0x128] .text:0005182C LDR R2, [R11,#-0x1C] .text:00051830 LDR R3, [R2,#0xFC] .text:00051834 ADD R0, R0, #1 .text:00051838 CMP R0, R3 .text:0005183C BCC loc_51818 .text:00051840 .text:00051840 loc_51840 ; CODE XREF: .text:00051814j .text:00051840 LDR R0, [R11,#-0x1C] .text:00051844 BL _dl_close .text:00051848 .text:00051848 loc_51848 ; CODE XREF: .text:00051804j .text:00051848 LDR R0, [R11,#-0x30] .text:0005184C BL strlen .text:00051850 MOV R2, R0 .text:00051854 LDR R1, [R11,#-0x30] .text:00051858 ADD R4, R2, #1 .text:0005185C LDR R0, [R11,#-0x2C] .text:00051860 ADD R3, R1, R4 .text:00051864 CMP R0, R3 .text:00051868 BNE loc_518A0 .text:0005186C BL strlen .text:00051870 ADD R2, R4, R0 .text:00051874 ADD R3, R2, #4 .text:00051878 BIC R3, R3, #3 .text:0005187C RSB SP, R3, SP .text:00051880 MOV R5, SP .text:00051884 MOV R0, SP .text:00051888 LDR R1, [R11,#-0x30] .text:0005188C ADD R2, R2, #1 .text:00051890 BL memcpy .text:00051894 ADD R3, SP, R4 .text:00051898 STR R3, [R11,#-0x2C] .text:0005189C B loc_518BC .text:000518A0 ; --------------------------------------------------------------------------- .text:000518A0 .text:000518A0 loc_518A0 ; CODE XREF: .text:00051868j .text:000518A0 ADD R3, R2, #4 .text:000518A4 BIC R3, R3, #3 .text:000518A8 RSB SP, R3, SP .text:000518AC MOV R5, SP .text:000518B0 MOV R0, SP .text:000518B4 MOV R2, R4 .text:000518B8 BL memcpy .text:000518BC .text:000518BC loc_518BC ; CODE XREF: .text:0005189Cj .text:000518BC LDR R0, [R11,#-0x30] .text:000518C0 LDR R3, =_dl_out_of_memory ; "out of memory" .text:000518C4 CMP R0, R3 .text:000518C8 BEQ loc_518D0 .text:000518CC BL free .text:000518D0 .text:000518D0 loc_518D0 ; CODE XREF: .text:000518C8j .text:000518D0 MOV R0, R6 .text:000518D4 LDR R1, [R11,#-0x2C] .text:000518D8 MOV R2, R5 .text:000518DC BL _dl_signal_error .text:000518DC ; --------------------------------------------------------------------------- .text:000518E0 off_518E0 DCD aInvalidModeFor ; DATA XREF: .text:00051784r .text:000518E0 ; "invalid mode for dlopen()" .text:000518E4 off_518E4 DCD 0 ; DATA XREF: .text:loc_51790r .text:000518E8 off_518E8 DCD _dl_load_lock ; DATA XREF: .text:0005179Cr .text:000518E8 ; .text:000517E4r .text:000518EC off_518EC DCD dl_open_worker ; DATA XREF: .text:000517C4r .text:000518F0 off_518F0 DCD 0 ; DATA XREF: .text:000517D8r .text:000518F4 off_518F4 DCD _dl_out_of_memory ; DATA XREF: .text:000518C0r .text:000518F4 ; "out of memory" .text:000518F8 ; --------------------------------------------------------------------------- .text:000518F8 .text:000518F8 loc_518F8 ; CODE XREF: .text:000517F8j .text:000518F8 LDR R0, [R11,#-0x1C] .text:000518FC LDMDB R11, {R4-R6,R11,SP,PC} .text:00051900 .text:00051900 ; =============== S U B R O U T I N E ======================================= .text:00051900 .text:00051900 ; Attributes: bp-based frame .text:00051900 .text:00051900 EXPORT _dl_close .text:00051900 _dl_close ; CODE XREF: do_dlclose+Cp .text:00051900 ; .text:00051844p ... .text:00051900 .text:00051900 var_54 = -0x54 .text:00051900 var_50 = -0x50 .text:00051900 var_4C = -0x4C .text:00051900 var_48 = -0x48 .text:00051900 var_44 = -0x44 .text:00051900 var_40 = -0x40 .text:00051900 var_29 = -0x29 .text:00051900 .text:00051900 MOV R12, SP .text:00051904 STMFD SP!, {R4-R12,LR,PC} .text:00051908 SUB R11, R12, #4 .text:0005190C SUB SP, SP, #0x20 .text:00051910 STR R0, [R11,#var_40] .text:00051914 LDR R3, [R0,#0x198] .text:00051918 MOV R1, #0 .text:0005191C STR R1, [R11,#var_44] .text:00051920 TST R3, #8 .text:00051924 BEQ loc_51934 .text:00051928 LDRB R3, [R0,#0x12C] .text:0005192C TST R3, #8 .text:00051930 BNE locret_51F54 .text:00051934 .text:00051934 loc_51934 ; CODE XREF: _dl_close+24j .text:00051934 LDR R2, [R11,#var_40] .text:00051938 LDR R3, [R2,#0x128] .text:0005193C CMP R3, #0 .text:00051940 BNE loc_51954 .text:00051944 LDR R1, [R2,#4] .text:00051948 LDR R2, =aSharedObjectNo ; "shared object not open" .text:0005194C LDR R0, [R11,#var_44] .text:00051950 BL _dl_signal_error .text:00051954 ; --------------------------------------------------------------------------- .text:00051954 .text:00051954 loc_51954 ; CODE XREF: _dl_close+40j .text:00051954 LDR R3, =0 .text:00051958 CMP R3, #0 .text:0005195C BEQ loc_5196C .text:00051960 LDR R0, =_dl_load_lock .text:00051964 MOV LR, PC .text:00051968 MOV PC, R3 .text:0005196C .text:0005196C loc_5196C ; CODE XREF: _dl_close+5Cj .text:0005196C LDR R3, [R11,#var_40] .text:00051970 LDR R12, [R3,#0x128] .text:00051974 CMP R12, #1 .text:00051978 BHI loc_5198C .text:0005197C LDRB R3, [R3,#0x12C] .text:00051980 AND R3, R3, #3 .text:00051984 CMP R3, #2 .text:00051988 BEQ loc_519E4 .text:0005198C .text:0005198C loc_5198C ; CODE XREF: _dl_close+78j .text:0005198C LDR R3, =_dl_debug_mask .text:00051990 LDR R2, [R3] .text:00051994 TST R2, #0x40 .text:00051998 BEQ loc_519B8 .text:0005199C LDR R1, [R11,#var_44] .text:000519A0 STRB R1, [R11,#var_29] .text:000519A4 LDR R2, [R11,#var_40] .text:000519A8 LDR R0, =aClosingFileSOp ; "\nclosing file=%s; opencount == %u\n" .text:000519AC LDR R1, [R2,#4] .text:000519B0 MOV R2, R12 .text:000519B4 BL _dl_debug_printf .text:000519B8 .text:000519B8 loc_519B8 ; CODE XREF: _dl_close+98j .text:000519B8 LDR R12, [R11,#var_40] .text:000519BC LDR R2, =0 .text:000519C0 LDR R3, [R12,#0x128] .text:000519C4 CMP R2, #0 .text:000519C8 SUB R3, R3, #1 .text:000519CC STR R3, [R12,#0x128] .text:000519D0 BEQ locret_51F54 .text:000519D4 LDR R0, =_dl_load_lock .text:000519D8 MOV LR, PC .text:000519DC MOV PC, R2 .text:000519E0 B locret_51F54 .text:000519E4 ; --------------------------------------------------------------------------- .text:000519E4 .text:000519E4 loc_519E4 ; CODE XREF: _dl_close+88j .text:000519E4 LDR R1, [R11,#var_40] .text:000519E8 LDR R8, [R11,#var_44] .text:000519EC LDR R2, [R1,#0xFC] .text:000519F0 LDR R9, [R1,#0x184] .text:000519F4 SUB SP, SP, R2,LSL#2 .text:000519F8 LDR R3, [R9,R8,LSL#2] .text:000519FC MOV R10, SP .text:00051A00 CMP R3, #0 .text:00051A04 BEQ loc_51A2C .text:00051A08 .text:00051A08 loc_51A08 ; CODE XREF: _dl_close+128j .text:00051A08 LDR R3, [R9,R8,LSL#2] .text:00051A0C STR R8, [R3,#0x19C] .text:00051A10 LDR R2, [R9,R8,LSL#2] .text:00051A14 LDR R3, [R2,#0x128] .text:00051A18 STR R3, [R10,R8,LSL#2] .text:00051A1C ADD R8, R8, #1 .text:00051A20 LDR R3, [R9,R8,LSL#2] .text:00051A24 CMP R3, #0 .text:00051A28 BNE loc_51A08 .text:00051A2C .text:00051A2C loc_51A2C ; CODE XREF: _dl_close+104j .text:00051A2C LDR R3, [R10] .text:00051A30 SUB R3, R3, #1 .text:00051A34 STR R3, [R10] .text:00051A38 LDR R2, [R9,#4] .text:00051A3C MOV R8, #1 .text:00051A40 CMP R2, #0 .text:00051A44 BEQ loc_51B1C .text:00051A48 .text:00051A48 loc_51A48 ; CODE XREF: _dl_close+218j .text:00051A48 LDR R2, [R9,R8,LSL#2] .text:00051A4C LDR R3, [R2,#0x198] .text:00051A50 TST R3, #8 .text:00051A54 BEQ loc_51A6C .text:00051A58 LDRB R3, [R2,#0x12C] .text:00051A5C ADD R2, R8, #1 .text:00051A60 STR R2, [R11,#var_48] .text:00051A64 TST R3, #8 .text:00051A68 BNE loc_51B0C .text:00051A6C .text:00051A6C loc_51A6C ; CODE XREF: _dl_close+154j .text:00051A6C LDR R3, [R10,R8,LSL#2] .text:00051A70 ADD R12, R8, #1 .text:00051A74 STR R12, [R11,#var_48] .text:00051A78 SUB R3, R3, #1 .text:00051A7C CMP R3, #0 .text:00051A80 STR R3, [R10,R8,LSL#2] .text:00051A84 BNE loc_51B0C .text:00051A88 LDR R3, [R9,R8,LSL#2] .text:00051A8C LDR R0, [R3,#0xF8] .text:00051A90 CMP R0, #0 .text:00051A94 BEQ loc_51B0C .text:00051A98 LDR R3, [R3,#0xFC] .text:00051A9C MOV R1, #1 .text:00051AA0 CMP R1, R3 .text:00051AA4 BCS loc_51B0C .text:00051AA8 .text:00051AA8 loc_51AA8 ; CODE XREF: _dl_close+208j .text:00051AA8 LDR R2, [R0,R1,LSL#2] .text:00051AAC LDR R3, [R2,#0x198] .text:00051AB0 TST R3, #8 .text:00051AB4 BEQ loc_51AC4 .text:00051AB8 LDRB R3, [R2,#0x12C] .text:00051ABC TST R3, #8 .text:00051AC0 BNE loc_51AF8 .text:00051AC4 .text:00051AC4 loc_51AC4 ; CODE XREF: _dl_close+1B4j .text:00051AC4 LDR R12, [R11,#var_40] .text:00051AC8 LDR R2, [R2,#0x19C] .text:00051ACC LDR R3, [R12,#0xFC] .text:00051AD0 CMP R2, R3 .text:00051AD4 BCC loc_51AEC .text:00051AD8 LDR R0, =aDep_listJL_idx ; "dep_list[j]->l_idx < map->l_searchlist."... .text:00051ADC LDR R1, =aDlClose_c ; "dl-close.c" .text:00051AE0 LDR R3, =a_dl_close ; "_dl_close" .text:00051AE4 MOV R2, #0x73 .text:00051AE8 BL __assert_fail .text:00051AEC ; --------------------------------------------------------------------------- .text:00051AEC .text:00051AEC loc_51AEC ; CODE XREF: _dl_close+1D4j .text:00051AEC LDR R3, [R10,R2,LSL#2] .text:00051AF0 SUB R3, R3, #1 .text:00051AF4 STR R3, [R10,R2,LSL#2] .text:00051AF8 .text:00051AF8 loc_51AF8 ; CODE XREF: _dl_close+1C0j .text:00051AF8 LDR R3, [R9,R8,LSL#2] .text:00051AFC LDR R2, [R3,#0xFC] .text:00051B00 ADD R1, R1, #1 .text:00051B04 CMP R1, R2 .text:00051B08 BCC loc_51AA8 .text:00051B0C .text:00051B0C loc_51B0C ; CODE XREF: _dl_close+168j .text:00051B0C ; _dl_close+184j ... .text:00051B0C LDR R8, [R11,#var_48] .text:00051B10 LDR R3, [R9,R8,LSL#2] .text:00051B14 CMP R3, #0 .text:00051B18 BNE loc_51A48 .text:00051B1C .text:00051B1C loc_51B1C ; CODE XREF: _dl_close+144j .text:00051B1C LDR R3, [R10] .text:00051B20 CMP R3, #0 .text:00051B24 BEQ loc_51B3C .text:00051B28 LDR R0, =aNew_opencount0 ; "new_opencount[0] == 0" .text:00051B2C LDR R1, =aDlClose_c ; "dl-close.c" .text:00051B30 LDR R3, =a_dl_close ; "_dl_close" .text:00051B34 MOV R2, #0x77 .text:00051B38 BL __assert_fail .text:00051B3C ; --------------------------------------------------------------------------- .text:00051B3C .text:00051B3C loc_51B3C ; CODE XREF: _dl_close+224j .text:00051B3C MOV R8, R3 .text:00051B40 B loc_51CA4 .text:00051B44 ; --------------------------------------------------------------------------- .text:00051B44 .text:00051B44 loc_51B44 ; CODE XREF: _dl_close+3ACj .text:00051B44 LDR R4, [R10,R8,LSL#2] .text:00051B48 ADD R1, R8, #1 .text:00051B4C STR R1, [R11,#var_48] .text:00051B50 CMP R4, #0 .text:00051B54 LDR R5, [R9,R8,LSL#2] .text:00051B58 BNE loc_51C3C .text:00051B5C LDRB R2, [R5,#0x12C] .text:00051B60 AND R3, R2, #3 .text:00051B64 CMP R3, #2 .text:00051B68 BNE loc_51C3C .text:00051B6C LDR R3, [R5,#0x4C] .text:00051B70 CMP R3, #0 .text:00051B74 BNE loc_51B84 .text:00051B78 LDR R3, [R5,#0x80] .text:00051B7C CMP R3, #0 .text:00051B80 BEQ loc_51C3C .text:00051B84 .text:00051B84 loc_51B84 ; CODE XREF: _dl_close+274j .text:00051B84 LDR R3, [R5,#0x198] .text:00051B88 TST R3, #8 .text:00051B8C AND R3, R2, #0xFF .text:00051B90 BEQ loc_51BA4 .text:00051B94 TST R3, #8 .text:00051B98 ADD R2, R8, #1 .text:00051B9C STR R2, [R11,#var_48] .text:00051BA0 BNE loc_51C3C .text:00051BA4 .text:00051BA4 loc_51BA4 ; CODE XREF: _dl_close+290j .text:00051BA4 TST R3, #8 .text:00051BA8 ADD R3, R8, #1 .text:00051BAC STR R3, [R11,#var_48] .text:00051BB0 BEQ loc_51C3C .text:00051BB4 LDR R3, =_dl_debug_mask .text:00051BB8 LDR R2, [R3] .text:00051BBC TST R2, #2 .text:00051BC0 BEQ loc_51BD0 .text:00051BC4 LDR R0, =aCallingFiniS ; "\ncalling fini: %s\n\n" .text:00051BC8 LDR R1, [R5,#4] .text:00051BCC BL _dl_debug_printf .text:00051BD0 .text:00051BD0 loc_51BD0 ; CODE XREF: _dl_close+2C0j .text:00051BD0 LDR R0, [R5,#0x80] .text:00051BD4 CMP R0, #0 .text:00051BD8 BEQ loc_51C1C .text:00051BDC LDR R3, [R5,#0x88] .text:00051BE0 LDR R1, [R5] .text:00051BE4 LDR R2, [R3,#4] .text:00051BE8 LDR R3, [R0,#4] .text:00051BEC MOV R6, R2,LSR#2 .text:00051BF0 CMP R4, R6 .text:00051BF4 ADD R7, R1, R3 .text:00051BF8 BCS loc_51C1C .text:00051BFC .text:00051BFC loc_51BFC ; CODE XREF: _dl_close+318j .text:00051BFC LDR R3, [R5] .text:00051C00 LDR R2, [R7,R4,LSL#2] .text:00051C04 ADD R4, R4, #1 .text:00051C08 ADD R3, R3, R2 .text:00051C0C MOV LR, PC .text:00051C10 MOV PC, R3 .text:00051C14 CMP R4, R6 .text:00051C18 BCC loc_51BFC .text:00051C1C .text:00051C1C loc_51C1C ; CODE XREF: _dl_close+2D8j .text:00051C1C ; _dl_close+2F8j .text:00051C1C LDR R2, [R5,#0x4C] .text:00051C20 CMP R2, #0 .text:00051C24 BEQ loc_51C3C .text:00051C28 LDR R3, [R5] .text:00051C2C LDR R2, [R2,#4] .text:00051C30 ADD R3, R3, R2 .text:00051C34 MOV LR, PC .text:00051C38 MOV PC, R3 .text:00051C3C .text:00051C3C loc_51C3C ; CODE XREF: _dl_close+258j .text:00051C3C ; _dl_close+268j ... .text:00051C3C LDRB R3, [R5,#0x12C] .text:00051C40 LDR R2, [R10,R8,LSL#2] .text:00051C44 AND R3, R3, #3 .text:00051C48 CMP R3, #2 .text:00051C4C STR R2, [R5,#0x128] .text:00051C50 BEQ loc_51CA0 .text:00051C54 CMP R2, #0 .text:00051C58 BNE loc_51CA0 .text:00051C5C LDR R0, =aImapL_typeLt_l ; "imap->l_type == lt_loaded || imap->l_op"... .text:00051C60 LDR R1, =aDlClose_c ; "dl-close.c" .text:00051C64 LDR R3, =a_dl_close ; "_dl_close" .text:00051C68 MOV R2, #0x9F .text:00051C6C BL __assert_fail .text:00051C6C ; --------------------------------------------------------------------------- .text:00051C70 off_51C70 DCD aSharedObjectNo ; DATA XREF: _dl_close+48r .text:00051C70 ; "shared object not open" .text:00051C74 off_51C74 DCD 0 ; DATA XREF: _dl_close:loc_51954r .text:00051C78 off_51C78 DCD _dl_load_lock ; DATA XREF: _dl_close+60r .text:00051C78 ; _dl_close+D4r .text:00051C7C off_51C7C DCD _dl_debug_mask ; DATA XREF: _dl_close:loc_5198Cr .text:00051C7C ; _dl_close+2B4r .text:00051C80 off_51C80 DCD aClosingFileSOp ; DATA XREF: _dl_close+A8r .text:00051C80 ; "\nclosing file=%s; opencount == %u\n" .text:00051C84 off_51C84 DCD 0 ; DATA XREF: _dl_close+BCr .text:00051C88 off_51C88 DCD aDep_listJL_idx ; DATA XREF: _dl_close+1D8r .text:00051C88 ; "dep_list[j]->l_idx < map->l_searchlist."... .text:00051C8C off_51C8C DCD aDlClose_c ; DATA XREF: _dl_close+1DCr .text:00051C8C ; _dl_close+22Cr ... .text:00051C8C ; "dl-close.c" .text:00051C90 off_51C90 DCD a_dl_close ; DATA XREF: _dl_close+1E0r .text:00051C90 ; _dl_close+230r ... .text:00051C90 ; "_dl_close" .text:00051C94 off_51C94 DCD aNew_opencount0 ; DATA XREF: _dl_close+228r .text:00051C94 ; "new_opencount[0] == 0" .text:00051C98 off_51C98 DCD aCallingFiniS ; DATA XREF: _dl_close+2C4r .text:00051C98 ; "\ncalling fini: %s\n\n" .text:00051C9C off_51C9C DCD aImapL_typeLt_l ; DATA XREF: _dl_close+35Cr .text:00051C9C ; "imap->l_type == lt_loaded || imap->l_op"... .text:00051CA0 ; --------------------------------------------------------------------------- .text:00051CA0 .text:00051CA0 loc_51CA0 ; CODE XREF: _dl_close+350j .text:00051CA0 ; _dl_close+358j .text:00051CA0 LDR R8, [R11,#var_48] .text:00051CA4 .text:00051CA4 loc_51CA4 ; CODE XREF: _dl_close+240j .text:00051CA4 LDR R3, [R9,R8,LSL#2] .text:00051CA8 CMP R3, #0 .text:00051CAC BNE loc_51B44 .text:00051CB0 LDR R12, =_r_debug .text:00051CB4 MOV R3, #2 .text:00051CB8 STR R3, [R12,#(_r_debug+0xC - 0x961F0)] .text:00051CBC MOV R8, #0 .text:00051CC0 BL _dl_debug_state .text:00051CC4 LDR R3, [R9,R8,LSL#2] .text:00051CC8 CMP R3, R8 .text:00051CCC BEQ loc_51E9C .text:00051CD0 .text:00051CD0 loc_51CD0 ; CODE XREF: _dl_close+598j .text:00051CD0 LDR R5, [R9,R8,LSL#2] .text:00051CD4 LDR R3, [R5,#0x128] .text:00051CD8 ADD R8, R8, #1 .text:00051CDC STR R8, [R11,#var_48] .text:00051CE0 CMP R3, #0 .text:00051CE4 BNE loc_51E8C .text:00051CE8 LDRB R2, [R5,#0x12C] .text:00051CEC AND R3, R2, #3 .text:00051CF0 CMP R3, #2 .text:00051CF4 BNE loc_51E8C .text:00051CF8 TST R2, #0x10 .text:00051CFC LDR R6, =_dl_nloaded .text:00051D00 BEQ loc_51D7C .text:00051D04 LDR R3, =_dl_main_searchlist .text:00051D08 LDR R2, [R3] .text:00051D0C LDR R0, [R2,#4] .text:00051D10 MOV R4, R3 .text:00051D14 LDR R2, [R2] .text:00051D18 .text:00051D18 loc_51D18 ; CODE XREF: _dl_close+424j .text:00051D18 SUB R0, R0, #1 .text:00051D1C LDR R3, [R2,R0,LSL#2] .text:00051D20 CMP R3, R5 .text:00051D24 BNE loc_51D18 .text:00051D28 LDR R3, [R4] .text:00051D2C LDR R2, [R3,#4] .text:00051D30 ADD R0, R0, #1 .text:00051D34 CMP R0, R2 .text:00051D38 BCS loc_51D6C .text:00051D3C MOV LR, 0xFFFFFFFC .text:00051D40 LDR R12, =_dl_main_searchlist .text:00051D44 .text:00051D44 loc_51D44 ; CODE XREF: _dl_close+468j .text:00051D44 LDR R2, [R12] .text:00051D48 LDR R3, [R2] .text:00051D4C LDR R1, [R3,R0,LSL#2] .text:00051D50 ADD R3, R3, R0,LSL#2 .text:00051D54 STR R1, [R3,LR] .text:00051D58 LDR R2, [R12] .text:00051D5C LDR R3, [R2,#4] .text:00051D60 ADD R0, R0, #1 .text:00051D64 CMP R0, R3 .text:00051D68 BCC loc_51D44 .text:00051D6C .text:00051D6C loc_51D6C ; CODE XREF: _dl_close+438j .text:00051D6C LDR R2, [R4] .text:00051D70 LDR R3, [R2,#4] .text:00051D74 SUB R3, R3, #1 .text:00051D78 STR R3, [R2,#4] .text:00051D7C .text:00051D7C loc_51D7C ; CODE XREF: _dl_close+400j .text:00051D7C LDR R0, [R5,#0x14C] .text:00051D80 ADD R2, R5, #0x150 .text:00051D84 LDMDA R2, {R1,R2} .text:00051D88 SUB R1, R2, R1 .text:00051D8C BL munmap .text:00051D90 LDR R2, [R5,#0x10] .text:00051D94 CMP R2, #0 .text:00051D98 LDRNE R3, [R5,#0xC] .text:00051D9C STRNE R3, [R2,#0xC] .text:00051DA0 LDREQ R2, =_dl_loaded .text:00051DA4 LDREQ R3, [R5,#0xC] .text:00051DA8 STREQ R3, [R2] .text:00051DAC LDR R3, [R6] .text:00051DB0 SUB R3, R3, #1 .text:00051DB4 STR R3, [R6] .text:00051DB8 LDR R2, [R5,#0xC] .text:00051DBC CMP R2, #0 .text:00051DC0 LDRNE R3, [R5,#0x10] .text:00051DC4 STRNE R3, [R2,#0x10] .text:00051DC8 LDR R0, [R5,#0x134] .text:00051DCC CMP R0, #0 .text:00051DD0 BEQ loc_51DD8 .text:00051DD4 BL free .text:00051DD8 .text:00051DD8 loc_51DD8 ; CODE XREF: _dl_close+4D0j .text:00051DD8 LDR R0, [R5,#0x148] .text:00051DDC CMP R0, #0 .text:00051DE0 CMNNE R0, #1 .text:00051DE4 BEQ loc_51DEC .text:00051DE8 BL free .text:00051DEC .text:00051DEC loc_51DEC ; CODE XREF: _dl_close+4E4j .text:00051DEC LDR R3, [R5,#0x190] .text:00051DF0 CMP R3, #0 .text:00051DF4 BEQ loc_51E1C .text:00051DF8 LDR R3, [R11,#var_44] .text:00051DFC SUB SP, SP, #0xC .text:00051E00 STR R3, [SP,#0x54+var_4C] .text:00051E04 LDR R12, [R11,#var_40] .text:00051E08 LDR R3, [R12,#0x190] .text:00051E0C STR R3, [SP,#0x54+var_54] .text:00051E10 LDR R2, [R12,#0x18C] .text:00051E14 STR SP, [R11,#var_44] .text:00051E18 STR R2, [SP,#0x54+var_50] .text:00051E1C .text:00051E1C loc_51E1C ; CODE XREF: _dl_close+4F4j .text:00051E1C LDR R0, [R5,#4] .text:00051E20 BL free .text:00051E24 LDR R4, [R5,#0x14] .text:00051E28 .text:00051E28 loc_51E28 ; CODE XREF: _dl_close+538j .text:00051E28 MOV R0, R4 .text:00051E2C LDR R4, [R4,#4] .text:00051E30 BL free .text:00051E34 CMP R4, #0 .text:00051E38 BNE loc_51E28 .text:00051E3C LDR R1, [R11,#var_40] .text:00051E40 CMP R5, R1 .text:00051E44 BEQ loc_51E50 .text:00051E48 LDR R0, [R5,#0x184] .text:00051E4C BL free .text:00051E50 .text:00051E50 loc_51E50 ; CODE XREF: _dl_close+544j .text:00051E50 LDRB R3, [R5,#0x12C] .text:00051E54 MOVS R3, R3,LSR#7 .text:00051E58 BEQ loc_51E64 .text:00051E5C LDR R0, [R5,#0xEC] .text:00051E60 BL free .text:00051E64 .text:00051E64 loc_51E64 ; CODE XREF: _dl_close+558j .text:00051E64 LDR R0, [R5,#0x138] .text:00051E68 CMN R0, #1 .text:00051E6C BEQ loc_51E74 .text:00051E70 BL free .text:00051E74 .text:00051E74 loc_51E74 ; CODE XREF: _dl_close+56Cj .text:00051E74 LDR R0, [R5,#0x17C] .text:00051E78 CMN R0, #1 .text:00051E7C BEQ loc_51E84 .text:00051E80 BL free .text:00051E84 .text:00051E84 loc_51E84 ; CODE XREF: _dl_close+57Cj .text:00051E84 MOV R0, R5 .text:00051E88 BL free .text:00051E8C .text:00051E8C loc_51E8C ; CODE XREF: _dl_close+3E4j .text:00051E8C ; _dl_close+3F4j .text:00051E8C LDR R8, [R11,#var_48] .text:00051E90 LDR R3, [R9,R8,LSL#2] .text:00051E94 CMP R3, #0 .text:00051E98 BNE loc_51CD0 .text:00051E9C .text:00051E9C loc_51E9C ; CODE XREF: _dl_close+3CCj .text:00051E9C LDR R2, =_r_debug .text:00051EA0 MOV R3, #0 .text:00051EA4 STR R3, [R2,#(_r_debug+0xC - 0x961F0)] .text:00051EA8 BL _dl_debug_state .text:00051EAC LDR R3, [R11,#var_44] .text:00051EB0 CMP R3, #0 .text:00051EB4 BEQ loc_51F28 .text:00051EB8 .text:00051EB8 loc_51EB8 ; CODE XREF: _dl_close+624j .text:00051EB8 LDR R12, [R11,#var_44] .text:00051EBC LDR R3, [R12,#4] .text:00051EC0 B loc_51EF4 .text:00051EC0 ; --------------------------------------------------------------------------- .text:00051EC4 off_51EC4 DCD _r_debug ; DATA XREF: _dl_close+3B0r .text:00051EC4 ; _dl_close:loc_51E9Cr .text:00051EC8 off_51EC8 DCD _dl_nloaded ; DATA XREF: _dl_close+3FCr .text:00051ECC off_51ECC DCD _dl_main_searchlist ; DATA XREF: _dl_close+404r .text:00051ECC ; _dl_close+440r .text:00051ED0 off_51ED0 DCD _dl_loaded ; DATA XREF: _dl_close+4A0r .text:00051ED4 ; --------------------------------------------------------------------------- .text:00051ED4 .text:00051ED4 loc_51ED4 ; CODE XREF: _dl_close+604j .text:00051ED4 LDR R1, [R11,#var_44] .text:00051ED8 LDR R2, [R1,#4] .text:00051EDC LDR R3, [R1] .text:00051EE0 LDR R0, [R3,R2,LSL#2] .text:00051EE4 BL _dl_close .text:00051EE8 LDR R2, [R11,#var_44] .text:00051EEC LDR R3, [R2,#4] .text:00051EF0 LDR R12, [R11,#var_44] .text:00051EF4 .text:00051EF4 loc_51EF4 ; CODE XREF: _dl_close+5C0j .text:00051EF4 MOV R2, R3 .text:00051EF8 SUB R3, R3, #1 .text:00051EFC CMP R2, #0 .text:00051F00 STR R3, [R12,#4] .text:00051F04 BNE loc_51ED4 .text:00051F08 LDR R1, [R11,#var_44] .text:00051F0C LDR R0, [R1] .text:00051F10 BL free .text:00051F14 LDR R2, [R11,#var_44] .text:00051F18 LDR R2, [R2,#8] .text:00051F1C CMP R2, #0 .text:00051F20 STR R2, [R11,#var_44] .text:00051F24 BNE loc_51EB8 .text:00051F28 .text:00051F28 loc_51F28 ; CODE XREF: _dl_close+5B4j .text:00051F28 MOV R0, R9 .text:00051F2C BL free .text:00051F30 LDR R3, =0 .text:00051F34 CMP R3, #0 .text:00051F38 BEQ locret_51F54 .text:00051F3C LDR R0, =_dl_load_lock .text:00051F40 MOV LR, PC .text:00051F44 MOV PC, R3 .text:00051F48 B locret_51F54 .text:00051F48 ; --------------------------------------------------------------------------- .text:00051F4C off_51F4C DCD 0 ; DATA XREF: _dl_close+630r .text:00051F50 off_51F50 DCD _dl_load_lock ; DATA XREF: _dl_close+63Cr .text:00051F54 ; --------------------------------------------------------------------------- .text:00051F54 .text:00051F54 locret_51F54 ; CODE XREF: _dl_close+30j .text:00051F54 ; _dl_close+D0j ... .text:00051F54 LDMDB R11, {R4-R11,SP,PC} .text:00051F54 ; End of function _dl_close .text:00051F54 .text:00051F58 .text:00051F58 ; =============== S U B R O U T I N E ======================================= .text:00051F58 .text:00051F58 ; Attributes: bp-based frame .text:00051F58 .text:00051F58 free_mem_12 .text:00051F58 MOV R12, SP .text:00051F5C STMFD SP!, {R11,R12,LR,PC} .text:00051F60 SUB R11, R12, #4 .text:00051F64 LDR R12, =_dl_global_scope_alloc .text:00051F68 LDR R3, [R12] .text:00051F6C CMP R3, #0 .text:00051F70 LDMEQDB R11, {R11,SP,PC} .text:00051F74 LDR R3, =_dl_main_searchlist .text:00051F78 LDR R0, =_dl_initial_searchlist .text:00051F7C LDR R1, [R3] .text:00051F80 LDR R3, [R0,#(_dl_initial_searchlist+4 - 0x95D10)] .text:00051F84 LDR R2, [R1,#4] .text:00051F88 CMP R2, R3 .text:00051F8C LDMNEDB R11, {R11,SP,PC} .text:00051F90 LDR R3, [R0] .text:00051F94 LDR R0, [R1] .text:00051F98 STR R3, [R1] .text:00051F9C MOV R2, #0 .text:00051FA0 STR R2, [R12] .text:00051FA4 BL free .text:00051FA8 LDMDB R11, {R11,SP,PC} .text:00051FA8 ; End of function free_mem_12 .text:00051FA8 .text:00051FA8 ; --------------------------------------------------------------------------- .text:00051FAC off_51FAC DCD _dl_global_scope_alloc ; DATA XREF: free_mem_12+Cr .text:00051FB0 off_51FB0 DCD _dl_main_searchlist ; DATA XREF: free_mem_12+1Cr .text:00051FB4 off_51FB4 DCD _dl_initial_searchlist ; DATA XREF: free_mem_12+20r .text:00051FB8 .text:00051FB8 ; =============== S U B R O U T I N E ======================================= .text:00051FB8 .text:00051FB8 ; Attributes: bp-based frame .text:00051FB8 .text:00051FB8 EXPORT sigfillset .text:00051FB8 sigfillset ; CODE XREF: profil+E4p .text:00051FB8 MOV R12, SP .text:00051FBC STMFD SP!, {R11,R12,LR,PC} .text:00051FC0 SUB R11, R12, #4 .text:00051FC4 CMP R0, #0 .text:00051FC8 BEQ loc_51FE0 .text:00051FCC MOV R1, #0xFF .text:00051FD0 MOV R2, #0x80 .text:00051FD4 BL memset .text:00051FD8 MOV R0, #0 .text:00051FDC LDMDB R11, {R11,SP,PC} .text:00051FE0 ; --------------------------------------------------------------------------- .text:00051FE0 .text:00051FE0 loc_51FE0 ; CODE XREF: sigfillset+10j .text:00051FE0 BL __errno_location .text:00051FE4 MOV R3, #0x16 .text:00051FE8 STR R3, [R0] .text:00051FEC MOV R0, 0xFFFFFFFF .text:00051FF0 LDMDB R11, {R11,SP,PC} .text:00051FF0 ; End of function sigfillset .text:00051FF0 .text:00051FF4 .text:00051FF4 ; =============== S U B R O U T I N E ======================================= .text:00051FF4 .text:00051FF4 ; Attributes: bp-based frame .text:00051FF4 .text:00051FF4 EXPORT _IO_seekoff .text:00051FF4 _IO_seekoff ; CODE XREF: fseek+7Cp .text:00051FF4 .text:00051FF4 var_38 = -0x38 .text:00051FF4 var_34 = -0x34 .text:00051FF4 arg_0 = 4 .text:00051FF4 .text:00051FF4 MOV R12, SP .text:00051FF8 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00051FFC SUB R11, R12, #4 .text:00052000 MOV R6, R2 .text:00052004 MOV R5, R1 .text:00052008 MOV R7, R3 .text:0005200C CMP R7, #2 .text:00052010 MOV R4, R0 .text:00052014 SUB SP, SP, #0x14 .text:00052018 LDR R10, [R11,#arg_0] .text:0005201C BLS loc_52038 .text:00052020 BL __errno_location .text:00052024 MOV R3, #0x16 .text:00052028 STR R3, [R0] .text:0005202C MOV R1, 0xFFFFFFFF .text:00052030 MOV R0, 0xFFFFFFFF .text:00052034 B loc_52128 .text:00052038 ; --------------------------------------------------------------------------- .text:00052038 .text:00052038 loc_52038 ; CODE XREF: _IO_seekoff+28j .text:00052038 LDR R3, [R4] .text:0005203C MOV R8, #0 .text:00052040 TST R3, #0x8000 .text:00052044 BNE loc_52054 .text:00052048 LDR R3, =0 .text:0005204C SUBS R8, R3, R8 .text:00052050 MOVNE R8, #1 .text:00052054 .text:00052054 loc_52054 ; CODE XREF: _IO_seekoff+50j .text:00052054 CMP R8, #0 .text:00052058 BEQ loc_5206C .text:0005205C SUB R0, R11, #-var_34 .text:00052060 LDR R1, =funlockfile .text:00052064 MOV R2, R4 .text:00052068 BL 0 .text:0005206C .text:0005206C loc_5206C ; CODE XREF: _IO_seekoff+64j .text:0005206C LDR R3, [R4] .text:00052070 TST R3, #0x8000 .text:00052074 BNE loc_52080 .text:00052078 MOV R0, R4 .text:0005207C BL flockfile .text:00052080 .text:00052080 loc_52080 ; CODE XREF: _IO_seekoff+80j .text:00052080 CMP R10, #0 .text:00052084 BEQ loc_520C4 .text:00052088 LDR R3, [R4,#0x24] .text:0005208C CMP R3, #0 .text:00052090 BEQ loc_520C4 .text:00052094 CMP R7, #1 .text:00052098 BNE loc_520BC .text:0005209C LDR R3, [R4] .text:000520A0 TST R3, #0x100 .text:000520A4 BEQ loc_520BC .text:000520A8 ADD R2, R4, #8 .text:000520AC LDMDA R2, {R2,R3} .text:000520B0 SUB R3, R3, R2 .text:000520B4 SUBS R5, R5, R3 .text:000520B8 SBC R6, R6, R3,ASR#31 .text:000520BC .text:000520BC loc_520BC ; CODE XREF: _IO_seekoff+A4j .text:000520BC ; _IO_seekoff+B0j .text:000520BC MOV R0, R4 .text:000520C0 BL _IO_free_backup_area .text:000520C4 .text:000520C4 loc_520C4 ; CODE XREF: _IO_seekoff+90j .text:000520C4 ; _IO_seekoff+9Cj .text:000520C4 LDRB R3, [R4,#0x46] .text:000520C8 MOV R3, R3,LSL#24 .text:000520CC ADD R3, R4, R3,ASR#24 .text:000520D0 LDR R12, [R3,#0x94] .text:000520D4 STR R10, [SP,#0x38+var_38] .text:000520D8 MOV R0, R4 .text:000520DC MOV R2, R6 .text:000520E0 MOV R1, R5 .text:000520E4 MOV R3, R7 .text:000520E8 MOV LR, PC .text:000520EC LDR PC, [R12,#0x24] .text:000520F0 LDR R3, [R4] .text:000520F4 MOV R6, R1 .text:000520F8 MOV R5, R0 .text:000520FC TST R3, #0x8000 .text:00052100 BNE loc_5210C .text:00052104 MOV R0, R4 .text:00052108 BL funlockfile .text:0005210C .text:0005210C loc_5210C ; CODE XREF: _IO_seekoff+10Cj .text:0005210C CMP R8, #0 .text:00052110 BEQ loc_52120 .text:00052114 SUB R0, R11, #-var_34 .text:00052118 MOV R1, #0 .text:0005211C BL 0 .text:00052120 .text:00052120 loc_52120 ; CODE XREF: _IO_seekoff+11Cj .text:00052120 MOV R1, R6 .text:00052124 MOV R0, R5 .text:00052128 .text:00052128 loc_52128 ; CODE XREF: _IO_seekoff+40j .text:00052128 B locret_52134 .text:00052128 ; --------------------------------------------------------------------------- .text:0005212C dword_5212C DCD 0 ; DATA XREF: _IO_seekoff+54r .text:00052130 off_52130 DCD funlockfile ; DATA XREF: _IO_seekoff+6Cr .text:00052134 ; --------------------------------------------------------------------------- .text:00052134 .text:00052134 locret_52134 ; CODE XREF: _IO_seekoff:loc_52128j .text:00052134 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00052134 ; End of function _IO_seekoff .text:00052134 .text:00052134 ; --------------------------------------------------------------------------- .text:00052138 ALIGN 0x10 .text:00052140 .text:00052140 ; =============== S U B R O U T I N E ======================================= .text:00052140 .text:00052140 .text:00052140 WEAK setitimer .text:00052140 setitimer ; CODE XREF: profil+44p .text:00052140 ; profil+88p ... .text:00052140 SVC 0x900068 ; Alternative name is '__setitimer' .text:00052144 CMN R0, #0x1000 .text:00052148 MOVCC PC, LR .text:0005214C B __syscall_error .text:0005214C ; End of function setitimer .text:0005214C .text:00052150 .text:00052150 ; =============== S U B R O U T I N E ======================================= .text:00052150 .text:00052150 .text:00052150 fix_bad_pc24.111 ; CODE XREF: .text:0005280Cp .text:00052150 ; .text:00052A8Cp .text:00052150 .text:00052150 var_4 = -4 .text:00052150 arg_0 = 0 .text:00052150 .text:00052150 STR R12, [SP,#var_4]! .text:00052154 ADD R12, SP, #4+arg_0 .text:00052158 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0005215C SUB R11, R12, #8 .text:00052160 LDR R12, [R11,#4] .text:00052164 SUB SP, SP, #0xC .text:00052168 STR R12, [R11,#-0x20] .text:0005216C LDR R3, =fix_page.115 .text:00052170 LDR R6, =pagesize.117 .text:00052174 MOV R7, R1 .text:00052178 LDR R4, [R3] .text:0005217C MOV R5, R3 .text:00052180 LDR R12, =fix_offset.116 .text:00052184 CMP R4, #0 .text:00052188 BNE loc_52218 .text:0005218C LDR R3, [R6] .text:00052190 CMP R3, #0 .text:00052194 BNE loc_521A0 .text:00052198 BL getpagesize .text:0005219C STR R0, [R6] .text:000521A0 .text:000521A0 loc_521A0 ; CODE XREF: fix_bad_pc24.111+44j .text:000521A0 LDR R1, [R6] .text:000521A4 MOV R3, 0xFFFFFFFF .text:000521A8 STMEA SP, {R3,R4} .text:000521AC MOV R0, R4 .text:000521B0 MOV R2, #7 .text:000521B4 ADD R3, R3, #0x23 .text:000521B8 BL mmap .text:000521BC CMP R0, #0 .text:000521C0 STR R0, [R5] .text:000521C4 BNE loc_52208 .text:000521C8 LDR R3, =aCouldNotMapPag ; "could not map page for fixup" .text:000521CC CMP R3, #0 .text:000521D0 BEQ loc_52208 .text:000521D4 LDR R0, =aCouldNotMapP_0 ; "! \"could not map page for fixup\"" .text:000521D8 LDR R1, =a__SysdepsArmDl ; "../sysdeps/arm/dl-machine.h" .text:000521DC MOV R2, #0x184 .text:000521E0 LDR R3, =aFix_bad_pc24 ; "fix_bad_pc24" .text:000521E4 ADD R2, R2, #1 .text:000521E8 BL __assert_fail .text:000521E8 ; --------------------------------------------------------------------------- .text:000521EC off_521EC DCD fix_page.115 ; DATA XREF: fix_bad_pc24.111+1Cr .text:000521F0 off_521F0 DCD pagesize.117 ; DATA XREF: fix_bad_pc24.111+20r .text:000521F4 off_521F4 DCD fix_offset.116 ; DATA XREF: fix_bad_pc24.111+30r .text:000521F8 off_521F8 DCD aCouldNotMapPag ; DATA XREF: fix_bad_pc24.111+78r .text:000521F8 ; "could not map page for fixup" .text:000521FC off_521FC DCD aCouldNotMapP_0 ; DATA XREF: fix_bad_pc24.111+84r .text:000521FC ; "! \"could not map page for fixup\"" .text:00052200 off_52200 DCD a__SysdepsArmDl ; DATA XREF: fix_bad_pc24.111+88r .text:00052200 ; "../sysdeps/arm/dl-machine.h" .text:00052204 off_52204 DCD aFix_bad_pc24 ; DATA XREF: fix_bad_pc24.111+90r .text:00052204 ; "fix_bad_pc24" .text:00052208 ; --------------------------------------------------------------------------- .text:00052208 .text:00052208 loc_52208 ; CODE XREF: fix_bad_pc24.111+74j .text:00052208 ; fix_bad_pc24.111+80j .text:00052208 LDR R2, =fix_offset.116 .text:0005220C MOV R3, #0 .text:00052210 MOV R12, R2 .text:00052214 STR R3, [R2] .text:00052218 .text:00052218 loc_52218 ; CODE XREF: fix_bad_pc24.111+38j .text:00052218 MOV R3, #0xE0000004 .text:0005221C LDR R1, [R5] .text:00052220 ADD R3, R3, #0x5100000 .text:00052224 LDR R2, [R12] .text:00052228 ADD R3, R3, #0xFF000 .text:0005222C STR R3, [R1,R2] .text:00052230 ADD R0, R1, R2 .text:00052234 STR R7, [R0,#4] .text:00052238 LDR R3, [R12] .text:0005223C ADD R3, R3, #8 .text:00052240 STR R3, [R12] .text:00052244 LDR R2, [R6] .text:00052248 CMP R3, R2 .text:0005224C MOVCS R3, #0 .text:00052250 STRCS R3, [R5] .text:00052254 B locret_5225C .text:00052254 ; --------------------------------------------------------------------------- .text:00052258 off_52258 DCD fix_offset.116 ; DATA XREF: fix_bad_pc24.111:loc_52208r .text:0005225C ; --------------------------------------------------------------------------- .text:0005225C .text:0005225C locret_5225C ; CODE XREF: fix_bad_pc24.111+104j .text:0005225C LDMDB R11, {R4-R7,R11,SP,PC} .text:0005225C ; End of function fix_bad_pc24.111 .text:0005225C .text:00052260 ; --------------------------------------------------------------------------- .text:00052260 .text:00052260 EXPORT _dl_relocate_object .text:00052260 _dl_relocate_object ; CODE XREF: dl_open_worker+300p .text:00052260 MOV R12, SP .text:00052264 STMFD SP!, {R4-R12,LR,PC} .text:00052268 SUB R11, R12, #4 .text:0005226C SUB SP, SP, #0x58 .text:00052270 STR R0, [R11,#-0x30] .text:00052274 STR R1, [R11,#-0x34] .text:00052278 MOV R6, R2 .text:0005227C LDRB R1, [R0,#0x12C] .text:00052280 MOV R7, R3 .text:00052284 TST R1, #4 .text:00052288 BNE locret_52CBC .text:0005228C CMP R7, #0 .text:00052290 BNE loc_522A4 .text:00052294 LDR R3, [R0,#0x78] .text:00052298 CMP R3, #0 .text:0005229C MOVEQ R6, R2 .text:000522A0 MOVNE R6, #0 .text:000522A4 .text:000522A4 loc_522A4 ; CODE XREF: .text:00052290j .text:000522A4 LDR R3, =_dl_debug_mask .text:000522A8 LDR R2, [R3] .text:000522AC TST R2, #0x20 .text:000522B0 BEQ loc_522E8 .text:000522B4 LDR R2, [R0,#4] .text:000522B8 LDRB R3, [R2] .text:000522BC CMP R3, #0 .text:000522C0 LDREQ R3, =_dl_argv .text:000522C4 LDREQ R2, [R3] .text:000522C8 LDREQ R2, [R2] .text:000522CC LDR R12, =dword_628F8 .text:000522D0 MOV R0, #1 .text:000522D4 LDR R3, =aLazy ; " (lazy)" .text:000522D8 CMP R6, #0 .text:000522DC LDR R1, =aRelocationProc ; "\nrelocation processing: %s%s\n" .text:000522E0 MOVEQ R3, R12 .text:000522E4 BL _dl_dprintf .text:000522E8 .text:000522E8 loc_522E8 ; CODE XREF: .text:000522B0j .text:000522E8 SUB R0, R11, #0x4C .text:000522EC STR R0, [R11,#-0x68] .text:000522F0 SUB R1, R11, #0x48 .text:000522F4 STR R1, [R11,#-0x6C] .text:000522F8 LDR R0, [R11,#-0x30] .text:000522FC LDR R3, [R0,#0x70] .text:00052300 SUB R2, R11, #0x44 .text:00052304 STR R2, [R11,#-0x70] .text:00052308 CMP R3, #0 .text:0005230C BEQ loc_523C4 .text:00052310 LDRB R3, [R0,#0xF4] .text:00052314 LDRB R2, [R0,#0xF5] .text:00052318 LDR R5, [R0,#0xEC] .text:0005231C ORR R3, R3, R2,LSL#8 .text:00052320 ADD R3, R5, R3,LSL#5 .text:00052324 CMP R5, R3 .text:00052328 BCS loc_523C4 .text:0005232C .text:0005232C loc_5232C ; CODE XREF: .text:000523C0j .text:0005232C LDR R3, [R5] .text:00052330 CMP R3, #1 .text:00052334 BNE loc_523A0 .text:00052338 LDR R3, [R5,#0x18] .text:0005233C TST R3, #2 .text:00052340 BNE loc_523A0 .text:00052344 LDR R3, =_dl_pagesize .text:00052348 LDR R1, [R5,#8] .text:0005234C LDR R0, [R0] .text:00052350 LDR R4, [R3] .text:00052354 MOV R2, #3 .text:00052358 LDR R3, [R5,#0x14] .text:0005235C RSB LR, R4, #0 .text:00052360 AND R12, R1, LR .text:00052364 ADD R0, R0, R12 .text:00052368 ADD R1, R1, R3 .text:0005236C ADD R1, R1, R4 .text:00052370 SUB R1, R1, #1 .text:00052374 AND R1, R1, LR .text:00052378 RSB R1, R12, R1 .text:0005237C BL mprotect .text:00052380 CMP R0, #0 .text:00052384 BGE loc_523A0 .text:00052388 BL __errno_location .text:0005238C LDR R0, [R0] .text:00052390 LDR R3, [R11,#-0x30] .text:00052394 LDR R2, =aCannotMakeSegm ; "cannot make segment writable for reloca"... .text:00052398 LDR R1, [R3,#4] .text:0005239C BL _dl_signal_error .text:000523A0 ; --------------------------------------------------------------------------- .text:000523A0 .text:000523A0 loc_523A0 ; CODE XREF: .text:00052334j .text:000523A0 ; .text:00052340j ... .text:000523A0 LDR R0, [R11,#-0x30] .text:000523A4 LDRB R3, [R0,#0xF4] .text:000523A8 LDRB R1, [R0,#0xF5] .text:000523AC ADD R5, R5, #0x20 .text:000523B0 LDR R2, [R0,#0xEC] .text:000523B4 ORR R3, R3, R1,LSL#8 .text:000523B8 ADD R2, R2, R3,LSL#5 .text:000523BC CMP R5, R2 .text:000523C0 BCC loc_5232C .text:000523C4 .text:000523C4 loc_523C4 ; CODE XREF: .text:0005230Cj .text:000523C4 ; .text:00052328j .text:000523C4 LDR R1, [R11,#-0x30] .text:000523C8 LDR R3, [R1,#0x2C] .text:000523CC LDR R2, [R3,#4] .text:000523D0 STR R2, [R11,#-0x2C] .text:000523D4 LDR R3, [R1,#0x74] .text:000523D8 CMP R3, #0 .text:000523DC CMPNE R6, #0 .text:000523E0 BEQ loc_52414 .text:000523E4 LDR R3, [R1,#0x24] .text:000523E8 LDR R2, [R3,#4] .text:000523EC CMP R7, #0 .text:000523F0 STR R1, [R2,#4] .text:000523F4 BEQ loc_5240C .text:000523F8 LDR R3, =_dl_runtime_profile .text:000523FC STR R3, [R2,#8] .text:00052400 LDR R2, =_dl_profile_map .text:00052404 STR R1, [R2] .text:00052408 B loc_52414 .text:0005240C ; --------------------------------------------------------------------------- .text:0005240C .text:0005240C loc_5240C ; CODE XREF: .text:000523F4j .text:0005240C LDR R3, =_dl_runtime_resolve .text:00052410 STR R3, [R2,#8] .text:00052414 .text:00052414 loc_52414 ; CODE XREF: .text:000523E0j .text:00052414 ; .text:00052408j .text:00052414 MOV R3, #0 .text:00052418 STR R3, [R11,#-0x44] .text:0005241C STR R3, [R11,#-0x3C] .text:00052420 STR R3, [R11,#-0x48] .text:00052424 STR R3, [R11,#-0x4C] .text:00052428 LDR R2, [R11,#-0x30] .text:0005242C LDR R3, [R2,#0x5C] .text:00052430 CMP R3, #0 .text:00052434 BEQ loc_5244C .text:00052438 LDR R3, [R3,#4] .text:0005243C STR R3, [R11,#-0x4C] .text:00052440 LDR R2, [R2,#0x60] .text:00052444 LDR R3, [R2,#4] .text:00052448 STR R3, [R11,#-0x48] .text:0005244C .text:0005244C loc_5244C ; CODE XREF: .text:00052434j .text:0005244C LDR R1, [R11,#-0x30] .text:00052450 LDR R3, [R1,#0x68] .text:00052454 CMP R3, #0 .text:00052458 BEQ loc_524AC .text:0005245C LDR R3, [R1,#0x74] .text:00052460 CMP R6, #0 .text:00052464 LDR R2, [R3,#4] .text:00052468 BNE loc_52484 .text:0005246C SUB R5, R11, #0x4C .text:00052470 LDMIA R5, {R3,R5} .text:00052474 ADD R3, R3, R5 .text:00052478 LDR R0, [R11,#-0x48] .text:0005247C CMP R3, R2 .text:00052480 BEQ loc_5249C .text:00052484 .text:00052484 loc_52484 ; CODE XREF: .text:00052468j .text:00052484 STR R2, [R11,#-0x40] .text:00052488 LDR R3, [R1,#0x20] .text:0005248C LDR R2, [R3,#4] .text:00052490 STR R6, [R11,#-0x38] .text:00052494 STR R2, [R11,#-0x3C] .text:00052498 B loc_524AC .text:0005249C ; --------------------------------------------------------------------------- .text:0005249C .text:0005249C loc_5249C ; CODE XREF: .text:00052480j .text:0005249C LDR R2, [R1,#0x20] .text:000524A0 LDR R3, [R2,#4] .text:000524A4 ADD R3, R0, R3 .text:000524A8 STR R3, [R11,#-0x48] .text:000524AC .text:000524AC loc_524AC ; CODE XREF: .text:00052458j .text:000524AC ; .text:00052498j .text:000524AC MOV R0, #0 .text:000524B0 SUB R9, R11, #0x28 .text:000524B4 .text:000524B4 loc_524B4 ; CODE XREF: .text:00052B14j .text:000524B4 SUB R1, R11, #0x70 .text:000524B8 LDMIA R1, {R1,R5,R12} .text:000524BC ADD R3, R0, R0,LSL#1 .text:000524C0 LDR R10, [R11,#-0x30] .text:000524C4 MOV R3, R3,LSL#2 .text:000524C8 LDR R6, [R12,R3] .text:000524CC LDR R2, [R1,R3] .text:000524D0 LDR R1, [R5,R3] .text:000524D4 CMP R2, #0 .text:000524D8 ADD R1, R6, R1 .text:000524DC STR R1, [R11,#-0x5C] .text:000524E0 BEQ loc_52538 .text:000524E4 ADD R0, R0, #1 .text:000524E8 STR R0, [R11,#-0x74] .text:000524EC CMP R6, R1 .text:000524F0 LDR R1, [R10] .text:000524F4 BCS loc_52B0C .text:000524F8 .text:000524F8 loc_524F8 ; CODE XREF: .text:00052530j .text:000524F8 LDRB R3, [R6,#4] .text:000524FC LDR R2, [R6] .text:00052500 CMP R3, #0x16 .text:00052504 LDREQ R3, [R1,R2] .text:00052508 ADDEQ R3, R3, R1 .text:0005250C STREQ R3, [R1,R2] .text:00052510 BEQ loc_52524 .text:00052514 MOV R0, R10 .text:00052518 LDRB R1, [R6,#4] .text:0005251C MOV R2, #1 .text:00052520 BL _dl_reloc_bad_type .text:00052524 .text:00052524 loc_52524 ; CODE XREF: .text:00052510j .text:00052524 LDR R12, [R11,#-0x5C] .text:00052528 ADD R6, R6, #8 .text:0005252C CMP R6, R12 .text:00052530 BCC loc_524F8 .text:00052534 B loc_52B0C .text:00052538 ; --------------------------------------------------------------------------- .text:00052538 .text:00052538 loc_52538 ; CODE XREF: .text:000524E0j .text:00052538 LDR R3, [R10,#0x30] .text:0005253C LDR R2, [R10,#0xDC] .text:00052540 LDR R3, [R3,#4] .text:00052544 CMP R2, #0 .text:00052548 STR R3, [R11,#-0x60] .text:0005254C BEQ loc_52878 .text:00052550 ADD R0, R0, #1 .text:00052554 STR R0, [R11,#-0x74] .text:00052558 LDR R1, [R11,#-0x5C] .text:0005255C LDR R2, [R2,#4] .text:00052560 CMP R6, R1 .text:00052564 STR R2, [R11,#-0x64] .text:00052568 BCS loc_52B0C .text:0005256C .text:0005256C loc_5256C ; CODE XREF: .text:00052870j .text:0005256C LDR R2, [R6,#4] .text:00052570 LDR R5, [R11,#-0x64] .text:00052574 LDR LR, [R10] .text:00052578 LDR R4, [R6] .text:0005257C MOV R0, R2,LSR#8 .text:00052580 MOV R3, R0,LSL#1 .text:00052584 LDRB R1, [R3,R5] .text:00052588 ADD R3, R3, R5 .text:0005258C AND R2, R2, #0xFF .text:00052590 CMP R2, #0x17 .text:00052594 LDRB R12, [R3,#1] .text:00052598 MOV R0, R0,LSL#4 .text:0005259C LDR R5, [R11,#-0x60] .text:000525A0 ADD R7, LR, R4 .text:000525A4 LDR R3, [R10,#0x134] .text:000525A8 ADD R8, R5, R0 .text:000525AC ORR R1, R1, R12,LSL#8 .text:000525B0 ADD R1, R3, R1,LSL#4 .text:000525B4 STR R8, [R11,#-0x58] .text:000525B8 BNE loc_525D4 .text:000525BC LDR R3, =0 .text:000525C0 CMP R10, R3 .text:000525C4 LDRNE R3, [LR,R4] .text:000525C8 ADDNE R3, R3, LR .text:000525CC STRNE R3, [LR,R4] .text:000525D0 B loc_52864 .text:000525D4 ; --------------------------------------------------------------------------- .text:000525D4 .text:000525D4 loc_525D4 ; CODE XREF: .text:000525B8j .text:000525D4 CMP R2, #0 .text:000525D8 BEQ loc_52864 .text:000525DC LDRB R3, [R8,#0xC] .text:000525E0 MOVS R3, R3,LSR#4 .text:000525E4 BEQ loc_52698 .text:000525E8 CMP R1, #0 .text:000525EC BEQ loc_52634 .text:000525F0 LDR R3, [R1,#4] .text:000525F4 CMP R3, #0 .text:000525F8 BEQ loc_52634 .text:000525FC LDR R2, [R11,#-0x60] .text:00052600 LDR R12, [R2,R0] .text:00052604 STR R1, [SP] .text:00052608 LDRB R2, [R6,#4] .text:0005260C MOV R3, #0 .text:00052610 STMFA SP, {R2,R3} .text:00052614 LDR R0, [R9,#-4] .text:00052618 LDR R1, [R9,#-8] .text:0005261C SUB R2, R11, #0x58 .text:00052620 LDR R3, [R9,#-0xC] .text:00052624 ADD R0, R0, R12 .text:00052628 BL _dl_lookup_versioned_symbol .text:0005262C MOV R5, R0 .text:00052630 B loc_526A0 .text:00052634 ; --------------------------------------------------------------------------- .text:00052634 .text:00052634 loc_52634 ; CODE XREF: .text:000525ECj .text:00052634 ; .text:000525F8j .text:00052634 LDR R3, [R11,#-0x58] .text:00052638 LDRB R2, [R6,#4] .text:0005263C LDR R12, [R3] .text:00052640 STR R2, [SP] .text:00052644 MOV R3, #0 .text:00052648 STR R3, [SP,#4] .text:0005264C LDR R1, [R9,#-8] .text:00052650 LDR R0, [R9,#-4] .text:00052654 SUB R2, R11, #0x58 .text:00052658 LDR R3, [R9,#-0xC] .text:0005265C ADD R0, R0, R12 .text:00052660 BL _dl_lookup_symbol .text:00052664 MOV R5, R0 .text:00052668 B loc_526A0 .text:00052668 ; --------------------------------------------------------------------------- .text:0005266C off_5266C DCD _dl_debug_mask ; DATA XREF: .text:loc_522A4r .text:00052670 off_52670 DCD _dl_argv ; DATA XREF: .text:000522C0r .text:00052674 off_52674 DCD dword_628F8 ; DATA XREF: .text:000522CCr .text:00052678 off_52678 DCD aLazy ; DATA XREF: .text:000522D4r .text:00052678 ; " (lazy)" .text:0005267C off_5267C DCD aRelocationProc ; DATA XREF: .text:000522DCr .text:0005267C ; "\nrelocation processing: %s%s\n" .text:00052680 off_52680 DCD _dl_pagesize ; DATA XREF: .text:00052344r .text:00052684 off_52684 DCD aCannotMakeSegm ; DATA XREF: .text:00052394r .text:00052684 ; "cannot make segment writable for reloca"... .text:00052688 off_52688 DCD _dl_runtime_profile ; DATA XREF: .text:000523F8r .text:0005268C off_5268C DCD _dl_profile_map ; DATA XREF: .text:00052400r .text:00052690 off_52690 DCD _dl_runtime_resolve ; DATA XREF: .text:loc_5240Cr .text:00052694 dword_52694 DCD 0 ; DATA XREF: .text:000525BCr .text:00052698 ; --------------------------------------------------------------------------- .text:00052698 .text:00052698 loc_52698 ; CODE XREF: .text:000525E4j .text:00052698 LDR R3, [R9,#-8] .text:0005269C LDR R5, [R3] .text:000526A0 .text:000526A0 loc_526A0 ; CODE XREF: .text:00052630j .text:000526A0 ; .text:00052668j .text:000526A0 LDR R3, [R11,#-0x58] .text:000526A4 CMP R3, #0 .text:000526A8 MOV R2, R3 .text:000526AC LDRNE R3, [R2,#4] .text:000526B0 ADDNE R5, R5, R3 .text:000526B4 LDRB R3, [R6,#4] .text:000526B8 SUB R3, R3, #1 .text:000526BC CMP R3, #0x15 ; switch 22 cases .text:000526C0 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:000526C4 B loc_52854 ; jumptable 000526C0 default case .text:000526C4 ; --------------------------------------------------------------------------- .text:000526C8 DCD loc_527D0 ; jump table for switch statement .text:000526C8 DCD loc_527A8 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52854 .text:000526C8 DCD loc_52720 .text:000526C8 DCD loc_5284C .text:000526C8 DCD loc_5284C .text:00052720 ; --------------------------------------------------------------------------- .text:00052720 .text:00052720 loc_52720 ; CODE XREF: .text:000526C0j .text:00052720 ; DATA XREF: .text:000526C8o .text:00052720 CMP R2, #0 ; jumptable 000526C0 case 19 .text:00052724 BEQ loc_52864 .text:00052728 LDR R0, [R2,#8] .text:0005272C LDR R1, [R8,#8] .text:00052730 CMP R0, R1 .text:00052734 BHI loc_52750 .text:00052738 LDR R3, =_dl_verbose .text:0005273C LDR R2, [R3] .text:00052740 CMP R2, #0 .text:00052744 BEQ loc_52784 .text:00052748 CMP R0, R1 .text:0005274C BCS loc_52784 .text:00052750 .text:00052750 loc_52750 ; CODE XREF: .text:00052734j .text:00052750 LDR R4, =aProgramNameU_0 ; "<program name unknown>" .text:00052754 LDR R1, =aSSymbolSHasDif ; "%s: Symbol `%s' has different size in s"... .text:00052758 LDR R3, [R10,#0x2C] .text:0005275C LDR R2, =_dl_argv .text:00052760 LDR LR, [R3,#4] .text:00052764 LDR R12, [R2] .text:00052768 LDR R3, [R8] .text:0005276C MOV R0, #2 .text:00052770 LDR R2, [R12] .text:00052774 ADD R3, LR, R3 .text:00052778 CMP R2, #0 .text:0005277C MOVEQ R2, R4 .text:00052780 BL _dl_dprintf .text:00052784 .text:00052784 loc_52784 ; CODE XREF: .text:00052744j .text:00052784 ; .text:0005274Cj .text:00052784 LDR R3, [R11,#-0x58] .text:00052788 LDR R12, [R8,#8] .text:0005278C MOV R0, R7 .text:00052790 LDR R2, [R3,#8] .text:00052794 MOV R1, R5 .text:00052798 CMP R12, R2 .text:0005279C MOVCC R2, R12 .text:000527A0 BL memcpy .text:000527A4 B loc_52864 .text:000527A8 ; --------------------------------------------------------------------------- .text:000527A8 .text:000527A8 loc_527A8 ; CODE XREF: .text:000526C0j .text:000527A8 ; DATA XREF: .text:000526C8o .text:000527A8 LDR R3, =0 ; jumptable 000526C0 case 1 .text:000527AC CMP R10, R3 .text:000527B0 LDREQ R2, [R10] .text:000527B4 LDREQ R3, [R8,#4] .text:000527B8 ADDEQ R2, R2, R3 .text:000527BC RSBEQ R5, R2, R5 .text:000527C0 LDR R3, [R7] .text:000527C4 ADD R3, R3, R5 .text:000527C8 STR R3, [R7] .text:000527CC B loc_52864 .text:000527D0 ; --------------------------------------------------------------------------- .text:000527D0 .text:000527D0 loc_527D0 ; CODE XREF: .text:000526C0j .text:000527D0 ; DATA XREF: .text:000526C8o .text:000527D0 LDR R3, [R7] ; jumptable 000526C0 case 0 .text:000527D4 BIC R1, R3, #0xFF000000 .text:000527D8 TST R3, #0x800000 .text:000527DC ORR R2, R1, #0xFF000000 .text:000527E0 RSB R3, R7, R5 .text:000527E4 MOVNE R4, R2,LSL#2 .text:000527E8 MOVEQ R4, R1,LSL#2 .text:000527EC ADD R0, R3, R4 .text:000527F0 AND R2, R0, #0xFE000000 .text:000527F4 CMP R2, #0xFE000000 .text:000527F8 CMPNE R2, #0 .text:000527FC BEQ loc_52838 .text:00052800 MOV R12, R9 .text:00052804 MOV R0, R7 .text:00052808 MOV R1, R5 .text:0005280C BL fix_bad_pc24.111 .text:00052810 RSB R0, R7, R0 .text:00052814 ADD R0, R0, R4 .text:00052818 AND R2, R0, #0xFE000000 .text:0005281C CMP R2, #0xFE000000 .text:00052820 CMPNE R2, #0 .text:00052824 BEQ loc_52838 .text:00052828 LDR R1, [R10,#4] .text:0005282C LDR R2, =aR_arm_pc24Relo ; "R_ARM_PC24 relocation out of range" .text:00052830 MOV R0, #0 .text:00052834 BL _dl_signal_error .text:00052838 ; --------------------------------------------------------------------------- .text:00052838 .text:00052838 loc_52838 ; CODE XREF: .text:000527FCj .text:00052838 ; .text:00052824j .text:00052838 MOV R0, R0,LSR#2 .text:0005283C LDR R2, [R7] .text:00052840 BIC R3, R0, #0xFF000000 .text:00052844 AND R2, R2, #0xFF000000 .text:00052848 ORR R5, R2, R3 .text:0005284C .text:0005284C loc_5284C ; CODE XREF: .text:000526C0j .text:0005284C ; DATA XREF: .text:000526C8o .text:0005284C STR R5, [R7] ; jumptable 000526C0 cases 20,21 .text:00052850 B loc_52864 .text:00052854 ; --------------------------------------------------------------------------- .text:00052854 .text:00052854 loc_52854 ; CODE XREF: .text:000526C0j .text:00052854 ; .text:000526C4j .text:00052854 ; DATA XREF: ... .text:00052854 MOV R0, R10 ; jumptable 000526C0 default case .text:00052858 LDRB R1, [R6,#4] .text:0005285C MOV R2, #0 .text:00052860 BL _dl_reloc_bad_type .text:00052864 .text:00052864 loc_52864 ; CODE XREF: .text:000525D0j .text:00052864 ; .text:000525D8j ... .text:00052864 LDR R3, [R11,#-0x5C] .text:00052868 ADD R6, R6, #8 .text:0005286C CMP R6, R3 .text:00052870 BCC loc_5256C .text:00052874 B loc_52B0C .text:00052878 ; --------------------------------------------------------------------------- .text:00052878 .text:00052878 loc_52878 ; CODE XREF: .text:0005254Cj .text:00052878 LDR R5, [R11,#-0x5C] .text:0005287C ADD R0, R0, #1 .text:00052880 STR R0, [R11,#-0x74] .text:00052884 CMP R6, R5 .text:00052888 BCS loc_52B0C .text:0005288C .text:0005288C loc_5288C ; CODE XREF: .text:00052B08j .text:0005288C LDR R3, [R6,#4] .text:00052890 LDR R2, [R10] .text:00052894 LDR R1, [R6] .text:00052898 AND R0, R3, #0xFF .text:0005289C CMP R0, #0x17 .text:000528A0 MOV R3, R3,LSR#8 .text:000528A4 MOV R12, R3,LSL#4 .text:000528A8 LDR R3, [R11,#-0x60] .text:000528AC ADD R7, R2, R1 .text:000528B0 ADD R8, R3, R12 .text:000528B4 STR R8, [R11,#-0x58] .text:000528B8 BNE loc_528D4 .text:000528BC LDR R3, =0 .text:000528C0 CMP R10, R3 .text:000528C4 LDRNE R3, [R2,R1] .text:000528C8 ADDNE R3, R3, R2 .text:000528CC STRNE R3, [R2,R1] .text:000528D0 B loc_52AFC .text:000528D4 ; --------------------------------------------------------------------------- .text:000528D4 .text:000528D4 loc_528D4 ; CODE XREF: .text:000528B8j .text:000528D4 CMP R0, #0 .text:000528D8 BEQ loc_52AFC .text:000528DC LDRB R3, [R8,#0xC] .text:000528E0 MOVS R3, R3,LSR#4 .text:000528E4 BEQ loc_52918 .text:000528E8 LDR R5, [R11,#-0x60] .text:000528EC LDR R3, [R5,R12] .text:000528F0 MOV R12, #0 .text:000528F4 STMEA SP, {R0,R12} .text:000528F8 LDR R0, [R9,#-4] .text:000528FC LDR R1, [R9,#-8] .text:00052900 ADD R0, R0, R3 .text:00052904 LDR R3, [R9,#-0xC] .text:00052908 SUB R2, R11, #0x58 .text:0005290C BL _dl_lookup_symbol .text:00052910 MOV R5, R0 .text:00052914 B loc_52920 .text:00052918 ; --------------------------------------------------------------------------- .text:00052918 .text:00052918 loc_52918 ; CODE XREF: .text:000528E4j .text:00052918 LDR R3, [R9,#-8] .text:0005291C LDR R5, [R3] .text:00052920 .text:00052920 loc_52920 ; CODE XREF: .text:00052914j .text:00052920 LDR R3, [R11,#-0x58] .text:00052924 CMP R3, #0 .text:00052928 MOV R2, R3 .text:0005292C LDRNE R3, [R2,#4] .text:00052930 ADDNE R5, R5, R3 .text:00052934 LDRB R3, [R6,#4] .text:00052938 SUB R3, R3, #1 .text:0005293C CMP R3, #0x15 ; switch 22 cases .text:00052940 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00052944 B loc_52AD4 ; jumptable 00052940 default case .text:00052944 ; --------------------------------------------------------------------------- .text:00052948 DCD loc_52A50 ; jump table for switch statement .text:00052948 DCD loc_52A28 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_52AD4 .text:00052948 DCD loc_529A0 .text:00052948 DCD loc_52ACC .text:00052948 DCD loc_52ACC .text:000529A0 ; --------------------------------------------------------------------------- .text:000529A0 .text:000529A0 loc_529A0 ; CODE XREF: .text:00052940j .text:000529A0 ; DATA XREF: .text:00052948o .text:000529A0 CMP R2, #0 ; jumptable 00052940 case 19 .text:000529A4 BEQ loc_52AFC .text:000529A8 LDR R0, [R2,#8] .text:000529AC LDR R1, [R8,#8] .text:000529B0 CMP R0, R1 .text:000529B4 BHI loc_529D0 .text:000529B8 LDR R3, =_dl_verbose .text:000529BC LDR R2, [R3] .text:000529C0 CMP R2, #0 .text:000529C4 BEQ loc_52A04 .text:000529C8 CMP R0, R1 .text:000529CC BCS loc_52A04 .text:000529D0 .text:000529D0 loc_529D0 ; CODE XREF: .text:000529B4j .text:000529D0 LDR R4, =aProgramNameU_0 ; "<program name unknown>" .text:000529D4 LDR R1, =aSSymbolSHasDif ; "%s: Symbol `%s' has different size in s"... .text:000529D8 LDR R3, [R10,#0x2C] .text:000529DC LDR R2, =_dl_argv .text:000529E0 LDR LR, [R3,#4] .text:000529E4 LDR R12, [R2] .text:000529E8 LDR R3, [R8] .text:000529EC MOV R0, #2 .text:000529F0 LDR R2, [R12] .text:000529F4 ADD R3, LR, R3 .text:000529F8 CMP R2, #0 .text:000529FC MOVEQ R2, R4 .text:00052A00 BL _dl_dprintf .text:00052A04 .text:00052A04 loc_52A04 ; CODE XREF: .text:000529C4j .text:00052A04 ; .text:000529CCj .text:00052A04 LDR R3, [R11,#-0x58] .text:00052A08 LDR R12, [R8,#8] .text:00052A0C MOV R0, R7 .text:00052A10 LDR R2, [R3,#8] .text:00052A14 MOV R1, R5 .text:00052A18 CMP R12, R2 .text:00052A1C MOVCC R2, R12 .text:00052A20 BL memcpy .text:00052A24 B loc_52AFC .text:00052A28 ; --------------------------------------------------------------------------- .text:00052A28 .text:00052A28 loc_52A28 ; CODE XREF: .text:00052940j .text:00052A28 ; DATA XREF: .text:00052948o .text:00052A28 LDR R3, =0 ; jumptable 00052940 case 1 .text:00052A2C CMP R10, R3 .text:00052A30 LDREQ R2, [R10] .text:00052A34 LDREQ R3, [R8,#4] .text:00052A38 ADDEQ R2, R2, R3 .text:00052A3C RSBEQ R5, R2, R5 .text:00052A40 LDR R3, [R7] .text:00052A44 ADD R3, R3, R5 .text:00052A48 STR R3, [R7] .text:00052A4C B loc_52AFC .text:00052A50 ; --------------------------------------------------------------------------- .text:00052A50 .text:00052A50 loc_52A50 ; CODE XREF: .text:00052940j .text:00052A50 ; DATA XREF: .text:00052948o .text:00052A50 LDR R3, [R7] ; jumptable 00052940 case 0 .text:00052A54 BIC R1, R3, #0xFF000000 .text:00052A58 TST R3, #0x800000 .text:00052A5C ORR R2, R1, #0xFF000000 .text:00052A60 RSB R3, R7, R5 .text:00052A64 MOVNE R4, R2,LSL#2 .text:00052A68 MOVEQ R4, R1,LSL#2 .text:00052A6C ADD R0, R3, R4 .text:00052A70 AND R2, R0, #0xFE000000 .text:00052A74 CMP R2, #0xFE000000 .text:00052A78 CMPNE R2, #0 .text:00052A7C BEQ loc_52AB8 .text:00052A80 MOV R12, R9 .text:00052A84 MOV R0, R7 .text:00052A88 MOV R1, R5 .text:00052A8C BL fix_bad_pc24.111 .text:00052A90 RSB R0, R7, R0 .text:00052A94 ADD R0, R0, R4 .text:00052A98 AND R2, R0, #0xFE000000 .text:00052A9C CMP R2, #0xFE000000 .text:00052AA0 CMPNE R2, #0 .text:00052AA4 BEQ loc_52AB8 .text:00052AA8 LDR R1, [R10,#4] .text:00052AAC LDR R2, =aR_arm_pc24Relo ; "R_ARM_PC24 relocation out of range" .text:00052AB0 MOV R0, #0 .text:00052AB4 BL _dl_signal_error .text:00052AB8 ; --------------------------------------------------------------------------- .text:00052AB8 .text:00052AB8 loc_52AB8 ; CODE XREF: .text:00052A7Cj .text:00052AB8 ; .text:00052AA4j .text:00052AB8 MOV R0, R0,LSR#2 .text:00052ABC LDR R2, [R7] .text:00052AC0 BIC R3, R0, #0xFF000000 .text:00052AC4 AND R2, R2, #0xFF000000 .text:00052AC8 ORR R5, R2, R3 .text:00052ACC .text:00052ACC loc_52ACC ; CODE XREF: .text:00052940j .text:00052ACC ; DATA XREF: .text:00052948o .text:00052ACC STR R5, [R7] ; jumptable 00052940 cases 20,21 .text:00052AD0 B loc_52AFC .text:00052AD4 ; --------------------------------------------------------------------------- .text:00052AD4 .text:00052AD4 loc_52AD4 ; CODE XREF: .text:00052940j .text:00052AD4 ; .text:00052944j .text:00052AD4 ; DATA XREF: ... .text:00052AD4 MOV R0, R10 ; jumptable 00052940 default case .text:00052AD8 LDRB R1, [R6,#4] .text:00052ADC MOV R2, #0 .text:00052AE0 BL _dl_reloc_bad_type .text:00052AE0 ; --------------------------------------------------------------------------- .text:00052AE4 off_52AE4 DCD _dl_verbose ; DATA XREF: .text:00052738r .text:00052AE4 ; .text:000529B8r .text:00052AE8 off_52AE8 DCD aProgramNameU_0 ; DATA XREF: .text:loc_52750r .text:00052AE8 ; .text:loc_529D0r .text:00052AE8 ; "<program name unknown>" .text:00052AEC off_52AEC DCD aSSymbolSHasDif ; DATA XREF: .text:00052754r .text:00052AEC ; .text:000529D4r .text:00052AEC ; "%s: Symbol `%s' has different size in s"... .text:00052AF0 off_52AF0 DCD _dl_argv ; DATA XREF: .text:0005275Cr .text:00052AF0 ; .text:000529DCr .text:00052AF4 dword_52AF4 DCD 0 ; DATA XREF: .text:loc_527A8r .text:00052AF4 ; .text:000528BCr ... .text:00052AF8 off_52AF8 DCD aR_arm_pc24Relo ; DATA XREF: .text:0005282Cr .text:00052AF8 ; .text:00052AACr .text:00052AF8 ; "R_ARM_PC24 relocation out of range" .text:00052AFC ; --------------------------------------------------------------------------- .text:00052AFC .text:00052AFC loc_52AFC ; CODE XREF: .text:000528D0j .text:00052AFC ; .text:000528D8j ... .text:00052AFC LDR R0, [R11,#-0x5C] .text:00052B00 ADD R6, R6, #8 .text:00052B04 CMP R6, R0 .text:00052B08 BCC loc_5288C .text:00052B0C .text:00052B0C loc_52B0C ; CODE XREF: .text:000524F4j .text:00052B0C ; .text:00052534j ... .text:00052B0C LDR R0, [R11,#-0x74] .text:00052B10 CMP R0, #1 .text:00052B14 BLE loc_524B4 .text:00052B18 LDR R1, =_dl_profile .text:00052B1C LDR R3, [R1] .text:00052B20 CMP R3, #0 .text:00052B24 BEQ loc_52BBC .text:00052B28 LDR LR, [R11,#-0x30] .text:00052B2C LDR R3, [LR,#0x20] .text:00052B30 CMP R3, #0 .text:00052B34 BNE loc_52B68 .text:00052B38 LDR R2, =_dl_argv .text:00052B3C LDR R12, =aProgramNameU_0 ; "<program name unknown>" .text:00052B40 LDR R1, =aSProfilerFound ; "%s: profiler found no PLTREL in object "... .text:00052B44 LDR R3, [R2] .text:00052B48 LDR R2, [R3] .text:00052B4C MOV R0, #2 .text:00052B50 LDR R3, [LR,#4] .text:00052B54 CMP R2, #0 .text:00052B58 MOVEQ R2, R12 .text:00052B5C BL _dl_dprintf .text:00052B60 MOV R0, #0x7F .text:00052B64 BL _exit .text:00052B68 ; --------------------------------------------------------------------------- .text:00052B68 .text:00052B68 loc_52B68 ; CODE XREF: .text:00052B34j .text:00052B68 LDR R3, [R11,#-0x30] .text:00052B6C LDR R2, [R3,#0x20] .text:00052B70 LDR R1, [R2,#4] .text:00052B74 MOV R0, #4 .text:00052B78 BL calloc .text:00052B7C LDR LR, [R11,#-0x30] .text:00052B80 CMP R0, #0 .text:00052B84 STR R0, [LR,#0x140] .text:00052B88 BNE loc_52BBC .text:00052B8C LDR R2, =_dl_argv .text:00052B90 LDR R12, =aProgramNameU_0 ; "<program name unknown>" .text:00052B94 LDR R1, =aSProfilerOutOf ; "%s: profiler out of memory shadowing PL"... .text:00052B98 LDR R3, [R2] .text:00052B9C LDR R2, [R3] .text:00052BA0 MOV R0, #2 .text:00052BA4 LDR R3, [LR,#4] .text:00052BA8 CMP R2, #0 .text:00052BAC MOVEQ R2, R12 .text:00052BB0 BL _dl_dprintf .text:00052BB4 MOV R0, #0x7F .text:00052BB8 BL _exit .text:00052BBC ; --------------------------------------------------------------------------- .text:00052BBC .text:00052BBC loc_52BBC ; CODE XREF: .text:00052B24j .text:00052BBC ; .text:00052B88j .text:00052BBC LDR R3, [R11,#-0x30] .text:00052BC0 LDRB R2, [R3,#0x12C] .text:00052BC4 ORR R2, R2, #4 .text:00052BC8 STRB R2, [R3,#0x12C] .text:00052BCC LDR R12, [R11,#-0x30] .text:00052BD0 LDR R3, [R12,#0x70] .text:00052BD4 CMP R3, #0 .text:00052BD8 BEQ locret_52CBC .text:00052BDC LDRB R3, [R12,#0xF4] .text:00052BE0 LDRB R2, [R12,#0xF5] .text:00052BE4 LDR R5, [R12,#0xEC] .text:00052BE8 ORR R3, R3, R2,LSL#8 .text:00052BEC ADD R3, R5, R3,LSL#5 .text:00052BF0 CMP R5, R3 .text:00052BF4 BCS locret_52CBC .text:00052BF8 .text:00052BF8 loc_52BF8 ; CODE XREF: .text:00052CB8j .text:00052BF8 LDR R3, [R5] .text:00052BFC CMP R3, #1 .text:00052C00 BNE loc_52C98 .text:00052C04 LDR R3, [R5,#0x18] .text:00052C08 TST R3, #2 .text:00052C0C BNE loc_52C98 .text:00052C10 LDR R0, =_dl_pf_to_prot .text:00052C14 LDR R1, =_dl_pagesize .text:00052C18 AND R3, R3, #5 .text:00052C1C LDRB R2, [R0,R3] .text:00052C20 LDR LR, [R1] .text:00052C24 LDR R1, [R5,#8] .text:00052C28 LDR R0, [R12] .text:00052C2C LDR R3, [R5,#0x14] .text:00052C30 RSB R4, LR, #0 .text:00052C34 AND R12, R1, R4 .text:00052C38 ADD R0, R0, R12 .text:00052C3C ADD R1, R1, R3 .text:00052C40 ADD R1, R1, LR .text:00052C44 SUB R1, R1, #1 .text:00052C48 AND R1, R1, R4 .text:00052C4C RSB R1, R12, R1 .text:00052C50 BL mprotect .text:00052C54 CMP R0, #0 .text:00052C58 BGE loc_52C94 .text:00052C5C BL __errno_location .text:00052C60 LDR R0, [R0] .text:00052C64 LDR R3, [R11,#-0x30] .text:00052C68 LDR R2, =aCanTRestoreSeg ; "can't restore segment prot after reloc" .text:00052C6C LDR R1, [R3,#4] .text:00052C70 BL _dl_signal_error .text:00052C70 ; --------------------------------------------------------------------------- .text:00052C74 off_52C74 DCD _dl_profile ; DATA XREF: .text:00052B18r .text:00052C78 off_52C78 DCD _dl_argv ; DATA XREF: .text:00052B38r .text:00052C78 ; .text:00052B8Cr .text:00052C7C off_52C7C DCD aProgramNameU_0 ; DATA XREF: .text:00052B3Cr .text:00052C7C ; .text:00052B90r .text:00052C7C ; "<program name unknown>" .text:00052C80 off_52C80 DCD aSProfilerFound ; DATA XREF: .text:00052B40r .text:00052C80 ; "%s: profiler found no PLTREL in object "... .text:00052C84 off_52C84 DCD aSProfilerOutOf ; DATA XREF: .text:00052B94r .text:00052C84 ; "%s: profiler out of memory shadowing PL"... .text:00052C88 off_52C88 DCD _dl_pf_to_prot ; DATA XREF: .text:00052C10r .text:00052C8C off_52C8C DCD _dl_pagesize ; DATA XREF: .text:00052C14r .text:00052C90 off_52C90 DCD aCanTRestoreSeg ; DATA XREF: .text:00052C68r .text:00052C90 ; "can't restore segment prot after reloc" .text:00052C94 ; --------------------------------------------------------------------------- .text:00052C94 .text:00052C94 loc_52C94 ; CODE XREF: .text:00052C58j .text:00052C94 SVC 0x9F0002 .text:00052C98 .text:00052C98 loc_52C98 ; CODE XREF: .text:00052C00j .text:00052C98 ; .text:00052C0Cj .text:00052C98 LDR R12, [R11,#-0x30] .text:00052C9C LDRB R3, [R12,#0xF4] .text:00052CA0 LDRB R1, [R12,#0xF5] .text:00052CA4 ADD R5, R5, #0x20 .text:00052CA8 LDR R2, [R12,#0xEC] .text:00052CAC ORR R3, R3, R1,LSL#8 .text:00052CB0 ADD R2, R2, R3,LSL#5 .text:00052CB4 CMP R5, R2 .text:00052CB8 BCC loc_52BF8 .text:00052CBC .text:00052CBC locret_52CBC ; CODE XREF: .text:00052288j .text:00052CBC ; .text:00052BD8j ... .text:00052CBC LDMDB R11, {R4-R11,SP,PC} .text:00052CC0 ; --------------------------------------------------------------------------- .text:00052CC0 .text:00052CC0 EXPORT _dl_reloc_bad_type .text:00052CC0 _dl_reloc_bad_type ; CODE XREF: .text:00052520p .text:00052CC0 ; .text:00052860p ... .text:00052CC0 MOV R12, SP .text:00052CC4 STMFD SP!, {R11,R12,LR,PC} .text:00052CC8 SUB R11, R12, #4 .text:00052CCC MOV LR, R0 .text:00052CD0 AND R3, R1, #0xFF .text:00052CD4 SUBS R12, R2, #0 .text:00052CD8 BEQ loc_52D04 .text:00052CDC LDR R0, =_itoa_lower_digits .text:00052CE0 LDR R2, =msg.146 ; "unexpected PLT reloc type 0x??" .text:00052CE4 LDRB R3, [R0,R3,LSR#4] .text:00052CE8 STRB R3, [R2,#(msg.146+0x1C - 0x6C1FC)] .text:00052CEC AND R1, R1, #0xF .text:00052CF0 LDRB R3, [R0,R1] .text:00052CF4 STRB R3, [R2,#(msg.146+0x1D - 0x6C1FC)] .text:00052CF8 LDR R1, [LR,#4] .text:00052CFC MOV R0, #0 .text:00052D00 BL _dl_signal_error .text:00052D04 ; --------------------------------------------------------------------------- .text:00052D04 .text:00052D04 loc_52D04 ; CODE XREF: .text:00052CD8j .text:00052D04 LDR R0, =_itoa_lower_digits .text:00052D08 LDR R2, =msg.147 ; "unexpected reloc type 0x??" .text:00052D0C LDRB R3, [R0,R3,LSR#4] .text:00052D10 STRB R3, [R2,#(msg.147+0x18 - 0x6C21C)] .text:00052D14 AND R1, R1, #0xF .text:00052D18 LDRB R3, [R0,R1] .text:00052D1C STRB R3, [R2,#(msg.147+0x19 - 0x6C21C)] .text:00052D20 LDR R1, [LR,#4] .text:00052D24 MOV R0, R12 .text:00052D28 BL _dl_signal_error .text:00052D28 ; --------------------------------------------------------------------------- .text:00052D2C off_52D2C DCD _itoa_lower_digits ; DATA XREF: .text:00052CDCr .text:00052D2C ; .text:loc_52D04r .text:00052D30 off_52D30 DCD msg.146 ; DATA XREF: .text:00052CE0r .text:00052D30 ; "unexpected PLT reloc type 0x??" .text:00052D34 off_52D34 DCD msg.147 ; DATA XREF: .text:00052D08r .text:00052D34 ; "unexpected reloc type 0x??" .text:00052D38 ; --------------------------------------------------------------------------- .text:00052D38 LDMDB R11, {R11,SP,PC} .text:00052D3C .text:00052D3C ; =============== S U B R O U T I N E ======================================= .text:00052D3C .text:00052D3C ; Attributes: bp-based frame .text:00052D3C .text:00052D3C openaux ; DATA XREF: .text:000530F4o .text:00052D3C ; .text:00053340o ... .text:00052D3C .text:00052D3C var_18 = -0x18 .text:00052D3C var_14 = -0x14 .text:00052D3C .text:00052D3C MOV R12, SP .text:00052D40 STMFD SP!, {R4,R11,R12,LR,PC} .text:00052D44 MOV R4, R0 .text:00052D48 SUB SP, SP, #8 .text:00052D4C LDMIA R4, {R0,R2} .text:00052D50 LDRB R3, [R0,#0x12C] .text:00052D54 STR R2, [SP,#0x18+var_18] .text:00052D58 MOV R2, #0 .text:00052D5C STR R2, [SP,#0x18+var_14] .text:00052D60 SUB R11, R12, #4 .text:00052D64 ANDS R3, R3, #3 .text:00052D68 LDR R1, [R4,#0xC] .text:00052D6C MOVEQ R3, #1 .text:00052D70 BL _dl_map_object .text:00052D74 STR R0, [R4,#0x10] .text:00052D78 LDMDB R11, {R4,R11,SP,PC} .text:00052D78 ; End of function openaux .text:00052D78 .text:00052D7C ; --------------------------------------------------------------------------- .text:00052D7C .text:00052D7C EXPORT _dl_map_object_deps .text:00052D7C _dl_map_object_deps ; CODE XREF: dl_open_worker+228p .text:00052D7C MOV R12, SP .text:00052D80 STMFD SP!, {R4-R12,LR,PC} .text:00052D84 SUB R11, R12, #4 .text:00052D88 MOV R5, R2 .text:00052D8C ADD R2, R5, #2 .text:00052D90 MOV R2, R2,LSL#7 .text:00052D94 SUB SP, SP, #0x5C .text:00052D98 SUB SP, SP, R2,LSR#3 .text:00052D9C STR SP, [R11,#-0x2C] .text:00052DA0 MOV R12, #0 .text:00052DA4 STR R12, [R11,#-0x30] .text:00052DA8 STR R12, [SP,R12] .text:00052DAC STR R0, [R11,#-0x54] .text:00052DB0 MOV R2, SP .text:00052DB4 STR R0, [R2,#4] .text:00052DB8 LDR R4, [R11,#-0x2C] .text:00052DBC ADD R2, R12, #0x10 .text:00052DC0 ADD R0, R4, R2 .text:00052DC4 STR R0, [R4,#8] .text:00052DC8 LDR LR, [R11,#-0x2C] .text:00052DCC ADD R2, LR, R2 .text:00052DD0 STR R2, [LR,#0xC] .text:00052DD4 LDR R0, [R11,#-0x54] .text:00052DD8 MOV R6, R12 .text:00052DDC LDRB R2, [R0,#0x12C] .text:00052DE0 ADD R12, R12, #1 .text:00052DE4 STR R12, [R11,#-0x30] .text:00052DE8 BIC R2, R2, #0x40 .text:00052DEC ORR R2, R2, #0x20 .text:00052DF0 STRB R2, [R0,#0x12C] .text:00052DF4 CMP R6, R5 .text:00052DF8 MOV R7, R1 .text:00052DFC STR R3, [R11,#-0x58] .text:00052E00 BCS loc_52E70 .text:00052E04 MOV R8, R6 .text:00052E08 .text:00052E08 loc_52E08 ; CODE XREF: .text:00052E6Cj .text:00052E08 LDR R4, [R7,R6,LSL#2] .text:00052E0C LDR LR, [R11,#-0x30] .text:00052E10 LDR R2, [R11,#-0x2C] .text:00052E14 MOV R1, LR,LSL#4 .text:00052E18 STR R8, [R2,R1] .text:00052E1C LDR R3, [R11,#-0x2C] .text:00052E20 ADD R3, R3, #4 .text:00052E24 STR R4, [R3,R1] .text:00052E28 LDR R2, [R11,#-0x2C] .text:00052E2C ADD R12, R1, #0x10 .text:00052E30 ADD R0, R2, #8 .text:00052E34 ADD R2, R2, R12 .text:00052E38 STR R2, [R0,R1] .text:00052E3C LDR R3, [R11,#-0x2C] .text:00052E40 ADD R2, R3, #0xC .text:00052E44 ADD R3, R3, R12 .text:00052E48 STR R3, [R2,R1] .text:00052E4C ADD LR, LR, #1 .text:00052E50 STR LR, [R11,#-0x30] .text:00052E54 ADD R6, R6, #1 .text:00052E58 LDRB R3, [R4,#0x12C] .text:00052E5C CMP R6, R5 .text:00052E60 BIC R3, R3, #0x40 .text:00052E64 ORR R3, R3, #0x20 .text:00052E68 STRB R3, [R4,#0x12C] .text:00052E6C BCC loc_52E08 .text:00052E70 .text:00052E70 loc_52E70 ; CODE XREF: .text:00052E00j .text:00052E70 LDR R1, [R11,#-0x30] .text:00052E74 MOV R4, #0 .text:00052E78 LDR R2, [R11,#-0x2C] .text:00052E7C SUB R0, R1, #1 .text:00052E80 MOV R0, R0,LSL#4 .text:00052E84 ADD R2, R2, #8 .text:00052E88 STR R4, [R2,R0] .text:00052E8C LDR R3, [R11,#-0x2C] .text:00052E90 ADD R3, R3, #0xC .text:00052E94 STR R4, [R3,R0] .text:00052E98 STR R1, [R11,#-0x64] .text:00052E9C MOV R1, R1,LSL#4 .text:00052EA0 LDR R3, [R11,#-0x2C] .text:00052EA4 SUB R1, R1, #0x10 .text:00052EA8 ADD R3, R3, R1 .text:00052EAC STR R3, [R11,#-0x60] .text:00052EB0 BL __errno_location .text:00052EB4 LDR R0, [R0] .text:00052EB8 STR R4, [R11,#-0x6C] .text:00052EBC STR R0, [R11,#-0x68] .text:00052EC0 STR R4, [R11,#-0x4C] .text:00052EC4 BL __errno_location .text:00052EC8 LDR R1, [R11,#-0x6C] .text:00052ECC STR R1, [R0] .text:00052ED0 LDR R8, [R11,#-0x2C] .text:00052ED4 LDR R2, [R11,#-0x60] .text:00052ED8 CMP R8, R4 .text:00052EDC STR R2, [R11,#-0x5C] .text:00052EE0 BEQ loc_536B8 .text:00052EE4 .text:00052EE4 loc_52EE4 ; CODE XREF: .text:000536B4j .text:00052EE4 MOV R3, #1 .text:00052EE8 STR R3, [R8] .text:00052EEC LDR R6, [R8,#4] .text:00052EF0 SUB R3, R3, #1 .text:00052EF4 STR R3, [R11,#-0x70] .text:00052EF8 LDR R4, [R11,#-0x70] .text:00052EFC LDR R3, [R6,#0xF8] .text:00052F00 STR R4, [R11,#-0x74] .text:00052F04 CMP R3, #0 .text:00052F08 BNE loc_52F4C .text:00052F0C LDR R5, [R11,#-0x54] .text:00052F10 LDR R2, [R6,#0x184] .text:00052F14 SUBS R3, R6, R5 .text:00052F18 MOVNE R3, #1 .text:00052F1C CMP R2, #0 .text:00052F20 MOVNE R3, #0 .text:00052F24 CMP R3, #0 .text:00052F28 BEQ loc_52F4C .text:00052F2C LDR R3, [R6,#0xF4] .text:00052F30 MOVS R3, R3,LSR#16 .text:00052F34 BEQ loc_52F4C .text:00052F38 LDRB R3, [R6,#0xF6] .text:00052F3C LDRB R2, [R6,#0xF7] .text:00052F40 ORR R3, R3, R2,LSL#8 .text:00052F44 SUB SP, SP, R3,LSL#2 .text:00052F48 STR SP, [R11,#-0x70] .text:00052F4C .text:00052F4C loc_52F4C ; CODE XREF: .text:00052F08j .text:00052F4C ; .text:00052F28j ... .text:00052F4C LDR R3, [R6,#0x1C] .text:00052F50 CMP R3, #0 .text:00052F54 BNE loc_52F70 .text:00052F58 LDR R3, [R6,#0xE8] .text:00052F5C CMP R3, #0 .text:00052F60 BNE loc_52F70 .text:00052F64 LDR R3, [R6,#0xE0] .text:00052F68 CMP R3, #0 .text:00052F6C BEQ loc_53640 .text:00052F70 .text:00052F70 loc_52F70 ; CODE XREF: .text:00052F54j .text:00052F70 ; .text:00052F60j .text:00052F70 LDR R3, [R6,#0x2C] .text:00052F74 LDR R3, [R3,#4] .text:00052F78 STR R6, [R11,#-0x44] .text:00052F7C LDR R0, [R11,#-0x58] .text:00052F80 STR R0, [R11,#-0x40] .text:00052F84 STR R3, [R11,#-0x78] .text:00052F88 STR R3, [R11,#-0x3C] .text:00052F8C LDR R1, [R6,#8] .text:00052F90 STR R1, [R11,#-0x7C] .text:00052F94 LDR R3, [R1] .text:00052F98 MOV R7, R8 .text:00052F9C CMP R3, #0 .text:00052FA0 BEQ loc_53640 .text:00052FA4 .text:00052FA4 loc_52FA4 ; CODE XREF: .text:0005363Cj .text:00052FA4 LDR R2, [R11,#-0x7C] .text:00052FA8 LDR R3, [R2] .text:00052FAC CMP R3, #1 .text:00052FB0 BNE loc_5318C .text:00052FB4 LDR R3, [R2,#4] .text:00052FB8 MOV R10, #0 .text:00052FBC LDR R5, [R11,#-0x78] .text:00052FC0 MOV R1, #0x24 .text:00052FC4 ADD R4, R5, R3 .text:00052FC8 MOV R0, R4 .text:00052FCC BL strchr .text:00052FD0 CMP R0, #0 .text:00052FD4 STR R4, [R11,#-0x80] .text:00052FD8 BEQ loc_52FE8 .text:00052FDC MOV R1, R10 .text:00052FE0 BL _dl_dst_count .text:00052FE4 MOV R10, R0 .text:00052FE8 .text:00052FE8 loc_52FE8 ; CODE XREF: .text:00052FD8j .text:00052FE8 CMP R10, #0 .text:00052FEC BEQ loc_530E8 .text:00052FF0 LDR R3, =__libc_enable_secure .text:00052FF4 LDR R5, [R3] .text:00052FF8 CMP R5, #0 .text:00052FFC BEQ loc_53010 .text:00053000 MOV R0, #0 .text:00053004 LDR R2, =aDstNotAllowe_0 ; "DST not allowed in SUID/SGID programs" .text:00053008 MOV R1, R4 .text:0005300C BL _dl_signal_error .text:00053010 ; --------------------------------------------------------------------------- .text:00053010 .text:00053010 loc_53010 ; CODE XREF: .text:00052FFCj .text:00053010 MOV R0, R4 .text:00053014 BL strlen .text:00053018 LDR R3, [R6,#0x148] .text:0005301C MOV R9, R0 .text:00053020 CMP R3, #0 .text:00053024 BNE loc_53068 .text:00053028 LDR R3, [R6,#4] .text:0005302C LDRB R2, [R3] .text:00053030 CMP R2, #0 .text:00053034 BEQ loc_5304C .text:00053038 LDR R0, =aLL_name00_0 ; "(l)->l_name[0] == '\\0'" .text:0005303C LDR R1, =aDlDeps_c ; "dl-deps.c" .text:00053040 LDR R3, =a_dl_map_obje_0 ; "_dl_map_object_deps" .text:00053044 MOV R2, #0xF3 .text:00053048 BL __assert_fail .text:0005304C ; --------------------------------------------------------------------------- .text:0005304C .text:0005304C loc_5304C ; CODE XREF: .text:00053034j .text:0005304C BL _dl_get_origin .text:00053050 CMP R0, #0 .text:00053054 CMNNE R0, #1 .text:00053058 STR R0, [R6,#0x148] .text:0005305C BEQ loc_5307C .text:00053060 BL strlen .text:00053064 B loc_53080 .text:00053068 ; --------------------------------------------------------------------------- .text:00053068 .text:00053068 loc_53068 ; CODE XREF: .text:00053024j .text:00053068 CMN R3, #1 .text:0005306C BEQ loc_5307C .text:00053070 MOV R0, R3 .text:00053074 BL strlen .text:00053078 B loc_53080 .text:0005307C ; --------------------------------------------------------------------------- .text:0005307C .text:0005307C loc_5307C ; CODE XREF: .text:0005305Cj .text:0005307C ; .text:0005306Cj .text:0005307C MOV R0, R5 .text:00053080 .text:00053080 loc_53080 ; CODE XREF: .text:00053064j .text:00053080 ; .text:00053078j .text:00053080 LDR R2, =_dl_platformlen .text:00053084 LDR R3, [R2] .text:00053088 CMP R3, R0 .text:0005308C MOVCC R3, R0 .text:00053090 SUB R3, R3, #7 .text:00053094 MLA R2, R3, R10, R9 .text:00053098 MOV R1, R4 .text:0005309C MOV R0, R6 .text:000530A0 MOV R3, #0 .text:000530A4 ADD R2, R2, #3 .text:000530A8 BIC R2, R2, #3 .text:000530AC RSB SP, R2, SP .text:000530B0 MOV R2, SP .text:000530B4 BL _dl_dst_substitute .text:000530B8 MOV R4, R0 .text:000530BC LDRB R3, [R4] .text:000530C0 CMP R3, #0 .text:000530C4 BNE loc_530E8 .text:000530C8 LDR R3, =_dl_debug_mask .text:000530CC LDR R2, [R3] .text:000530D0 TST R2, #1 .text:000530D4 BEQ loc_5362C .text:000530D8 LDR R0, =aCannotLoadAuxi ; "cannot load auxiliary `%s' because ofem"... .text:000530DC LDR R1, [R11,#-0x80] .text:000530E0 BL _dl_debug_printf .text:000530E4 B loc_5362C .text:000530E8 ; --------------------------------------------------------------------------- .text:000530E8 .text:000530E8 loc_530E8 ; CODE XREF: .text:00052FECj .text:000530E8 ; .text:000530C4j .text:000530E8 STR R4, [R11,#-0x38] .text:000530EC SUB R0, R11, #0x48 .text:000530F0 SUB R1, R11, #0x4C .text:000530F4 LDR R2, =openaux .text:000530F8 SUB R3, R11, #0x44 .text:000530FC BL _dl_catch_error .text:00053100 CMP R0, #0 .text:00053104 BNE loc_5341C .text:00053108 SUB SP, SP, #0x10 .text:0005310C STR R0, [SP,#0xC] .text:00053110 LDR R1, [R11,#-0x34] .text:00053114 STR R1, [SP,#4] .text:00053118 LDR R2, [R11,#-0x60] .text:0005311C STR SP, [R2,#0xC] .text:00053120 LDR R3, [R11,#-0x64] .text:00053124 ADD R3, R3, #1 .text:00053128 STR R3, [R11,#-0x64] .text:0005312C LDRB R3, [R1,#0x12C] .text:00053130 STR SP, [R11,#-0x60] .text:00053134 MOV R3, R3,LSR#5 .text:00053138 ANDS R3, R3, #3 .text:0005313C BNE loc_53170 .text:00053140 STR R3, [SP] .text:00053144 STR R3, [SP,#8] .text:00053148 LDR R4, [R11,#-0x5C] .text:0005314C STR SP, [R4,#8] .text:00053150 LDR R3, [R11,#-0x30] .text:00053154 ADD R3, R3, #1 .text:00053158 STR R3, [R11,#-0x30] .text:0005315C LDRB R2, [R1,#0x12C] .text:00053160 STR SP, [R11,#-0x5C] .text:00053164 BIC R2, R2, #0x40 .text:00053168 ORR R2, R2, #0x20 .text:0005316C STRB R2, [R1,#0x12C] .text:00053170 .text:00053170 loc_53170 ; CODE XREF: .text:0005313Cj .text:00053170 LDR R5, [R11,#-0x70] .text:00053174 CMP R5, #0 .text:00053178 LDRNE R0, [R11,#-0x74] .text:0005317C STRNE R1, [R5,R0,LSL#2] .text:00053180 ADDNE R0, R0, #1 .text:00053184 STRNE R0, [R11,#-0x74] .text:00053188 B loc_5362C .text:0005318C ; --------------------------------------------------------------------------- .text:0005318C .text:0005318C loc_5318C ; CODE XREF: .text:00052FB0j .text:0005318C CMN R3, #0x80000001 .text:00053190 CMNNE R3, #0x80000003 .text:00053194 BNE loc_5362C .text:00053198 SUB R1, R11, #0x7C .text:0005319C LDMIA R1, {R1,R2} .text:000531A0 MOV R10, #0 .text:000531A4 LDR R3, [R1,#4] .text:000531A8 MOV R1, #0x24 .text:000531AC ADD R4, R2, R3 .text:000531B0 MOV R0, R4 .text:000531B4 BL strchr .text:000531B8 CMP R0, #0 .text:000531BC STR R4, [R11,#-0x84] .text:000531C0 BEQ loc_531D0 .text:000531C4 MOV R1, R10 .text:000531C8 BL _dl_dst_count .text:000531CC MOV R10, R0 .text:000531D0 .text:000531D0 loc_531D0 ; CODE XREF: .text:000531C0j .text:000531D0 CMP R10, #0 .text:000531D4 BEQ loc_532F0 .text:000531D8 LDR R3, =__libc_enable_secure .text:000531DC LDR R5, [R3] .text:000531E0 CMP R5, #0 .text:000531E4 BEQ loc_531F8 .text:000531E8 MOV R0, #0 .text:000531EC LDR R2, =aDstNotAllowe_0 ; "DST not allowed in SUID/SGID programs" .text:000531F0 MOV R1, R4 .text:000531F4 BL _dl_signal_error .text:000531F8 ; --------------------------------------------------------------------------- .text:000531F8 .text:000531F8 loc_531F8 ; CODE XREF: .text:000531E4j .text:000531F8 MOV R0, R4 .text:000531FC BL strlen .text:00053200 LDR R3, [R6,#0x148] .text:00053204 MOV R9, R0 .text:00053208 CMP R3, #0 .text:0005320C BNE loc_53254 .text:00053210 LDR R3, [R6,#4] .text:00053214 LDRB R2, [R3] .text:00053218 CMP R2, #0 .text:0005321C BEQ loc_53238 .text:00053220 LDR R0, =aLL_name00_0 ; "(l)->l_name[0] == '\\0'" .text:00053224 LDR R1, =aDlDeps_c ; "dl-deps.c" .text:00053228 MOV R2, #0x120 .text:0005322C LDR R3, =a_dl_map_obje_0 ; "_dl_map_object_deps" .text:00053230 ADD R2, R2, #1 .text:00053234 BL __assert_fail .text:00053238 ; --------------------------------------------------------------------------- .text:00053238 .text:00053238 loc_53238 ; CODE XREF: .text:0005321Cj .text:00053238 BL _dl_get_origin .text:0005323C CMP R0, #0 .text:00053240 CMNNE R0, #1 .text:00053244 STR R0, [R6,#0x148] .text:00053248 BEQ loc_53268 .text:0005324C BL strlen .text:00053250 B loc_5326C .text:00053254 ; --------------------------------------------------------------------------- .text:00053254 .text:00053254 loc_53254 ; CODE XREF: .text:0005320Cj .text:00053254 CMN R3, #1 .text:00053258 BEQ loc_53268 .text:0005325C MOV R0, R3 .text:00053260 BL strlen .text:00053264 B loc_5326C .text:00053268 ; --------------------------------------------------------------------------- .text:00053268 .text:00053268 loc_53268 ; CODE XREF: .text:00053248j .text:00053268 ; .text:00053258j .text:00053268 MOV R0, R5 .text:0005326C .text:0005326C loc_5326C ; CODE XREF: .text:00053250j .text:0005326C ; .text:00053264j .text:0005326C LDR R3, =_dl_platformlen .text:00053270 LDR R2, [R3] .text:00053274 CMP R2, R0 .text:00053278 MOVCC R2, R0 .text:0005327C SUB R2, R2, #7 .text:00053280 MLA R12, R2, R10, R9 .text:00053284 MOV R1, R4 .text:00053288 MOV R3, #0 .text:0005328C MOV R0, R6 .text:00053290 ADD R12, R12, #3 .text:00053294 BIC R12, R12, #3 .text:00053298 RSB SP, R12, SP .text:0005329C MOV R2, SP .text:000532A0 BL _dl_dst_substitute .text:000532A4 MOV R4, R0 .text:000532A8 LDRB R0, [R4] .text:000532AC CMP R0, #0 .text:000532B0 BNE loc_532F0 .text:000532B4 LDR R4, [R11,#-0x7C] .text:000532B8 LDR R3, [R4] .text:000532BC CMN R3, #0x80000003 .text:000532C0 BNE loc_532D0 .text:000532C4 LDR R2, =aEmptyDynamicsS ; "empty dynamics string token substitutio"... .text:000532C8 LDR R1, [R11,#-0x84] .text:000532CC BL _dl_signal_error .text:000532D0 ; --------------------------------------------------------------------------- .text:000532D0 .text:000532D0 loc_532D0 ; CODE XREF: .text:000532C0j .text:000532D0 LDR R3, =_dl_debug_mask .text:000532D4 LDR R2, [R3] .text:000532D8 TST R2, #1 .text:000532DC BEQ loc_5362C .text:000532E0 LDR R0, =aCannotLoadAuxi ; "cannot load auxiliary `%s' because ofem"... .text:000532E4 LDR R1, [R11,#-0x84] .text:000532E8 BL _dl_debug_printf .text:000532EC B loc_5362C .text:000532F0 ; --------------------------------------------------------------------------- .text:000532F0 .text:000532F0 loc_532F0 ; CODE XREF: .text:000531D4j .text:000532F0 ; .text:000532B0j .text:000532F0 STR R4, [R11,#-0x38] .text:000532F4 LDR R5, [R11,#-0x7C] .text:000532F8 LDR R3, [R5] .text:000532FC CMN R3, #0x80000003 .text:00053300 BNE loc_533CC .text:00053304 LDR R3, =_dl_debug_mask .text:00053308 LDR R2, [R3] .text:0005330C TST R2, #1 .text:00053310 BEQ loc_53338 .text:00053314 LDR R2, [R6,#4] .text:00053318 LDRB R3, [R2] .text:0005331C LDR R0, =aLoadAuxiliaryO ; "load auxiliary object=%s requested by f"... .text:00053320 CMP R3, #0 .text:00053324 LDREQ R3, =_dl_argv .text:00053328 LDREQ R2, [R3] .text:0005332C LDREQ R2, [R2] .text:00053330 MOV R1, R4 .text:00053334 BL _dl_debug_printf .text:00053338 .text:00053338 loc_53338 ; CODE XREF: .text:00053310j .text:00053338 SUB R0, R11, #0x50 .text:0005333C SUB R1, R11, #0x4C .text:00053340 LDR R2, =openaux .text:00053344 SUB R3, R11, #0x44 .text:00053348 BL _dl_catch_error .text:0005334C CMP R0, #0 .text:00053350 BEQ loc_53438 .text:00053354 LDR R0, [R11,#-0x4C] .text:00053358 CMP R0, #0 .text:0005335C BNE loc_53378 .text:00053360 LDR R0, =aErrstringVoid0 ; "errstring != ((void *)0)" .text:00053364 LDR R1, =aDlDeps_c ; "dl-deps.c" .text:00053368 MOV R2, #0x130 .text:0005336C LDR R3, =a_dl_map_obje_0 ; "_dl_map_object_deps" .text:00053370 ADD R2, R2, #3 .text:00053374 BL __assert_fail .text:00053378 ; --------------------------------------------------------------------------- .text:00053378 .text:00053378 loc_53378 ; CODE XREF: .text:0005335Cj .text:00053378 LDR R3, =_dl_out_of_memory ; "out of memory" .text:0005337C CMP R0, R3 .text:00053380 BEQ loc_53388 .text:00053384 BL free .text:00053388 .text:00053388 loc_53388 ; CODE XREF: .text:00053380j .text:00053388 MOV R3, #0 .text:0005338C STR R3, [R11,#-0x4C] .text:00053390 B loc_5362C .text:00053390 ; --------------------------------------------------------------------------- .text:00053394 off_53394 DCD __libc_enable_secure ; DATA XREF: .text:00052FF0r .text:00053394 ; .text:000531D8r .text:00053398 off_53398 DCD aDstNotAllowe_0 ; DATA XREF: .text:00053004r .text:00053398 ; .text:000531ECr .text:00053398 ; "DST not allowed in SUID/SGID programs" .text:0005339C off_5339C DCD aLL_name00_0 ; DATA XREF: .text:00053038r .text:0005339C ; .text:00053220r .text:0005339C ; "(l)->l_name[0] == '\\0'" .text:000533A0 off_533A0 DCD aDlDeps_c ; DATA XREF: .text:0005303Cr .text:000533A0 ; .text:00053224r ... .text:000533A0 ; "dl-deps.c" .text:000533A4 off_533A4 DCD a_dl_map_obje_0 ; DATA XREF: .text:00053040r .text:000533A4 ; .text:0005322Cr ... .text:000533A4 ; "_dl_map_object_deps" .text:000533A8 off_533A8 DCD _dl_platformlen ; DATA XREF: .text:loc_53080r .text:000533A8 ; .text:loc_5326Cr .text:000533AC off_533AC DCD _dl_debug_mask ; DATA XREF: .text:000530C8r .text:000533AC ; .text:loc_532D0r ... .text:000533B0 off_533B0 DCD aCannotLoadAuxi ; DATA XREF: .text:000530D8r .text:000533B0 ; .text:000532E0r .text:000533B0 ; "cannot load auxiliary `%s' because ofem"... .text:000533B4 off_533B4 DCD openaux ; DATA XREF: .text:000530F4r .text:000533B4 ; .text:00053340r .text:000533B8 off_533B8 DCD aEmptyDynamicsS ; DATA XREF: .text:000532C4r .text:000533B8 ; "empty dynamics string token substitutio"... .text:000533BC off_533BC DCD aLoadAuxiliaryO ; DATA XREF: .text:0005331Cr .text:000533BC ; "load auxiliary object=%s requested by f"... .text:000533C0 off_533C0 DCD _dl_argv ; DATA XREF: .text:00053324r .text:000533C4 off_533C4 DCD aErrstringVoid0 ; DATA XREF: .text:00053360r .text:000533C4 ; "errstring != ((void *)0)" .text:000533C8 off_533C8 DCD _dl_out_of_memory ; DATA XREF: .text:loc_53378r .text:000533C8 ; "out of memory" .text:000533CC ; --------------------------------------------------------------------------- .text:000533CC .text:000533CC loc_533CC ; CODE XREF: .text:00053300j .text:000533CC LDR R3, =_dl_debug_mask .text:000533D0 LDR R2, [R3] .text:000533D4 TST R2, #1 .text:000533D8 BEQ loc_53400 .text:000533DC LDR R2, [R6,#4] .text:000533E0 LDRB R3, [R2] .text:000533E4 LDR R0, =aLoadFilteredOb ; "load filtered object=%s requested by fi"... .text:000533E8 CMP R3, #0 .text:000533EC LDREQ R3, =_dl_argv .text:000533F0 LDREQ R2, [R3] .text:000533F4 LDREQ R2, [R2] .text:000533F8 MOV R1, R4 .text:000533FC BL _dl_debug_printf .text:00053400 .text:00053400 loc_53400 ; CODE XREF: .text:000533D8j .text:00053400 SUB R0, R11, #0x50 .text:00053404 SUB R1, R11, #0x4C .text:00053408 LDR R2, =openaux .text:0005340C SUB R3, R11, #0x44 .text:00053410 BL _dl_catch_error .text:00053414 CMP R0, #0 .text:00053418 BEQ loc_53438 .text:0005341C .text:0005341C loc_5341C ; CODE XREF: .text:00053104j .text:0005341C BL __errno_location .text:00053420 LDR R3, [R0] .text:00053424 CMP R3, #0 .text:00053428 BNE loc_53720 .text:0005342C MOV R0, 0xFFFFFFFF .text:00053430 STR R0, [R11,#-0x6C] .text:00053434 B loc_536B8 .text:00053438 ; --------------------------------------------------------------------------- .text:00053438 .text:00053438 loc_53438 ; CODE XREF: .text:00053350j .text:00053438 ; .text:00053418j .text:00053438 LDMIA R7, {R0-R3} .text:0005343C SUB SP, SP, #0x10 .text:00053440 STMEA SP, {R0-R3} .text:00053444 STR SP, [R7,#0xC] .text:00053448 MOV R3, #0 .text:0005344C STR R3, [R7] .text:00053450 LDR R1, [R11,#-0x70] .text:00053454 MOV R12, SP .text:00053458 LDR R2, [R11,#-0x34] .text:0005345C CMP R1, R3 .text:00053460 STR R2, [R7,#4] .text:00053464 BEQ loc_5347C .text:00053468 LDR R3, [R11,#-0x34] .text:0005346C LDR R2, [R11,#-0x74] .text:00053470 STR R3, [R1,R2,LSL#2] .text:00053474 ADD R2, R2, #1 .text:00053478 STR R2, [R11,#-0x74] .text:0005347C .text:0005347C loc_5347C ; CODE XREF: .text:00053464j .text:0005347C LDR R2, [R11,#-0x34] .text:00053480 LDRB R3, [R2,#0x12C] .text:00053484 TST R3, #0x60 .text:00053488 BEQ loc_53570 .text:0005348C LDR R4, [R11,#-0x64] .text:00053490 MOV R1, SP .text:00053494 LDR R3, [SP,#8] .text:00053498 ADD LR, R4, #1 .text:0005349C B loc_534A8 .text:000534A0 ; --------------------------------------------------------------------------- .text:000534A0 .text:000534A0 loc_534A0 ; CODE XREF: .text:000534B8j .text:000534A0 LDR R1, [R1,#8] .text:000534A4 LDR R3, [R1,#8] .text:000534A8 .text:000534A8 loc_534A8 ; CODE XREF: .text:0005349Cj .text:000534A8 CMP R3, #0 .text:000534AC BEQ loc_534BC .text:000534B0 LDR R3, [R3,#4] .text:000534B4 CMP R3, R2 .text:000534B8 BNE loc_534A0 .text:000534BC .text:000534BC loc_534BC ; CODE XREF: .text:000534ACj .text:000534BC LDR R3, [R1,#8] .text:000534C0 CMP R3, #0 .text:000534C4 BEQ loc_5354C .text:000534C8 STR R12, [R7,#8] .text:000534CC LDR R2, [R1,#8] .text:000534D0 LDR R3, [R2,#8] .text:000534D4 STR R3, [R1,#8] .text:000534D8 LDR R5, [R11,#-0x5C] .text:000534DC LDR R3, [R11,#-0x34] .text:000534E0 MOV R4, R5 .text:000534E4 CMP R4, R2 .text:000534E8 LDR R0, [R3,#0x10] .text:000534EC MOVEQ R5, R1 .text:000534F0 STR R5, [R11,#-0x5C] .text:000534F4 CMP R0, #0 .text:000534F8 LDRNE R3, [R3,#0xC] .text:000534FC STRNE R3, [R0,#0xC] .text:00053500 LDR R3, [R11,#-0x34] .text:00053504 LDR R2, [R3,#0xC] .text:00053508 CMP R2, #0 .text:0005350C LDRNE R3, [R3,#0x10] .text:00053510 STRNE R3, [R2,#0x10] .text:00053514 LDR R2, [R12,#4] .text:00053518 LDR R1, [R11,#-0x34] .text:0005351C LDR R3, [R2,#0x10] .text:00053520 STR R3, [R1,#0x10] .text:00053524 LDR R3, [R11,#-0x34] .text:00053528 LDR R2, [R12,#4] .text:0005352C STR R3, [R2,#0x10] .text:00053530 LDR R2, [R11,#-0x34] .text:00053534 LDR R3, [R2,#0x10] .text:00053538 CMP R3, #0 .text:0005353C STRNE R2, [R3,#0xC] .text:00053540 LDR R2, [R11,#-0x34] .text:00053544 LDR R3, [R12,#4] .text:00053548 B loc_535F8 .text:0005354C ; --------------------------------------------------------------------------- .text:0005354C .text:0005354C loc_5354C ; CODE XREF: .text:000534C4j .text:0005354C STR R3, [R7,#8] .text:00053550 LDR R1, [R11,#-0x2C] .text:00053554 B loc_5355C .text:00053558 ; --------------------------------------------------------------------------- .text:00053558 .text:00053558 loc_53558 ; CODE XREF: .text:00053564j .text:00053558 LDR R1, [R1,#8] .text:0005355C .text:0005355C loc_5355C ; CODE XREF: .text:00053554j .text:0005355C LDR R3, [R1,#8] .text:00053560 CMP R3, R7 .text:00053564 BNE loc_53558 .text:00053568 STR R12, [R1,#8] .text:0005356C B loc_535FC .text:00053570 ; --------------------------------------------------------------------------- .text:00053570 .text:00053570 loc_53570 ; CODE XREF: .text:00053488j .text:00053570 STR SP, [R7,#8] .text:00053574 LDR R3, [R11,#-0x30] .text:00053578 ADD R3, R3, #1 .text:0005357C STR R3, [R11,#-0x30] .text:00053580 LDR R2, [R11,#-0x34] .text:00053584 LDRB R3, [R2,#0x12C] .text:00053588 BIC R3, R3, #0x40 .text:0005358C ORR R3, R3, #0x20 .text:00053590 STRB R3, [R2,#0x12C] .text:00053594 LDR R3, [R11,#-0x34] .text:00053598 LDR R2, [R3,#0x10] .text:0005359C CMP R2, #0 .text:000535A0 LDRNE R3, [R3,#0xC] .text:000535A4 STRNE R3, [R2,#0xC] .text:000535A8 LDR R3, [R11,#-0x34] .text:000535AC LDR R2, [R3,#0xC] .text:000535B0 CMP R2, #0 .text:000535B4 LDRNE R3, [R3,#0x10] .text:000535B8 STRNE R3, [R2,#0x10] .text:000535BC LDR R2, [SP,#4] .text:000535C0 LDR R1, [R11,#-0x34] .text:000535C4 LDR R3, [R2,#0x10] .text:000535C8 STR R3, [R1,#0x10] .text:000535CC LDR R2, [SP,#4] .text:000535D0 LDR R3, [R11,#-0x34] .text:000535D4 STR R3, [R2,#0x10] .text:000535D8 LDR R2, [R11,#-0x34] .text:000535DC LDR R3, [R2,#0x10] .text:000535E0 CMP R3, #0 .text:000535E4 STRNE R2, [R3,#0xC] .text:000535E8 LDR R2, [R11,#-0x34] .text:000535EC LDR R5, [R11,#-0x64] .text:000535F0 LDR R3, [SP,#4] .text:000535F4 ADD LR, R5, #1 .text:000535F8 .text:000535F8 loc_535F8 ; CODE XREF: .text:00053548j .text:000535F8 STR R3, [R2,#0xC] .text:000535FC .text:000535FC loc_535FC ; CODE XREF: .text:0005356Cj .text:000535FC LDR R0, [R11,#-0x5C] .text:00053600 LDR R2, [R11,#-0x60] .text:00053604 STR LR, [R11,#-0x64] .text:00053608 MOV R1, R0 .text:0005360C CMP R7, R1 .text:00053610 MOVEQ R0, R12 .text:00053614 MOV R3, R2 .text:00053618 CMP R7, R3 .text:0005361C STR R0, [R11,#-0x5C] .text:00053620 MOVEQ R2, R12 .text:00053624 MOV R7, R12 .text:00053628 STR R2, [R11,#-0x60] .text:0005362C .text:0005362C loc_5362C ; CODE XREF: .text:000530D4j .text:0005362C ; .text:000530E4j ... .text:0005362C LDR R4, [R11,#-0x7C] .text:00053630 LDR R3, [R4,#8]! .text:00053634 CMP R3, #0 .text:00053638 STR R4, [R11,#-0x7C] .text:0005363C BNE loc_52FA4 .text:00053640 .text:00053640 loc_53640 ; CODE XREF: .text:00052F6Cj .text:00053640 ; .text:00052FA0j .text:00053640 LDR R5, [R11,#-0x70] .text:00053644 CMP R5, #0 .text:00053648 BEQ loc_536A4 .text:0005364C LDR R0, [R11,#-0x74] .text:00053650 MOV R3, #0 .text:00053654 STR R3, [R5,R0,LSL#2] .text:00053658 ADD R0, R0, #1 .text:0005365C MOV R4, R0,LSL#2 .text:00053660 MOV R0, R4 .text:00053664 BL malloc .text:00053668 CMP R0, #0 .text:0005366C STR R0, [R6,#0x184] .text:00053670 BNE loc_53688 .text:00053674 LDR R2, [R11,#-0x54] .text:00053678 LDR R1, [R2,#4] .text:0005367C LDR R2, =aCannotAlloca_1 ; "cannot allocate dependency list" .text:00053680 MOV R0, #0xC .text:00053684 BL _dl_signal_error .text:00053688 ; --------------------------------------------------------------------------- .text:00053688 .text:00053688 loc_53688 ; CODE XREF: .text:00053670j .text:00053688 LDR R1, [R11,#-0x70] .text:0005368C MOV R2, R4 .text:00053690 BL memcpy .text:00053694 B loc_536A4 .text:00053698 ; --------------------------------------------------------------------------- .text:00053698 .text:00053698 loc_53698 ; CODE XREF: .text:000536ACj .text:00053698 LDR R8, [R8,#8] .text:0005369C CMP R8, #0 .text:000536A0 BEQ loc_536B0 .text:000536A4 .text:000536A4 loc_536A4 ; CODE XREF: .text:00053648j .text:000536A4 ; .text:00053694j .text:000536A4 LDR R3, [R8] .text:000536A8 CMP R3, #0 .text:000536AC BNE loc_53698 .text:000536B0 .text:000536B0 loc_536B0 ; CODE XREF: .text:000536A0j .text:000536B0 CMP R8, #0 .text:000536B4 BNE loc_52EE4 .text:000536B8 .text:000536B8 loc_536B8 ; CODE XREF: .text:00052EE0j .text:000536B8 ; .text:00053434j ... .text:000536B8 BL __errno_location .text:000536BC LDR R3, [R0] .text:000536C0 CMP R3, #0 .text:000536C4 BNE loc_536E0 .text:000536C8 LDR R3, [R11,#-0x68] .text:000536CC CMP R3, #0 .text:000536D0 BEQ loc_536E0 .text:000536D4 BL __errno_location .text:000536D8 LDR R4, [R11,#-0x68] .text:000536DC STR R4, [R0] .text:000536E0 .text:000536E0 loc_536E0 ; CODE XREF: .text:000536C4j .text:000536E0 ; .text:000536D0j .text:000536E0 LDR R5, [R11,#-0x54] .text:000536E4 LDR R0, [R5,#0x184] .text:000536E8 CMP R0, #0 .text:000536EC BEQ loc_53734 .text:000536F0 LDRB R3, [R5,#0x12C] .text:000536F4 AND R3, R3, #3 .text:000536F8 CMP R3, #2 .text:000536FC BNE loc_53734 .text:00053700 LDR R3, [R5,#0xF8] .text:00053704 CMP R3, #0 .text:00053708 BEQ loc_53730 .text:0005370C LDR R0, =aMapL_searchlis ; "map->l_searchlist.r_list == ((void *)0)"... .text:00053710 LDR R1, =aDlDeps_c ; "dl-deps.c" .text:00053714 LDR R3, =a_dl_map_obje_0 ; "_dl_map_object_deps" .text:00053718 MOV R2, #0x1E8 .text:0005371C BL __assert_fail .text:00053720 ; --------------------------------------------------------------------------- .text:00053720 .text:00053720 loc_53720 ; CODE XREF: .text:00053428j .text:00053720 BL __errno_location .text:00053724 LDR R0, [R0] .text:00053728 STR R0, [R11,#-0x6C] .text:0005372C B loc_536B8 .text:00053730 ; --------------------------------------------------------------------------- .text:00053730 .text:00053730 loc_53730 ; CODE XREF: .text:00053708j .text:00053730 BL free .text:00053734 .text:00053734 loc_53734 ; CODE XREF: .text:000536ECj .text:00053734 ; .text:000536FCj .text:00053734 LDR R3, [R11,#-0x30] .text:00053738 LDR R0, [R11,#-0x64] .text:0005373C CMP R3, R0 .text:00053740 MOV R3, R3,LSL#1 .text:00053744 ADD R0, R3, #1 .text:00053748 LDRNE R1, [R11,#-0x64] .text:0005374C ADDNE R3, R0, R1 .text:00053750 MOVNE R0, R3,LSL#2 .text:00053754 MOVEQ R0, R0,LSL#2 .text:00053758 BL malloc .text:0005375C LDR R2, [R11,#-0x54] .text:00053760 CMP R0, #0 .text:00053764 STR R0, [R2,#0x184] .text:00053768 BNE loc_537A0 .text:0005376C LDR R1, [R2,#4] .text:00053770 LDR R2, =aCannotAlloca_2 ; "cannot allocate symbol search list" .text:00053774 MOV R0, #0xC .text:00053778 BL _dl_signal_error .text:00053778 ; --------------------------------------------------------------------------- .text:0005377C off_5377C DCD _dl_debug_mask ; DATA XREF: .text:loc_533CCr .text:00053780 off_53780 DCD aLoadFilteredOb ; DATA XREF: .text:000533E4r .text:00053780 ; "load filtered object=%s requested by fi"... .text:00053784 off_53784 DCD _dl_argv ; DATA XREF: .text:000533ECr .text:00053788 off_53788 DCD openaux ; DATA XREF: .text:00053408r .text:0005378C off_5378C DCD aCannotAlloca_1 ; DATA XREF: .text:0005367Cr .text:0005378C ; "cannot allocate dependency list" .text:00053790 off_53790 DCD aMapL_searchlis ; DATA XREF: .text:0005370Cr .text:00053790 ; "map->l_searchlist.r_list == ((void *)0)"... .text:00053794 off_53794 DCD aDlDeps_c ; DATA XREF: .text:00053710r .text:00053794 ; "dl-deps.c" .text:00053798 off_53798 DCD a_dl_map_obje_0 ; DATA XREF: .text:00053714r .text:00053798 ; "_dl_map_object_deps" .text:0005379C off_5379C DCD aCannotAlloca_2 ; DATA XREF: .text:00053770r .text:0005379C ; "cannot allocate symbol search list" .text:000537A0 ; --------------------------------------------------------------------------- .text:000537A0 .text:000537A0 loc_537A0 ; CODE XREF: .text:00053768j .text:000537A0 SUB R1, R11, #0x30 .text:000537A4 LDMIA R1, {R1,R8} .text:000537A8 LDR R4, [R11,#-0x54] .text:000537AC MOV R2, #0 .text:000537B0 STR R2, [R11,#-0x30] .text:000537B4 MOV R3, R1,LSL#2 .text:000537B8 ADD R3, R3, #4 .text:000537BC ADD R3, R0, R3 .text:000537C0 STR R3, [R4,#0xF8] .text:000537C4 CMP R8, R2 .text:000537C8 STR R1, [R4,#0xFC] .text:000537CC BEQ loc_53838 .text:000537D0 .text:000537D0 loc_537D0 ; CODE XREF: .text:00053834j .text:000537D0 LDR R5, [R11,#-0x58] .text:000537D4 CMP R5, #0 .text:000537D8 BEQ loc_53800 .text:000537DC LDR R3, [R8,#4] .text:000537E0 LDRB R2, [R3,#0x12D] .text:000537E4 TST R2, #2 .text:000537E8 BEQ loc_53800 .text:000537EC LDR R0, [R11,#-0x54] .text:000537F0 LDR R3, [R0,#0xFC] .text:000537F4 SUB R3, R3, #1 .text:000537F8 STR R3, [R0,#0xFC] .text:000537FC B loc_5381C .text:00053800 ; --------------------------------------------------------------------------- .text:00053800 .text:00053800 loc_53800 ; CODE XREF: .text:000537D8j .text:00053800 ; .text:000537E8j .text:00053800 LDR R2, [R11,#-0x54] .text:00053804 LDR R3, [R11,#-0x30] .text:00053808 LDR R1, [R2,#0xF8] .text:0005380C LDR R2, [R8,#4] .text:00053810 STR R2, [R1,R3,LSL#2] .text:00053814 ADD R3, R3, #1 .text:00053818 STR R3, [R11,#-0x30] .text:0005381C .text:0005381C loc_5381C ; CODE XREF: .text:000537FCj .text:0005381C LDR R2, [R8,#4] .text:00053820 LDRB R3, [R2,#0x12C] .text:00053824 BIC R3, R3, #0x60 .text:00053828 STRB R3, [R2,#0x12C] .text:0005382C LDR R8, [R8,#8] .text:00053830 CMP R8, #0 .text:00053834 BNE loc_537D0 .text:00053838 .text:00053838 loc_53838 ; CODE XREF: .text:000537CCj .text:00053838 LDR R2, [R11,#-0x30] .text:0005383C LDR R4, [R11,#-0x64] .text:00053840 LDR R3, [R11,#-0x54] .text:00053844 CMP R2, R4 .text:00053848 STR R4, [R3,#0x104] .text:0005384C LDREQ R5, [R11,#-0x54] .text:00053850 LDREQ R3, [R5,#0xF8] .text:00053854 STREQ R3, [R5,#0x100] .text:00053858 BEQ loc_538C8 .text:0005385C LDR R8, [R11,#-0x2C] .text:00053860 LDR R0, [R11,#-0x54] .text:00053864 MOV R1, #0 .text:00053868 LDR R3, [R0,#0xF8] .text:0005386C CMP R8, R1 .text:00053870 ADD R3, R3, R2,LSL#2 .text:00053874 STR R3, [R0,#0x100] .text:00053878 BEQ loc_538C8 .text:0005387C .text:0005387C loc_5387C ; CODE XREF: .text:000538C4j .text:0005387C LDR R2, [R11,#-0x58] .text:00053880 CMP R2, #0 .text:00053884 LDR R2, [R8,#4] .text:00053888 BEQ loc_538AC .text:0005388C LDRB R3, [R2,#0x12D] .text:00053890 TST R3, #2 .text:00053894 BEQ loc_538AC .text:00053898 LDR R4, [R11,#-0x54] .text:0005389C LDR R3, [R4,#0x104] .text:000538A0 SUB R3, R3, #1 .text:000538A4 STR R3, [R4,#0x104] .text:000538A8 B loc_538BC .text:000538AC ; --------------------------------------------------------------------------- .text:000538AC .text:000538AC loc_538AC ; CODE XREF: .text:00053888j .text:000538AC ; .text:00053894j .text:000538AC LDR R5, [R11,#-0x54] .text:000538B0 LDR R3, [R5,#0x100] .text:000538B4 STR R2, [R3,R1,LSL#2] .text:000538B8 ADD R1, R1, #1 .text:000538BC .text:000538BC loc_538BC ; CODE XREF: .text:000538A8j .text:000538BC LDR R8, [R8,#0xC] .text:000538C0 CMP R8, #0 .text:000538C4 BNE loc_5387C .text:000538C8 .text:000538C8 loc_538C8 ; CODE XREF: .text:00053858j .text:000538C8 ; .text:00053878j .text:000538C8 LDR R1, [R11,#-0x54] .text:000538CC LDR R2, [R11,#-0x30] .text:000538D0 LDR R0, [R1,#0x184] .text:000538D4 LDR R1, [R1,#0xF8] .text:000538D8 MOV R2, R2,LSL#2 .text:000538DC BL memcpy .text:000538E0 LDR R3, [R11,#-0x30] .text:000538E4 MOV R6, #1 .text:000538E8 CMP R6, R3 .text:000538EC BCS loc_539BC .text:000538F0 .text:000538F0 loc_538F0 ; CODE XREF: .text:000539B8j .text:000538F0 LDR R2, [R11,#-0x54] .text:000538F4 LDR R3, [R2,#0xF8] .text:000538F8 LDR R2, [R2,#0x184] .text:000538FC LDR R7, [R3,R6,LSL#2] .text:00053900 MOV R5, #1 .text:00053904 LDR R3, [R2,#4] .text:00053908 ADD R8, R6, R5 .text:0005390C LDR R0, [R11,#-0x30] .text:00053910 CMP R3, R7 .text:00053914 BEQ loc_5392C .text:00053918 MOV R1, R2 .text:0005391C .text:0005391C loc_5391C ; CODE XREF: .text:00053928j .text:0005391C ADD R5, R5, #1 .text:00053920 LDR R3, [R1,R5,LSL#2] .text:00053924 CMP R3, R7 .text:00053928 BNE loc_5391C .text:0005392C .text:0005392C loc_5392C ; CODE XREF: .text:00053914j .text:0005392C ADD R12, R5, #1 .text:00053930 CMP R12, R0 .text:00053934 BCS loc_539AC .text:00053938 .text:00053938 loc_53938 ; CODE XREF: .text:000539A8j .text:00053938 LDR R3, [R2,R12,LSL#2] .text:0005393C LDR R2, [R3,#0x184] .text:00053940 ADD R6, R12, #1 .text:00053944 CMP R2, #0 .text:00053948 BEQ loc_53994 .text:0005394C B loc_53954 .text:00053950 ; --------------------------------------------------------------------------- .text:00053950 .text:00053950 loc_53950 ; CODE XREF: .text:00053964j .text:00053950 ADD R2, R2, #4 .text:00053954 .text:00053954 loc_53954 ; CODE XREF: .text:0005394Cj .text:00053954 LDR R3, [R2] .text:00053958 CMP R3, #0 .text:0005395C BEQ loc_53994 .text:00053960 CMP R3, R7 .text:00053964 BNE loc_53950 .text:00053968 LDR R4, [R11,#-0x54] .text:0005396C RSB R2, R5, R12 .text:00053970 LDR R3, [R4,#0x184] .text:00053974 MOV R2, R2,LSL#2 .text:00053978 ADD R1, R3, R5,LSL#2 .text:0005397C ADD R0, R1, #4 .text:00053980 LDR R4, [R3,R12,LSL#2] .text:00053984 BL memmove .text:00053988 LDR R0, [R11,#-0x54] .text:0005398C LDR R3, [R0,#0x184] .text:00053990 STR R4, [R3,R5,LSL#2] .text:00053994 .text:00053994 loc_53994 ; CODE XREF: .text:00053948j .text:00053994 ; .text:0005395Cj .text:00053994 LDR R3, [R11,#-0x30] .text:00053998 MOV R12, R6 .text:0005399C LDR R1, [R11,#-0x54] .text:000539A0 CMP R12, R3 .text:000539A4 LDR R2, [R1,#0x184] .text:000539A8 BCC loc_53938 .text:000539AC .text:000539AC loc_539AC ; CODE XREF: .text:00053934j .text:000539AC LDR R3, [R11,#-0x30] .text:000539B0 MOV R6, R8 .text:000539B4 CMP R6, R3 .text:000539B8 BCC loc_538F0 .text:000539BC .text:000539BC loc_539BC ; CODE XREF: .text:000538ECj .text:000539BC LDR R1, [R11,#-0x30] .text:000539C0 LDR R2, [R11,#-0x6C] .text:000539C4 LDR R3, [R11,#-0x54] .text:000539C8 CMP R2, #0 .text:000539CC LDR R2, [R3,#0x184] .text:000539D0 MOV R3, #0 .text:000539D4 STR R3, [R2,R1,LSL#2] .text:000539D8 BEQ locret_53A0C .text:000539DC LDR R3, [R11,#-0x4C] .text:000539E0 LDR R1, =dword_62C6C .text:000539E4 LDR R0, [R11,#-0x6C] .text:000539E8 LDR R2, =aCannotLoadShar ; "cannot load shared object file" .text:000539EC MOV R4, R0 .text:000539F0 CMN R4, #1 .text:000539F4 MOVEQ R0, #0 .text:000539F8 CMP R3, #0 .text:000539FC MOVNE R1, R3 .text:00053A00 BL _dl_signal_error .text:00053A00 ; --------------------------------------------------------------------------- .text:00053A04 off_53A04 DCD dword_62C6C ; DATA XREF: .text:000539E0r .text:00053A08 off_53A08 DCD aCannotLoadShar ; DATA XREF: .text:000539E8r .text:00053A08 ; "cannot load shared object file" .text:00053A0C ; --------------------------------------------------------------------------- .text:00053A0C .text:00053A0C locret_53A0C ; CODE XREF: .text:000539D8j .text:00053A0C LDMDB R11, {R4-R11,SP,PC} .text:00053A10 .text:00053A10 ; =============== S U B R O U T I N E ======================================= .text:00053A10 .text:00053A10 ; Attributes: bp-based frame .text:00053A10 .text:00053A10 fixup ; CODE XREF: _dl_runtime_resolve+14p .text:00053A10 .text:00053A10 var_38 = -0x38 .text:00053A10 var_34 = -0x34 .text:00053A10 var_28 = -0x28 .text:00053A10 .text:00053A10 MOV R12, SP .text:00053A14 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00053A18 MOV LR, R0 .text:00053A1C SUB SP, SP, #0x10 .text:00053A20 LDR R3, [LR,#0x74] .text:00053A24 SUB R11, R12, #4 .text:00053A28 LDR R12, [R3,#4] .text:00053A2C ADD R3, R12, R1 .text:00053A30 LDR R0, [R3,#4] .text:00053A34 SUB SP, SP, #4 .text:00053A38 LDR R3, [LR,#0x30] .text:00053A3C MOV R2, R0 .text:00053A40 LDR R6, [R3,#4] .text:00053A44 AND R7, R2, #0xFF .text:00053A48 LDR R3, [LR,#0x2C] .text:00053A4C MOV R4, R0,LSR#8 .text:00053A50 LDR R0, [LR] .text:00053A54 CMP R7, #0x16 .text:00053A58 LDR R8, [R3,#4] .text:00053A5C MOV R5, R4,LSL#4 .text:00053A60 LDR R3, [R12,R1] .text:00053A64 ADD R2, R6, R5 .text:00053A68 STR R2, [R11,#var_28] .text:00053A6C ADD R10, R0, R3 .text:00053A70 BEQ loc_53A88 .text:00053A74 LDR R0, =aRelocR_info0xf ; "((reloc->r_info) & 0xff) == 22" .text:00053A78 LDR R1, =aDlRuntime_c ; "dl-runtime.c" .text:00053A7C LDR R3, =aFixup ; "fixup" .text:00053A80 MOV R2, #0x48 .text:00053A84 BL __assert_fail .text:00053A88 ; --------------------------------------------------------------------------- .text:00053A88 .text:00053A88 loc_53A88 ; CODE XREF: fixup+60j .text:00053A88 LDRB R3, [R2,#0xD] .text:00053A8C ANDS R12, R3, #3 .text:00053A90 BNE loc_53B38 .text:00053A94 LDR R3, [LR,#0xDC] .text:00053A98 CMP R3, #0 .text:00053A9C BEQ loc_53AEC .text:00053AA0 LDR R1, [R3,#4] .text:00053AA4 MOV R3, R4,LSL#1 .text:00053AA8 LDRB R2, [R3,R1] .text:00053AAC ADD R3, R3, R1 .text:00053AB0 LDRB R0, [R3,#1] .text:00053AB4 LDR R1, [LR,#0x134] .text:00053AB8 ORR R2, R2, R0,LSL#8 .text:00053ABC ADD R2, R1, R2,LSL#4 .text:00053AC0 LDR R3, [R2,#4] .text:00053AC4 CMP R3, #0 .text:00053AC8 BEQ loc_53AEC .text:00053ACC LDR R0, [R6,R5] .text:00053AD0 STMEA SP, {R2,R7,R12} .text:00053AD4 MOV R1, LR .text:00053AD8 SUB R2, R11, #-var_28 .text:00053ADC ADD R3, R1, #0x154 .text:00053AE0 ADD R0, R8, R0 .text:00053AE4 BL _dl_lookup_versioned_symbol .text:00053AE8 B loc_53B18 .text:00053AEC ; --------------------------------------------------------------------------- .text:00053AEC .text:00053AEC loc_53AEC ; CODE XREF: fixup+8Cj .text:00053AEC ; fixup+B8j .text:00053AEC LDR R3, [R11,#var_28] .text:00053AF0 LDR R0, [R3] .text:00053AF4 MOV R2, #0x16 .text:00053AF8 STR R2, [SP,#0x38+var_38] .text:00053AFC MOV R3, #0 .text:00053B00 STR R3, [SP,#0x38+var_34] .text:00053B04 MOV R1, LR .text:00053B08 SUB R2, R11, #-var_28 .text:00053B0C ADD R3, R1, #0x154 .text:00053B10 ADD R0, R8, R0 .text:00053B14 BL _dl_lookup_symbol .text:00053B18 .text:00053B18 loc_53B18 ; CODE XREF: fixup+D8j .text:00053B18 MOV R2, R0 .text:00053B1C LDR R0, [R11,#var_28] .text:00053B20 CMP R0, #0 .text:00053B24 LDRNE R3, [R0,#4] .text:00053B28 ADDNE R1, R2, R3 .text:00053B2C BNE loc_53B40 .text:00053B30 MOV R1, R0 .text:00053B34 B loc_53B40 .text:00053B38 ; --------------------------------------------------------------------------- .text:00053B38 .text:00053B38 loc_53B38 ; CODE XREF: fixup+80j .text:00053B38 LDR R3, [R2,#4] .text:00053B3C ADD R1, R0, R3 .text:00053B40 .text:00053B40 loc_53B40 ; CODE XREF: fixup+11Cj .text:00053B40 ; fixup+124j .text:00053B40 LDR R3, =_dl_bind_not .text:00053B44 LDR R2, [R3] .text:00053B48 CMP R2, #0 .text:00053B4C BNE loc_53B6C .text:00053B50 MOV R0, R1 .text:00053B54 STR R1, [R10] .text:00053B58 B locret_53B70 .text:00053B58 ; --------------------------------------------------------------------------- .text:00053B5C off_53B5C DCD aRelocR_info0xf ; DATA XREF: fixup+64r .text:00053B5C ; "((reloc->r_info) & 0xff) == 22" .text:00053B60 off_53B60 DCD aDlRuntime_c ; DATA XREF: fixup+68r .text:00053B60 ; "dl-runtime.c" .text:00053B64 off_53B64 DCD aFixup ; DATA XREF: fixup+6Cr .text:00053B64 ; "fixup" .text:00053B68 off_53B68 DCD _dl_bind_not ; DATA XREF: fixup:loc_53B40r .text:00053B6C ; --------------------------------------------------------------------------- .text:00053B6C .text:00053B6C loc_53B6C ; CODE XREF: fixup+13Cj .text:00053B6C MOV R0, R1 .text:00053B70 .text:00053B70 locret_53B70 ; CODE XREF: fixup+148j .text:00053B70 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00053B70 ; End of function fixup .text:00053B70 .text:00053B74 .text:00053B74 ; =============== S U B R O U T I N E ======================================= .text:00053B74 .text:00053B74 ; Attributes: bp-based frame .text:00053B74 .text:00053B74 profile_fixup ; CODE XREF: _dl_runtime_profile+14p .text:00053B74 .text:00053B74 var_3C = -0x3C .text:00053B74 var_38 = -0x38 .text:00053B74 var_34 = -0x34 .text:00053B74 var_2C = -0x2C .text:00053B74 .text:00053B74 MOV R12, SP .text:00053B78 STMFD SP!, {R4-R12,LR,PC} .text:00053B7C SUB R11, R12, #4 .text:00053B80 MOV LR, R0 .text:00053B84 MOV R0, R1 .text:00053B88 MOV R3, R0,LSR#3 .text:00053B8C MOV R3, R3,LSL#2 .text:00053B90 MOV R9, R2 .text:00053B94 SUB SP, SP, #0x10 .text:00053B98 LDR R1, [LR,#0x140] .text:00053B9C SUB SP, SP, #4 .text:00053BA0 LDR R4, [R1,R3] .text:00053BA4 ADD R10, R1, R3 .text:00053BA8 CMP R4, #0 .text:00053BAC BNE loc_53CE0 .text:00053BB0 LDR R2, [LR,#0x74] .text:00053BB4 LDR R3, [R2,#4] .text:00053BB8 ADD R3, R3, R0 .text:00053BBC LDR R1, [R3,#4] .text:00053BC0 LDR R3, [LR,#0x30] .text:00053BC4 MOV R2, R1 .text:00053BC8 AND R7, R2, #0xFF .text:00053BCC CMP R7, #0x16 .text:00053BD0 LDR R6, [R3,#4] .text:00053BD4 MOV R2, R1,LSR#8 .text:00053BD8 LDR R3, [LR,#0x2C] .text:00053BDC MOV R5, R2,LSL#4 .text:00053BE0 LDR R8, [R3,#4] .text:00053BE4 ADD R12, R6, R5 .text:00053BE8 STR R12, [R11,#var_2C] .text:00053BEC BEQ loc_53C04 .text:00053BF0 LDR R0, =aRelocR_info0xf ; "((reloc->r_info) & 0xff) == 22" .text:00053BF4 LDR R1, =aDlRuntime_c ; "dl-runtime.c" .text:00053BF8 LDR R3, =aProfile_fixup ; "profile_fixup" .text:00053BFC MOV R2, #0xA4 .text:00053C00 BL __assert_fail .text:00053C04 ; --------------------------------------------------------------------------- .text:00053C04 .text:00053C04 loc_53C04 ; CODE XREF: profile_fixup+78j .text:00053C04 LDRB R3, [R12,#0xD] .text:00053C08 TST R3, #3 .text:00053C0C BNE loc_53CC4 .text:00053C10 LDR R3, [LR,#0xDC] .text:00053C14 CMP R3, #0 .text:00053C18 BEQ loc_53C6C .text:00053C1C LDR R1, [R3,#4] .text:00053C20 MOV R3, R2,LSL#1 .text:00053C24 LDRB R2, [R3,R1] .text:00053C28 ADD R3, R3, R1 .text:00053C2C LDRB R0, [R3,#1] .text:00053C30 LDR R1, [LR,#0x134] .text:00053C34 ORR R2, R2, R0,LSL#8 .text:00053C38 ADD R1, R1, R2,LSL#4 .text:00053C3C LDR R3, [R1,#4] .text:00053C40 CMP R3, #0 .text:00053C44 BEQ loc_53C6C .text:00053C48 LDR R0, [R6,R5] .text:00053C4C STMEA SP, {R1,R7} .text:00053C50 STR R4, [SP,#0x3C+var_34] .text:00053C54 MOV R1, LR .text:00053C58 SUB R2, R11, #-var_2C .text:00053C5C ADD R3, R1, #0x154 .text:00053C60 ADD R0, R8, R0 .text:00053C64 BL _dl_lookup_versioned_symbol .text:00053C68 B loc_53C98 .text:00053C6C ; --------------------------------------------------------------------------- .text:00053C6C .text:00053C6C loc_53C6C ; CODE XREF: profile_fixup+A4j .text:00053C6C ; profile_fixup+D0j .text:00053C6C LDR R3, [R11,#var_2C] .text:00053C70 LDR R0, [R3] .text:00053C74 MOV R2, #0x16 .text:00053C78 STR R2, [SP,#0x3C+var_3C] .text:00053C7C MOV R3, #0 .text:00053C80 STR R3, [SP,#0x3C+var_38] .text:00053C84 MOV R1, LR .text:00053C88 SUB R2, R11, #-var_2C .text:00053C8C ADD R3, R1, #0x154 .text:00053C90 ADD R0, R8, R0 .text:00053C94 BL _dl_lookup_symbol .text:00053C98 .text:00053C98 loc_53C98 ; CODE XREF: profile_fixup+F4j .text:00053C98 MOV R1, R0 .text:00053C9C LDR R0, [R11,#var_2C] .text:00053CA0 CMP R0, #0 .text:00053CA4 LDRNE R3, [R0,#4] .text:00053CA8 ADDNE R4, R1, R3 .text:00053CAC BNE loc_53CD0 .text:00053CB0 MOV R4, R0 .text:00053CB4 B loc_53CD0 .text:00053CB4 ; --------------------------------------------------------------------------- .text:00053CB8 off_53CB8 DCD aRelocR_info0xf ; DATA XREF: profile_fixup+7Cr .text:00053CB8 ; "((reloc->r_info) & 0xff) == 22" .text:00053CBC off_53CBC DCD aDlRuntime_c ; DATA XREF: profile_fixup+80r .text:00053CBC ; "dl-runtime.c" .text:00053CC0 off_53CC0 DCD aProfile_fixup ; DATA XREF: profile_fixup+84r .text:00053CC0 ; "profile_fixup" .text:00053CC4 ; --------------------------------------------------------------------------- .text:00053CC4 .text:00053CC4 loc_53CC4 ; CODE XREF: profile_fixup+98j .text:00053CC4 LDR R2, [LR] .text:00053CC8 LDR R3, [R12,#4] .text:00053CCC ADD R4, R2, R3 .text:00053CD0 .text:00053CD0 loc_53CD0 ; CODE XREF: profile_fixup+138j .text:00053CD0 ; profile_fixup+140j .text:00053CD0 LDR R3, =_dl_bind_not .text:00053CD4 LDR R2, [R3] .text:00053CD8 CMP R2, #0 .text:00053CDC STREQ R4, [R10] .text:00053CE0 .text:00053CE0 loc_53CE0 ; CODE XREF: profile_fixup+38j .text:00053CE0 MOV R0, R9 .text:00053CE4 MOV R1, R4 .text:00053CE8 BL _dl_mcount .text:00053CEC MOV R0, R4 .text:00053CF0 B locret_53CF8 .text:00053CF0 ; --------------------------------------------------------------------------- .text:00053CF4 off_53CF4 DCD _dl_bind_not ; DATA XREF: profile_fixup:loc_53CD0r .text:00053CF8 ; --------------------------------------------------------------------------- .text:00053CF8 .text:00053CF8 locret_53CF8 ; CODE XREF: profile_fixup+17Cj .text:00053CF8 LDMDB R11, {R4-R11,SP,PC} .text:00053CF8 ; End of function profile_fixup .text:00053CF8 .text:00053CFC .text:00053CFC ; =============== S U B R O U T I N E ======================================= .text:00053CFC .text:00053CFC ; Attributes: noreturn .text:00053CFC .text:00053CFC EXPORT _dl_runtime_resolve .text:00053CFC _dl_runtime_resolve ; DATA XREF: .text:loc_5240Co .text:00053CFC ; .text:off_52690o .text:00053CFC STMFD SP!, {R0-R3,R10,R11} .text:00053D00 SUB R1, R12, LR .text:00053D04 SUB R1, R1, #4 .text:00053D08 ADD R1, R1, R1 .text:00053D0C LDR R0, [LR,#-4] .text:00053D10 BL fixup .text:00053D14 MOV R12, R0 .text:00053D18 LDMFD SP!, {R0-R3,R10,R11,LR} .text:00053D1C MOV PC, R12 .text:00053D1C ; End of function _dl_runtime_resolve .text:00053D1C .text:00053D20 .text:00053D20 ; =============== S U B R O U T I N E ======================================= .text:00053D20 .text:00053D20 ; Attributes: noreturn .text:00053D20 .text:00053D20 EXPORT _dl_runtime_profile .text:00053D20 _dl_runtime_profile ; DATA XREF: .text:000523F8o .text:00053D20 ; .text:off_52688o .text:00053D20 STMFD SP!, {R0-R3,R10,R11} .text:00053D24 SUB R1, R12, LR .text:00053D28 SUB R1, R1, #4 .text:00053D2C ADD R1, R1, R1 .text:00053D30 LDR R0, [LR,#-4] .text:00053D34 BL profile_fixup .text:00053D38 MOV R12, R0 .text:00053D3C LDMFD SP!, {R0-R3,R10,R11,LR} .text:00053D40 MOV PC, R12 .text:00053D40 ; End of function _dl_runtime_profile .text:00053D40 .text:00053D44 .text:00053D44 ; =============== S U B R O U T I N E ======================================= .text:00053D44 .text:00053D44 ; Attributes: bp-based frame .text:00053D44 .text:00053D44 call_init ; CODE XREF: _dl_init+34p .text:00053D44 ; _dl_init+F4p .text:00053D44 MOV R12, SP .text:00053D48 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00053D4C SUB R11, R12, #4 .text:00053D50 MOV R6, R0 .text:00053D54 MOV R10, R1 .text:00053D58 MOV R8, R2 .text:00053D5C LDRB R0, [R6,#0x12C] .text:00053D60 MOV R7, R3 .text:00053D64 TST R0, #8 .text:00053D68 LDMNEDB R11, {R4-R8,R10,R11,SP,PC} .text:00053D6C ORR R3, R0, #8 .text:00053D70 STRB R3, [R6,#0x12C] .text:00053D74 LDR R1, [R6,#4] .text:00053D78 LDRB R0, [R1] .text:00053D7C CMP R0, #0 .text:00053D80 BNE loc_53D90 .text:00053D84 LDRB R3, [R6,#0x12C] .text:00053D88 TST R3, #3 .text:00053D8C LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:00053D90 .text:00053D90 loc_53D90 ; CODE XREF: call_init+3Cj .text:00053D90 LDR R3, [R6,#0x48] .text:00053D94 CMP R3, #0 .text:00053D98 BNE loc_53DA8 .text:00053D9C LDR R3, [R6,#0x7C] .text:00053DA0 CMP R3, #0 .text:00053DA4 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:00053DA8 .text:00053DA8 loc_53DA8 ; CODE XREF: call_init+54j .text:00053DA8 LDR R3, =_dl_debug_mask .text:00053DAC LDR R2, [R3] .text:00053DB0 TST R2, #2 .text:00053DB4 BEQ loc_53DD0 .text:00053DB8 CMP R0, #0 .text:00053DBC LDREQ R3, =_dl_argv .text:00053DC0 LDREQ R2, [R3] .text:00053DC4 LDREQ R1, [R2] .text:00053DC8 LDR R0, =aCallingInitS ; "\ncalling init: %s\n\n" .text:00053DCC BL _dl_debug_printf .text:00053DD0 .text:00053DD0 loc_53DD0 ; CODE XREF: call_init+70j .text:00053DD0 LDR R2, [R6,#0x48] .text:00053DD4 CMP R2, #0 .text:00053DD8 BEQ loc_53DFC .text:00053DDC MOV R0, R10 .text:00053DE0 LDR R3, [R6] .text:00053DE4 MOV R1, R8 .text:00053DE8 LDR R12, [R2,#4] .text:00053DEC MOV R2, R7 .text:00053DF0 ADD R3, R3, R12 .text:00053DF4 MOV LR, PC .text:00053DF8 MOV PC, R3 .text:00053DFC .text:00053DFC loc_53DFC ; CODE XREF: call_init+94j .text:00053DFC LDR R1, [R6,#0x7C] .text:00053E00 CMP R1, #0 .text:00053E04 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:00053E08 LDR R3, [R6,#0x84] .text:00053E0C LDR R1, [R1,#4] .text:00053E10 LDR R2, [R3,#4] .text:00053E14 MOV R4, #0 .text:00053E18 LDR R3, [R6] .text:00053E1C MOV R5, R2,LSR#2 .text:00053E20 CMP R4, R5 .text:00053E24 ADD R6, R1, R3 .text:00053E28 LDMCSDB R11, {R4-R8,R10,R11,SP,PC} .text:00053E2C .text:00053E2C loc_53E2C ; CODE XREF: call_init+104j .text:00053E2C MOV R0, R10 .text:00053E30 MOV R1, R8 .text:00053E34 MOV R2, R7 .text:00053E38 MOV LR, PC .text:00053E3C LDR PC, [R6,R4,LSL#2] .text:00053E40 ADD R4, R4, #1 .text:00053E44 CMP R4, R5 .text:00053E48 BCC loc_53E2C .text:00053E4C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00053E4C ; End of function call_init .text:00053E4C .text:00053E4C ; --------------------------------------------------------------------------- .text:00053E50 off_53E50 DCD _dl_debug_mask ; DATA XREF: call_init:loc_53DA8r .text:00053E54 off_53E54 DCD _dl_argv ; DATA XREF: call_init+78r .text:00053E58 off_53E58 DCD aCallingInitS ; DATA XREF: call_init+84r .text:00053E58 ; "\ncalling init: %s\n\n" .text:00053E5C .text:00053E5C ; =============== S U B R O U T I N E ======================================= .text:00053E5C .text:00053E5C ; Attributes: bp-based frame .text:00053E5C .text:00053E5C EXPORT _dl_init .text:00053E5C _dl_init ; CODE XREF: dl_open_worker+35Cp .text:00053E5C MOV R12, SP .text:00053E60 STMFD SP!, {R4-R12,LR,PC} .text:00053E64 SUB R11, R12, #4 .text:00053E68 MOV R7, R0 .text:00053E6C MOV R9, R1 .text:00053E70 LDR R5, =_dl_initfirst .text:00053E74 MOV R10, R2 .text:00053E78 LDR R12, [R5] .text:00053E7C MOV R8, R3 .text:00053E80 LDR R4, [R7,#0x98] .text:00053E84 CMP R12, #0 .text:00053E88 BEQ loc_53E9C .text:00053E8C MOV R0, R12 .text:00053E90 BL call_init .text:00053E94 MOV R3, #0 .text:00053E98 STR R3, [R5] .text:00053E9C .text:00053E9C loc_53E9C ; CODE XREF: _dl_init+2Cj .text:00053E9C CMP R4, #0 .text:00053EA0 BEQ loc_53F1C .text:00053EA4 LDR R3, [R4,#4] .text:00053EA8 MOVS R4, R3,LSR#2 .text:00053EAC BEQ loc_53F1C .text:00053EB0 LDR R3, =_dl_debug_mask .text:00053EB4 LDR R2, [R3] .text:00053EB8 TST R2, #2 .text:00053EBC BEQ loc_53EE0 .text:00053EC0 LDR R1, [R7,#4] .text:00053EC4 LDRB R3, [R1] .text:00053EC8 CMP R3, #0 .text:00053ECC LDREQ R3, =_dl_argv .text:00053ED0 LDREQ R2, [R3] .text:00053ED4 LDREQ R1, [R2] .text:00053ED8 LDR R0, =aCallingPreinit ; "\ncalling preinit: %s\n\n" .text:00053EDC BL _dl_debug_printf .text:00053EE0 .text:00053EE0 loc_53EE0 ; CODE XREF: _dl_init+60j .text:00053EE0 LDR R3, [R7,#0x98] .text:00053EE4 LDR R2, [R3,#4] .text:00053EE8 MOV R5, #0 .text:00053EEC LDR R3, [R7] .text:00053EF0 CMP R5, R4 .text:00053EF4 ADD R6, R2, R3 .text:00053EF8 BCS loc_53F1C .text:00053EFC .text:00053EFC loc_53EFC ; CODE XREF: _dl_init+BCj .text:00053EFC MOV R0, R9 .text:00053F00 MOV R1, R10 .text:00053F04 MOV R2, R8 .text:00053F08 MOV LR, PC .text:00053F0C LDR PC, [R6,R5,LSL#2] .text:00053F10 ADD R5, R5, #1 .text:00053F14 CMP R5, R4 .text:00053F18 BCC loc_53EFC .text:00053F1C .text:00053F1C loc_53F1C ; CODE XREF: _dl_init+44j .text:00053F1C ; _dl_init+50j ... .text:00053F1C MOV R0, #0 .text:00053F20 BL _dl_debug_initialize .text:00053F24 MOV R5, R0 .text:00053F28 MOV R3, #1 .text:00053F2C STR R3, [R5,#0xC] .text:00053F30 BL _dl_debug_state .text:00053F34 LDR R4, [R7,#0xFC] .text:00053F38 B loc_53F54 .text:00053F3C ; --------------------------------------------------------------------------- .text:00053F3C .text:00053F3C loc_53F3C ; CODE XREF: _dl_init+104j .text:00053F3C MOV R1, R9 .text:00053F40 LDR R3, [R7,#0x184] .text:00053F44 MOV R2, R10 .text:00053F48 LDR R0, [R3,R4,LSL#2] .text:00053F4C MOV R3, R8 .text:00053F50 BL call_init .text:00053F54 .text:00053F54 loc_53F54 ; CODE XREF: _dl_init+DCj .text:00053F54 MOV R3, R4 .text:00053F58 SUB R4, R4, #1 .text:00053F5C CMP R3, #0 .text:00053F60 BNE loc_53F3C .text:00053F64 MOV R4, #0 .text:00053F68 STR R4, [R5,#0xC] .text:00053F6C BL _dl_debug_state .text:00053F70 LDR R3, =_dl_starting_up .text:00053F74 STR R4, [R3] .text:00053F78 LDMDB R11, {R4-R11,SP,PC} .text:00053F78 ; End of function _dl_init .text:00053F78 .text:00053F78 ; --------------------------------------------------------------------------- .text:00053F7C off_53F7C DCD _dl_initfirst ; DATA XREF: _dl_init+14r .text:00053F80 off_53F80 DCD _dl_debug_mask ; DATA XREF: _dl_init+54r .text:00053F84 off_53F84 DCD _dl_argv ; DATA XREF: _dl_init+70r .text:00053F88 off_53F88 DCD aCallingPreinit ; DATA XREF: _dl_init+7Cr .text:00053F88 ; "\ncalling preinit: %s\n\n" .text:00053F8C off_53F8C DCD _dl_starting_up ; DATA XREF: _dl_init+114r .text:00053F90 .text:00053F90 ; =============== S U B R O U T I N E ======================================= .text:00053F90 .text:00053F90 ; Attributes: bp-based frame .text:00053F90 .text:00053F90 EXPORT _dl_debug_initialize .text:00053F90 _dl_debug_initialize ; CODE XREF: _dl_init+C4p .text:00053F90 MOV R12, SP .text:00053F94 STMFD SP!, {R11,R12,LR,PC} .text:00053F98 LDR R1, =_r_debug .text:00053F9C LDR R3, [R1,#(_r_debug+8 - 0x961F0)] .text:00053FA0 SUB R11, R12, #4 .text:00053FA4 CMP R3, #0 .text:00053FA8 BNE loc_53FCC .text:00053FAC MOV R3, #1 .text:00053FB0 STR R3, [R1] .text:00053FB4 STR R0, [R1,#(_r_debug+0x10 - 0x961F0)] .text:00053FB8 LDR R3, =_dl_debug_state .text:00053FBC STR R3, [R1,#(_r_debug+8 - 0x961F0)] .text:00053FC0 LDR R2, =_dl_loaded .text:00053FC4 LDR R3, [R2] .text:00053FC8 STR R3, [R1,#(_r_debug+4 - 0x961F0)] .text:00053FCC .text:00053FCC loc_53FCC ; CODE XREF: _dl_debug_initialize+18j .text:00053FCC MOV R0, R1 .text:00053FD0 LDMDB R11, {R11,SP,PC} .text:00053FD0 ; End of function _dl_debug_initialize .text:00053FD0 .text:00053FD0 ; --------------------------------------------------------------------------- .text:00053FD4 off_53FD4 DCD _r_debug ; DATA XREF: _dl_debug_initialize+8r .text:00053FD8 off_53FD8 DCD _dl_debug_state ; DATA XREF: _dl_debug_initialize+28r .text:00053FDC off_53FDC DCD _dl_loaded ; DATA XREF: _dl_debug_initialize+30r .text:00053FE0 .text:00053FE0 ; =============== S U B R O U T I N E ======================================= .text:00053FE0 .text:00053FE0 ; Attributes: bp-based frame .text:00053FE0 .text:00053FE0 EXPORT _dl_debug_state .text:00053FE0 _dl_debug_state ; CODE XREF: _dl_close+3C0p .text:00053FE0 ; _dl_close+5A8p ... .text:00053FE0 MOV R12, SP .text:00053FE4 STMFD SP!, {R11,R12,LR,PC} .text:00053FE8 SUB R11, R12, #4 .text:00053FEC LDMDB R11, {R11,SP,PC} .text:00053FEC ; End of function _dl_debug_state .text:00053FEC .text:00053FF0 .text:00053FF0 ; =============== S U B R O U T I N E ======================================= .text:00053FF0 .text:00053FF0 ; Attributes: bp-based frame .text:00053FF0 .text:00053FF0 match_symbol ; CODE XREF: _dl_check_map_versions+2DCp .text:00053FF0 .text:00053FF0 var_68 = -0x68 .text:00053FF0 var_64 = -0x64 .text:00053FF0 var_60 = -0x60 .text:00053FF0 var_5C = -0x5C .text:00053FF0 var_58 = -0x58 .text:00053FF0 var_54 = -0x54 .text:00053FF0 var_50 = -0x50 .text:00053FF0 var_4C = -0x4C .text:00053FF0 var_35 = -0x35 .text:00053FF0 var_34 = -0x34 .text:00053FF0 var_30 = -0x30 .text:00053FF0 var_2C = -0x2C .text:00053FF0 arg_0 = 4 .text:00053FF0 arg_4 = 8 .text:00053FF0 .text:00053FF0 MOV R12, SP .text:00053FF4 STMFD SP!, {R4-R12,LR,PC} .text:00053FF8 SUB R11, R12, #4 .text:00053FFC MOV R7, R0 .text:00054000 MOV R9, R1 .text:00054004 MOV R5, R3 .text:00054008 LDR R12, =_dl_debug_mask .text:0005400C SUB SP, SP, #0x40 .text:00054010 LDR LR, [R12] .text:00054014 MOV R6, R2 .text:00054018 LDR R3, [R5,#0x2C] .text:0005401C TST LR, #0x10 .text:00054020 LDR R10, [R3,#4] .text:00054024 BEQ loc_54050 .text:00054028 LDR R2, [R5,#4] .text:0005402C LDRB R3, [R2] .text:00054030 CMP R3, #0 .text:00054034 LDREQ R3, =_dl_argv .text:00054038 LDREQ R2, [R3] .text:0005403C LDREQ R2, [R2] .text:00054040 MOV R1, R6 .text:00054044 LDR R0, =aCheckingForVer ; "checking for version `%s' in file %s re"... .text:00054048 MOV R3, R7 .text:0005404C BL _dl_debug_printf .text:00054050 .text:00054050 loc_54050 ; CODE XREF: match_symbol+34j .text:00054050 LDR R3, [R5,#0xAC] .text:00054054 CMP R3, #0 .text:00054058 BNE loc_540F8 .text:0005405C LDR R0, [R11,#arg_0] .text:00054060 CMP R0, #0 .text:00054064 BEQ loc_542F8 .text:00054068 LDR R1, [R5,#4] .text:0005406C LDRB R3, [R1] .text:00054070 CMP R3, #0 .text:00054074 MOVNE R6, R1 .text:00054078 LDREQ R3, =_dl_argv .text:0005407C LDREQ R2, [R3] .text:00054080 LDREQ R6, [R2] .text:00054084 STR R7, [R11,#var_30] .text:00054088 LDR R3, =aNoVersionInfor ; "no version information available (requi"... .text:0005408C STR R3, [R11,#var_34] .text:00054090 MOV R5, #1 .text:00054094 MOV R4, #0 .text:00054098 LDR R3, =asc_62E04 ; ")" .text:0005409C SUB R7, R11, #-var_34 .text:000540A0 STR R3, [R11,#var_2C] .text:000540A4 .text:000540A4 loc_540A4 ; CODE XREF: match_symbol+C8j .text:000540A4 LDR R0, [R7,R4,LSL#2] .text:000540A8 ADD R4, R4, #1 .text:000540AC BL strlen .text:000540B0 ADD R5, R5, R0 .text:000540B4 CMP R4, #2 .text:000540B8 BLS loc_540A4 .text:000540BC ADD R3, R5, #3 .text:000540C0 BIC R3, R3, #3 .text:000540C4 RSB SP, R3, SP .text:000540C8 MOV R5, SP .text:000540CC MOV R0, SP .text:000540D0 MOV R4, #0 .text:000540D4 .text:000540D4 loc_540D4 ; CODE XREF: match_symbol+F4j .text:000540D4 LDR R1, [R7,R4,LSL#2] .text:000540D8 ADD R4, R4, #1 .text:000540DC BL stpcpy .text:000540E0 CMP R4, #2 .text:000540E4 BLS loc_540D4 .text:000540E8 MOV R0, #0 .text:000540EC MOV R1, R6 .text:000540F0 MOV R2, R5 .text:000540F4 B loc_542F4 .text:000540F8 ; --------------------------------------------------------------------------- .text:000540F8 .text:000540F8 loc_540F8 ; CODE XREF: match_symbol+68j .text:000540F8 LDR R2, [R3,#4] .text:000540FC CMP R2, #0 .text:00054100 BNE loc_54118 .text:00054104 LDR R0, =aDef_offset0 ; "def_offset != 0" .text:00054108 LDR R1, =aDlVersion_c ; "dl-version.c" .text:0005410C LDR R3, =aMatch_symbol ; "match_symbol" .text:00054110 MOV R2, #0x6B .text:00054114 BL __assert_fail .text:00054118 ; --------------------------------------------------------------------------- .text:00054118 .text:00054118 loc_54118 ; CODE XREF: match_symbol+110j .text:00054118 LDR R3, [R5] .text:0005411C MOV R8, #0 .text:00054120 ADD R4, R3, R2 .text:00054124 .text:00054124 loc_54124 ; CODE XREF: match_symbol+250j .text:00054124 LDR R3, [R4] .text:00054128 MOV R3, R3,LSL#16 .text:0005412C CMP R3, #0x10000 .text:00054130 BEQ loc_5420C .text:00054134 STRB R8, [R11,#var_35] .text:00054138 LDR R1, [R5,#4] .text:0005413C LDRB R3, [R1] .text:00054140 CMP R3, #0 .text:00054144 MOVNE R9, R1 .text:00054148 LDREQ R3, =_dl_argv .text:0005414C LDREQ R2, [R3] .text:00054150 LDREQ R9, [R2] .text:00054154 LDR R3, =aUnsupportedVer ; "unsupported version " .text:00054158 STR R3, [R11,#var_54] .text:0005415C LDR R10, =_itoa_lower_digits .text:00054160 SUB R6, R11, #-var_35 .text:00054164 LDRB R2, [R4] .text:00054168 SUB R7, R11, #-var_34 .text:0005416C LDRB R3, [R4,#1] .text:00054170 SUB R5, R11, #-var_54 .text:00054174 LDR R8, =aOfVerdefRecord ; " of Verdef record" .text:00054178 ORR R4, R2, R3,LSL#8 .text:0005417C .text:0005417C loc_5417C ; CODE XREF: match_symbol+1B0j .text:0005417C MOV R0, R4 .text:00054180 MOV R1, #0xA .text:00054184 BL __umodsi3 .text:00054188 LDRB R3, [R10,R0] .text:0005418C STRB R3, [R6,#-1]! .text:00054190 MOV R0, R4 .text:00054194 MOV R1, #0xA .text:00054198 BL __udivsi3 .text:0005419C SUBS R4, R0, #0 .text:000541A0 BNE loc_5417C .text:000541A4 STR R6, [R11,#var_50] .text:000541A8 STR R8, [R11,#var_4C] .text:000541AC LDMIA R5, {R0-R2} .text:000541B0 MOV R6, #1 .text:000541B4 STMIA R7, {R0-R2} .text:000541B8 .text:000541B8 loc_541B8 ; CODE XREF: match_symbol+1DCj .text:000541B8 LDR R0, [R7,R4,LSL#2] .text:000541BC ADD R4, R4, #1 .text:000541C0 BL strlen .text:000541C4 ADD R6, R6, R0 .text:000541C8 CMP R4, #2 .text:000541CC BLS loc_541B8 .text:000541D0 ADD R3, R6, #3 .text:000541D4 BIC R3, R3, #3 .text:000541D8 RSB SP, R3, SP .text:000541DC MOV R5, SP .text:000541E0 MOV R0, SP .text:000541E4 MOV R4, #0 .text:000541E8 .text:000541E8 loc_541E8 ; CODE XREF: match_symbol+208j .text:000541E8 LDR R1, [R7,R4,LSL#2] .text:000541EC ADD R4, R4, #1 .text:000541F0 BL stpcpy .text:000541F4 CMP R4, #2 .text:000541F8 BLS loc_541E8 .text:000541FC MOV R0, #0 .text:00054200 MOV R1, R9 .text:00054204 MOV R2, R5 .text:00054208 BL _dl_signal_error .text:0005420C ; --------------------------------------------------------------------------- .text:0005420C .text:0005420C loc_5420C ; CODE XREF: match_symbol+140j .text:0005420C LDR R3, [R4,#8] .text:00054210 CMP R9, R3 .text:00054214 BNE loc_54234 .text:00054218 LDR R3, [R4,#0xC] .text:0005421C LDR R1, [R4,R3] .text:00054220 MOV R0, R6 .text:00054224 ADD R1, R10, R1 .text:00054228 BL strcmp .text:0005422C CMP R0, #0 .text:00054230 BEQ loc_543DC .text:00054234 .text:00054234 loc_54234 ; CODE XREF: match_symbol+224j .text:00054234 LDR R3, [R4,#0x10] .text:00054238 CMP R3, #0 .text:0005423C ADDNE R4, R4, R3 .text:00054240 BNE loc_54124 .text:00054244 LDR R3, [R11,#arg_4] .text:00054248 CMP R3, #0 .text:0005424C BEQ loc_54300 .text:00054250 LDR R3, [R11,#arg_0] .text:00054254 CMP R3, #0 .text:00054258 BEQ loc_542F8 .text:0005425C LDR R1, [R5,#4] .text:00054260 LDRB R3, [R1] .text:00054264 CMP R3, #0 .text:00054268 MOVNE R8, R1 .text:0005426C LDREQ R3, =_dl_argv .text:00054270 LDREQ R2, [R3] .text:00054274 LDREQ R8, [R2] .text:00054278 STR R6, [R11,#var_64] .text:0005427C STR R7, [R11,#var_5C] .text:00054280 LDR R3, =aWeakVersion ; "weak version `" .text:00054284 STR R3, [R11,#var_68] .text:00054288 LDR R2, =aNotFoundRequir ; "' not found (required by " .text:0005428C STR R2, [R11,#var_60] .text:00054290 MOV R6, #1 .text:00054294 MOV R4, #0 .text:00054298 LDR R3, =asc_62E04 ; ")" .text:0005429C SUB R5, R11, #-var_68 .text:000542A0 STR R3, [R11,#var_58] .text:000542A4 .text:000542A4 loc_542A4 ; CODE XREF: match_symbol+2C8j .text:000542A4 LDR R0, [R5,R4,LSL#2] .text:000542A8 ADD R4, R4, #1 .text:000542AC BL strlen .text:000542B0 ADD R6, R6, R0 .text:000542B4 CMP R4, #4 .text:000542B8 BLS loc_542A4 .text:000542BC ADD R3, R6, #3 .text:000542C0 BIC R3, R3, #3 .text:000542C4 RSB SP, R3, SP .text:000542C8 MOV R6, SP .text:000542CC MOV R0, SP .text:000542D0 MOV R4, #0 .text:000542D4 .text:000542D4 loc_542D4 ; CODE XREF: match_symbol+2F4j .text:000542D4 LDR R1, [R5,R4,LSL#2] .text:000542D8 ADD R4, R4, #1 .text:000542DC BL stpcpy .text:000542E0 CMP R4, #4 .text:000542E4 BLS loc_542D4 .text:000542E8 MOV R0, #0 .text:000542EC MOV R1, R8 .text:000542F0 MOV R2, R6 .text:000542F4 .text:000542F4 loc_542F4 ; CODE XREF: match_symbol+104j .text:000542F4 BL _dl_signal_cerror .text:000542F8 .text:000542F8 loc_542F8 ; CODE XREF: match_symbol+74j .text:000542F8 ; match_symbol+268j .text:000542F8 MOV R0, #0 .text:000542FC B loc_543DC .text:00054300 ; --------------------------------------------------------------------------- .text:00054300 .text:00054300 loc_54300 ; CODE XREF: match_symbol+25Cj .text:00054300 LDR R1, [R5,#4] .text:00054304 LDRB R3, [R1] .text:00054308 CMP R3, #0 .text:0005430C BEQ loc_5434C .text:00054310 MOV R8, R1 .text:00054314 B loc_54358 .text:00054314 ; --------------------------------------------------------------------------- .text:00054318 off_54318 DCD _dl_debug_mask ; DATA XREF: match_symbol+18r .text:0005431C off_5431C DCD _dl_argv ; DATA XREF: match_symbol+44r .text:0005431C ; match_symbol+88r ... .text:00054320 off_54320 DCD aCheckingForVer ; DATA XREF: match_symbol+54r .text:00054320 ; "checking for version `%s' in file %s re"... .text:00054324 off_54324 DCD aNoVersionInfor ; DATA XREF: match_symbol+98r .text:00054324 ; "no version information available (requi"... .text:00054328 off_54328 DCD asc_62E04 ; DATA XREF: match_symbol+A8r .text:00054328 ; match_symbol+2A8r .text:00054328 ; ")" .text:0005432C off_5432C DCD aDef_offset0 ; DATA XREF: match_symbol+114r .text:0005432C ; "def_offset != 0" .text:00054330 off_54330 DCD aDlVersion_c ; DATA XREF: match_symbol+118r .text:00054330 ; "dl-version.c" .text:00054334 off_54334 DCD aMatch_symbol ; DATA XREF: match_symbol+11Cr .text:00054334 ; "match_symbol" .text:00054338 off_54338 DCD aUnsupportedVer ; DATA XREF: match_symbol+164r .text:00054338 ; "unsupported version " .text:0005433C off_5433C DCD _itoa_lower_digits ; DATA XREF: match_symbol+16Cr .text:00054340 off_54340 DCD aOfVerdefRecord ; DATA XREF: match_symbol+184r .text:00054340 ; " of Verdef record" .text:00054344 off_54344 DCD aWeakVersion ; DATA XREF: match_symbol+290r .text:00054344 ; "weak version `" .text:00054348 off_54348 DCD aNotFoundRequir ; DATA XREF: match_symbol+298r .text:00054348 ; "' not found (required by " .text:0005434C ; --------------------------------------------------------------------------- .text:0005434C .text:0005434C loc_5434C ; CODE XREF: match_symbol+31Cj .text:0005434C LDR R3, =_dl_argv .text:00054350 LDR R2, [R3] .text:00054354 LDR R8, [R2] .text:00054358 .text:00054358 loc_54358 ; CODE XREF: match_symbol+324j .text:00054358 STR R6, [R11,#var_64] .text:0005435C STR R7, [R11,#var_5C] .text:00054360 LDR R3, =aVersion_0 ; "version `" .text:00054364 STR R3, [R11,#var_68] .text:00054368 LDR R2, =aNotFoundRequir ; "' not found (required by " .text:0005436C STR R2, [R11,#var_60] .text:00054370 MOV R6, #1 .text:00054374 MOV R4, #0 .text:00054378 LDR R3, =asc_62E04 ; ")" .text:0005437C SUB R5, R11, #-var_68 .text:00054380 STR R3, [R11,#var_58] .text:00054384 .text:00054384 loc_54384 ; CODE XREF: match_symbol+3A8j .text:00054384 LDR R0, [R5,R4,LSL#2] .text:00054388 ADD R4, R4, #1 .text:0005438C BL strlen .text:00054390 ADD R6, R6, R0 .text:00054394 CMP R4, #4 .text:00054398 BLS loc_54384 .text:0005439C ADD R3, R6, #3 .text:000543A0 BIC R3, R3, #3 .text:000543A4 RSB SP, R3, SP .text:000543A8 MOV R6, SP .text:000543AC MOV R0, SP .text:000543B0 MOV R4, #0 .text:000543B4 .text:000543B4 loc_543B4 ; CODE XREF: match_symbol+3D4j .text:000543B4 LDR R1, [R5,R4,LSL#2] .text:000543B8 ADD R4, R4, #1 .text:000543BC BL stpcpy .text:000543C0 CMP R4, #4 .text:000543C4 BLS loc_543B4 .text:000543C8 MOV R0, #0 .text:000543CC MOV R1, R8 .text:000543D0 MOV R2, R6 .text:000543D4 BL _dl_signal_cerror .text:000543D8 MOV R0, #1 .text:000543DC .text:000543DC loc_543DC ; CODE XREF: match_symbol+240j .text:000543DC ; match_symbol+30Cj .text:000543DC B locret_543F0 .text:000543DC ; --------------------------------------------------------------------------- .text:000543E0 off_543E0 DCD _dl_argv ; DATA XREF: match_symbol:loc_5434Cr .text:000543E4 off_543E4 DCD aVersion_0 ; DATA XREF: match_symbol+370r .text:000543E4 ; "version `" .text:000543E8 off_543E8 DCD aNotFoundRequir ; DATA XREF: match_symbol+378r .text:000543E8 ; "' not found (required by " .text:000543EC off_543EC DCD asc_62E04 ; DATA XREF: match_symbol+388r .text:000543EC ; ")" .text:000543F0 ; --------------------------------------------------------------------------- .text:000543F0 .text:000543F0 locret_543F0 ; CODE XREF: match_symbol:loc_543DCj .text:000543F0 LDMDB R11, {R4-R11,SP,PC} .text:000543F0 ; End of function match_symbol .text:000543F0 .text:000543F4 .text:000543F4 ; =============== S U B R O U T I N E ======================================= .text:000543F4 .text:000543F4 ; Attributes: bp-based frame .text:000543F4 .text:000543F4 EXPORT _dl_check_map_versions .text:000543F4 _dl_check_map_versions ; CODE XREF: dl_open_worker+258p .text:000543F4 ; _dl_check_all_versions+3Cp .text:000543F4 .text:000543F4 var_74 = -0x74 .text:000543F4 var_70 = -0x70 .text:000543F4 var_6C = -0x6C .text:000543F4 var_68 = -0x68 .text:000543F4 var_64 = -0x64 .text:000543F4 var_60 = -0x60 .text:000543F4 var_5C = -0x5C .text:000543F4 var_58 = -0x58 .text:000543F4 var_54 = -0x54 .text:000543F4 var_50 = -0x50 .text:000543F4 var_4C = -0x4C .text:000543F4 var_48 = -0x48 .text:000543F4 var_29 = -0x29 .text:000543F4 .text:000543F4 MOV R12, SP .text:000543F8 STMFD SP!, {R4-R12,LR,PC} .text:000543FC SUB R11, R12, #4 .text:00054400 MOV R3, #0 .text:00054404 SUB SP, SP, #0x4C .text:00054408 STR R3, [R11,#var_60] .text:0005440C MOV R8, R0 .text:00054410 LDR R3, [R8,#0x2C] .text:00054414 STR R1, [R11,#var_58] .text:00054418 STR R2, [R11,#var_5C] .text:0005441C LDR R0, [R11,#var_60] .text:00054420 CMP R3, #0 .text:00054424 STR R0, [R11,#var_6C] .text:00054428 BEQ locret_5493C .text:0005442C LDR R1, [R8,#0xA4] .text:00054430 STR R1, [R11,#var_64] .text:00054434 LDR R9, [R3,#4] .text:00054438 LDR R2, [R8,#0xAC] .text:0005443C CMP R1, #0 .text:00054440 STR R2, [R11,#var_68] .text:00054444 BEQ loc_54724 .text:00054448 LDR R3, [R11,#var_64] .text:0005444C LDR R1, [R8] .text:00054450 LDR R2, [R3,#4] .text:00054454 LDR R3, [R1,R2] .text:00054458 ADD R10, R1, R2 .text:0005445C MOV R3, R3,LSL#16 .text:00054460 CMP R3, #0x10000 .text:00054464 BEQ loc_54544 .text:00054468 LDR R0, [R11,#var_60] .text:0005446C STRB R0, [R11,#var_29] .text:00054470 LDR R1, [R8,#4] .text:00054474 LDRB R3, [R1] .text:00054478 CMP R3, #0 .text:0005447C MOVNE R9, R1 .text:00054480 LDREQ R3, =_dl_argv .text:00054484 LDREQ R2, [R3] .text:00054488 LDREQ R9, [R2] .text:0005448C LDR R3, =aUnsupportedVer ; "unsupported version " .text:00054490 STR R3, [R11,#var_54] .text:00054494 SUB R6, R11, #-var_29 .text:00054498 LDRB R2, [R10] .text:0005449C SUB R5, R11, #-var_48 .text:000544A0 LDRB R3, [R10,#1] .text:000544A4 SUB R7, R11, #-var_54 .text:000544A8 LDR R8, =_itoa_lower_digits .text:000544AC ORR R4, R2, R3,LSL#8 .text:000544B0 .text:000544B0 loc_544B0 ; CODE XREF: _dl_check_map_versions+E0j .text:000544B0 MOV R0, R4 .text:000544B4 MOV R1, #0xA .text:000544B8 BL __umodsi3 .text:000544BC LDRB R3, [R8,R0] .text:000544C0 STRB R3, [R6,#-1]! .text:000544C4 MOV R0, R4 .text:000544C8 MOV R1, #0xA .text:000544CC BL __udivsi3 .text:000544D0 SUBS R4, R0, #0 .text:000544D4 BNE loc_544B0 .text:000544D8 STR R6, [R11,#var_50] .text:000544DC LDR R3, =aOfVerneedRecor ; " of Verneed record\n" .text:000544E0 STR R3, [R11,#var_4C] .text:000544E4 LDMIA R7, {R0-R2} .text:000544E8 MOV R6, #1 .text:000544EC STMIA R5, {R0-R2} .text:000544F0 .text:000544F0 loc_544F0 ; CODE XREF: _dl_check_map_versions+110j .text:000544F0 LDR R0, [R5,R4,LSL#2] .text:000544F4 ADD R4, R4, #1 .text:000544F8 BL strlen .text:000544FC ADD R6, R6, R0 .text:00054500 CMP R4, #2 .text:00054504 BLS loc_544F0 .text:00054508 ADD R3, R6, #3 .text:0005450C BIC R3, R3, #3 .text:00054510 RSB SP, R3, SP .text:00054514 ADD R6, SP, #0x74+var_6C .text:00054518 MOV R0, R6 .text:0005451C MOV R4, #0 .text:00054520 .text:00054520 loc_54520 ; CODE XREF: _dl_check_map_versions+13Cj .text:00054520 LDR R1, [R5,R4,LSL#2] .text:00054524 ADD R4, R4, #1 .text:00054528 BL stpcpy .text:0005452C CMP R4, #2 .text:00054530 BLS loc_54520 .text:00054534 MOV R0, #0 .text:00054538 MOV R1, R9 .text:0005453C MOV R2, R6 .text:00054540 BL _dl_signal_error .text:00054544 ; --------------------------------------------------------------------------- .text:00054544 .text:00054544 loc_54544 ; CODE XREF: _dl_check_map_versions+70j .text:00054544 ; _dl_check_map_versions+32Cj .text:00054544 LDR R1, =_dl_loaded .text:00054548 LDR R3, [R10,#4] .text:0005454C LDR R5, [R1] .text:00054550 ADD R7, R9, R3 .text:00054554 CMP R5, #0 .text:00054558 BEQ loc_545C4 .text:0005455C .text:0005455C loc_5455C ; CODE XREF: _dl_check_map_versions+1CCj .text:0005455C LDR R1, [R5,#4] .text:00054560 MOV R0, R7 .text:00054564 BL strcmp .text:00054568 LDR R4, [R5,#0x14] .text:0005456C CMP R0, #0 .text:00054570 MOVNE R6, #0 .text:00054574 MOVEQ R6, #1 .text:00054578 CMP R4, #0 .text:0005457C CMPNE R0, #0 .text:00054580 BEQ loc_545B0 .text:00054584 .text:00054584 loc_54584 ; CODE XREF: _dl_check_map_versions+1B8j .text:00054584 LDR R1, [R4] .text:00054588 MOV R0, R7 .text:0005458C BL strcmp .text:00054590 CMP R0, #0 .text:00054594 MOVEQ R6, #1 .text:00054598 LDRNE R4, [R4,#4] .text:0005459C CMP R4, #0 .text:000545A0 EORNE R3, R6, #1 .text:000545A4 MOVEQ R3, #0 .text:000545A8 CMP R3, #0 .text:000545AC BNE loc_54584 .text:000545B0 .text:000545B0 loc_545B0 ; CODE XREF: _dl_check_map_versions+18Cj .text:000545B0 CMP R6, #0 .text:000545B4 BNE loc_5464C .text:000545B8 LDR R5, [R5,#0xC] .text:000545BC CMP R5, #0 .text:000545C0 BNE loc_5455C .text:000545C4 .text:000545C4 loc_545C4 ; CODE XREF: _dl_check_map_versions+164j .text:000545C4 LDR R3, [R8,#0xFC] .text:000545C8 MOV R6, #0 .text:000545CC CMP R6, R3 .text:000545D0 BCS loc_54648 .text:000545D4 .text:000545D4 loc_545D4 ; CODE XREF: _dl_check_map_versions+250j .text:000545D4 LDR R3, [R8,#0xF8] .text:000545D8 LDR R4, [R3,R6,LSL#2] .text:000545DC LDR R1, [R4,#4] .text:000545E0 MOV R0, R7 .text:000545E4 BL strcmp .text:000545E8 LDR R4, [R4,#0x14] .text:000545EC CMP R0, #0 .text:000545F0 MOVNE R5, #0 .text:000545F4 MOVEQ R5, #1 .text:000545F8 CMP R4, #0 .text:000545FC CMPNE R0, #0 .text:00054600 BEQ loc_54630 .text:00054604 .text:00054604 loc_54604 ; CODE XREF: _dl_check_map_versions+238j .text:00054604 LDR R1, [R4] .text:00054608 MOV R0, R7 .text:0005460C BL strcmp .text:00054610 CMP R0, #0 .text:00054614 MOVEQ R5, #1 .text:00054618 LDRNE R4, [R4,#4] .text:0005461C CMP R4, #0 .text:00054620 EORNE R3, R5, #1 .text:00054624 MOVEQ R3, #0 .text:00054628 CMP R3, #0 .text:0005462C BNE loc_54604 .text:00054630 .text:00054630 loc_54630 ; CODE XREF: _dl_check_map_versions+20Cj .text:00054630 CMP R5, #0 .text:00054634 BNE loc_54668 .text:00054638 LDR R3, [R8,#0xFC] .text:0005463C ADD R6, R6, #1 .text:00054640 CMP R6, R3 .text:00054644 BCC loc_545D4 .text:00054648 .text:00054648 loc_54648 ; CODE XREF: _dl_check_map_versions+1DCj .text:00054648 MOV R5, #0 .text:0005464C .text:0005464C loc_5464C ; CODE XREF: _dl_check_map_versions+1C0j .text:0005464C ; _dl_check_map_versions+27Cj .text:0005464C CMP R5, #0 .text:00054650 BNE loc_54674 .text:00054654 LDR R0, =aNeededVoid0 ; "needed != ((void *)0)" .text:00054658 LDR R1, =aDlVersion_c ; "dl-version.c" .text:0005465C LDR R3, =a_dl_check_map_ ; "_dl_check_map_versions" .text:00054660 MOV R2, #0xDA .text:00054664 BL __assert_fail .text:00054668 ; --------------------------------------------------------------------------- .text:00054668 .text:00054668 loc_54668 ; CODE XREF: _dl_check_map_versions+240j .text:00054668 LDR R3, [R8,#0xF8] .text:0005466C LDR R5, [R3,R6,LSL#2] .text:00054670 B loc_5464C .text:00054674 ; --------------------------------------------------------------------------- .text:00054674 .text:00054674 loc_54674 ; CODE XREF: _dl_check_map_versions+25Cj .text:00054674 LDR R2, [R11,#var_5C] .text:00054678 CMP R2, #0 .text:0005467C BEQ loc_5468C .text:00054680 LDRB R3, [R5,#0x12D] .text:00054684 TST R3, #2 .text:00054688 BNE loc_54714 .text:0005468C .text:0005468C loc_5468C ; CODE XREF: _dl_check_map_versions+288j .text:0005468C LDR R3, [R10,#8] .text:00054690 ADD R4, R10, R3 .text:00054694 .text:00054694 loc_54694 ; CODE XREF: _dl_check_map_versions+31Cj .text:00054694 LDR R0, [R8,#4] .text:00054698 LDRB R3, [R0] .text:0005469C CMP R3, #0 .text:000546A0 LDREQ R3, =_dl_argv .text:000546A4 LDREQ R2, [R3] .text:000546A8 LDREQ R0, [R2] .text:000546AC LDR R1, [R4] .text:000546B0 LDR R3, [R11,#var_58] .text:000546B4 LDR R2, [R4,#8] .text:000546B8 STR R3, [SP,#0x74+var_74] .text:000546BC LDR R3, [R4,#4] .text:000546C0 AND R3, R3, #2 .text:000546C4 STR R3, [SP,#0x74+var_70] .text:000546C8 ADD R2, R9, R2 .text:000546CC MOV R3, R5 .text:000546D0 BL match_symbol .text:000546D4 LDR R1, [R11,#var_60] .text:000546D8 LDR R3, [R4,#4] .text:000546DC ORR R1, R1, R0 .text:000546E0 STR R1, [R11,#var_60] .text:000546E4 BIC R3, R3, #0x80000000 .text:000546E8 MOV R3, R3,LSR#16 .text:000546EC MOV R3, R3,LSL#16 .text:000546F0 LDR R0, [R11,#var_6C] .text:000546F4 MOV R3, R3,LSR#16 .text:000546F8 LDR R2, [R4,#0xC] .text:000546FC CMP R3, R0 .text:00054700 MOVCS R0, R3 .text:00054704 STR R0, [R11,#var_6C] .text:00054708 CMP R2, #0 .text:0005470C ADDNE R4, R4, R2 .text:00054710 BNE loc_54694 .text:00054714 .text:00054714 loc_54714 ; CODE XREF: _dl_check_map_versions+294j .text:00054714 LDR R3, [R10,#0xC] .text:00054718 CMP R3, #0 .text:0005471C ADDNE R10, R10, R3 .text:00054720 BNE loc_54544 .text:00054724 .text:00054724 loc_54724 ; CODE XREF: _dl_check_map_versions+50j .text:00054724 LDR R1, [R11,#var_68] .text:00054728 CMP R1, #0 .text:0005472C BEQ loc_54784 .text:00054730 LDR R3, [R8] .text:00054734 LDR R2, [R1,#4] .text:00054738 ADD R2, R3, R2 .text:0005473C LDR R1, [R2,#4] .text:00054740 LDR R0, [R2,#0x10] .text:00054744 MOV R12, 0xFFFF7FFF .text:00054748 LDR R3, [R11,#var_6C] .text:0005474C MOV R1, R1,LSL#17 .text:00054750 B loc_5476C .text:00054754 ; --------------------------------------------------------------------------- .text:00054754 .text:00054754 loc_54754 ; CODE XREF: _dl_check_map_versions+38Cj .text:00054754 ADD R2, R2, R0 .text:00054758 LDR R3, [R2,#4] .text:0005475C LDR R0, [R2,#0x10] .text:00054760 AND R3, R3, R12 .text:00054764 MOV R1, R3,LSL#17 .text:00054768 LDR R3, [R11,#var_6C] .text:0005476C .text:0005476C loc_5476C ; CODE XREF: _dl_check_map_versions+35Cj .text:0005476C MOV R1, R1,LSR#17 .text:00054770 CMP R1, R3 .text:00054774 MOVCS R3, R1 .text:00054778 CMP R0, #0 .text:0005477C STR R3, [R11,#var_6C] .text:00054780 BNE loc_54754 .text:00054784 .text:00054784 loc_54784 ; CODE XREF: _dl_check_map_versions+338j .text:00054784 LDR R0, [R11,#var_6C] .text:00054788 CMP R0, #0 .text:0005478C BEQ loc_54938 .text:00054790 ADD R4, R0, #1 .text:00054794 MOV R0, R4 .text:00054798 MOV R1, #0x10 .text:0005479C BL calloc .text:000547A0 CMP R0, #0 .text:000547A4 STR R0, [R8,#0x134] .text:000547A8 BNE loc_547F4 .text:000547AC LDR R1, [R8,#4] .text:000547B0 LDRB R3, [R1] .text:000547B4 CMP R3, #0 .text:000547B8 LDREQ R3, =_dl_argv .text:000547BC LDREQ R2, [R3] .text:000547C0 LDREQ R1, [R2] .text:000547C4 LDR R2, =aCannotAlloca_3 ; "cannot allocate version reference table"... .text:000547C8 MOV R0, #0xC .text:000547CC BL _dl_signal_error .text:000547CC ; --------------------------------------------------------------------------- .text:000547D0 off_547D0 DCD _dl_argv ; DATA XREF: _dl_check_map_versions+8Cr .text:000547D0 ; _dl_check_map_versions+2ACr ... .text:000547D4 off_547D4 DCD aUnsupportedVer ; DATA XREF: _dl_check_map_versions+98r .text:000547D4 ; "unsupported version " .text:000547D8 off_547D8 DCD _itoa_lower_digits ; DATA XREF: _dl_check_map_versions+B4r .text:000547DC off_547DC DCD aOfVerneedRecor ; DATA XREF: _dl_check_map_versions+E8r .text:000547DC ; " of Verneed record\n" .text:000547E0 off_547E0 DCD _dl_loaded ; DATA XREF: _dl_check_map_versions:loc_54544r .text:000547E4 off_547E4 DCD aNeededVoid0 ; DATA XREF: _dl_check_map_versions+260r .text:000547E4 ; "needed != ((void *)0)" .text:000547E8 off_547E8 DCD aDlVersion_c ; DATA XREF: _dl_check_map_versions+264r .text:000547E8 ; "dl-version.c" .text:000547EC off_547EC DCD a_dl_check_map_ ; DATA XREF: _dl_check_map_versions+268r .text:000547EC ; "_dl_check_map_versions" .text:000547F0 off_547F0 DCD aCannotAlloca_3 ; DATA XREF: _dl_check_map_versions+3D0r .text:000547F0 ; "cannot allocate version reference table"... .text:000547F4 ; --------------------------------------------------------------------------- .text:000547F4 .text:000547F4 loc_547F4 ; CODE XREF: _dl_check_map_versions+3B4j .text:000547F4 STR R4, [R8,#0x130] .text:000547F8 LDR R3, [R8,#0xDC] .text:000547FC LDR R1, [R11,#var_64] .text:00054800 LDR R2, [R3,#4] .text:00054804 CMP R1, #0 .text:00054808 STR R2, [R8,#0x144] .text:0005480C BEQ loc_548AC .text:00054810 MOV R10, 0xFFFF7FFF .text:00054814 MOV R7, #4 .text:00054818 LDR R2, [R8] .text:0005481C MOV R6, #8 .text:00054820 LDR R3, [R1,#4] .text:00054824 MOV R5, #0xC .text:00054828 ADD R4, R2, R3 .text:0005482C .text:0005482C loc_5482C ; CODE XREF: _dl_check_map_versions+4B4j .text:0005482C LDR R3, [R4,#8] .text:00054830 ADD LR, R4, R3 .text:00054834 .text:00054834 loc_54834 ; CODE XREF: _dl_check_map_versions+4A4j .text:00054834 LDR R12, [LR,#4] .text:00054838 LDR R3, [R8,#0x134] .text:0005483C LDR R2, [LR] .text:00054840 AND R12, R10, R12,LSR#16 .text:00054844 MOV R0, R12,LSL#4 .text:00054848 ADD R3, R0, R3 .text:0005484C STR R2, [R3,R7] .text:00054850 LDR R1, [R8,#0x134] .text:00054854 LDR R3, [LR,#4] .text:00054858 ADD R1, R0, R1 .text:0005485C AND R3, R3, #0x80000000 .text:00054860 MOV R3, R3,LSR#16 .text:00054864 STR R3, [R1,R6] .text:00054868 LDR R2, [LR,#8] .text:0005486C LDR R3, [R8,#0x134] .text:00054870 ADD R2, R9, R2 .text:00054874 STR R2, [R3,R12,LSL#4] .text:00054878 LDR R1, [R8,#0x134] .text:0005487C LDR R3, [R4,#4] .text:00054880 ADD R0, R0, R1 .text:00054884 ADD R3, R9, R3 .text:00054888 STR R3, [R0,R5] .text:0005488C LDR R3, [LR,#0xC] .text:00054890 CMP R3, #0 .text:00054894 ADDNE LR, LR, R3 .text:00054898 BNE loc_54834 .text:0005489C LDR R3, [R4,#0xC] .text:000548A0 CMP R3, #0 .text:000548A4 ADDNE R4, R4, R3 .text:000548A8 BNE loc_5482C .text:000548AC .text:000548AC loc_548AC ; CODE XREF: _dl_check_map_versions+418j .text:000548AC LDR R2, [R11,#var_68] .text:000548B0 CMP R2, #0 .text:000548B4 BEQ loc_54938 .text:000548B8 LDR R2, [R8] .text:000548BC MOV R7, 0xFFFF7FFF .text:000548C0 LDR R0, [R11,#var_68] .text:000548C4 MOV R6, #4 .text:000548C8 LDR R3, [R0,#4] .text:000548CC MOV R5, #0xC .text:000548D0 ADD LR, R2, R3 .text:000548D4 .text:000548D4 loc_548D4 ; CODE XREF: _dl_check_map_versions+540j .text:000548D4 LDR R3, [LR] .text:000548D8 AND R3, R3, #0x10000 .text:000548DC MOVS R4, R3,LSR#16 .text:000548E0 LDR R3, [LR,#0xC] .text:000548E4 BNE loc_54928 .text:000548E8 LDR R1, [LR,#4] .text:000548EC LDR R2, [R8,#0x134] .text:000548F0 LDR R0, [LR,#8] .text:000548F4 AND R1, R1, R7 .text:000548F8 MOV R1, R1,LSL#17 .text:000548FC MOV R1, R1,LSR#17 .text:00054900 MOV R12, R1,LSL#4 .text:00054904 ADD R2, R12, R2 .text:00054908 STR R0, [R2,R6] .text:0005490C LDR R3, [LR,R3] .text:00054910 LDR R0, [R8,#0x134] .text:00054914 ADD R3, R9, R3 .text:00054918 STR R3, [R0,R1,LSL#4] .text:0005491C LDR R2, [R8,#0x134] .text:00054920 ADD R12, R12, R2 .text:00054924 STR R4, [R12,R5] .text:00054928 .text:00054928 loc_54928 ; CODE XREF: _dl_check_map_versions+4F0j .text:00054928 LDR R3, [LR,#0x10] .text:0005492C CMP R3, #0 .text:00054930 ADDNE LR, LR, R3 .text:00054934 BNE loc_548D4 .text:00054938 .text:00054938 loc_54938 ; CODE XREF: _dl_check_map_versions+398j .text:00054938 ; _dl_check_map_versions+4C0j .text:00054938 LDR R0, [R11,#var_60] .text:0005493C .text:0005493C locret_5493C ; CODE XREF: _dl_check_map_versions+34j .text:0005493C LDMDB R11, {R4-R11,SP,PC} .text:0005493C ; End of function _dl_check_map_versions .text:0005493C .text:00054940 .text:00054940 ; =============== S U B R O U T I N E ======================================= .text:00054940 .text:00054940 ; Attributes: bp-based frame .text:00054940 .text:00054940 EXPORT _dl_check_all_versions .text:00054940 _dl_check_all_versions .text:00054940 MOV R12, SP .text:00054944 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00054948 SUB R11, R12, #4 .text:0005494C MOV R5, #0 .text:00054950 SUBS R4, R0, #0 .text:00054954 MOV R7, R1 .text:00054958 MOV R6, R2 .text:0005495C BEQ loc_54998 .text:00054960 .text:00054960 loc_54960 ; CODE XREF: _dl_check_all_versions+54j .text:00054960 LDRB R3, [R4,#0x12D] .text:00054964 MOV R0, #0 .text:00054968 TST R3, #2 .text:0005496C BNE loc_54988 .text:00054970 MOV R0, R4 .text:00054974 MOV R1, R7 .text:00054978 MOV R2, R6 .text:0005497C BL _dl_check_map_versions .text:00054980 SUBS R0, R0, #0 .text:00054984 MOVNE R0, #1 .text:00054988 .text:00054988 loc_54988 ; CODE XREF: _dl_check_all_versions+2Cj .text:00054988 LDR R4, [R4,#0xC] .text:0005498C ORR R5, R5, R0 .text:00054990 CMP R4, #0 .text:00054994 BNE loc_54960 .text:00054998 .text:00054998 loc_54998 ; CODE XREF: _dl_check_all_versions+1Cj .text:00054998 MOV R0, R5 .text:0005499C LDMDB R11, {R4-R7,R11,SP,PC} .text:0005499C ; End of function _dl_check_all_versions .text:0005499C .text:000549A0 .text:000549A0 ; =============== S U B R O U T I N E ======================================= .text:000549A0 .text:000549A0 .text:000549A0 EXPORT __ashldi3 .text:000549A0 __ashldi3 ; CODE XREF: _itoa+448p .text:000549A0 ; _itowa+448p .text:000549A0 CMP R2, #0 ; Alternative name is 'gcc2_compiled.' .text:000549A4 STMFD SP!, {R4,R5,LR} .text:000549A8 LDMEQFD SP!, {R4,R5,PC} .text:000549AC RSB R12, R2, #0x20 .text:000549B0 CMP R12, #0 .text:000549B4 MOVLE R4, #0 .text:000549B8 RSBLE R3, R12, #0 .text:000549BC MOVLE R5, R0,LSL R3 .text:000549C0 MOVGT R4, R0,LSL R2 .text:000549C4 MOVGT R3, R1,LSL R2 .text:000549C8 ORRGT R5, R3, R0,LSR R12 .text:000549CC MOV R1, R5 .text:000549D0 MOV R0, R4 .text:000549D4 LDMFD SP!, {R4,R5,PC} .text:000549D4 ; End of function __ashldi3 .text:000549D4 .text:000549D8 .text:000549D8 ; =============== S U B R O U T I N E ======================================= .text:000549D8 .text:000549D8 .text:000549D8 EXPORT __divsi3 .text:000549D8 __divsi3 ; CODE XREF: __printf_fp+1804p .text:000549D8 ; __printf_fp+1814p ... .text:000549D8 .text:000549D8 var_4 = -4 .text:000549D8 .text:000549D8 EOR R12, R0, R1 .text:000549DC MOV R3, #1 .text:000549E0 MOV R2, #0 .text:000549E4 CMP R1, #0 .text:000549E8 RSBMI R1, R1, #0 .text:000549EC BEQ Ldiv0 .text:000549F0 CMP R0, #0 .text:000549F4 RSBMI R0, R0, #0 .text:000549F8 CMP R0, R1 .text:000549FC BCC Lgot_result .text:00054A00 .text:00054A00 Loop1 ; CODE XREF: __divsi3+38j .text:00054A00 CMP R1, #0x10000000 .text:00054A04 CMPCC R1, R0 .text:00054A08 MOVCC R1, R1,LSL#4 .text:00054A0C MOVCC R3, R3,LSL#4 .text:00054A10 BCC Loop1 .text:00054A14 .text:00054A14 Lbignum ; CODE XREF: __divsi3+4Cj .text:00054A14 CMP R1, #0x80000000 .text:00054A18 CMPCC R1, R0 .text:00054A1C MOVCC R1, R1,LSL#1 .text:00054A20 MOVCC R3, R3,LSL#1 .text:00054A24 BCC Lbignum .text:00054A28 .text:00054A28 Loop3 ; CODE XREF: __divsi3+8Cj .text:00054A28 CMP R0, R1 .text:00054A2C SUBCS R0, R0, R1 .text:00054A30 ORRCS R2, R2, R3 .text:00054A34 CMP R0, R1,LSR#1 .text:00054A38 SUBCS R0, R0, R1,LSR#1 .text:00054A3C ORRCS R2, R2, R3,LSR#1 .text:00054A40 CMP R0, R1,LSR#2 .text:00054A44 SUBCS R0, R0, R1,LSR#2 .text:00054A48 ORRCS R2, R2, R3,LSR#2 .text:00054A4C CMP R0, R1,LSR#3 .text:00054A50 SUBCS R0, R0, R1,LSR#3 .text:00054A54 ORRCS R2, R2, R3,LSR#3 .text:00054A58 CMP R0, #0 .text:00054A5C MOVNES R3, R3,LSR#4 .text:00054A60 MOVNE R1, R1,LSR#4 .text:00054A64 BNE Loop3 .text:00054A68 .text:00054A68 Lgot_result ; CODE XREF: __divsi3+24j .text:00054A68 MOV R0, R2 .text:00054A6C CMP R12, #0 .text:00054A70 RSBMI R0, R0, #0 .text:00054A74 RET .text:00054A78 ; --------------------------------------------------------------------------- .text:00054A78 .text:00054A78 Ldiv0 ; CODE XREF: __divsi3+14j .text:00054A78 STR LR, [SP,#var_4]! .text:00054A7C BL __div0 .text:00054A80 MOV R0, #0 .text:00054A84 LDMFD SP!, {PC} .text:00054A84 ; End of function __divsi3 .text:00054A84 .text:00054A88 .text:00054A88 ; =============== S U B R O U T I N E ======================================= .text:00054A88 .text:00054A88 .text:00054A88 EXPORT __div0 .text:00054A88 __div0 ; CODE XREF: __divsi3+A4p .text:00054A88 ; __modsi3+C4p ... .text:00054A88 STMFD SP!, {R1,LR} .text:00054A8C SVC 0x900014 .text:00054A90 CMN R0, #0x3E8 .text:00054A94 LDMCSFD SP!, {R1,PC} .text:00054A98 MOV R1, #8 .text:00054A9C SVC 0x900025 .text:00054AA0 LDMFD SP!, {R1,PC} .text:00054AA0 ; End of function __div0 .text:00054AA0 .text:00054AA4 .text:00054AA4 ; =============== S U B R O U T I N E ======================================= .text:00054AA4 .text:00054AA4 .text:00054AA4 EXPORT __lshrdi3 .text:00054AA4 __lshrdi3 ; CODE XREF: _itoa+1A4p .text:00054AA4 ; _itoa+1C0p ... .text:00054AA4 CMP R2, #0 ; Alternative name is 'gcc2_compiled.' .text:00054AA8 STMFD SP!, {R4,R5,LR} .text:00054AAC LDMEQFD SP!, {R4,R5,PC} .text:00054AB0 RSB R12, R2, #0x20 .text:00054AB4 CMP R12, #0 .text:00054AB8 MOVLE R5, #0 .text:00054ABC RSBLE R3, R12, #0 .text:00054AC0 MOVLE R4, R1,LSR R3 .text:00054AC4 MOVGT R5, R1,LSR R2 .text:00054AC8 MOVGT R3, R0,LSR R2 .text:00054ACC ORRGT R4, R3, R1,LSL R12 .text:00054AD0 MOV R1, R5 .text:00054AD4 MOV R0, R4 .text:00054AD8 LDMFD SP!, {R4,R5,PC} .text:00054AD8 ; End of function __lshrdi3 .text:00054AD8 .text:00054ADC .text:00054ADC ; =============== S U B R O U T I N E ======================================= .text:00054ADC .text:00054ADC .text:00054ADC EXPORT __modsi3 .text:00054ADC __modsi3 ; CODE XREF: __printf_fp+1828p .text:00054ADC ; compute_change+124p ... .text:00054ADC .text:00054ADC var_4 = -4 .text:00054ADC .text:00054ADC MOV R3, #1 .text:00054AE0 CMP R1, #0 .text:00054AE4 RSBMI R1, R1, #0 .text:00054AE8 BEQ Ldiv0_0 .text:00054AEC STR R0, [SP,#var_4]! .text:00054AF0 CMP R0, #0 .text:00054AF4 RSBMI R0, R0, #0 .text:00054AF8 CMP R0, R1 .text:00054AFC BCC Lgot_result_0 .text:00054B00 .text:00054B00 Loop1_0 ; CODE XREF: __modsi3+34j .text:00054B00 CMP R1, #0x10000000 .text:00054B04 CMPCC R1, R0 .text:00054B08 MOVCC R1, R1,LSL#4 .text:00054B0C MOVCC R3, R3,LSL#4 .text:00054B10 BCC Loop1_0 .text:00054B14 .text:00054B14 Lbignum_0 ; CODE XREF: __modsi3+48j .text:00054B14 CMP R1, #0x80000000 .text:00054B18 CMPCC R1, R0 .text:00054B1C MOVCC R1, R1,LSL#1 .text:00054B20 MOVCC R3, R3,LSL#1 .text:00054B24 BCC Lbignum_0 .text:00054B28 .text:00054B28 Loop3_0 ; CODE XREF: __modsi3+8Cj .text:00054B28 MOV R2, #0 .text:00054B2C CMP R0, R1 .text:00054B30 SUBCS R0, R0, R1 .text:00054B34 CMP R0, R1,LSR#1 .text:00054B38 SUBCS R0, R0, R1,LSR#1 .text:00054B3C ORRCS R2, R2, R3,ROR#1 .text:00054B40 CMP R0, R1,LSR#2 .text:00054B44 SUBCS R0, R0, R1,LSR#2 .text:00054B48 ORRCS R2, R2, R3,ROR#2 .text:00054B4C CMP R0, R1,LSR#3 .text:00054B50 SUBCS R0, R0, R1,LSR#3 .text:00054B54 ORRCS R2, R2, R3,ROR#3 .text:00054B58 MOV R12, R3 .text:00054B5C CMP R0, #0 .text:00054B60 MOVNES R3, R3,LSR#4 .text:00054B64 MOVNE R1, R1,LSR#4 .text:00054B68 BNE Loop3_0 .text:00054B6C ANDS R2, R2, #0xE0000000 .text:00054B70 BEQ Lgot_result_0 .text:00054B74 TST R2, R12,ROR#3 .text:00054B78 ADDNE R0, R0, R1,LSR#3 .text:00054B7C TST R2, R12,ROR#2 .text:00054B80 ADDNE R0, R0, R1,LSR#2 .text:00054B84 TST R2, R12,ROR#1 .text:00054B88 ADDNE R0, R0, R1,LSR#1 .text:00054B8C .text:00054B8C Lgot_result_0 ; CODE XREF: __modsi3+20j .text:00054B8C ; __modsi3+94j .text:00054B8C LDR R12, [SP+4+var_4],#4 .text:00054B90 CMP R12, #0 .text:00054B94 RSBMI R0, R0, #0 .text:00054B98 RET .text:00054B9C ; --------------------------------------------------------------------------- .text:00054B9C .text:00054B9C Ldiv0_0 ; CODE XREF: __modsi3+Cj .text:00054B9C STR LR, [SP,#var_4]! .text:00054BA0 BL __div0 .text:00054BA4 MOV R0, #0 .text:00054BA8 LDMFD SP!, {PC} .text:00054BA8 ; End of function __modsi3 .text:00054BA8 .text:00054BAC .text:00054BAC ; =============== S U B R O U T I N E ======================================= .text:00054BAC .text:00054BAC .text:00054BAC EXPORT __muldi3 .text:00054BAC __muldi3 ; CODE XREF: __strtoll_internal+744p .text:00054BAC ; __strtoull_internal+744p ... .text:00054BAC MUL R12, R2, R1 ; Alternative name is 'gcc2_compiled.' .text:00054BB0 STMFD SP!, {R4-R9,LR} .text:00054BB4 MLA R4, R0, R3, R12 .text:00054BB8 MOV R7, R0,LSR#16 .text:00054BBC MOV R9, R2,LSR#16 .text:00054BC0 BIC R6, R0, R7,LSL#16 .text:00054BC4 BIC R5, R2, R9,LSL#16 .text:00054BC8 MUL LR, R6, R5 .text:00054BCC MUL R5, R7, R5 .text:00054BD0 MUL R6, R9, R6 .text:00054BD4 MUL R9, R7, R9 .text:00054BD8 ADDS R6, R5, R6 .text:00054BDC ADDCS R9, R9, #0x10000 .text:00054BE0 ADDS LR, LR, R6,LSL#16 .text:00054BE4 ADC R9, R9, R6,LSR#16 .text:00054BE8 MOV R8, LR .text:00054BEC MOV R1, R9 .text:00054BF0 MOV R0, R8 .text:00054BF4 ADD R1, R9, R4 .text:00054BF8 LDMFD SP!, {R4-R9,PC} .text:00054BF8 ; End of function __muldi3 .text:00054BF8 .text:00054BFC .text:00054BFC ; =============== S U B R O U T I N E ======================================= .text:00054BFC .text:00054BFC .text:00054BFC EXPORT __udivdi3 .text:00054BFC __udivdi3 ; CODE XREF: __strtoll_internal+504p .text:00054BFC ; __strtoull_internal+504p .text:00054BFC .text:00054BFC var_44 = -0x44 .text:00054BFC var_40 = -0x40 .text:00054BFC var_3C = -0x3C .text:00054BFC var_38 = -0x38 .text:00054BFC var_34 = -0x34 .text:00054BFC var_30 = -0x30 .text:00054BFC var_2C = -0x2C .text:00054BFC var_28 = -0x28 .text:00054BFC var_24 = -0x24 .text:00054BFC .text:00054BFC STMFD SP!, {R4-R10,LR} ; Alternative name is 'gcc2_compiled.' .text:00054C00 MOV R7, R2 .text:00054C04 MOV R9, R1 .text:00054C08 LDR R10, =(_GLOBAL_OFFSET_TABLE_ - 0x54C18) .text:00054C0C SUBS R6, R3, #0 .text:00054C10 ADD R10, PC, R10 .text:00054C14 SUB SP, SP, #0x24 .text:00054C18 STR R0, [SP,#0x44+var_24] .text:00054C1C BNE loc_54F48 .text:00054C20 CMP R7, R9 .text:00054C24 BLS loc_54D44 .text:00054C28 CMP R7, #0x10000 .text:00054C2C BCS loc_54C40 .text:00054C30 CMP R7, #0xFF .text:00054C34 MOVHI R0, #8 .text:00054C38 MOVLS R0, #0 .text:00054C3C B loc_54C4C .text:00054C40 ; --------------------------------------------------------------------------- .text:00054C40 .text:00054C40 loc_54C40 ; CODE XREF: __udivdi3+30j .text:00054C40 CMP R7, #0x1000000 .text:00054C44 MOVCS R0, #0x18 .text:00054C48 MOVCC R0, #0x10 .text:00054C4C .text:00054C4C loc_54C4C ; CODE XREF: __udivdi3+40j .text:00054C4C LDR R3, =(__clz_tab_ptr - 0x6C248) .text:00054C50 LDR R1, [R10,R3] .text:00054C54 MOV R2, R2,LSR R0 .text:00054C58 LDRB R3, [R1,R2] .text:00054C5C ADD R3, R3, R0 .text:00054C60 RSBS R0, R3, #0x20 .text:00054C64 BEQ loc_54C84 .text:00054C68 MOV R7, R7,LSL R0 .text:00054C6C LDR R1, [SP,#0x44+var_24] .text:00054C70 RSB R3, R0, #0x20 .text:00054C74 MOV R3, R1,LSR R3 .text:00054C78 ORR R9, R3, R9,LSL R0 .text:00054C7C MOV R1, R1,LSL R0 .text:00054C80 STR R1, [SP,#0x44+var_24] .text:00054C84 .text:00054C84 loc_54C84 ; CODE XREF: __udivdi3+68j .text:00054C84 MOV R2, R7,LSL#16 .text:00054C88 MOV R2, R2,LSR#16 .text:00054C8C STR R2, [SP,#0x44+var_28] .text:00054C90 MOV R0, R9 .text:00054C94 MOV R8, R7,LSR#16 .text:00054C98 MOV R1, R8 .text:00054C9C BL __umodsi3 .text:00054CA0 MOV R4, R0 .text:00054CA4 MOV R0, R9 .text:00054CA8 MOV R1, R8 .text:00054CAC BL __udivsi3 .text:00054CB0 LDR R2, [SP,#0x44+var_28] .text:00054CB4 MOV R6, R0 .text:00054CB8 MUL R2, R6, R2 .text:00054CBC LDR R1, [SP,#0x44+var_24] .text:00054CC0 MOV R3, R1,LSR#16 .text:00054CC4 ORR R4, R3, R4,LSL#16 .text:00054CC8 CMP R4, R2 .text:00054CCC BCS loc_54CE8 .text:00054CD0 SUB R6, R6, #1 .text:00054CD4 ADDS R4, R4, R7 .text:00054CD8 BCS loc_54CE8 .text:00054CDC CMP R4, R2 .text:00054CE0 SUBCC R6, R6, #1 .text:00054CE4 ADDCC R4, R4, R7 .text:00054CE8 .text:00054CE8 loc_54CE8 ; CODE XREF: __udivdi3+D0j .text:00054CE8 ; __udivdi3+DCj .text:00054CE8 RSB R4, R2, R4 .text:00054CEC MOV R0, R4 .text:00054CF0 MOV R1, R8 .text:00054CF4 BL __umodsi3 .text:00054CF8 MOV R5, R0 .text:00054CFC MOV R0, R4 .text:00054D00 MOV R1, R8 .text:00054D04 BL __udivsi3 .text:00054D08 LDR R2, [SP,#0x44+var_28] .text:00054D0C MUL R2, R0, R2 .text:00054D10 LDR R1, [SP,#0x44+var_24] .text:00054D14 MOV R3, R1,LSL#16 .text:00054D18 MOV R3, R3,LSR#16 .text:00054D1C ORR R5, R3, R5,LSL#16 .text:00054D20 CMP R5, R2 .text:00054D24 BCS loc_54D3C .text:00054D28 SUB R0, R0, #1 .text:00054D2C ADDS R5, R5, R7 .text:00054D30 BCS loc_54D3C .text:00054D34 CMP R5, R2 .text:00054D38 SUBCC R0, R0, #1 .text:00054D3C .text:00054D3C loc_54D3C ; CODE XREF: __udivdi3+128j .text:00054D3C ; __udivdi3+134j .text:00054D3C ORR R12, R0, R6,LSL#16 .text:00054D40 B loc_550FC .text:00054D44 ; --------------------------------------------------------------------------- .text:00054D44 .text:00054D44 loc_54D44 ; CODE XREF: __udivdi3+28j .text:00054D44 CMP R7, #0 .text:00054D48 BNE loc_54D5C .text:00054D4C MOV R0, #1 .text:00054D50 MOV R1, R2 .text:00054D54 BL __udivsi3 .text:00054D58 MOV R7, R0 .text:00054D5C .text:00054D5C loc_54D5C ; CODE XREF: __udivdi3+14Cj .text:00054D5C CMP R7, #0x10000 .text:00054D60 BCS loc_54D74 .text:00054D64 CMP R7, #0xFF .text:00054D68 MOVHI R0, #8 .text:00054D6C MOVLS R0, #0 .text:00054D70 B loc_54D80 .text:00054D74 ; --------------------------------------------------------------------------- .text:00054D74 .text:00054D74 loc_54D74 ; CODE XREF: __udivdi3+164j .text:00054D74 CMP R7, #0x1000000 .text:00054D78 MOVCS R0, #0x18 .text:00054D7C MOVCC R0, #0x10 .text:00054D80 .text:00054D80 loc_54D80 ; CODE XREF: __udivdi3+174j .text:00054D80 LDR R3, =(__clz_tab_ptr - 0x6C248) .text:00054D84 LDR R1, [R10,R3] .text:00054D88 MOV R2, R7,LSR R0 .text:00054D8C LDRB R3, [R1,R2] .text:00054D90 ADD R3, R3, R0 .text:00054D94 RSBS R0, R3, #0x20 .text:00054D98 RSBEQ R9, R7, R9 .text:00054D9C MOVEQ R3, #1 .text:00054DA0 STREQ R3, [SP,#0x44+var_2C] .text:00054DA4 BEQ loc_54E88 .text:00054DA8 RSB R2, R0, #0x20 .text:00054DAC MOV R7, R7,LSL R0 .text:00054DB0 LDR R1, [SP,#0x44+var_24] .text:00054DB4 MOV R5, R9,LSR R2 .text:00054DB8 MOV R3, R1,LSR R2 .text:00054DBC ORR R9, R3, R9,LSL R0 .text:00054DC0 MOV R1, R1,LSL R0 .text:00054DC4 STR R1, [SP,#0x44+var_24] .text:00054DC8 MOV R8, R7,LSR#16 .text:00054DCC MOV R2, R7,LSL#16 .text:00054DD0 MOV R2, R2,LSR#16 .text:00054DD4 STR R2, [SP,#0x44+var_30] .text:00054DD8 MOV R0, R5 .text:00054DDC MOV R1, R8 .text:00054DE0 BL __umodsi3 .text:00054DE4 MOV R4, R0 .text:00054DE8 MOV R0, R5 .text:00054DEC MOV R1, R8 .text:00054DF0 BL __udivsi3 .text:00054DF4 LDR R2, [SP,#0x44+var_30] .text:00054DF8 MOV R6, R0 .text:00054DFC MUL R2, R6, R2 .text:00054E00 MOV R3, R9,LSR#16 .text:00054E04 ORR R4, R3, R4,LSL#16 .text:00054E08 CMP R4, R2 .text:00054E0C BCS loc_54E28 .text:00054E10 SUB R6, R6, #1 .text:00054E14 ADDS R4, R4, R7 .text:00054E18 BCS loc_54E28 .text:00054E1C CMP R4, R2 .text:00054E20 SUBCC R6, R6, #1 .text:00054E24 ADDCC R4, R4, R7 .text:00054E28 .text:00054E28 loc_54E28 ; CODE XREF: __udivdi3+210j .text:00054E28 ; __udivdi3+21Cj .text:00054E28 RSB R4, R2, R4 .text:00054E2C MOV R0, R4 .text:00054E30 MOV R1, R8 .text:00054E34 BL __umodsi3 .text:00054E38 MOV R5, R0 .text:00054E3C MOV R0, R4 .text:00054E40 MOV R1, R8 .text:00054E44 BL __udivsi3 .text:00054E48 LDR R2, [SP,#0x44+var_30] .text:00054E4C MUL R2, R0, R2 .text:00054E50 MOV R3, R9,LSL#16 .text:00054E54 MOV R3, R3,LSR#16 .text:00054E58 ORR R5, R3, R5,LSL#16 .text:00054E5C CMP R5, R2 .text:00054E60 BCS loc_54E7C .text:00054E64 SUB R0, R0, #1 .text:00054E68 ADDS R5, R5, R7 .text:00054E6C BCS loc_54E7C .text:00054E70 CMP R5, R2 .text:00054E74 SUBCC R0, R0, #1 .text:00054E78 ADDCC R5, R5, R7 .text:00054E7C .text:00054E7C loc_54E7C ; CODE XREF: __udivdi3+264j .text:00054E7C ; __udivdi3+270j .text:00054E7C ORR R6, R0, R6,LSL#16 .text:00054E80 RSB R9, R2, R5 .text:00054E84 STR R6, [SP,#0x44+var_2C] .text:00054E88 .text:00054E88 loc_54E88 ; CODE XREF: __udivdi3+1A8j .text:00054E88 MOV R3, R7,LSL#16 .text:00054E8C MOV R3, R3,LSR#16 .text:00054E90 STR R3, [SP,#0x44+var_34] .text:00054E94 MOV R0, R9 .text:00054E98 MOV R8, R7,LSR#16 .text:00054E9C MOV R1, R8 .text:00054EA0 BL __umodsi3 .text:00054EA4 MOV R4, R0 .text:00054EA8 MOV R0, R9 .text:00054EAC MOV R1, R8 .text:00054EB0 BL __udivsi3 .text:00054EB4 LDR R2, [SP,#0x44+var_34] .text:00054EB8 MOV R6, R0 .text:00054EBC MUL R2, R6, R2 .text:00054EC0 LDR R1, [SP,#0x44+var_24] .text:00054EC4 MOV R3, R1,LSR#16 .text:00054EC8 ORR R4, R3, R4,LSL#16 .text:00054ECC CMP R4, R2 .text:00054ED0 BCS loc_54EEC .text:00054ED4 SUB R6, R6, #1 .text:00054ED8 ADDS R4, R4, R7 .text:00054EDC BCS loc_54EEC .text:00054EE0 CMP R4, R2 .text:00054EE4 SUBCC R6, R6, #1 .text:00054EE8 ADDCC R4, R4, R7 .text:00054EEC .text:00054EEC loc_54EEC ; CODE XREF: __udivdi3+2D4j .text:00054EEC ; __udivdi3+2E0j .text:00054EEC RSB R4, R2, R4 .text:00054EF0 MOV R0, R4 .text:00054EF4 MOV R1, R8 .text:00054EF8 BL __umodsi3 .text:00054EFC MOV R5, R0 .text:00054F00 MOV R0, R4 .text:00054F04 MOV R1, R8 .text:00054F08 BL __udivsi3 .text:00054F0C LDR R2, [SP,#0x44+var_34] .text:00054F10 MUL R2, R0, R2 .text:00054F14 LDR R1, [SP,#0x44+var_24] .text:00054F18 MOV R3, R1,LSL#16 .text:00054F1C MOV R3, R3,LSR#16 .text:00054F20 ORR R5, R3, R5,LSL#16 .text:00054F24 CMP R5, R2 .text:00054F28 BCS loc_54F40 .text:00054F2C SUB R0, R0, #1 .text:00054F30 ADDS R5, R5, R7 .text:00054F34 BCS loc_54F40 .text:00054F38 CMP R5, R2 .text:00054F3C SUBCC R0, R0, #1 .text:00054F40 .text:00054F40 loc_54F40 ; CODE XREF: __udivdi3+32Cj .text:00054F40 ; __udivdi3+338j .text:00054F40 ORR R12, R0, R6,LSL#16 .text:00054F44 B loc_55104 .text:00054F48 ; --------------------------------------------------------------------------- .text:00054F48 .text:00054F48 loc_54F48 ; CODE XREF: __udivdi3+20j .text:00054F48 CMP R6, R9 .text:00054F4C MOVHI R2, #0 .text:00054F50 MOVHI R12, R2 .text:00054F54 BHI loc_55100 .text:00054F58 CMP R6, #0x10000 .text:00054F5C BCS loc_54F70 .text:00054F60 CMP R6, #0xFF .text:00054F64 MOVHI R0, #8 .text:00054F68 MOVLS R0, #0 .text:00054F6C B loc_54F7C .text:00054F70 ; --------------------------------------------------------------------------- .text:00054F70 .text:00054F70 loc_54F70 ; CODE XREF: __udivdi3+360j .text:00054F70 CMP R6, #0x1000000 .text:00054F74 MOVCS R0, #0x18 .text:00054F78 MOVCC R0, #0x10 .text:00054F7C .text:00054F7C loc_54F7C ; CODE XREF: __udivdi3+370j .text:00054F7C LDR R3, =(__clz_tab_ptr - 0x6C248) .text:00054F80 LDR R1, [R10,R3] .text:00054F84 MOV R2, R6,LSR R0 .text:00054F88 LDRB R3, [R1,R2] .text:00054F8C ADD R3, R3, R0 .text:00054F90 RSBS R0, R3, #0x20 .text:00054F94 BNE loc_54FC0 .text:00054F98 LDR R3, [SP,#0x44+var_24] .text:00054F9C CMP R9, R6 .text:00054FA0 CMPLS R3, R7 .text:00054FA4 MOV R12, #1 .text:00054FA8 MOVCC R12, R0 .text:00054FAC MOV R1, #0 .text:00054FB0 STR R1, [SP,#0x44+var_2C] .text:00054FB4 B loc_55104 .text:00054FB4 ; --------------------------------------------------------------------------- .text:00054FB8 off_54FB8 DCD _GLOBAL_OFFSET_TABLE_ - 0x54C18 ; DATA XREF: __udivdi3+Cr .text:00054FBC off_54FBC DCD __clz_tab_ptr - 0x6C248 ; DATA XREF: __udivdi3:loc_54C4Cr .text:00054FBC ; __udivdi3:loc_54D80r ... .text:00054FC0 ; --------------------------------------------------------------------------- .text:00054FC0 .text:00054FC0 loc_54FC0 ; CODE XREF: __udivdi3+398j .text:00054FC0 RSB R2, R0, #0x20 .text:00054FC4 MOV R3, R7,LSR R2 .text:00054FC8 ORR R6, R3, R6,LSL R0 .text:00054FCC MOV R7, R7,LSL R0 .text:00054FD0 LDR R1, [SP,#0x44+var_24] .text:00054FD4 MOV R5, R9,LSR R2 .text:00054FD8 MOV R3, R1,LSR R2 .text:00054FDC MOV R1, R1,LSL R0 .text:00054FE0 STR R1, [SP,#0x44+var_24] .text:00054FE4 ORR R9, R3, R9,LSL R0 .text:00054FE8 MOV R2, R6,LSR#16 .text:00054FEC STR R2, [SP,#0x44+var_38] .text:00054FF0 MOV R3, R6,LSL#16 .text:00054FF4 MOV R3, R3,LSR#16 .text:00054FF8 STR R3, [SP,#0x44+var_3C] .text:00054FFC MOV R0, R5 .text:00055000 MOV R1, R2 .text:00055004 BL __umodsi3 .text:00055008 MOV R4, R0 .text:0005500C LDR R1, [SP,#0x44+var_38] .text:00055010 MOV R0, R5 .text:00055014 BL __udivsi3 .text:00055018 LDR R2, [SP,#0x44+var_3C] .text:0005501C MOV R8, R0 .text:00055020 MUL R2, R8, R2 .text:00055024 MOV R3, R9,LSR#16 .text:00055028 ORR R4, R3, R4,LSL#16 .text:0005502C CMP R4, R2 .text:00055030 BCS loc_5504C .text:00055034 SUB R8, R8, #1 .text:00055038 ADDS R4, R4, R6 .text:0005503C BCS loc_5504C .text:00055040 CMP R4, R2 .text:00055044 SUBCC R8, R8, #1 .text:00055048 ADDCC R4, R4, R6 .text:0005504C .text:0005504C loc_5504C ; CODE XREF: __udivdi3+434j .text:0005504C ; __udivdi3+440j .text:0005504C RSB R4, R2, R4 .text:00055050 LDR R1, [SP,#0x44+var_38] .text:00055054 MOV R0, R4 .text:00055058 BL __umodsi3 .text:0005505C MOV R5, R0 .text:00055060 LDR R1, [SP,#0x44+var_38] .text:00055064 MOV R0, R4 .text:00055068 BL __udivsi3 .text:0005506C LDR R2, [SP,#0x44+var_3C] .text:00055070 MUL R2, R0, R2 .text:00055074 MOV R3, R9,LSL#16 .text:00055078 MOV R3, R3,LSR#16 .text:0005507C ORR R5, R3, R5,LSL#16 .text:00055080 CMP R5, R2 .text:00055084 BCS loc_550A0 .text:00055088 SUB R0, R0, #1 .text:0005508C ADDS R5, R5, R6 .text:00055090 BCS loc_550A0 .text:00055094 CMP R5, R2 .text:00055098 SUBCC R0, R0, #1 .text:0005509C ADDCC R5, R5, R6 .text:000550A0 .text:000550A0 loc_550A0 ; CODE XREF: __udivdi3+488j .text:000550A0 ; __udivdi3+494j .text:000550A0 ORR R12, R0, R8,LSL#16 .text:000550A4 RSB R9, R2, R5 .text:000550A8 MOV R0, R12,LSR#16 .text:000550AC MOV R3, R7,LSR#16 .text:000550B0 BIC R1, R12, R0,LSL#16 .text:000550B4 BIC R2, R7, R3,LSL#16 .text:000550B8 MUL LR, R1, R2 .text:000550BC MUL R2, R0, R2 .text:000550C0 MUL R1, R3, R1 .text:000550C4 MUL R3, R0, R3 .text:000550C8 ADDS R1, R2, R1 .text:000550CC ADDCS R3, R3, #0x10000 .text:000550D0 ADDS LR, LR, R1,LSL#16 .text:000550D4 ADC R3, R3, R1,LSR#16 .text:000550D8 CMP R3, R9 .text:000550DC BHI loc_550F8 .text:000550E0 LDR R1, [SP,#0x44+var_24] .text:000550E4 MOVNE R3, #0 .text:000550E8 MOVEQ R3, #1 .text:000550EC CMP R3, #0 .text:000550F0 CMPNE LR, R1 .text:000550F4 BLS loc_550FC .text:000550F8 .text:000550F8 loc_550F8 ; CODE XREF: __udivdi3+4E0j .text:000550F8 SUB R12, R12, #1 .text:000550FC .text:000550FC loc_550FC ; CODE XREF: __udivdi3+144j .text:000550FC ; __udivdi3+4F8j .text:000550FC MOV R2, #0 .text:00055100 .text:00055100 loc_55100 ; CODE XREF: __udivdi3+358j .text:00055100 STR R2, [SP,#0x44+var_2C] .text:00055104 .text:00055104 loc_55104 ; CODE XREF: __udivdi3+348j .text:00055104 ; __udivdi3+3B8j .text:00055104 STR R12, [SP,#0x44+var_44] .text:00055108 LDR R3, [SP,#0x44+var_2C] .text:0005510C STR R3, [SP,#0x44+var_40] .text:00055110 LDMFD SP, {R0,R1} .text:00055114 ADD SP, SP, #0x24 .text:00055118 LDMFD SP!, {R4-R10,PC} .text:00055118 ; End of function __udivdi3 .text:00055118 .text:0005511C .text:0005511C ; =============== S U B R O U T I N E ======================================= .text:0005511C .text:0005511C .text:0005511C EXPORT __udivsi3 .text:0005511C __udivsi3 ; CODE XREF: main_trim+34p .text:0005511C ; heap_trim+114p ... .text:0005511C .text:0005511C var_4 = -4 .text:0005511C .text:0005511C CMP R1, #0 .text:00055120 BEQ Ldiv0_1 .text:00055124 MOV R3, #1 .text:00055128 MOV R2, #0 .text:0005512C CMP R0, R1 .text:00055130 BCC Lgot_result_1 .text:00055134 .text:00055134 Loop1_1 ; CODE XREF: __udivsi3+28j .text:00055134 CMP R1, #0x10000000 .text:00055138 CMPCC R1, R0 .text:0005513C MOVCC R1, R1,LSL#4 .text:00055140 MOVCC R3, R3,LSL#4 .text:00055144 BCC Loop1_1 .text:00055148 .text:00055148 Lbignum_1 ; CODE XREF: __udivsi3+3Cj .text:00055148 CMP R1, #0x80000000 .text:0005514C CMPCC R1, R0 .text:00055150 MOVCC R1, R1,LSL#1 .text:00055154 MOVCC R3, R3,LSL#1 .text:00055158 BCC Lbignum_1 .text:0005515C .text:0005515C Loop3_1 ; CODE XREF: __udivsi3+7Cj .text:0005515C CMP R0, R1 .text:00055160 SUBCS R0, R0, R1 .text:00055164 ORRCS R2, R2, R3 .text:00055168 CMP R0, R1,LSR#1 .text:0005516C SUBCS R0, R0, R1,LSR#1 .text:00055170 ORRCS R2, R2, R3,LSR#1 .text:00055174 CMP R0, R1,LSR#2 .text:00055178 SUBCS R0, R0, R1,LSR#2 .text:0005517C ORRCS R2, R2, R3,LSR#2 .text:00055180 CMP R0, R1,LSR#3 .text:00055184 SUBCS R0, R0, R1,LSR#3 .text:00055188 ORRCS R2, R2, R3,LSR#3 .text:0005518C CMP R0, #0 .text:00055190 MOVNES R3, R3,LSR#4 .text:00055194 MOVNE R1, R1,LSR#4 .text:00055198 BNE Loop3_1 .text:0005519C .text:0005519C Lgot_result_1 ; CODE XREF: __udivsi3+14j .text:0005519C MOV R0, R2 .text:000551A0 RET .text:000551A4 ; --------------------------------------------------------------------------- .text:000551A4 .text:000551A4 Ldiv0_1 ; CODE XREF: __udivsi3+4j .text:000551A4 STR LR, [SP,#var_4]! .text:000551A8 BL __div0 .text:000551AC MOV R0, #0 .text:000551B0 LDMFD SP!, {PC} .text:000551B0 ; End of function __udivsi3 .text:000551B0 .text:000551B4 .text:000551B4 ; =============== S U B R O U T I N E ======================================= .text:000551B4 .text:000551B4 .text:000551B4 EXPORT __umoddi3 .text:000551B4 __umoddi3 ; CODE XREF: __strtoll_internal+520p .text:000551B4 ; __strtoull_internal+520p .text:000551B4 .text:000551B4 var_48 = -0x48 .text:000551B4 var_44 = -0x44 .text:000551B4 var_40 = -0x40 .text:000551B4 var_3C = -0x3C .text:000551B4 var_38 = -0x38 .text:000551B4 var_34 = -0x34 .text:000551B4 var_30 = -0x30 .text:000551B4 var_2C = -0x2C .text:000551B4 var_28 = -0x28 .text:000551B4 .text:000551B4 STMFD SP!, {R4-R10,LR} ; Alternative name is 'gcc2_compiled.' .text:000551B8 MOV R6, R2 .text:000551BC MOV R8, R1 .text:000551C0 SUBS R7, R3, #0 .text:000551C4 LDR R10, =(_GLOBAL_OFFSET_TABLE_ - 0x551D8) .text:000551C8 SUB SP, SP, #0x28 .text:000551CC STR R0, [SP,#0x48+var_30] .text:000551D0 ADD R10, PC, R10 .text:000551D4 ADD R12, SP, #0x48+var_28 .text:000551D8 STR R12, [SP,#0x48+var_2C] .text:000551DC BNE loc_55444 .text:000551E0 CMP R6, R8 .text:000551E4 BLS loc_55250 .text:000551E8 CMP R6, #0x10000 .text:000551EC BCS loc_55200 .text:000551F0 CMP R6, #0xFF .text:000551F4 MOVHI R0, #8 .text:000551F8 MOVLS R0, #0 .text:000551FC B loc_5520C .text:00055200 ; --------------------------------------------------------------------------- .text:00055200 .text:00055200 loc_55200 ; CODE XREF: __umoddi3+38j .text:00055200 CMP R6, #0x1000000 .text:00055204 MOVCS R0, #0x18 .text:00055208 MOVCC R0, #0x10 .text:0005520C .text:0005520C loc_5520C ; CODE XREF: __umoddi3+48j .text:0005520C LDR R3, =(__clz_tab_0_ptr - 0x6C248) .text:00055210 LDR R1, [R10,R3] .text:00055214 MOV R2, R2,LSR R0 .text:00055218 LDRB R3, [R1,R2] .text:0005521C ADD R3, R3, R0 .text:00055220 RSBS R3, R3, #0x20 .text:00055224 STR R3, [SP,#0x48+var_34] .text:00055228 BEQ loc_55378 .text:0005522C MOV R6, R6,LSL R3 .text:00055230 LDR R1, [SP,#0x48+var_30] .text:00055234 RSB R3, R3, #0x20 .text:00055238 LDR R2, [SP,#0x48+var_34] .text:0005523C MOV R3, R1,LSR R3 .text:00055240 ORR R8, R3, R8,LSL R2 .text:00055244 MOV R1, R1,LSL R2 .text:00055248 STR R1, [SP,#0x48+var_30] .text:0005524C B loc_55378 .text:00055250 ; --------------------------------------------------------------------------- .text:00055250 .text:00055250 loc_55250 ; CODE XREF: __umoddi3+30j .text:00055250 CMP R6, #0 .text:00055254 BNE loc_55268 .text:00055258 MOV R0, #1 .text:0005525C MOV R1, R2 .text:00055260 BL __udivsi3 .text:00055264 MOV R6, R0 .text:00055268 .text:00055268 loc_55268 ; CODE XREF: __umoddi3+A0j .text:00055268 CMP R6, #0x10000 .text:0005526C BCS loc_55280 .text:00055270 CMP R6, #0xFF .text:00055274 MOVHI R0, #8 .text:00055278 MOVLS R0, #0 .text:0005527C B loc_5528C .text:00055280 ; --------------------------------------------------------------------------- .text:00055280 .text:00055280 loc_55280 ; CODE XREF: __umoddi3+B8j .text:00055280 CMP R6, #0x1000000 .text:00055284 MOVCS R0, #0x18 .text:00055288 MOVCC R0, #0x10 .text:0005528C .text:0005528C loc_5528C ; CODE XREF: __umoddi3+C8j .text:0005528C LDR R3, =(__clz_tab_0_ptr - 0x6C248) .text:00055290 LDR R1, [R10,R3] .text:00055294 MOV R2, R6,LSR R0 .text:00055298 LDRB R3, [R1,R2] .text:0005529C ADD R3, R3, R0 .text:000552A0 RSBS R3, R3, #0x20 .text:000552A4 STR R3, [SP,#0x48+var_34] .text:000552A8 RSBEQ R8, R6, R8 .text:000552AC BEQ loc_55378 .text:000552B0 LDR R2, [SP,#0x48+var_34] .text:000552B4 ADD R3, SP, #0x48+var_34 .text:000552B8 LDMIA R3, {R3,R12} .text:000552BC LDR R1, [SP,#0x48+var_34] .text:000552C0 RSB R2, R2, #0x20 .text:000552C4 MOV R6, R6,LSL R3 .text:000552C8 MOV R5, R8,LSR R2 .text:000552CC MOV R3, R12,LSR R2 .text:000552D0 STR R2, [SP,#0x48+var_38] .text:000552D4 ORR R8, R3, R8,LSL R1 .text:000552D8 MOV R12, R12,LSL R1 .text:000552DC STR R12, [SP,#0x48+var_30] .text:000552E0 MOV R7, R6,LSR#16 .text:000552E4 MOV R9, R6,LSL#16 .text:000552E8 MOV R9, R9,LSR#16 .text:000552EC MOV R0, R5 .text:000552F0 MOV R1, R7 .text:000552F4 BL __umodsi3 .text:000552F8 MOV R4, R0 .text:000552FC MOV R0, R5 .text:00055300 MOV R1, R7 .text:00055304 BL __udivsi3 .text:00055308 MUL R2, R9, R0 .text:0005530C MOV R3, R8,LSR#16 .text:00055310 ORR R4, R3, R4,LSL#16 .text:00055314 CMP R4, R2 .text:00055318 BCS loc_5532C .text:0005531C ADDS R4, R4, R6 .text:00055320 BCS loc_5532C .text:00055324 CMP R4, R2 .text:00055328 ADDCC R4, R4, R6 .text:0005532C .text:0005532C loc_5532C ; CODE XREF: __umoddi3+164j .text:0005532C ; __umoddi3+16Cj .text:0005532C RSB R4, R2, R4 .text:00055330 MOV R0, R4 .text:00055334 MOV R1, R7 .text:00055338 BL __umodsi3 .text:0005533C MOV R5, R0 .text:00055340 MOV R0, R4 .text:00055344 MOV R1, R7 .text:00055348 BL __udivsi3 .text:0005534C MUL R2, R9, R0 .text:00055350 MOV R3, R8,LSL#16 .text:00055354 MOV R3, R3,LSR#16 .text:00055358 ORR R5, R3, R5,LSL#16 .text:0005535C CMP R5, R2 .text:00055360 BCS loc_55374 .text:00055364 ADDS R5, R5, R6 .text:00055368 BCS loc_55374 .text:0005536C CMP R5, R2 .text:00055370 ADDCC R5, R5, R6 .text:00055374 .text:00055374 loc_55374 ; CODE XREF: __umoddi3+1ACj .text:00055374 ; __umoddi3+1B4j .text:00055374 RSB R8, R2, R5 .text:00055378 .text:00055378 loc_55378 ; CODE XREF: __umoddi3+74j .text:00055378 ; __umoddi3+98j ... .text:00055378 MOV R9, R6,LSL#16 .text:0005537C MOV R9, R9,LSR#16 .text:00055380 MOV R0, R8 .text:00055384 MOV R7, R6,LSR#16 .text:00055388 MOV R1, R7 .text:0005538C BL __umodsi3 .text:00055390 MOV R4, R0 .text:00055394 MOV R0, R8 .text:00055398 MOV R1, R7 .text:0005539C BL __udivsi3 .text:000553A0 MUL R2, R9, R0 .text:000553A4 LDR R12, [SP,#0x48+var_30] .text:000553A8 MOV R3, R12,LSR#16 .text:000553AC ORR R4, R3, R4,LSL#16 .text:000553B0 CMP R4, R2 .text:000553B4 BCS loc_553C8 .text:000553B8 ADDS R4, R4, R6 .text:000553BC BCS loc_553C8 .text:000553C0 CMP R4, R2 .text:000553C4 ADDCC R4, R4, R6 .text:000553C8 .text:000553C8 loc_553C8 ; CODE XREF: __umoddi3+200j .text:000553C8 ; __umoddi3+208j .text:000553C8 RSB R4, R2, R4 .text:000553CC MOV R0, R4 .text:000553D0 MOV R1, R7 .text:000553D4 BL __umodsi3 .text:000553D8 MOV R5, R0 .text:000553DC MOV R0, R4 .text:000553E0 MOV R1, R7 .text:000553E4 BL __udivsi3 .text:000553E8 MUL R2, R9, R0 .text:000553EC LDR R1, [SP,#0x48+var_30] .text:000553F0 MOV R3, R1,LSL#16 .text:000553F4 MOV R3, R3,LSR#16 .text:000553F8 ORR R5, R3, R5,LSL#16 .text:000553FC CMP R5, R2 .text:00055400 BCS loc_55414 .text:00055404 ADDS R5, R5, R6 .text:00055408 BCS loc_55414 .text:0005540C CMP R5, R2 .text:00055410 ADDCC R5, R5, R6 .text:00055414 .text:00055414 loc_55414 ; CODE XREF: __umoddi3+24Cj .text:00055414 ; __umoddi3+254j .text:00055414 RSB R5, R2, R5 .text:00055418 STR R5, [SP,#0x48+var_30] .text:0005541C LDR R2, [SP,#0x48+var_2C] .text:00055420 CMP R2, #0 .text:00055424 BEQ loc_5568C .text:00055428 LDR R3, [SP,#0x48+var_30] .text:0005542C LDR R12, [SP,#0x48+var_34] .text:00055430 MOV R3, R3,LSR R12 .text:00055434 STR R3, [SP,#0x48+var_40] .text:00055438 MOV R1, #0 .text:0005543C STR R1, [SP,#0x48+var_3C] .text:00055440 B loc_5567C .text:00055444 ; --------------------------------------------------------------------------- .text:00055444 .text:00055444 loc_55444 ; CODE XREF: __umoddi3+28j .text:00055444 CMP R7, R8 .text:00055448 BLS loc_55464 .text:0005544C STR R0, [SP,#0x48+var_40] .text:00055450 STR R8, [SP,#0x48+var_3C] .text:00055454 ADD R2, SP, #0x48+var_38 .text:00055458 LDMDB R2, {R2,R3} .text:0005545C ADD R12, SP, #0x48+var_28 .text:00055460 B loc_55688 .text:00055464 ; --------------------------------------------------------------------------- .text:00055464 .text:00055464 loc_55464 ; CODE XREF: __umoddi3+294j .text:00055464 CMP R7, #0x10000 .text:00055468 BCS loc_5547C .text:0005546C CMP R7, #0xFF .text:00055470 MOVHI R0, #8 .text:00055474 MOVLS R0, #0 .text:00055478 B loc_55488 .text:0005547C ; --------------------------------------------------------------------------- .text:0005547C .text:0005547C loc_5547C ; CODE XREF: __umoddi3+2B4j .text:0005547C CMP R7, #0x1000000 .text:00055480 MOVCS R0, #0x18 .text:00055484 MOVCC R0, #0x10 .text:00055488 .text:00055488 loc_55488 ; CODE XREF: __umoddi3+2C4j .text:00055488 LDR R3, =(__clz_tab_0_ptr - 0x6C248) .text:0005548C LDR R1, [R10,R3] .text:00055490 MOV R2, R7,LSR R0 .text:00055494 LDRB R3, [R1,R2] .text:00055498 ADD R3, R3, R0 .text:0005549C RSBS R3, R3, #0x20 .text:000554A0 STR R3, [SP,#0x48+var_34] .text:000554A4 BNE loc_554F4 .text:000554A8 LDR R3, [SP,#0x48+var_30] .text:000554AC CMP R8, R7 .text:000554B0 CMPLS R3, R6 .text:000554B4 BCC loc_554C4 .text:000554B8 SUBS R12, R3, R6 .text:000554BC SBC R8, R8, R7 .text:000554C0 STR R12, [SP,#0x48+var_30] .text:000554C4 .text:000554C4 loc_554C4 ; CODE XREF: __umoddi3+300j .text:000554C4 LDR R1, [SP,#0x48+var_2C] .text:000554C8 CMP R1, #0 .text:000554CC BEQ loc_5568C .text:000554D0 LDR R2, [SP,#0x48+var_30] .text:000554D4 STR R2, [SP,#0x48+var_40] .text:000554D8 STR R8, [SP,#0x48+var_3C] .text:000554DC ADD R2, SP, #0x48+var_38 .text:000554E0 LDMDB R2, {R2,R3} .text:000554E4 MOV R12, R1 .text:000554E8 B loc_55688 .text:000554E8 ; --------------------------------------------------------------------------- .text:000554EC off_554EC DCD _GLOBAL_OFFSET_TABLE_ - 0x551D8 .text:000554EC ; DATA XREF: __umoddi3+10r .text:000554F0 off_554F0 DCD __clz_tab_0_ptr - 0x6C248 .text:000554F0 ; DATA XREF: __umoddi3:loc_5520Cr .text:000554F0 ; __umoddi3:loc_5528Cr ... .text:000554F4 ; --------------------------------------------------------------------------- .text:000554F4 .text:000554F4 loc_554F4 ; CODE XREF: __umoddi3+2F0j .text:000554F4 LDR R3, [SP,#0x48+var_34] .text:000554F8 RSB R3, R3, #0x20 .text:000554FC STR R3, [SP,#0x48+var_38] .text:00055500 LDR R12, [SP,#0x48+var_34] .text:00055504 LDR R2, [SP,#0x48+var_30] .text:00055508 MOV R3, R6,LSR R3 .text:0005550C ORR R7, R3, R7,LSL R12 .text:00055510 LDR R1, [SP,#0x48+var_38] .text:00055514 MOV R6, R6,LSL R12 .text:00055518 MOV R5, R8,LSR R1 .text:0005551C MOV R3, R2,LSR R1 .text:00055520 MOV R2, R2,LSL R12 .text:00055524 STR R2, [SP,#0x48+var_30] .text:00055528 ORR R8, R3, R8,LSL R12 .text:0005552C MOV R3, R7,LSR#16 .text:00055530 STR R3, [SP,#0x48+var_44] .text:00055534 MOV R12, R7,LSL#16 .text:00055538 MOV R12, R12,LSR#16 .text:0005553C STR R12, [SP,#0x48+var_48] .text:00055540 MOV R0, R5 .text:00055544 MOV R1, R3 .text:00055548 BL __umodsi3 .text:0005554C MOV R4, R0 .text:00055550 LDR R1, [SP,#0x48+var_44] .text:00055554 MOV R0, R5 .text:00055558 BL __udivsi3 .text:0005555C LDR R2, [SP,#0x48+var_48] .text:00055560 MOV R9, R0 .text:00055564 MUL R2, R9, R2 .text:00055568 MOV R3, R8,LSR#16 .text:0005556C ORR R4, R3, R4,LSL#16 .text:00055570 CMP R4, R2 .text:00055574 BCS loc_55590 .text:00055578 SUB R9, R9, #1 .text:0005557C ADDS R4, R4, R7 .text:00055580 BCS loc_55590 .text:00055584 CMP R4, R2 .text:00055588 SUBCC R9, R9, #1 .text:0005558C ADDCC R4, R4, R7 .text:00055590 .text:00055590 loc_55590 ; CODE XREF: __umoddi3+3C0j .text:00055590 ; __umoddi3+3CCj .text:00055590 RSB R4, R2, R4 .text:00055594 LDR R1, [SP,#0x48+var_44] .text:00055598 MOV R0, R4 .text:0005559C BL __umodsi3 .text:000555A0 MOV R5, R0 .text:000555A4 LDR R1, [SP,#0x48+var_44] .text:000555A8 MOV R0, R4 .text:000555AC BL __udivsi3 .text:000555B0 LDR R2, [SP,#0x48+var_48] .text:000555B4 MUL R2, R0, R2 .text:000555B8 MOV R3, R8,LSL#16 .text:000555BC MOV R3, R3,LSR#16 .text:000555C0 ORR R5, R3, R5,LSL#16 .text:000555C4 CMP R5, R2 .text:000555C8 BCS loc_555E4 .text:000555CC SUB R0, R0, #1 .text:000555D0 ADDS R5, R5, R7 .text:000555D4 BCS loc_555E4 .text:000555D8 CMP R5, R2 .text:000555DC SUBCC R0, R0, #1 .text:000555E0 ADDCC R5, R5, R7 .text:000555E4 .text:000555E4 loc_555E4 ; CODE XREF: __umoddi3+414j .text:000555E4 ; __umoddi3+420j .text:000555E4 RSB R8, R2, R5 .text:000555E8 ORR R3, R0, R9,LSL#16 .text:000555EC MOV R0, R3,LSR#16 .text:000555F0 MOV R12, R6,LSR#16 .text:000555F4 BIC R1, R3, R0,LSL#16 .text:000555F8 BIC R2, R6, R12,LSL#16 .text:000555FC MUL LR, R1, R2 .text:00055600 MUL R2, R0, R2 .text:00055604 MUL R1, R12, R1 .text:00055608 MUL R12, R0, R12 .text:0005560C ADDS R1, R2, R1 .text:00055610 ADDCS R12, R12, #0x10000 .text:00055614 ADDS LR, LR, R1,LSL#16 .text:00055618 ADC R12, R12, R1,LSR#16 .text:0005561C CMP R12, R8 .text:00055620 BHI loc_5563C .text:00055624 LDR R1, [SP,#0x48+var_30] .text:00055628 MOVNE R3, #0 .text:0005562C MOVEQ R3, #1 .text:00055630 CMP R3, #0 .text:00055634 CMPNE LR, R1 .text:00055638 BLS loc_55648 .text:0005563C .text:0005563C loc_5563C ; CODE XREF: __umoddi3+46Cj .text:0005563C SUBS R2, LR, R6 .text:00055640 SBC R12, R12, R7 .text:00055644 MOV LR, R2 .text:00055648 .text:00055648 loc_55648 ; CODE XREF: __umoddi3+484j .text:00055648 LDR R3, [SP,#0x48+var_2C] .text:0005564C CMP R3, #0 .text:00055650 BEQ loc_5568C .text:00055654 LDR R2, [SP,#0x48+var_30] .text:00055658 SUBS R1, R2, LR .text:0005565C SBC R8, R8, R12 .text:00055660 LDR R12, [SP,#0x48+var_34] .text:00055664 MOV R3, R1,LSR R12 .text:00055668 LDR R1, [SP,#0x48+var_38] .text:0005566C ORR R3, R3, R8,LSL R1 .text:00055670 STR R3, [SP,#0x48+var_40] .text:00055674 MOV R8, R8,LSR R12 .text:00055678 STR R8, [SP,#0x48+var_3C] .text:0005567C .text:0005567C loc_5567C ; CODE XREF: __umoddi3+28Cj .text:0005567C LDR R12, [SP,#0x48+var_2C] .text:00055680 ADD R2, SP, #0x48+var_38 .text:00055684 LDMDB R2, {R2,R3} .text:00055688 .text:00055688 loc_55688 ; CODE XREF: __umoddi3+2ACj .text:00055688 ; __umoddi3+334j .text:00055688 STMIA R12, {R2,R3} .text:0005568C .text:0005568C loc_5568C ; CODE XREF: __umoddi3+270j .text:0005568C ; __umoddi3+318j ... .text:0005568C ADD R3, SP, #0x48+var_28 .text:00055690 LDMIA R3, {R0,R1} .text:00055694 ADD SP, SP, #0x28 .text:00055698 LDMFD SP!, {R4-R10,PC} .text:00055698 ; End of function __umoddi3 .text:00055698 .text:0005569C .text:0005569C ; =============== S U B R O U T I N E ======================================= .text:0005569C .text:0005569C .text:0005569C EXPORT __umodsi3 .text:0005569C __umodsi3 ; CODE XREF: chunk_align+38p .text:0005569C ; strerror_r+74p ... .text:0005569C .text:0005569C var_4 = -4 .text:0005569C .text:0005569C CMP R1, #0 .text:000556A0 BEQ Ldiv0_2 .text:000556A4 MOV R3, #1 .text:000556A8 CMP R0, R1 .text:000556AC MOVCC PC, LR .text:000556B0 .text:000556B0 Loop1_2 ; CODE XREF: __umodsi3+24j .text:000556B0 CMP R1, #0x10000000 .text:000556B4 CMPCC R1, R0 .text:000556B8 MOVCC R1, R1,LSL#4 .text:000556BC MOVCC R3, R3,LSL#4 .text:000556C0 BCC Loop1_2 .text:000556C4 .text:000556C4 Lbignum_2 ; CODE XREF: __umodsi3+38j .text:000556C4 CMP R1, #0x80000000 .text:000556C8 CMPCC R1, R0 .text:000556CC MOVCC R1, R1,LSL#1 .text:000556D0 MOVCC R3, R3,LSL#1 .text:000556D4 BCC Lbignum_2 .text:000556D8 .text:000556D8 Loop3_2 ; CODE XREF: __umodsi3+7Cj .text:000556D8 MOV R2, #0 .text:000556DC CMP R0, R1 .text:000556E0 SUBCS R0, R0, R1 .text:000556E4 CMP R0, R1,LSR#1 .text:000556E8 SUBCS R0, R0, R1,LSR#1 .text:000556EC ORRCS R2, R2, R3,ROR#1 .text:000556F0 CMP R0, R1,LSR#2 .text:000556F4 SUBCS R0, R0, R1,LSR#2 .text:000556F8 ORRCS R2, R2, R3,ROR#2 .text:000556FC CMP R0, R1,LSR#3 .text:00055700 SUBCS R0, R0, R1,LSR#3 .text:00055704 ORRCS R2, R2, R3,ROR#3 .text:00055708 MOV R12, R3 .text:0005570C CMP R0, #0 .text:00055710 MOVNES R3, R3,LSR#4 .text:00055714 MOVNE R1, R1,LSR#4 .text:00055718 BNE Loop3_2 .text:0005571C ANDS R2, R2, #0xE0000000 .text:00055720 MOVEQ PC, LR .text:00055724 TST R2, R12,ROR#3 .text:00055728 ADDNE R0, R0, R1,LSR#3 .text:0005572C TST R2, R12,ROR#2 .text:00055730 ADDNE R0, R0, R1,LSR#2 .text:00055734 TST R2, R12,ROR#1 .text:00055738 ADDNE R0, R0, R1,LSR#1 .text:0005573C RET .text:00055740 ; --------------------------------------------------------------------------- .text:00055740 .text:00055740 Ldiv0_2 ; CODE XREF: __umodsi3+4j .text:00055740 STR LR, [SP,#var_4]! .text:00055744 BL __div0 .text:00055748 MOV R0, #0 .text:0005574C LDMFD SP!, {PC} .text:0005574C ; End of function __umodsi3 .text:0005574C .text:00055750 .text:00055750 ; =============== S U B R O U T I N E ======================================= .text:00055750 .text:00055750 ; Attributes: bp-based frame .text:00055750 .text:00055750 __do_global_ctors_aux ; CODE XREF: .init_proc+10p .text:00055750 MOV R12, SP ; Alternative name is 'gcc2_compiled.' .text:00055754 STMFD SP!, {R4,R11,R12,LR,PC} .text:00055758 LDR R4, =force_to_data .text:0005575C LDR R3, [R4] .text:00055760 SUB R11, R12, #4 .text:00055764 CMN R3, #1 .text:00055768 LDMEQDB R11, {R4,R11,SP,PC} .text:0005576C .text:0005576C loc_5576C ; CODE XREF: __do_global_ctors_aux+2Cj .text:0005576C MOV LR, PC .text:00055770 LDR PC, [R4] .text:00055774 LDR R3, [R4,#-4]! .text:00055778 CMN R3, #1 .text:0005577C BNE loc_5576C .text:00055780 LDMDB R11, {R4,R11,SP,PC} .text:00055780 ; End of function __do_global_ctors_aux .text:00055780 .text:00055780 ; --------------------------------------------------------------------------- .text:00055784 off_55784 DCD force_to_data ; DATA XREF: __do_global_ctors_aux+8r .text:00055788 .text:00055788 ; =============== S U B R O U T I N E ======================================= .text:00055788 .text:00055788 ; Attributes: bp-based frame .text:00055788 .text:00055788 init_dummy .text:00055788 MOV R12, SP .text:0005578C STMFD SP!, {R11,R12,LR,PC} .text:00055790 SUB R11, R12, #4 .text:00055794 LDMDB R11, {R11,SP,PC} .text:00055794 ; End of function init_dummy .text:00055794 .text:00055794 ; --------------------------------------------------------------------------- .text:00055798 __evoke_link_warning_llseek DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Alternative name is 'gcc2_compiled.' .text:00055798 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .text:00055798 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .text:00055798 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .text:000557D7 DCB 0 .text:000557D7 ; .text ends .text:000557D7 .fini:000557D8 ; =========================================================================== .fini:000557D8 .fini:000557D8 ; Segment type: Pure code .fini:000557D8 AREA .fini, CODE .fini:000557D8 ; ORG 0x557D8 .fini:000557D8 CODE32 .fini:000557D8 .fini:000557D8 ; =============== S U B R O U T I N E ======================================= .fini:000557D8 .fini:000557D8 ; Attributes: bp-based frame .fini:000557D8 .fini:000557D8 EXPORT .term_proc .fini:000557D8 .term_proc ; DATA XREF: _start+10o .fini:000557D8 ; .text:off_8108o .fini:000557D8 MOV R12, SP ; _fini .fini:000557DC STMFD SP!, {R11,R12,LR,PC} .fini:000557E0 SUB R11, R12, #4 .fini:000557E4 BL __do_global_dtors_aux .fini:000557E8 LDMDB R11, {R11,SP,PC} .fini:000557E8 ; End of function .term_proc .fini:000557E8 .fini:000557E8 ; .fini ends .fini:000557E8 .rodata:000557EC ; =========================================================================== .rodata:000557EC .rodata:000557EC ; Segment type: Pure data .rodata:000557EC AREA .rodata, DATA, READONLY .rodata:000557EC ; ORG 0x557EC .rodata:000557EC EXPORT _IO_stdin_used .rodata:000557EC _IO_stdin_used DCD 0x20001 .rodata:000557F0 aDevMiscUsb_cha DCB "/dev/misc/usb_char",0 .rodata:000557F0 ; DATA XREF: open_usbd_interface+Co .rodata:000557F0 ; .text:off_8208o .rodata:00055803 ALIGN 4 .rodata:00055804 aOpenDeviceUsb_ DCB "open device usb_char",0 .rodata:00055804 ; DATA XREF: open_usbd_interface+2Co .rodata:00055804 ; .text:off_8210o .rodata:00055819 ALIGN 4 .rodata:0005581C aUsbd_errRecv_b DCB "[##] usbd_err recv_buf NUL.",0xA,0 .rodata:00055839 ALIGN 4 .rodata:0005583C aRecv_dataLenOv DCB "[##] recv_data len over. usbd_recv_count > usbd_read_count.",0xA,0 .rodata:0005583C ; DATA XREF: read_data_from_usbd+6Co .rodata:0005583C ; .text:off_82F4o .rodata:00055879 ALIGN 4 .rodata:0005587C aUsbdwSendDataC DCB "[usbdw] send data count = %d. ",0xA,0 .rodata:0005587C ; DATA XREF: write_data_to_usbd+20o .rodata:0005587C ; .text:off_83B4o .rodata:0005589C aUsbdwSendDat_0 DCB "[usbdw] send data to usb err. ret -3.",0xA,0 .rodata:0005589C ; DATA XREF: write_data_to_usbd:loc_8398o .rodata:0005589C ; .text:off_83C0o .rodata:000558C3 ALIGN 4 .rodata:000558C4 aUsbdwSendDataT DCB "[usbdw] send data to usb timeout. ret -2.",0xA,0 .rodata:000558C4 ; DATA XREF: write_data_to_usbd+7Co .rodata:000558C4 ; .text:off_83B8o .rodata:000558EF ALIGN 0x10 .rodata:000558F0 aUsbdwSendDataL DCB "[usbdw] send data len err, ret -1.",0xA,0 .rodata:000558F0 ; DATA XREF: write_data_to_usbd+90o .rodata:000558F0 ; .text:off_83BCo .rodata:00055914 aDevDsoFpga DCB "/dev/dso-fpga",0 ; DATA XREF: open_fpga_interface+10o .rodata:00055914 ; open_fpga_interface:off_8438o .rodata:00055922 ALIGN 4 .rodata:00055924 aOpenFpga DCB "open fpga",0 ; DATA XREF: open_fpga_interface+2Co .rodata:00055924 ; open_fpga_interface:off_8440o .rodata:0005592E ALIGN 0x10 .rodata:00055930 aMampErr DCB "mamp err!",0xA,0 ; DATA XREF: open_fpga_interface:loc_8448o .rodata:00055930 ; open_fpga_interface:off_8458o .rodata:0005593B ALIGN 4 .rodata:0005593C dword_5593C DCD 0x2000353, 2, 0 ; DATA XREF: check_usbd_data+1Co .rodata:0005593C ; check_usbd_data:off_859Co .rodata:00055948 aFpga_exeW196 DCB "/fpga.exe w 19 6",0 ; DATA XREF: cmd_acq+8o .rodata:00055948 ; .text:off_85E4o .rodata:00055959 ALIGN 4 .rodata:0005595C aFpga_exeW190 DCB "/fpga.exe w 19 0",0 ; DATA XREF: cmd_acq+14o .rodata:0005595C ; .text:off_85E8o .rodata:0005596D ALIGN 0x10 .rodata:00055970 dword_55970 DCD 0xEEC1FCC3, 0xD0D0B4D6, 0x742F2E20, 0x61747365, 0x30207163 .rodata:00055970 ; DATA XREF: main+30o .rodata:00055970 ; main:off_89F4o .rodata:00055970 DCD 0x20206D20, 0xD6E4C60A, 0xAACE30D0, 0x34747364, 0x2C303030 .rodata:00055970 DCD 0xAACE3120, 0x33747364, 0xA3303030, 0xAACE6DAC, 0xCABCB5CA .rodata:00055970 DCD 0xAAD2E8D0, 0xDDBEFDCA, 0xABFC1 .rodata:000559B8 dword_559B8 DCD 0x7825 ; DATA XREF: main+4Co .rodata:000559B8 ; main:off_89F8o .rodata:000559BC aTest DCB "/test",0 ; DATA XREF: main+130o .rodata:000559BC ; main:off_8A1Co .rodata:000559C2 ALIGN 4 .rodata:000559C4 aValue0xX DCB "value:0x%x",0xA,0 ; DATA XREF: main+1A8o .rodata:000559C4 ; main:off_8A20o .rodata:000559D0 aX0xXY0xX DCB "X :0x%x, Y: 0x%x",0xA,0 ; DATA XREF: main+1BCo .rodata:000559D0 ; main:off_8A24o .rodata:000559E2 ALIGN 4 .rodata:000559E4 dword_559E4 DCD 0xC1312C30, 0xB5AAB6D0, 0xBEFDCAF4, 0xCAF6B8DD, 0x257830FD .rodata:000559E4 ; DATA XREF: main+1D8o .rodata:000559E4 ; main:off_8A28o .rodata:000559E4 DCD 0x2CF6B878, 0x332C3220, 0xAAB6D0C1, 0xFDCAF4B5, 0x7830DDBE .rodata:000559E4 DCD 0xF6B87825, 0xA .rodata:00055A14 aDst4000Data DCB "dst4000 data",0xA,0 ; DATA XREF: main+36Co .rodata:00055A14 ; main:off_8A2Co .rodata:00055A22 ALIGN 4 .rodata:00055A24 aDst3000Data DCB "dst3000 data",0xA,0 ; DATA XREF: main+44Co .rodata:00055A24 ; main:off_8B38o .rodata:00055A32 ALIGN 4 .rodata:00055A34 aCh_data_len0xX DCB "ch_data_len:0x%x",0xA,0 ; DATA XREF: main:loc_8AA8o .rodata:00055A34 ; main:off_8B48o .rodata:00055A46 ALIGN 4 .rodata:00055A48 aErrorCmd DCB "error cmd!!!!",0xA,0 ; DATA XREF: main:loc_8B4Co .rodata:00055A48 ; main:off_8B5Co .rodata:00055A57 ALIGN 4 .rodata:00055A58 aDevNull DCB "/dev/null",0 ; DATA XREF: check_one_fd+34o .rodata:00055A58 ; check_one_fd:off_8D50o .rodata:00055A62 ALIGN 4 .rodata:00055A64 aExit0 DCB "exit 0",0 ; DATA XREF: system+18o .rodata:00055A64 ; system:off_9470o .rodata:00055A6B ALIGN 4 .rodata:00055A6C aSh DCB "sh",0 ; DATA XREF: system+178o .rodata:00055A6C ; system:off_9474o .rodata:00055A6F ALIGN 0x10 .rodata:00055A70 aC DCB "-c",0 ; DATA XREF: system+180o .rodata:00055A70 ; system:off_9478o .rodata:00055A73 ALIGN 4 .rodata:00055A74 aBinSh DCB "/bin/sh",0 ; DATA XREF: system+1BCo .rodata:00055A74 ; system:off_9480o .rodata:00055A7C dword_55A7C DCD 0 ; DATA XREF: perror:loc_9518o .rodata:00055A7C ; perror:off_9570o .rodata:00055A80 asc_55A80 DCB ": ",0 ; DATA XREF: perror:loc_9524o .rodata:00055A80 ; perror:off_9574o .rodata:00055A83 ALIGN 4 .rodata:00055A84 asc_55A84 DCB "%",0 ; DATA XREF: perror+7Co .rodata:00055A84 ; perror:off_957Co .rodata:00055A86 ALIGN 4 .rodata:00055A88 aS_2 DCB "s",0 .rodata:00055A8A ALIGN 4 .rodata:00055A8C DCB "%",0 .rodata:00055A8E ALIGN 0x10 .rodata:00055A90 aS_3 DCB "s",0 .rodata:00055A92 ALIGN 4 .rodata:00055A94 DCB "%",0 .rodata:00055A96 ALIGN 4 .rodata:00055A98 aS_4 DCB "s",0 .rodata:00055A9A ALIGN 4 .rodata:00055A9C DCB 0xA,0 .rodata:00055A9E ALIGN 0x10 .rodata:00055AA0 DCD 0 .rodata:00055AA4 aSSS DCB "%s%s%s",0xA,0 ; DATA XREF: perror+A8o .rodata:00055AA4 ; perror:off_959Co .rodata:00055AAC aMalloc_trim_th DCB "MALLOC_TRIM_THRESHOLD_",0 .rodata:00055AAC ; DATA XREF: ptmalloc_init+148o .rodata:00055AAC ; .text:off_B6C8o .rodata:00055AC3 ALIGN 4 .rodata:00055AC4 aMalloc_top_pad DCB "MALLOC_TOP_PAD_",0 ; DATA XREF: ptmalloc_init:loc_B5A0o .rodata:00055AC4 ; .text:off_B6CCo .rodata:00055AD4 aMalloc_mmap_th DCB "MALLOC_MMAP_THRESHOLD_",0 .rodata:00055AD4 ; DATA XREF: ptmalloc_init:loc_B5CCo .rodata:00055AD4 ; .text:off_B6D0o .rodata:00055AEB ALIGN 4 .rodata:00055AEC aMalloc_mmap_ma DCB "MALLOC_MMAP_MAX_",0 .rodata:00055AEC ; DATA XREF: ptmalloc_init:loc_B5F8o .rodata:00055AEC ; .text:off_B6D4o .rodata:00055AFD ALIGN 0x10 .rodata:00055B00 aMalloc_check_ DCB "MALLOC_CHECK_",0 ; DATA XREF: ptmalloc_init:loc_B624o .rodata:00055B00 ; .text:off_B6D8o .rodata:00055B0E ALIGN 0x10 .rodata:00055B10 aMallocUsingDeb DCB "malloc: using debugging hooks",0xA,0 .rodata:00055B10 ; DATA XREF: __malloc_check_init+74o .rodata:00055B10 ; .text:off_B840o .rodata:00055B2F ALIGN 0x10 .rodata:00055B30 aArenaD DCB "Arena %d:",0xA,0 ; DATA XREF: malloc_stats+54o .rodata:00055B30 ; malloc_stats:off_E0D8o .rodata:00055B3B ALIGN 4 .rodata:00055B3C aSystemBytes10u DCB "system bytes = %10u",0xA,0 .rodata:00055B3C ; DATA XREF: malloc_stats+28o .rodata:00055B3C ; malloc_stats:off_E01Co .rodata:00055B55 ALIGN 4 .rodata:00055B58 aInUseBytes10u DCB "in use bytes = %10u",0xA,0 .rodata:00055B58 ; DATA XREF: malloc_stats+7Co .rodata:00055B58 ; malloc_stats+C0o ... .rodata:00055B71 ALIGN 4 .rodata:00055B74 aTotalIncl_Mmap DCB "Total (incl. mmap):",0xA,0 .rodata:00055B74 ; DATA XREF: malloc_stats+A8o .rodata:00055B74 ; malloc_stats:off_E0E4o .rodata:00055B89 ALIGN 4 .rodata:00055B8C aMaxMmapRegions DCB "max mmap regions = %10u",0xA,0 .rodata:00055B8C ; DATA XREF: malloc_stats+D8o .rodata:00055B8C ; malloc_stats:off_E0ECo .rodata:00055BA5 ALIGN 4 .rodata:00055BA8 aMaxMmapBytes10 DCB "max mmap bytes = %10lu",0xA,0 .rodata:00055BA8 ; DATA XREF: malloc_stats+ECo .rodata:00055BA8 ; malloc_stats:off_E0F4o .rodata:00055BC2 ALIGN 4 .rodata:00055BC4 aMallocTopChunk DCB "malloc: top chunk is corrupt",0xA,0 .rodata:00055BC4 ; DATA XREF: top_check+64o .rodata:00055BC4 ; .text:off_E9B8o .rodata:00055BE2 ALIGN 4 .rodata:00055BE4 aFreeInvalidPoi DCB "free(): invalid pointer %p!",0xA,0 .rodata:00055BE4 ; DATA XREF: free_check+8Co .rodata:00055BE4 ; .text:off_EBE8o .rodata:00055C01 ALIGN 4 .rodata:00055C04 aReallocInvalid DCB "realloc(): invalid pointer %p!",0xA,0 .rodata:00055C04 ; DATA XREF: realloc_check+A0o .rodata:00055C04 ; .text:off_EE90o .rodata:00055C24 aUnknownError DCB "Unknown error ",0 ; DATA XREF: strerror_r+44o .rodata:00055C24 ; strerror_r:off_F460o .rodata:00055C33 ALIGN 4 .rodata:00055C34 aBadDynamicTag DCB "bad dynamic tag",0 ; DATA XREF: _dl_map_object_from_fd+95Co .rodata:00055C34 ; _dl_map_object_from_fd:off_11DA0o .rodata:00055C44 aBadDynamicTa_0 DCB "! ",0x22,"bad dynamic tag",0x22,0 .rodata:00055C44 ; DATA XREF: _dl_map_object_from_fd+968o .rodata:00055C44 ; _dl_map_object_from_fd:off_11DA4o .rodata:00055C58 aDynamicLink_h DCB "dynamic-link.h",0 ; DATA XREF: _dl_map_object_from_fd+96Co .rodata:00055C58 ; _dl_map_object_from_fd+9E4o ... .rodata:00055C67 ALIGN 4 .rodata:00055C68 aElf_get_dynami DCB "elf_get_dynamic_info",0 .rodata:00055C68 ; DATA XREF: _dl_map_object_from_fd+970o .rodata:00055C68 ; _dl_map_object_from_fd+9E8o ... .rodata:00055C7D ALIGN 0x10 .rodata:00055C80 aInfo19D_un_d_v DCB "info[19]->d_un.d_val == sizeof (Elf32_Rel)",0 .rodata:00055C80 ; DATA XREF: _dl_map_object_from_fd+9E0o .rodata:00055C80 ; _dl_map_object_from_fd:off_11DB0o .rodata:00055CAB ALIGN 4 .rodata:00055CAC aInfo20D_un_d_v DCB "info[20]->d_un.d_val == 17",0 .rodata:00055CAC ; DATA XREF: _dl_map_object_from_fd+A18o .rodata:00055CAC ; _dl_map_object_from_fd:off_11DB4o .rodata:00055CC7 EXPORT _dl_pf_to_prot .rodata:00055CC7 _dl_pf_to_prot DCQ 0x703050106020400 ; DATA XREF: _dl_map_object_from_fd+3ECo .rodata:00055CC7 ; _dl_map_object_from_fd:off_11944o ... .rodata:00055CCF ALIGN 0x10 .rodata:00055CD0 system_dirs DCB "/usr/local/arm/2.95.3/arm-linux/lib/",0 .rodata:00055CD0 ; DATA XREF: _dl_init_paths+BCo .rodata:00055CD0 ; _dl_init_paths:off_10F3Co ... .rodata:00055CF5 ALIGN 4 .rodata:00055CF8 system_dirs_len DCD 0x24 ; DATA XREF: _dl_init_paths+F8o .rodata:00055CF8 ; _dl_init_paths:off_10F48o ... .rodata:00055CFC aOrigin DCB "{ORIGIN}",0 ; DATA XREF: _dl_dst_count+18o .rodata:00055CFC ; _dl_dst_count:off_1033Co ... .rodata:00055D05 ALIGN 4 .rodata:00055D08 aPlatform DCB "{PLATFORM}",0 ; DATA XREF: _dl_dst_count+BCo .rodata:00055D08 ; _dl_dst_count:off_10344o ... .rodata:00055D13 ALIGN 4 .rodata:00055D14 aLL_name00 DCB "(l)->l_name[0] == '\0'",0 .rodata:00055D14 ; DATA XREF: expand_dynamic_string_token+98o .rodata:00055D14 ; .text:off_106E4o .rodata:00055D2B ALIGN 4 .rodata:00055D2C aDlLoad_c DCB "dl-load.c",0 ; DATA XREF: expand_dynamic_string_token+9Co .rodata:00055D2C ; .text:off_106E8o ... .rodata:00055D36 ALIGN 4 .rodata:00055D38 aExpand_dynamic DCB "expand_dynamic_string_token",0 .rodata:00055D38 ; DATA XREF: expand_dynamic_string_token+A4o .rodata:00055D38 ; .text:off_106ECo .rodata:00055D54 aCannotAllocate DCB "cannot allocate name record",0 .rodata:00055D54 ; DATA XREF: add_name_to_object+68o .rodata:00055D54 ; .text:off_107B0o .rodata:00055D70 aLastpVoid0 DCB "lastp != ((void *)0)",0 .rodata:00055D70 ; DATA XREF: add_name_to_object+7Co .rodata:00055D70 ; .text:off_107B4o .rodata:00055D85 ALIGN 4 .rodata:00055D88 aAdd_name_to_ob DCB "add_name_to_object",0 .rodata:00055D88 ; DATA XREF: add_name_to_object+88o .rodata:00055D88 ; .text:off_107BCo .rodata:00055D9B ALIGN 4 .rodata:00055D9C curwd.159 DCB "./",0 ; DATA XREF: decompose_rpath+18Co .rodata:00055D9C ; decompose_rpath:off_10B48o ... .rodata:00055D9F ALIGN 0x10 .rodata:00055DA0 aCannotCreateCa DCB "cannot create cache for search path",0 .rodata:00055DA0 ; DATA XREF: decompose_rpath+A0o .rodata:00055DA0 ; decompose_rpath+12Co ... .rodata:00055DC4 aCannotCreateRu DCB "cannot create RUNPATH/RPATH copy",0 .rodata:00055DC4 ; DATA XREF: decompose_rpath+CCo .rodata:00055DC4 ; decompose_rpath:off_10B40o .rodata:00055DE5 ALIGN 4 .rodata:00055DE8 asc_55DE8 DCB ":",0 ; DATA XREF: decompose_rpath+150o .rodata:00055DE8 ; decompose_rpath:off_10B44o .rodata:00055DEA ALIGN 4 .rodata:00055DEC aCannotCreateSe DCB "cannot create search path array",0 .rodata:00055DEC ; DATA XREF: _dl_init_paths+58o .rodata:00055DEC ; _dl_init_paths:off_10F34o .rodata:00055E0C aSystemSearchPa DCB "system search path",0 ; DATA XREF: _dl_init_paths+C4o .rodata:00055E0C ; _dl_init_paths:off_10F40o .rodata:00055E1F ALIGN 0x10 .rodata:00055E20 aPelemDirname0 DCB "pelem->dirname[0] == '/'",0 .rodata:00055E20 ; DATA XREF: _dl_init_paths+11Co .rodata:00055E20 ; _dl_init_paths:off_10F4Co .rodata:00055E39 ALIGN 4 .rodata:00055E3C a_dl_init_paths DCB "_dl_init_paths",0 ; DATA XREF: _dl_init_paths+128o .rodata:00055E3C ; _dl_init_paths:off_10F54o .rodata:00055E4B ALIGN 4 .rodata:00055E4C asc_55E4C DCB ":;",0 ; DATA XREF: _dl_init_paths+264o .rodata:00055E4C ; _dl_init_paths:off_10F64o .rodata:00055E4F ALIGN 0x10 .rodata:00055E50 aLd_library_pat DCB "LD_LIBRARY_PATH",0 ; DATA XREF: _dl_init_paths+4ECo .rodata:00055E50 ; _dl_init_paths:off_110E0o .rodata:00055E60 aFailedToMapSeg DCB "failed to map segment from shared object",0 .rodata:00055E60 ; DATA XREF: _dl_map_object_from_fd+49Co .rodata:00055E60 ; _dl_map_object_from_fd+5ACo ... .rodata:00055E89 ALIGN 4 .rodata:00055E8C aCannotStatShar DCB "cannot stat shared object",0 .rodata:00055E8C ; DATA XREF: _dl_map_object_from_fd+58o .rodata:00055E8C ; _dl_map_object_from_fd:off_114F8o .rodata:00055EA6 ALIGN 4 .rodata:00055EA8 aFileSGeneratin DCB "file=%s; generating link map",0xA,0 .rodata:00055EA8 ; DATA XREF: _dl_map_object_from_fd+120o .rodata:00055EA8 ; _dl_map_object_from_fd:off_11504o .rodata:00055EC7 ALIGN 4 .rodata:00055EC8 aCannotCreateSh DCB "cannot create shared object descriptor",0 .rodata:00055EC8 ; DATA XREF: _dl_map_object_from_fd+164o .rodata:00055EC8 ; _dl_map_object_from_fd:off_11508o ... .rodata:00055EEF ALIGN 0x10 .rodata:00055EF0 aCannotReadFile DCB "cannot read file data",0 .rodata:00055EF0 ; DATA XREF: _dl_map_object_from_fd+224o .rodata:00055EF0 ; _dl_map_object_from_fd:off_1150Co ... .rodata:00055F06 ALIGN 4 .rodata:00055F08 aElfLoadCommand DCB "ELF load command alignment not page-aligned",0 .rodata:00055F08 ; DATA XREF: _dl_map_object_from_fd+300o .rodata:00055F08 ; _dl_map_object_from_fd:off_11514o .rodata:00055F34 aElfLoadComma_0 DCB "ELF load command address/offset not properly aligned",0 .rodata:00055F34 ; DATA XREF: _dl_map_object_from_fd+340o .rodata:00055F34 ; _dl_map_object_from_fd:off_11518o .rodata:00055F69 ALIGN 4 .rodata:00055F6C aCannotDynamica DCB "cannot dynamically load executable",0 .rodata:00055F6C ; DATA XREF: _dl_map_object_from_fd+50Co .rodata:00055F6C ; _dl_map_object_from_fd:off_1194Co .rodata:00055F8F ALIGN 0x10 .rodata:00055F90 aCannotChangeMe DCB "cannot change memory protections",0 .rodata:00055F90 ; DATA XREF: _dl_map_object_from_fd+694o .rodata:00055F90 ; _dl_map_object_from_fd:off_11954o .rodata:00055FB1 ALIGN 4 .rodata:00055FB4 aCannotMapZeroF DCB "cannot map zero-fill pages",0 .rodata:00055FB4 ; DATA XREF: _dl_map_object_from_fd+71Co .rodata:00055FB4 ; _dl_map_object_from_fd:off_11958o .rodata:00055FCF ALIGN 0x10 .rodata:00055FD0 aCannotAlloca_0 DCB "cannot allocate memory for program header",0 .rodata:00055FD0 ; DATA XREF: _dl_map_object_from_fd+78Co .rodata:00055FD0 ; _dl_map_object_from_fd:off_1195Co .rodata:00055FFA ALIGN 4 .rodata:00055FFC aObjectFileHasN DCB "object file has no dynamic section",0 .rodata:00055FFC ; DATA XREF: _dl_map_object_from_fd+850o .rodata:00055FFC ; _dl_map_object_from_fd:off_11D94o .rodata:0005601F ALIGN 0x10 .rodata:00056020 aDynamic0x0LxBa DCB " dynamic: 0x%0*lx base: 0x%0*lx size: 0x%0*Zx",0xA .rodata:00056020 ; DATA XREF: _dl_map_object_from_fd+8D8o .rodata:00056020 ; _dl_map_object_from_fd:off_11D9Co .rodata:00056020 DCB " entry: 0x%0*lx phdr: 0x%0*lx phnum: %*u",0xA .rodata:00056020 DCB 0xA,0 .rodata:00056084 aLL_nextVoid0 DCB "l->l_next == ((void *)0)",0 .rodata:00056084 ; DATA XREF: _dl_map_object_from_fd+ACCo .rodata:00056084 ; _dl_map_object_from_fd:off_11DB8o .rodata:0005609D ALIGN 0x10 .rodata:000560A0 a_dl_map_object DCB "_dl_map_object_from_fd",0 .rodata:000560A0 ; DATA XREF: _dl_map_object_from_fd+AD8o .rodata:000560A0 ; _dl_map_object_from_fd:off_11DC0o .rodata:000560B7 ALIGN 4 .rodata:000560B8 aSharedObjectCa DCB "shared object cannot be dlopen()ed",0 .rodata:000560B8 ; DATA XREF: _dl_map_object_from_fd+B50o .rodata:000560B8 ; _dl_map_object_from_fd:off_11DCCo .rodata:000560DB ALIGN 4 .rodata:000560DC aCannotCreate_0 DCB "cannot create searchlist",0 .rodata:000560DC ; DATA XREF: _dl_map_object_from_fd+BB8o .rodata:000560DC ; _dl_map_object_from_fd:off_11DD0o .rodata:000560F5 ALIGN 4 .rodata:000560F8 aSearchPath DCB " search path=",0 ; DATA XREF: print_search_path+18o .rodata:000560F8 ; print_search_path:off_11FD4o .rodata:00056106 ALIGN 4 .rodata:00056108 aS DCB "%s",0 ; DATA XREF: print_search_path+100o .rodata:00056108 ; print_search_path:off_11FE0o .rodata:0005610B ALIGN 4 .rodata:0005610C aS_0 DCB ":%s",0 ; DATA XREF: print_search_path:loc_11F5Co .rodata:0005610C ; print_search_path:off_11FE4o .rodata:00056110 aSFromFileS DCB 9,9,"(%s from file %s)",0xA,0 .rodata:00056110 ; DATA XREF: print_search_path+170o .rodata:00056110 ; print_search_path:off_11FECo .rodata:00056125 ALIGN 4 .rodata:00056128 aS_1 DCB 9,9,"(%s)",0xA,0 ; DATA XREF: print_search_path:loc_11FF0o .rodata:00056128 ; print_search_path:off_12000o .rodata:00056130 expected.182 DCB 0x7F, 0x45, 0x4C, 0x46, 1, 1, 1, 0, 0 .rodata:00056130 ; DATA XREF: open_verify+98o .rodata:00056130 ; open_verify:off_12408o .rodata:00056139 ALIGN 4 .rodata:0005613C expected_note.183 DCB 4, 0, 0, 0, 0x10, 0, 0, 0, 1, 0, 0, 0, 0x47, 0x4E .rodata:0005613C ; DATA XREF: open_verify+38Co .rodata:0005613C ; open_verify:off_12430o .rodata:0005613C DCB 0x55, 0 .rodata:0005614C aFileTooShort DCB "file too short",0 ; DATA XREF: open_verify+74o .rodata:0005614C ; open_verify:off_12404o .rodata:0005615B ALIGN 4 .rodata:0005615C aInvalidElfHead DCB "invalid ELF header",0 ; DATA XREF: open_verify+DCo .rodata:0005615C ; open_verify:off_12410o .rodata:0005616F ALIGN 0x10 .rodata:00056170 aElfFileDataE_0 DCB "ELF file data encoding not big-endian",0 .rodata:00056196 ALIGN 4 .rodata:00056198 aElfFileDataEnc DCB "ELF file data encoding not little-endian",0 .rodata:00056198 ; DATA XREF: open_verify+114o .rodata:00056198 ; open_verify:off_12414o .rodata:000561C1 ALIGN 4 .rodata:000561C4 aElfFileVersion DCB "ELF file version ident does not match current one",0 .rodata:000561C4 ; DATA XREF: open_verify+140o .rodata:000561C4 ; open_verify:off_12418o .rodata:000561F6 ALIGN 4 .rodata:000561F8 aElfFileOsAbiIn DCB "ELF file OS ABI invalid",0 .rodata:000561F8 ; DATA XREF: open_verify+17Co .rodata:000561F8 ; open_verify:off_1241Co .rodata:00056210 aElfFileAbiVers DCB "ELF file ABI version invalid",0 .rodata:0005622D ALIGN 0x10 .rodata:00056230 aInternalError DCB "internal error",0 ; DATA XREF: open_verify+19Co .rodata:00056230 ; open_verify:off_12420o .rodata:0005623F ALIGN 0x10 .rodata:00056240 aElfFileVersi_0 DCB "ELF file version does not match current one",0 .rodata:00056240 ; DATA XREF: open_verify+1C8o .rodata:00056240 ; open_verify:off_12424o .rodata:0005626C aElfFileSPhents DCB "ELF file's phentsize not the expected size",0 .rodata:0005626C ; DATA XREF: open_verify+208o .rodata:0005626C ; open_verify:off_12428o .rodata:00056297 ALIGN 4 .rodata:00056298 aOnlyEt_dynAndE DCB "only ET_DYN and ET_EXEC can be loaded",0 .rodata:00056298 ; DATA XREF: open_verify+238o .rodata:00056298 ; open_verify:off_1242Co .rodata:000562BE ALIGN 0x10 .rodata:000562C0 aTryingFileS DCB " trying file=%s",0xA,0 ; DATA XREF: open_path+134o .rodata:000562C0 ; open_path:off_126ECo .rodata:000562D2 ALIGN 4 .rodata:000562D4 aFileSNeededByS DCB 0xA ; DATA XREF: _dl_map_object+144o .rodata:000562D4 ; _dl_map_object:off_12AFCo .rodata:000562D4 DCB "file=%s; needed by %s",0xA,0 .rodata:000562ED ALIGN 0x10 .rodata:000562F0 aFindLibrarySSe DCB "find library=%s; searching",0xA,0 .rodata:000562F0 ; DATA XREF: _dl_map_object+184o .rodata:000562F0 ; _dl_map_object:off_12B00o .rodata:0005630C aRpath DCB "RPATH",0 ; DATA XREF: _dl_map_object+208o .rodata:0005630C ; _dl_map_object:off_12B04o .rodata:00056312 ALIGN 4 .rodata:00056314 aRunpath DCB "RUNPATH",0 ; DATA XREF: _dl_map_object+3B8o .rodata:00056314 ; _dl_map_object:off_12E60o .rodata:0005631C asc_5631C DCB 0xA,0 ; DATA XREF: _dl_map_object+5B8o .rodata:0005631C ; _dl_map_object:off_12E78o .rodata:0005631E ALIGN 0x10 .rodata:00056320 dummy_bucket.190 DCD 0 ; DATA XREF: _dl_map_object+6C0o .rodata:00056320 ; _dl_map_object:off_12E80o .rodata:00056324 aCannotOpenShar DCB "cannot open shared object file",0 .rodata:00056324 ; DATA XREF: _dl_map_object+6E4o .rodata:00056324 ; _dl_map_object:off_12E84o .rodata:00056343 ALIGN 4 .rodata:00056344 aAt_hwcap DCB "AT_HWCAP: ",0 .rodata:00056351 ALIGN 4 .rodata:00056354 aS_5 DCB " %s",0 .rodata:00056358 DCB 0xA,0 .rodata:0005635A ALIGN 4 .rodata:0005635C aSearchCacheS DCB " search cache=%s",0xA,0 .rodata:0005635C ; DATA XREF: _dl_load_cache_lookup+24o .rodata:0005635C ; _dl_load_cache_lookup:off_1338Co .rodata:0005636E ALIGN 0x10 .rodata:00056370 aUsrLocalArm2_9 DCB "/usr/local/arm/2.95.3/arm-linux/etc/ld.so.cache",0 .rodata:00056370 ; DATA XREF: _dl_load_cache_lookup+28o .rodata:00056370 ; _dl_load_cache_lookup+48o ... .rodata:000563A0 aLd_so1_7_0 DCB "ld.so-1.7.0",0 ; DATA XREF: _dl_load_cache_lookup+6Co .rodata:000563A0 ; _dl_load_cache_lookup:off_1339Co .rodata:000563AC aGlibcLd_so_cac DCB "glibc-ld.so.cache1.1",0 .rodata:000563AC ; DATA XREF: _dl_load_cache_lookup+B4o .rodata:000563AC ; _dl_load_cache_lookup+ECo ... .rodata:000563C1 ALIGN 4 .rodata:000563C4 aCacheVoid0 DCB "cache != ((void *)0)",0 .rodata:000563C4 ; DATA XREF: _dl_load_cache_lookup+144o .rodata:000563C4 ; _dl_load_cache_lookup:off_133A8o .rodata:000563D9 ALIGN 4 .rodata:000563DC a__SysdepsGener DCB "../sysdeps/generic/dl-cache.c",0 .rodata:000563DC ; DATA XREF: _dl_load_cache_lookup+148o .rodata:000563DC ; _dl_load_cache_lookup:off_133ACo .rodata:000563FA ALIGN 4 .rodata:000563FC a_dl_load_cache DCB "_dl_load_cache_lookup",0 .rodata:000563FC ; DATA XREF: _dl_load_cache_lookup+14Co .rodata:000563FC ; _dl_load_cache_lookup:off_133B0o .rodata:00056412 ALIGN 4 .rodata:00056414 aTryingFileS_0 DCB " trying file=%s",0xA,0 .rodata:00056414 ; DATA XREF: _dl_load_cache_lookup+558o .rodata:00056414 ; _dl_load_cache_lookup:off_13548o .rodata:00056426 ALIGN 4 .rodata:00056428 undefined_msg DCB "undefined symbol: ",0 .rodata:00056428 ; DATA XREF: _dl_lookup_symbol+43Co .rodata:00056428 ; _dl_lookup_symbol:off_13C04o ... .rodata:0005643B ALIGN 4 .rodata:0005643C aSymbolSLookupI DCB "symbol=%s; lookup in file=%s",0xA,0 .rodata:0005643C ; DATA XREF: _dl_lookup_symbol+1C4o .rodata:0005643C ; _dl_lookup_symbol:off_13BF4o ... .rodata:0005645B ALIGN 4 .rodata:0005645C aVersionFilenam DCB "version->filename == ((void *)0) || ! _dl_name_match_p (version-" .rodata:0005645C ; DATA XREF: _dl_lookup_versioned_symbol+2F4o .rodata:0005645C ; _dl_lookup_versioned_symbol:off_14EB0o ... .rodata:0005645C DCB ">filename, map)",0 .rodata:000564AC aDoLookup_h DCB "do-lookup.h",0 ; DATA XREF: _dl_lookup_versioned_symbol+2F8o .rodata:000564AC ; _dl_lookup_versioned_symbol:off_14EB4o ... .rodata:000564B8 aDo_lookup_vers DCB "do_lookup_versioned",0 .rodata:000564B8 ; DATA XREF: _dl_lookup_versioned_symbol+2FCo .rodata:000564B8 ; _dl_lookup_versioned_symbol:off_14EB8o ... .rodata:000564CC aFileSNeededB_0 DCB 0xA ; DATA XREF: add_dependency+164o .rodata:000564CC ; .text:off_13738o .rodata:000564CC DCB "file=%s; needed by %s (relocation dependency)",0xA .rodata:000564CC DCB 0xA,0 .rodata:000564FE ALIGN 0x10 .rodata:00056500 aMainProgram DCB "<main program>",0 ; DATA XREF: _dl_lookup_symbol+418o .rodata:00056500 ; _dl_lookup_symbol:off_13C00o ... .rodata:0005650F ALIGN 0x10 .rodata:00056510 aBindingFileSTo DCB "binding file %s to %s: %s symbol `%s'",0xA,0 .rodata:00056510 ; DATA XREF: _dl_lookup_symbol+574o .rodata:00056510 ; _dl_lookup_symbol:off_13F3Co ... .rodata:00056537 ALIGN 4 .rodata:00056538 aProtected DCB "protected",0 ; DATA XREF: _dl_lookup_symbol+56Co .rodata:00056538 ; _dl_lookup_symbol:off_13F38o ... .rodata:00056542 ALIGN 4 .rodata:00056544 aNormal DCB "normal",0 ; DATA XREF: _dl_lookup_symbol+564o .rodata:00056544 ; _dl_lookup_symbol:off_13F34o ... .rodata:0005654B ALIGN 4 .rodata:0005654C aIScopeR_ndupli DCB "i < (*scope)->r_nduplist",0 .rodata:0005654C ; DATA XREF: _dl_lookup_symbol_skip+144o .rodata:0005654C ; _dl_lookup_symbol_skip:off_142BCo ... .rodata:00056565 ALIGN 4 .rodata:00056568 aDlLookup_c DCB "dl-lookup.c",0 ; DATA XREF: _dl_lookup_symbol_skip+148o .rodata:00056568 ; _dl_lookup_symbol_skip:off_142C0o ... .rodata:00056574 a_dl_lookup_sym DCB "_dl_lookup_symbol_skip",0 .rodata:00056574 ; DATA XREF: _dl_lookup_symbol_skip+150o .rodata:00056574 ; _dl_lookup_symbol_skip:off_142C4o .rodata:0005658B ALIGN 4 .rodata:0005658C aSymbol DCB "symbol ",0 ; DATA XREF: _dl_lookup_versioned_symbol+558o .rodata:0005658C ; _dl_lookup_versioned_symbol:off_15230o .rodata:00056594 aVersion DCB ", version ",0 ; DATA XREF: _dl_lookup_versioned_symbol+550o .rodata:00056594 ; _dl_lookup_versioned_symbol+6A8o ... .rodata:0005659F ALIGN 0x10 .rodata:000565A0 aNotDefinedInFi DCB " not defined in file ",0 .rodata:000565A0 ; DATA XREF: _dl_lookup_versioned_symbol+564o .rodata:000565A0 ; _dl_lookup_versioned_symbol:off_15234o .rodata:000565B6 ALIGN 4 .rodata:000565B8 aWithLinkTimeRe DCB " with link time reference",0 .rodata:000565B8 ; DATA XREF: _dl_lookup_versioned_symbol+574o .rodata:000565B8 ; _dl_lookup_versioned_symbol:off_15238o .rodata:000565D2 ALIGN 4 .rodata:000565D4 aNoVersionSymbo DCB " (no version symbols)",0 .rodata:000565D4 ; DATA XREF: _dl_lookup_versioned_symbol+584o .rodata:000565D4 ; _dl_lookup_versioned_symbol:off_1523Co .rodata:000565EA ALIGN 4 .rodata:000565EC dword_565EC DCD 0 ; DATA XREF: _dl_lookup_versioned_symbol+588o .rodata:000565EC ; _dl_lookup_versioned_symbol:off_15240o .rodata:000565F0 aBindingFileS_0 DCB "binding file %s to %s: %s symbol `%s' [%s]",0xA,0 .rodata:000565F0 ; DATA XREF: _dl_lookup_versioned_symbol+828o .rodata:000565F0 ; _dl_lookup_versioned_symbol:off_15610o ... .rodata:0005661C a_dl_lookup_ver DCB "_dl_lookup_versioned_symbol_skip",0 .rodata:0005661C ; DATA XREF: _dl_lookup_versioned_symbol_skip+150o .rodata:0005661C ; _dl_lookup_versioned_symbol_skip:off_15A44o .rodata:0005663D ALIGN 0x10 .rodata:00056640 EXPORT _dl_out_of_memory .rodata:00056640 _dl_out_of_memory DCB "out of memory",0 ; DATA XREF: _dl_signal_error+B0o .rodata:00056640 ; .text:off_16B48o ... .rodata:0005664E ALIGN 0x10 .rodata:00056650 aDynamicLinkerB DCB "DYNAMIC LINKER BUG!!!",0 .rodata:00056650 ; DATA XREF: _dl_signal_error+1Co .rodata:00056650 ; .text:off_16B3Co .rodata:00056666 ALIGN 4 .rodata:00056668 dword_56668 DCD 0 ; DATA XREF: _dl_signal_error:loc_16A78o .rodata:00056668 ; _dl_signal_error:loc_16ABCo ... .rodata:0005666C aSErrorWhileLoa DCB "%s: error while loading shared libraries: %s%s%s%s%s",0xA,0 .rodata:0005666C ; DATA XREF: _dl_signal_error+FCo .rodata:0005666C ; .text:off_16B54o .rodata:000566A2 ALIGN 4 .rodata:000566A4 aProgramNameUnk DCB "<program name unknown>",0 .rodata:000566A4 ; DATA XREF: _dl_signal_error+F4o .rodata:000566A4 ; .text:off_16B4Co .rodata:000566BB ALIGN 4 .rodata:000566BC asc_566BC DCB ": ",0 ; DATA XREF: _dl_signal_error+10Co .rodata:000566BC ; .text:off_16B58o .rodata:000566BF ALIGN 0x10 .rodata:000566C0 aPid0Pid100000 DCB "pid >= 0 && pid < 100000",0 .rodata:000566C0 ; DATA XREF: _dl_debug_vdprintf+88o .rodata:000566C0 ; _dl_debug_vdprintf:off_1729Co .rodata:000566D9 ALIGN 4 .rodata:000566DC aDlMisc_c DCB "dl-misc.c",0 ; DATA XREF: _dl_debug_vdprintf+8Co .rodata:000566DC ; _dl_debug_vdprintf+108o ... .rodata:000566E6 ALIGN 4 .rodata:000566E8 a_dl_debug_vdpr DCB "_dl_debug_vdprintf",0 .rodata:000566E8 ; DATA XREF: _dl_debug_vdprintf+90o .rodata:000566E8 ; _dl_debug_vdprintf+10Co ... .rodata:000566FB ALIGN 4 .rodata:000566FC aNiovNiovmax DCB "niov < niovmax",0 ; DATA XREF: _dl_debug_vdprintf+104o .rodata:000566FC ; _dl_debug_vdprintf+18Co ... .rodata:0005670B ALIGN 4 .rodata:0005670C aInvalidFormatS DCB "invalid format specifier",0 .rodata:0005670C ; DATA XREF: _dl_debug_vdprintf:loc_17248o .rodata:0005670C ; _dl_debug_vdprintf:off_172B0o .rodata:00056725 ALIGN 4 .rodata:00056728 aInvalidForma_0 DCB "! ",0x22,"invalid format specifier",0x22,0 .rodata:00056728 ; DATA XREF: _dl_debug_vdprintf+3F0o .rodata:00056728 ; _dl_debug_vdprintf:off_172B4o .rodata:00056745 ALIGN 4 .rodata:00056748 aLd_warn DCB "LD_WARN",0 ; DATA XREF: non_dynamic_init:loc_17410o .rodata:00056748 ; .text:off_17540o .rodata:00056750 dword_56750 DCD 0 ; DATA XREF: non_dynamic_init+2Co .rodata:00056750 ; .text:off_17544o .rodata:00056754 aLd_library_p_0 DCB "LD_LIBRARY_PATH",0 ; DATA XREF: non_dynamic_init+50o .rodata:00056754 ; .text:off_1754Co .rodata:00056764 aLd_bind_now DCB "LD_BIND_NOW",0 ; DATA XREF: non_dynamic_init+5Co .rodata:00056764 ; .text:off_17550o .rodata:00056770 aLd_bind_not DCB "LD_BIND_NOT",0 ; DATA XREF: non_dynamic_init+84o .rodata:00056770 ; .text:off_17558o .rodata:0005677C aLd_dynamic_wea DCB "LD_DYNAMIC_WEAK",0 ; DATA XREF: non_dynamic_init+ACo .rodata:0005677C ; .text:off_17564o .rodata:0005678C aTzdir_0 DCB "TZDIR",0 ; DATA XREF: .data:0006BB20o .rodata:00056792 ALIGN 4 .rodata:00056794 aTmpdir DCB "TMPDIR",0 ; DATA XREF: .data:0006BB1Co .rodata:0005679B ALIGN 4 .rodata:0005679C aRes_options DCB "RES_OPTIONS",0 ; DATA XREF: .data:0006BB18o .rodata:000567A8 aResolv_host_co DCB "RESOLV_HOST_CONF",0 ; DATA XREF: .data:0006BB14o .rodata:000567B9 ALIGN 4 .rodata:000567BC aNlspath DCB "NLSPATH",0 ; DATA XREF: .data:0006BB10o .rodata:000567C4 aMalloc_trace DCB "MALLOC_TRACE",0 ; DATA XREF: .data:0006BB0Co .rodata:000567D1 ALIGN 4 .rodata:000567D4 aLocpath_0 DCB "LOCPATH",0 ; DATA XREF: .data:0006BB08o .rodata:000567DC aLocaldomain DCB "LOCALDOMAIN",0 ; DATA XREF: .data:0006BB04o .rodata:000567E8 aHostaliases DCB "HOSTALIASES",0 ; DATA XREF: .data:0006BB00o .rodata:000567F4 aGconv_path_0 DCB "GCONV_PATH",0 ; DATA XREF: .data:unsecure_envvars.111o .rodata:000567FF ALIGN 0x10 .rodata:00056800 aEtcSuidDebug DCB "/etc/suid-debug",0 ; DATA XREF: non_dynamic_init+100o .rodata:00056800 ; .text:off_17574o .rodata:00056810 aMalloc_check_0 DCB "MALLOC_CHECK_",0 ; DATA XREF: non_dynamic_init+114o .rodata:00056810 ; .text:off_17578o .rodata:0005681E ALIGN 0x10 .rodata:00056820 aCannotCreate_1 DCB "cannot create capability list",0 .rodata:00056820 ; DATA XREF: _dl_important_hwcaps+20o .rodata:00056820 ; .text:off_175C8o .rodata:0005683E ALIGN 0x10 .rodata:00056840 aProcSelfExe DCB "/proc/self/exe",0 ; DATA XREF: _dl_get_origin+20o .rodata:00056840 ; _dl_get_origin:off_17704o .rodata:0005684F ALIGN 0x10 .rodata:00056850 asc_56850 DCB "/",0 ; DATA XREF: _dl_get_origin+7Co .rodata:00056850 ; _dl_get_origin:off_17708o .rodata:00056852 ALIGN 4 .rodata:00056854 aProcSysKernelO DCB "/proc/sys/kernel/osrelease",0 .rodata:0005686F ALIGN 0x10 .rodata:00056870 aFatalCannotDet DCB "FATAL: cannot determine library version",0xA,0 .rodata:00056899 ALIGN 4 .rodata:0005689C aFatalKernelToo DCB "FATAL: kernel too old",0xA,0 .rodata:000568B3 ALIGN 4 .rodata:000568B4 EXPORT _libc_intl_domainname .rodata:000568B4 _libc_intl_domainname DCB "libc",0 ; DATA XREF: strerror_r:loc_F3ACo .rodata:000568B4 ; strerror_r:off_F45Co ... .rodata:000568B9 ALIGN 4 .rodata:000568BC aSSSUSSassertio DCB "%s%s%s:%u: %s%sAssertion `%s' failed.",0xA,0 .rodata:000568BC ; DATA XREF: __assert_fail+24o .rodata:000568BC ; .text:off_17998o .rodata:000568E3 ALIGN 4 .rodata:000568E4 dword_568E4 DCD 0 ; DATA XREF: __assert_fail+38o .rodata:000568E4 ; .text:off_1799Co .rodata:000568E8 asc_568E8 DCB ": ",0 ; DATA XREF: __assert_fail+40o .rodata:000568E8 ; .text:off_179A0o .rodata:000568EB ALIGN 4 .rodata:000568EC EXPORT _nl_default_default_domain .rodata:000568EC _nl_default_default_domain DCB "messages",0 ; DATA XREF: free_mem+68o .rodata:000568EC ; .text:off_18A88o .rodata:000568F5 ALIGN 4 .rodata:000568F8 EXPORT _nl_default_dirname .rodata:000568F8 _nl_default_dirname DCB "/usr/local/arm/2.95.3/arm-linux/share/locale",0 .rodata:000568F8 ; DATA XREF: __dcigettext+15Co .rodata:000568F8 ; __dcigettext:off_17E78o ... .rodata:00056925 ALIGN 4 .rodata:00056928 asc_56928 DCB "/",0 ; DATA XREF: __dcigettext+160o .rodata:00056928 ; __dcigettext+180o ... .rodata:0005692A ALIGN 4 .rodata:0005692C a_mo DCB ".mo",0 ; DATA XREF: __dcigettext+2CCo .rodata:0005692C ; __dcigettext:off_17E80o .rodata:00056930 aC_0 DCB "C",0 .rodata:00056932 ALIGN 4 .rodata:00056934 aPosix DCB "POSIX",0 ; DATA XREF: __dcigettext+384o .rodata:00056934 ; __dcigettext:off_17E88o .rodata:0005693A ALIGN 4 .rodata:0005693C aLc_collate DCB "LC_COLLATE",0 ; DATA XREF: category_to_name:loc_188E4o .rodata:0005693C ; .text:off_18924o .rodata:00056947 ALIGN 4 .rodata:00056948 aLc_ctype DCB "LC_CTYPE",0 ; DATA XREF: category_to_name:loc_188ECo .rodata:00056948 ; .text:off_18928o .rodata:00056951 ALIGN 4 .rodata:00056954 aLc_monetary DCB "LC_MONETARY",0 ; DATA XREF: category_to_name:loc_188F4o .rodata:00056954 ; .text:off_1892Co .rodata:00056960 aLc_numeric DCB "LC_NUMERIC",0 ; DATA XREF: category_to_name:loc_188FCo .rodata:00056960 ; .text:off_18930o .rodata:0005696B ALIGN 4 .rodata:0005696C aLc_time DCB "LC_TIME",0 ; DATA XREF: category_to_name:loc_18904o .rodata:0005696C ; .text:off_18934o .rodata:00056974 aLc_messages DCB "LC_MESSAGES",0 ; DATA XREF: category_to_name:loc_1890Co .rodata:00056974 ; .text:off_18938o .rodata:00056980 aLc_all DCB "LC_ALL",0 ; DATA XREF: category_to_name:loc_18914o .rodata:00056980 ; .text:off_1893Co .rodata:00056987 ALIGN 4 .rodata:00056988 aLc_xxx DCB "LC_XXX",0 ; DATA XREF: category_to_name:loc_1891Co .rodata:00056988 ; .text:off_18940o .rodata:0005698F ALIGN 0x10 .rodata:00056990 aLanguage DCB "LANGUAGE",0 ; DATA XREF: guess_category_value+Co .rodata:00056990 ; .text:off_189B0o .rodata:00056999 ALIGN 4 .rodata:0005699C plvar DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005699C DCB 0, 0, 0 .rodata:000569B0 plone DCB 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000569B0 DCB 0, 0, 0 .rodata:000569C4 dword_569C4 DCD 0 ; DATA XREF: _nl_init_domain_conv+38o .rodata:000569C4 ; _nl_init_domain_conv:off_18E24o .rodata:000569C8 aCharset DCB "charset=",0 ; DATA XREF: _nl_init_domain_conv+4Co .rodata:000569C8 ; _nl_init_domain_conv:off_18E28o .rodata:000569D1 ALIGN 4 .rodata:000569D4 DCB " ",9,0xA,0 .rodata:000569D8 aOutput_charset DCB "OUTPUT_CHARSET",0 ; DATA XREF: _nl_init_domain_conv:loc_18E30o .rodata:000569D8 ; _nl_init_domain_conv:off_18FDCo .rodata:000569E7 ALIGN 4 .rodata:000569E8 aTranslit DCB "TRANSLIT",0 ; DATA XREF: _nl_init_domain_conv+6Co .rodata:000569E8 ; _nl_init_domain_conv:off_18E2Co .rodata:000569F1 ALIGN 4 .rodata:000569F4 aPlural DCB "plural=",0 ; DATA XREF: _nl_load_domain+34Co .rodata:000569F4 ; _nl_load_domain:off_19444o .rodata:000569FC aNplurals DCB "nplurals=",0 ; DATA XREF: _nl_load_domain+35Co .rodata:000569FC ; _nl_load_domain:off_19448o .rodata:00056A06 ALIGN 4 .rodata:00056A08 aUsrLocalArm2_1 DCB "/usr/local/arm/2.95.3/arm-linux/share/locale",0 .rodata:00056A35 ALIGN 4 .rodata:00056A38 aliasfile.127 DCB "/locale.alias",0 ; DATA XREF: read_alias_file+30o .rodata:00056A38 ; read_alias_file:off_19888o .rodata:00056A46 ALIGN 4 .rodata:00056A48 aR DCB "r",0 ; DATA XREF: read_alias_file+3Co .rodata:00056A48 ; read_alias_file:off_1988Co .rodata:00056A4A ALIGN 4 .rodata:00056A4C aIso DCB "iso",0 ; DATA XREF: _nl_normalize_codeset+88o .rodata:00056A4C ; .text:off_1A1B0o .rodata:00056A50 yytranslate DCB 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 ; DATA XREF: __gettextparse+1A4o .rodata:00056A50 ; __gettextparse:off_1AA3Co .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0xA .rodata:00056A50 DCB 2, 2, 2, 2, 5, 2, 0xE, 0xF, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 0xC, 2, 2, 2, 2, 3, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 0xD, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:00056A50 DCB 2, 2, 1, 6, 7, 8, 9, 0xB .rodata:00056B56 yyr1 DCB 0, 0, 0x10, 0, 0x11, 0, 0x11, 0, 0x11, 0, 0x11, 0 .rodata:00056B56 ; DATA XREF: __gettextparse+3B4o .rodata:00056B56 ; __gettextparse:off_1AA50o .rodata:00056B56 DCB 0x11, 0, 0x11, 0, 0x11, 0, 0x11, 0, 0x11, 0, 0x11 .rodata:00056B56 DCB 0, 0x11, 0 .rodata:00056B70 yyr2 DCB 0, 0, 1, 0, 5, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3 .rodata:00056B70 ; DATA XREF: __gettextparse:loc_1A854o .rodata:00056B70 ; __gettextparse:off_1AA4Co .rodata:00056B70 DCB 0, 2, 0, 1, 0, 1, 0, 3, 0 .rodata:00056B8A yydefact DCB 0, 0, 0, 0, 0xB, 0, 0xA, 0, 0, 0, 1, 0, 9, 0, 0, 0 .rodata:00056B8A ; DATA XREF: __gettextparse:loc_1A838o .rodata:00056B8A ; __gettextparse:off_1AA48o .rodata:00056B8A DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xC, 0, 0 .rodata:00056B8A DCB 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 0, 0, 2, 0 .rodata:00056B8A DCB 0, 0, 0, 0, 0, 0 .rodata:00056BC2 yydefgoto DCD 0x50019 ; DATA XREF: __gettextparse+46Co .rodata:00056BC2 ; __gettextparse:off_1AB9Co .rodata:00056BC6 yypact DCB 0xF7, 0xFF, 0xF7, 0xFF, 0, 0x80, 0, 0x80, 0xF7, 0xFF .rodata:00056BC6 ; DATA XREF: __gettextparse:loc_1A724o .rodata:00056BC6 ; __gettextparse:off_1AA38o ... .rodata:00056BC6 DCB 0x22, 0, 0, 0x80, 0xB, 0, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7 .rodata:00056BC6 DCB 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF .rodata:00056BC6 DCB 0, 0x80, 0x18, 0, 0x27, 0, 0x2B, 0, 0x10, 0, 0x1A .rodata:00056BC6 DCB 0, 0xFD, 0xFF, 0, 0x80, 0xF7, 0xFF, 0x22, 0, 0x15 .rodata:00056BC6 DCB 0, 0x35, 0, 0, 0x80 .rodata:00056BFE yypgoto DCD 0xFFFF8000 ; DATA XREF: __gettextparse+3B8o .rodata:00056BFE ; __gettextparse:off_1AA54o .rodata:00056C02 yytable DCB 6, 0, 1, 0, 2, 0, 7, 0, 3, 0, 4, 0, 0xE, 0, 0x10, 0 .rodata:00056C02 ; DATA XREF: __gettextparse+1E0o .rodata:00056C02 ; __gettextparse+430o ... .rodata:00056C02 DCB 0x11, 0, 0x12, 0, 0x13, 0, 0x14, 0, 0x15, 0, 0x16 .rodata:00056C02 DCB 0, 8, 0, 9, 0, 0xA, 0, 0xB, 0, 0xC, 0, 0xD, 0, 0xE .rodata:00056C02 DCB 0, 0x1A, 0, 0x18, 0, 0xC, 0, 0xD, 0, 0xE, 0, 0xF, 0 .rodata:00056C02 DCB 8, 0, 9, 0, 0xA, 0, 0xB, 0, 0xC, 0, 0xD, 0, 0xE, 0 .rodata:00056C02 DCB 0xD, 0, 0xE, 0, 0x17, 0, 8, 0, 9, 0, 0xA, 0, 0xB, 0 .rodata:00056C02 DCB 0xC, 0, 0xD, 0, 0xE, 0, 0xA, 0, 0xB, 0, 0xC, 0, 0xD .rodata:00056C02 DCB 0, 0xE, 0, 0xB, 0, 0xC, 0, 0xD, 0, 0xE, 0, 0x1B, 0 .rodata:00056C6E yycheck DCB 1, 0, 0xA, 0, 0xB, 0, 4, 0, 0xD, 0, 0xE, 0, 9, 0, 8 .rodata:00056C6E ; DATA XREF: __gettextparse+1BCo .rodata:00056C6E ; __gettextparse+40Co ... .rodata:00056C6E DCB 0, 9, 0, 0xA, 0, 0xB, 0, 0xC, 0, 0xD, 0, 0xE, 0, 3 .rodata:00056C6E DCB 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0x17 .rodata:00056C6E DCB 0, 7, 0, 8, 0, 9, 0, 0xF, 0, 3, 0, 4, 0, 5, 0, 6, 0 .rodata:00056C6E DCB 7, 0, 8, 0, 9, 0, 8, 0, 9, 0, 0xC, 0, 3, 0, 4, 0, 5 .rodata:00056C6E DCB 0, 6, 0, 7, 0, 8, 0, 9, 0, 5, 0, 6, 0, 7, 0, 8, 0 .rodata:00056C6E DCB 9, 0, 6, 0, 7, 0, 8, 0, 9, 0, 0, 0 .rodata:00056CDA ALIGN 4 .rodata:00056CDC aParserStackOve DCB "parser stack overflow",0 .rodata:00056CDC ; DATA XREF: __gettextparse+94o .rodata:00056CDC ; __gettextparse:off_1AA34o .rodata:00056CF2 ALIGN 4 .rodata:00056CF4 aParseError DCB "parse error",0 ; DATA XREF: __gettextparse+498o .rodata:00056CF4 ; __gettextparse:off_1ABA0o .rodata:00056D00 asc_56D00 DCB "=",0 ; DATA XREF: __add_to_environ+138o .rodata:00056D00 ; __add_to_environ+258o ... .rodata:00056D02 ALIGN 4 .rodata:00056D04 EXPORT _itoa_lower_digits .rodata:00056D04 _itoa_lower_digits DCB 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38 .rodata:00056D04 ; DATA XREF: strerror_r+4Co .rodata:00056D04 ; strerror_r:off_F464o ... .rodata:00056D04 DCB 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68 .rodata:00056D04 DCB 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71 .rodata:00056D04 DCB 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A .rodata:00056D28 a0NN9 DCB "0 <= n && n <= 9",0 .rodata:00056D28 ; DATA XREF: _i18n_number_rewrite+64o .rodata:00056D28 ; .text:off_1CB3Co .rodata:00056D39 ALIGN 4 .rodata:00056D3C a__LocaleOutdig DCB "../locale/outdigits.h",0 .rodata:00056D3C ; DATA XREF: _i18n_number_rewrite+68o .rodata:00056D3C ; .text:off_1CB40o .rodata:00056D52 ALIGN 4 .rodata:00056D54 aOutdigit_value DCB "outdigit_value",0 ; DATA XREF: _i18n_number_rewrite+6Co .rodata:00056D54 ; .text:off_1CB44o .rodata:00056D63 ALIGN 4 .rodata:00056D64 a__LocaleOutd_0 DCB "../locale/outdigitswc.h",0 .rodata:00056D7C aOutdigitwc_val DCB "outdigitwc_value",0 .rodata:00056D8D ALIGN 0x10 .rodata:00056D90 null DCB "(null)",0 ; DATA XREF: vfprintf+1854o .rodata:00056D90 ; vfprintf:off_1E504o ... .rodata:00056D97 ALIGN 4 .rodata:00056D98 jump_table.174 DCD 1, 0, 0 ; DATA XREF: vfprintf+268o .rodata:00056D98 ; vfprintf+2B0o ... .rodata:00056DA4 DCD 4, 0 .rodata:00056DAC DCD 0xE, 0 .rodata:00056DB4 DCD 6, 0, 0 .rodata:00056DC0 DCD 7, 2, 0 .rodata:00056DCC DCD 3, 9, 0 .rodata:00056DD8 DCD 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0 .rodata:00056E1C DCD 0x1A, 0 .rodata:00056E24 DCD 0x19, 0 .rodata:00056E2C DCD 0x13, 0x13, 0x13, 0 .rodata:00056E3C DCD 0x1D, 0, 0 .rodata:00056E48 DCD 0xC, 0, 0, 0, 0, 0, 0 .rodata:00056E64 DCD 0x15, 0, 0, 0, 0 .rodata:00056E78 DCD 0x12, 0 .rodata:00056E80 DCD 0xD, 0, 0, 0, 0, 0, 0 .rodata:00056E9C DCD 0x1A, 0 .rodata:00056EA4 DCD 0x14, 0xF, 0x13, 0x13, 0x13, 0xA, 0xF, 0x1C, 0 .rodata:00056EC8 DCD 0xB, 0x18, 0x17, 0x11, 0x16, 0xC, 0 .rodata:00056EE4 DCD 0x15, 0x1B, 0x10, 0, 0 .rodata:00056EF8 DCD 0x12, 0 .rodata:00056F00 DCD 0xD .rodata:00056F04 step0_jumps.175 DCB 0xA8, 0xE6, 1, 0, 0xD0, 0xCD, 1, 0, 0x18, 0xCE, 1 .rodata:00056F04 ; DATA XREF: vfprintf+26Co .rodata:00056F04 ; vfprintf+2B4o ... .rodata:00056F04 DCB 0, 0x60, 0xCE, 1, 0, 0xB0, 0xCE, 1, 0, 0xF8, 0xCE .rodata:00056F04 DCB 1, 0, 0x4C, 0xCF, 1, 0, 0x3C, 0xD0, 1, 0, 0x50, 0xD1 .rodata:00056F04 DCB 1, 0, 0x14, 0xD2, 1, 0, 0, 0xD4, 1, 0, 0x98, 0xD4 .rodata:00056F04 DCB 1, 0, 0xE0, 0xD4, 1, 0, 0x2C, 0xD5, 1, 0, 0x10, 0xD6 .rodata:00056F04 DCB 1, 0, 0x48, 0xD6, 1, 0, 0xE4, 0xD6, 1, 0, 0xF0, 0xD6 .rodata:00056F04 DCB 1, 0, 0xFC, 0xD6, 1, 0, 0x90, 0xDE, 1, 0, 0xB8, 0xE1 .rodata:00056F04 DCB 1, 0, 0x60, 0xE3, 1, 0, 0xF8, 0xE0, 1, 0, 0x58, 0xE1 .rodata:00056F04 DCB 1, 0, 0x98, 0xE1, 1, 0, 0x6C, 0xE2, 1, 0, 0xD0, 0xDF .rodata:00056F04 DCB 1, 0, 0x78, 0xD5, 1, 0, 0xC4, 0xD5, 1, 0, 0xF4, 0xCF .rodata:00056F04 DCB 1, 0 .rodata:00056F7C step1_jumps.176 DCB 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1 .rodata:00056F7C ; DATA XREF: vfprintf+5ECo .rodata:00056F7C ; vfprintf+6B0o ... .rodata:00056F7C DCB 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:00056F7C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:00056F7C DCB 1, 0, 0x14, 0xD2, 1, 0, 0, 0xD4, 1, 0, 0x98, 0xD4 .rodata:00056F7C DCB 1, 0, 0xE0, 0xD4, 1, 0, 0x2C, 0xD5, 1, 0, 0x10, 0xD6 .rodata:00056F7C DCB 1, 0, 0x48, 0xD6, 1, 0, 0xE4, 0xD6, 1, 0, 0xF0, 0xD6 .rodata:00056F7C DCB 1, 0, 0xFC, 0xD6, 1, 0, 0x90, 0xDE, 1, 0, 0xB8, 0xE1 .rodata:00056F7C DCB 1, 0, 0x60, 0xE3, 1, 0, 0xF8, 0xE0, 1, 0, 0x58, 0xE1 .rodata:00056F7C DCB 1, 0, 0x98, 0xE1, 1, 0, 0x6C, 0xE2, 1, 0, 0xD0, 0xDF .rodata:00056F7C DCB 1, 0, 0x78, 0xD5, 1, 0, 0xC4, 0xD5, 1, 0, 0xF4, 0xCF .rodata:00056F7C DCB 1, 0 .rodata:00056FF4 step2_jumps.177 DCB 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1 .rodata:00056FF4 ; DATA XREF: vfprintf+888o .rodata:00056FF4 ; vfprintf:off_1D3FCo .rodata:00056FF4 DCB 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:00056FF4 DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:00056FF4 DCB 1, 0, 0xA8, 0xE6, 1, 0, 0, 0xD4, 1, 0, 0x98, 0xD4 .rodata:00056FF4 DCB 1, 0, 0xE0, 0xD4, 1, 0, 0x2C, 0xD5, 1, 0, 0x10, 0xD6 .rodata:00056FF4 DCB 1, 0, 0x48, 0xD6, 1, 0, 0xE4, 0xD6, 1, 0, 0xF0, 0xD6 .rodata:00056FF4 DCB 1, 0, 0xFC, 0xD6, 1, 0, 0x90, 0xDE, 1, 0, 0xB8, 0xE1 .rodata:00056FF4 DCB 1, 0, 0x60, 0xE3, 1, 0, 0xF8, 0xE0, 1, 0, 0x58, 0xE1 .rodata:00056FF4 DCB 1, 0, 0x98, 0xE1, 1, 0, 0x6C, 0xE2, 1, 0, 0xD0, 0xDF .rodata:00056FF4 DCB 1, 0, 0x78, 0xD5, 1, 0, 0xC4, 0xD5, 1, 0, 0xF4, 0xCF .rodata:00056FF4 DCB 1, 0 .rodata:0005706C step3a_jumps.178 DCB 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1 .rodata:0005706C ; DATA XREF: vfprintf+8E4o .rodata:0005706C ; vfprintf:off_1D79Co .rodata:0005706C DCB 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:0005706C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:0005706C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0x48, 0xD4, 1, 0, 0xA8, 0xE6 .rodata:0005706C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0x10, 0xD6 .rodata:0005706C DCB 1, 0, 0x48, 0xD6, 1, 0, 0xE4, 0xD6, 1, 0, 0xF0, 0xD6 .rodata:0005706C DCB 1, 0, 0xFC, 0xD6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:0005706C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0x58, 0xE1 .rodata:0005706C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:0005706C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:0005706C DCB 1, 0 .rodata:000570E4 step3b_jumps.179 DCB 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1 .rodata:000570E4 ; DATA XREF: vfprintf+97Co .rodata:000570E4 ; vfprintf:off_1D7A8o .rodata:000570E4 DCB 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:000570E4 DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:000570E4 DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xE0, 0xD4 .rodata:000570E4 DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0x10, 0xD6 .rodata:000570E4 DCB 1, 0, 0x48, 0xD6, 1, 0, 0xE4, 0xD6, 1, 0, 0xF0, 0xD6 .rodata:000570E4 DCB 1, 0, 0xFC, 0xD6, 1, 0, 0x90, 0xDE, 1, 0, 0xB8, 0xE1 .rodata:000570E4 DCB 1, 0, 0x60, 0xE3, 1, 0, 0xF8, 0xE0, 1, 0, 0x58, 0xE1 .rodata:000570E4 DCB 1, 0, 0x98, 0xE1, 1, 0, 0x6C, 0xE2, 1, 0, 0xD0, 0xDF .rodata:000570E4 DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:000570E4 DCB 1, 0 .rodata:0005715C step4_jumps.180 DCB 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1 .rodata:0005715C ; DATA XREF: vfprintf+934o .rodata:0005715C ; vfprintf+9C8o ... .rodata:0005715C DCB 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:0005715C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:0005715C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:0005715C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0x10, 0xD6 .rodata:0005715C DCB 1, 0, 0x48, 0xD6, 1, 0, 0xE4, 0xD6, 1, 0, 0xF0, 0xD6 .rodata:0005715C DCB 1, 0, 0xFC, 0xD6, 1, 0, 0x90, 0xDE, 1, 0, 0xB8, 0xE1 .rodata:0005715C DCB 1, 0, 0x60, 0xE3, 1, 0, 0xF8, 0xE0, 1, 0, 0x58, 0xE1 .rodata:0005715C DCB 1, 0, 0x98, 0xE1, 1, 0, 0x6C, 0xE2, 1, 0, 0xD0, 0xDF .rodata:0005715C DCB 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6, 1, 0, 0xA8, 0xE6 .rodata:0005715C DCB 1, 0 .rodata:000571D4 aNil DCB "(nil)",0 ; DATA XREF: vfprintf+15F4o .rodata:000571D4 ; vfprintf:off_1E500o ... .rodata:000571DA ALIGN 4 .rodata:000571DC dword_571DC DCD 0 ; DATA XREF: vfprintf+1860o .rodata:000571DC ; vfprintf:off_1E508o ... .rodata:000571E0 step4_jumps.181 DCB 0x30, 0xA, 2, 0, 0x30, 0xA, 2, 0, 0x30, 0xA, 2, 0 .rodata:000571E0 ; DATA XREF: vfprintf+2AA4o .rodata:000571E0 ; vfprintf:off_1F65Co .rodata:000571E0 DCB 0x30, 0xA, 2, 0, 0x30, 0xA, 2, 0, 0x30, 0xA, 2, 0 .rodata:000571E0 DCB 0x30, 0xA, 2, 0, 0x30, 0xA, 2, 0, 0x30, 0xA, 2, 0 .rodata:000571E0 DCB 0x30, 0xA, 2, 0, 0x30, 0xA, 2, 0, 0x30, 0xA, 2, 0 .rodata:000571E0 DCB 0x30, 0xA, 2, 0, 0x30, 0xA, 2, 0, 8, 0xF6, 1, 0, 0x64 .rodata:000571E0 DCB 0xF6, 1, 0, 0x58, 0xF7, 1, 0, 0x64, 0xF7, 1, 0, 0x70 .rodata:000571E0 DCB 0xF7, 1, 0, 0xC8, 0xFF, 1, 0, 0xA0, 4, 2, 0, 0xB4 .rodata:000571E0 DCB 6, 2, 0, 0xDC, 2, 2, 0, 0x64, 3, 2, 0, 0x80, 4, 2 .rodata:000571E0 DCB 0, 0x9C, 5, 2, 0, 0x50, 1, 2, 0, 0x30, 0xA, 2, 0, 0x30 .rodata:000571E0 DCB 0xA, 2, 0, 0x30, 0xA, 2, 0 .rodata:00057258 _IO_helper_jumps DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xE0, 0xA3, 0, 0, 0x74, 0x10 .rodata:00057258 ; DATA XREF: buffered_vfprintf:loc_211BCo .rodata:00057258 ; buffered_vfprintf:off_21298o .rodata:00057258 DCB 2, 0, 0x30, 0x9F, 0, 0, 0x44, 0x9F, 0, 0, 0x18, 0xA9 .rodata:00057258 DCB 0, 0, 0x84, 0x9F, 0, 0, 0x78, 0xA0, 0, 0, 0x90, 0xA4 .rodata:00057258 DCB 0, 0, 0xEC, 0xA1, 0, 0, 0x28, 0xA1, 0, 0, 0xCC, 0xA3 .rodata:00057258 DCB 0, 0, 0x20, 0xA2, 0, 0, 0x7C, 0xAA, 0, 0, 0x90, 0xAA .rodata:00057258 DCB 0, 0, 0x50, 0xAA, 0, 0, 0xCC, 0xA3, 0, 0, 0x68, 0xAA .rodata:00057258 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000572AC dword_572AC DCD 0x4E414E ; DATA XREF: __printf_fp+200o .rodata:000572AC ; __printf_fp:off_21848o .rodata:000572B0 dword_572B0 DCD 0x4E, 0x41, 0x4E, 0 ; DATA XREF: __printf_fp+204o .rodata:000572B0 ; __printf_fp:off_2184Co .rodata:000572C0 dword_572C0 DCD 0x6E616E ; DATA XREF: __printf_fp+208o .rodata:000572C0 ; __printf_fp:off_21850o .rodata:000572C4 dword_572C4 DCD 0x6E, 0x61, 0x6E, 0 ; DATA XREF: __printf_fp+20Co .rodata:000572C4 ; __printf_fp:off_21854o .rodata:000572D4 dword_572D4 DCD 0x464E49 ; DATA XREF: __printf_fp+250o .rodata:000572D4 ; __printf_fp:off_21858o .rodata:000572D8 dword_572D8 DCD 0x49, 0x4E, 0x46, 0 ; DATA XREF: __printf_fp+254o .rodata:000572D8 ; __printf_fp:off_2185Co .rodata:000572E8 dword_572E8 DCD 0x666E69 ; DATA XREF: __printf_fp+258o .rodata:000572E8 ; __printf_fp:off_21860o .rodata:000572EC dword_572EC DCD 0x69, 0x6E, 0x66, 0 ; DATA XREF: __printf_fp+25Co .rodata:000572EC ; __printf_fp:off_21864o .rodata:000572FC aDecimal0Decima DCB "*decimal != '\0' && decimalwc != L'\0'",0 .rodata:000572FC ; DATA XREF: __printf_fphex+94o .rodata:000572FC ; __printf_fphex:off_237D4o .rodata:00057323 ALIGN 4 .rodata:00057324 a__SysdepsGen_0 DCB "../sysdeps/generic/printf_fphex.c",0 .rodata:00057324 ; DATA XREF: __printf_fphex+98o .rodata:00057324 ; __printf_fphex:off_237D8o .rodata:00057346 ALIGN 4 .rodata:00057348 a__printf_fphex DCB "__printf_fphex",0 ; DATA XREF: __printf_fphex+9Co .rodata:00057348 ; __printf_fphex:off_237DCo .rodata:00057357 ALIGN 4 .rodata:00057358 aNan DCB "NAN",0 ; DATA XREF: __printf_fphex+F0o .rodata:00057358 ; __printf_fphex:off_237E8o .rodata:0005735C aN DCB "N",0 ; DATA XREF: __printf_fphex+ECo .rodata:0005735C ; __printf_fphex:off_237E4o .rodata:0005735E ALIGN 0x10 .rodata:00057360 aA DCB "A",0 .rodata:00057362 ALIGN 4 .rodata:00057364 aN_0 DCB "N",0 .rodata:00057366 ALIGN 4 .rodata:00057368 DCD 0 .rodata:0005736C dword_5736C DCD 0x6E616E ; DATA XREF: __printf_fphex+FCo .rodata:0005736C ; __printf_fphex:off_237F0o .rodata:00057370 dword_57370 DCD 0x6E, 0x61, 0x6E, 0 ; DATA XREF: __printf_fphex+F8o .rodata:00057370 ; __printf_fphex:off_237ECo .rodata:00057380 dword_57380 DCD 0x464E49 ; DATA XREF: __printf_fphex+148o .rodata:00057380 ; __printf_fphex:off_237F8o .rodata:00057384 dword_57384 DCD 0x49, 0x4E, 0x46, 0 ; DATA XREF: __printf_fphex+144o .rodata:00057384 ; __printf_fphex:off_237F4o .rodata:00057394 dword_57394 DCD 0x666E69 ; DATA XREF: __printf_fphex+154o .rodata:00057394 ; __printf_fphex:off_23800o .rodata:00057398 dword_57398 DCD 0x69, 0x6E, 0x66, 0 ; DATA XREF: __printf_fphex+150o .rodata:00057398 ; __printf_fphex:off_237FCo .rodata:000573A8 aCnt__ctype_get DCB "cnt < (__ctype_get_mb_cur_max ())",0 .rodata:000573A8 ; DATA XREF: _IO_vfscanf+F08o .rodata:000573A8 ; _IO_vfscanf:off_25858o ... .rodata:000573CA ALIGN 4 .rodata:000573CC aVfscanf_c DCB "vfscanf.c",0 ; DATA XREF: _IO_vfscanf+F0Co .rodata:000573CC ; _IO_vfscanf:off_2585Co ... .rodata:000573D6 ALIGN 4 .rodata:000573D8 a_io_vfscanf DCB "_IO_vfscanf",0 ; DATA XREF: _IO_vfscanf+F14o .rodata:000573D8 ; _IO_vfscanf:off_25860o ... .rodata:000573E4 a0NN9_0 DCB "0 <= n && n <= 9",0 .rodata:000573F5 ALIGN 4 .rodata:000573F8 a__LocaleOutd_1 DCB "../locale/outdigits.h",0 .rodata:0005740E ALIGN 0x10 .rodata:00057410 aOutdigit_val_0 DCB "outdigit_value",0 .rodata:0005741F ALIGN 0x10 .rodata:00057420 a__LocaleOutd_2 DCB "../locale/outdigitswc.h",0 .rodata:00057438 aOutdigitwc_v_0 DCB "outdigitwc_value",0 .rodata:00057449 ALIGN 4 .rodata:0005744C null_0 DCB 0x28, 0, 0, 0, 0x6E, 0, 0, 0, 0x75, 0, 0, 0, 0x6C .rodata:0005744C ; DATA XREF: vfwprintf+1E28o .rodata:0005744C ; vfwprintf:off_2B2E8o ... .rodata:0005744C DCB 0, 0, 0, 0x6C, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:00057468 jump_table.177 DCD 1, 0, 0 ; DATA XREF: vfwprintf+250o .rodata:00057468 ; vfwprintf+2ACo ... .rodata:00057474 DCD 4, 0 .rodata:0005747C DCD 0xE, 0 .rodata:00057484 DCD 6, 0, 0 .rodata:00057490 DCD 7, 2, 0 .rodata:0005749C DCD 3, 9, 0 .rodata:000574A8 DCD 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0 .rodata:000574EC DCD 0x1A, 0 .rodata:000574F4 DCD 0x19, 0 .rodata:000574FC DCD 0x13, 0x13, 0x13, 0 .rodata:0005750C DCD 0x1D, 0, 0 .rodata:00057518 DCD 0xC, 0, 0, 0, 0, 0, 0 .rodata:00057534 DCD 0x15, 0, 0, 0, 0 .rodata:00057548 DCD 0x12, 0 .rodata:00057550 DCD 0xD, 0, 0, 0, 0, 0, 0 .rodata:0005756C DCD 0x1A, 0 .rodata:00057574 DCD 0x14, 0xF, 0x13, 0x13, 0x13, 0xA, 0xF, 0x1C, 0 .rodata:00057598 DCD 0xB, 0x18, 0x17, 0x11, 0x16, 0xC, 0 .rodata:000575B4 DCD 0x15, 0x1B, 0x10, 0, 0 .rodata:000575C8 DCD 0x12, 0 .rodata:000575D0 DCD 0xD .rodata:000575D4 step0_jumps.178 DCB 0xFC, 0xB3, 2, 0, 0x18, 0x96, 2, 0, 0x74, 0x96, 2 .rodata:000575D4 ; DATA XREF: vfwprintf+254o .rodata:000575D4 ; vfwprintf+2B0o ... .rodata:000575D4 DCB 0, 0xD0, 0x96, 2, 0, 0x38, 0x97, 2, 0, 0x94, 0x97 .rodata:000575D4 DCB 2, 0, 0x14, 0x98, 2, 0, 0x20, 0x99, 2, 0, 0x84, 0x9A .rodata:000575D4 DCB 2, 0, 0x5C, 0x9B, 2, 0, 0xAC, 0x9D, 2, 0, 0x68, 0x9E .rodata:000575D4 DCB 2, 0, 0xC0, 0x9E, 2, 0, 0x20, 0x9F, 2, 0, 0x40, 0xA0 .rodata:000575D4 DCB 2, 0, 0x80, 0xA0, 2, 0, 0x70, 0xA1, 2, 0, 0x80, 0xA1 .rodata:000575D4 DCB 2, 0, 0x90, 0xA1, 2, 0, 0x78, 0xAB, 2, 0, 0xC8, 0xAF .rodata:000575D4 DCB 2, 0, 0x88, 0xB1, 2, 0, 0xB8, 0xAE, 2, 0, 0x44, 0xAF .rodata:000575D4 DCB 2, 0, 0x9C, 0xAF, 2, 0, 0xB0, 0xB0, 2, 0, 0x20, 0xAD .rodata:000575D4 DCB 2, 0, 0x80, 0x9F, 2, 0, 0xE0, 0x9F, 2, 0, 0xC4, 0x98 .rodata:000575D4 DCB 2, 0 .rodata:0005764C step1_jumps.179 DCB 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2 .rodata:0005764C ; DATA XREF: vfwprintf+6C0o .rodata:0005764C ; vfwprintf+784o ... .rodata:0005764C DCB 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005764C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005764C DCB 2, 0, 0x5C, 0x9B, 2, 0, 0xAC, 0x9D, 2, 0, 0x68, 0x9E .rodata:0005764C DCB 2, 0, 0xC0, 0x9E, 2, 0, 0x20, 0x9F, 2, 0, 0x40, 0xA0 .rodata:0005764C DCB 2, 0, 0x80, 0xA0, 2, 0, 0x70, 0xA1, 2, 0, 0x80, 0xA1 .rodata:0005764C DCB 2, 0, 0x90, 0xA1, 2, 0, 0x78, 0xAB, 2, 0, 0xC8, 0xAF .rodata:0005764C DCB 2, 0, 0x88, 0xB1, 2, 0, 0xB8, 0xAE, 2, 0, 0x44, 0xAF .rodata:0005764C DCB 2, 0, 0x9C, 0xAF, 2, 0, 0xB0, 0xB0, 2, 0, 0x20, 0xAD .rodata:0005764C DCB 2, 0, 0x80, 0x9F, 2, 0, 0xE0, 0x9F, 2, 0, 0xC4, 0x98 .rodata:0005764C DCB 2, 0 .rodata:000576C4 step2_jumps.180 DCB 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2 .rodata:000576C4 ; DATA XREF: vfwprintf+9E8o .rodata:000576C4 ; vfwprintf:off_2A15Co .rodata:000576C4 DCB 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:000576C4 DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:000576C4 DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xAC, 0x9D, 2, 0, 0x68, 0x9E .rodata:000576C4 DCB 2, 0, 0xC0, 0x9E, 2, 0, 0x20, 0x9F, 2, 0, 0x40, 0xA0 .rodata:000576C4 DCB 2, 0, 0x80, 0xA0, 2, 0, 0x70, 0xA1, 2, 0, 0x80, 0xA1 .rodata:000576C4 DCB 2, 0, 0x90, 0xA1, 2, 0, 0x78, 0xAB, 2, 0, 0xC8, 0xAF .rodata:000576C4 DCB 2, 0, 0x88, 0xB1, 2, 0, 0xB8, 0xAE, 2, 0, 0x44, 0xAF .rodata:000576C4 DCB 2, 0, 0x9C, 0xAF, 2, 0, 0xB0, 0xB0, 2, 0, 0x20, 0xAD .rodata:000576C4 DCB 2, 0, 0x80, 0x9F, 2, 0, 0xE0, 0x9F, 2, 0, 0xC4, 0x98 .rodata:000576C4 DCB 2, 0 .rodata:0005773C step3a_jumps.181 DCB 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2 .rodata:0005773C ; DATA XREF: vfwprintf+A40o .rodata:0005773C ; vfwprintf:off_2A164o .rodata:0005773C DCB 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005773C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005773C DCB 2, 0, 0xFC, 0xB3, 2, 0, 4, 0x9E, 2, 0, 0xFC, 0xB3 .rodata:0005773C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0x40, 0xA0 .rodata:0005773C DCB 2, 0, 0x80, 0xA0, 2, 0, 0x70, 0xA1, 2, 0, 0x80, 0xA1 .rodata:0005773C DCB 2, 0, 0x90, 0xA1, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005773C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0x44, 0xAF .rodata:0005773C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005773C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005773C DCB 2, 0 .rodata:000577B4 step3b_jumps.182 DCB 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2 .rodata:000577B4 ; DATA XREF: vfwprintf+AFCo .rodata:000577B4 ; vfwprintf:off_2A16Co .rodata:000577B4 DCB 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:000577B4 DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:000577B4 DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xC0, 0x9E .rodata:000577B4 DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0x40, 0xA0 .rodata:000577B4 DCB 2, 0, 0x80, 0xA0, 2, 0, 0x70, 0xA1, 2, 0, 0x80, 0xA1 .rodata:000577B4 DCB 2, 0, 0x90, 0xA1, 2, 0, 0x78, 0xAB, 2, 0, 0xC8, 0xAF .rodata:000577B4 DCB 2, 0, 0x88, 0xB1, 2, 0, 0xB8, 0xAE, 2, 0, 0x44, 0xAF .rodata:000577B4 DCB 2, 0, 0x9C, 0xAF, 2, 0, 0xB0, 0xB0, 2, 0, 0x20, 0xAD .rodata:000577B4 DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:000577B4 DCB 2, 0 .rodata:0005782C step4_jumps.183 DCB 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2 .rodata:0005782C ; DATA XREF: vfwprintf+AA4o .rodata:0005782C ; vfwprintf+B5Co ... .rodata:0005782C DCB 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005782C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005782C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005782C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0x40, 0xA0 .rodata:0005782C DCB 2, 0, 0x80, 0xA0, 2, 0, 0x70, 0xA1, 2, 0, 0x80, 0xA1 .rodata:0005782C DCB 2, 0, 0x90, 0xA1, 2, 0, 0x78, 0xAB, 2, 0, 0xC8, 0xAF .rodata:0005782C DCB 2, 0, 0x88, 0xB1, 2, 0, 0xB8, 0xAE, 2, 0, 0x44, 0xAF .rodata:0005782C DCB 2, 0, 0x9C, 0xAF, 2, 0, 0xB0, 0xB0, 2, 0, 0x20, 0xAD .rodata:0005782C DCB 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3, 2, 0, 0xFC, 0xB3 .rodata:0005782C DCB 2, 0 .rodata:000578A4 dword_578A4 DCD 0x28, 0x6E, 0x69, 0x6C, 0x29, 0 .rodata:000578A4 ; DATA XREF: vfwprintf+1B88o .rodata:000578A4 ; vfwprintf:off_2B2E4o ... .rodata:000578BC dword_578BC DCD 0 ; DATA XREF: vfwprintf+1E34o .rodata:000578BC ; vfwprintf:off_2B2ECo ... .rodata:000578C0 step4_jumps.184 DCB 0xC4, 0xDC, 2, 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC, 2 .rodata:000578C0 ; DATA XREF: vfwprintf+30A8o .rodata:000578C0 ; vfwprintf:off_2C5F4o .rodata:000578C0 DCB 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC .rodata:000578C0 DCB 2, 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC .rodata:000578C0 DCB 2, 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC .rodata:000578C0 DCB 2, 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC, 2, 0, 0x6C, 0xC4 .rodata:000578C0 DCB 2, 0, 0xC0, 0xC4, 2, 0, 0x2C, 0xC6, 2, 0, 0x3C, 0xC6 .rodata:000578C0 DCB 2, 0, 0x4C, 0xC6, 2, 0, 0x1C, 0xD1, 2, 0, 0x9C, 0xD7 .rodata:000578C0 DCB 2, 0, 0, 0xDA, 2, 0, 0x1C, 0xD5, 2, 0, 0xF0, 0xD5 .rodata:000578C0 DCB 2, 0, 0x70, 0xD7, 2, 0, 0xC8, 0xD8, 2, 0, 0x24, 0xD3 .rodata:000578C0 DCB 2, 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC, 2, 0, 0xC4, 0xDC .rodata:000578C0 DCB 2, 0 .rodata:00057938 _IO_helper_jumps_0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xA0, 0xEC, 2, 0, 0x6C, 0xE3 .rodata:00057938 ; DATA XREF: buffered_vfprintf_0:loc_2E4ACo .rodata:00057938 ; buffered_vfprintf_0:off_2E590o .rodata:00057938 DCB 2, 0, 0x30, 0x9F, 0, 0, 0x44, 0x9F, 0, 0, 0xC, 0xEB .rodata:00057938 DCB 2, 0, 0xFC, 0xEF, 2, 0, 0xC0, 0xF0, 2, 0, 0x90, 0xA4 .rodata:00057938 DCB 0, 0, 0xEC, 0xA1, 0, 0, 0xD8, 0xF1, 2, 0, 0xCC, 0xA3 .rodata:00057938 DCB 0, 0, 0xA8, 0xF2, 2, 0, 0x7C, 0xAA, 0, 0, 0x90, 0xAA .rodata:00057938 DCB 0, 0, 0x50, 0xAA, 0, 0, 0xCC, 0xA3, 0, 0, 0x68, 0xAA .rodata:00057938 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005798C WEAK sys_errlist .rodata:0005798C ; const char *const sys_errlist[] .rodata:0005798C sys_errlist DCB 0x84, 0x87, 5, 0, 0x6C, 0x87, 5, 0, 0x50, 0x87, 5 .rodata:0005798C ; DATA XREF: strerror_r+30o .rodata:0005798C ; strerror_r:off_F458o .rodata:0005798C DCB 0, 0x40, 0x87, 5, 0, 0x28, 0x87, 5, 0, 0x14, 0x87 .rodata:0005798C DCB 5, 0, 0xF8, 0x86, 5, 0, 0xE0, 0x86, 5, 0, 0xCC, 0x86 .rodata:0005798C DCB 5, 0, 0xB8, 0x86, 5, 0, 0xA4, 0x86, 5, 0, 0x80, 0x86 .rodata:0005798C DCB 5, 0, 0x68, 0x86, 5, 0, 0x54, 0x86, 5, 0, 0x48, 0x86 .rodata:0005798C DCB 5, 0, 0x30, 0x86, 5, 0, 0x18, 0x86, 5, 0, 0xC, 0x86 .rodata:0005798C DCB 5, 0, 0xF0, 0x85, 5, 0, 0xE0, 0x85, 5, 0, 0xD0, 0x85 .rodata:0005798C DCB 5, 0, 0xC0, 0x85, 5, 0, 0xAC, 0x85, 5, 0, 0x8C, 0x85 .rodata:0005798C DCB 5, 0, 0x78, 0x85, 5, 0, 0x58, 0x85, 5, 0, 0x48, 0x85 .rodata:0005798C DCB 5, 0, 0x38, 0x85, 5, 0, 0x20, 0x85, 5, 0, 0x10, 0x85 .rodata:0005798C DCB 5, 0, 0xF8, 0x84, 5, 0, 0xE8, 0x84, 5, 0, 0xDC, 0x84 .rodata:0005798C DCB 5, 0, 0xB8, 0x84, 5, 0, 0x98, 0x84, 5, 0, 0x7C, 0x84 .rodata:0005798C DCB 5, 0, 0x68, 0x84, 5, 0, 0x54, 0x84, 5, 0, 0x38, 0x84 .rodata:0005798C DCB 5, 0, 0x24, 0x84, 5, 0, 0, 0x84, 5, 0, 0, 0, 0, 0 .rodata:0005798C DCB 0xE4, 0x83, 5, 0, 0xD0, 0x83, 5, 0, 0xB4, 0x83, 5 .rodata:0005798C DCB 0, 0x98, 0x83, 5, 0, 0x88, 0x83, 5, 0, 0x78, 0x83 .rodata:0005798C DCB 5, 0, 0x5C, 0x83, 5, 0, 0x3C, 0x83, 5, 0, 0x20, 0x83 .rodata:0005798C DCB 5, 0, 0x10, 0x83, 5, 0, 0xFC, 0x82, 5, 0, 0xE0, 0x82 .rodata:0005798C DCB 5, 0, 0xD0, 0x82, 5, 0, 0xC4, 0x82, 5, 0, 0xAC, 0x82 .rodata:0005798C DCB 5, 0, 0x9C, 0x82, 5, 0, 0, 0, 0, 0, 0x84, 0x82, 5 .rodata:0005798C DCB 0, 0x70, 0x82, 5, 0, 0x5C, 0x82, 5, 0, 0x4C, 0x82 .rodata:0005798C DCB 5, 0, 0x30, 0x82, 5, 0, 0x10, 0x82, 5, 0, 0xF8, 0x81 .rodata:0005798C DCB 5, 0, 0xE4, 0x81, 5, 0, 0xCC, 0x81, 5, 0, 0xBC, 0x81 .rodata:0005798C DCB 5, 0, 0xAC, 0x81, 5, 0, 0x90, 0x81, 5, 0, 0x80, 0x81 .rodata:0005798C DCB 5, 0, 0x6C, 0x81, 5, 0, 0x58, 0x81, 5, 0, 0x4C, 0x81 .rodata:0005798C DCB 5, 0, 0x24, 0x81, 5, 0, 8, 0x81, 5, 0, 0xE8, 0x80 .rodata:0005798C DCB 5, 0, 0xD0, 0x80, 5, 0, 0xA8, 0x80, 5, 0, 0x80, 0x80 .rodata:0005798C DCB 5, 0, 0x60, 0x80, 5, 0, 0x30, 0x80, 5, 0, 8, 0x80 .rodata:0005798C DCB 5, 0, 0xD4, 0x7F, 5, 0, 0xA8, 0x7F, 5, 0, 0x94, 0x7F .rodata:0005798C DCB 5, 0, 0x84, 0x7F, 5, 0, 0x64, 0x7F, 5, 0, 0x44, 0x7F .rodata:0005798C DCB 5, 0, 0x30, 0x7F, 5, 0, 0x10, 0x7F, 5, 0, 0xF8, 0x7E .rodata:0005798C DCB 5, 0, 0xE0, 0x7E, 5, 0, 0xC4, 0x7E, 5, 0, 0xAC, 0x7E .rodata:0005798C DCB 5, 0, 0x8C, 0x7E, 5, 0, 0x60, 0x7E, 5, 0, 0x48, 0x7E .rodata:0005798C DCB 5, 0, 0x28, 0x7E, 5, 0, 0x18, 0x7E, 5, 0, 0, 0x7E .rodata:0005798C DCB 5, 0, 0xDC, 0x7D, 5, 0, 0xB8, 0x7D, 5, 0, 0x9C, 0x7D .rodata:0005798C DCB 5, 0, 0x80, 0x7D, 5, 0, 0x58, 0x7D, 5, 0, 0x34, 0x7D .rodata:0005798C DCB 5, 0, 4, 0x7D, 5, 0, 0xE0, 0x7C, 5, 0, 0xC8, 0x7C .rodata:0005798C DCB 5, 0, 0xB4, 0x7C, 5, 0, 0xA4, 0x7C, 5, 0, 0x90, 0x7C .rodata:0005798C DCB 5, 0, 0x70, 0x7C, 5, 0, 0x54, 0x7C, 5, 0, 0x3C, 0x7C .rodata:0005798C DCB 5, 0, 0x20, 0x7C, 5, 0, 4, 0x7C, 5, 0, 0xE4, 0x7B .rodata:0005798C DCB 5, 0, 0xCC, 0x7B, 5, 0, 0xB8, 0x7B, 5, 0, 0xA4, 0x7B .rodata:0005798C DCB 5, 0, 0x94, 0x7B, 5, 0, 0x80, 0x7B, 5, 0 .rodata:00057B80 aWrongMediumTyp DCB "Wrong medium type",0 .rodata:00057B92 ALIGN 4 .rodata:00057B94 aNoMediumFound DCB "No medium found",0 .rodata:00057BA4 aDiskQuotaExcee DCB "Disk quota exceeded",0 .rodata:00057BB8 aRemoteIOError DCB "Remote I/O error",0 .rodata:00057BC9 ALIGN 4 .rodata:00057BCC aIsANamedTypeFi DCB "Is a named type file",0 .rodata:00057BE1 ALIGN 4 .rodata:00057BE4 aNoXenixSemapho DCB "No XENIX semaphores available",0 .rodata:00057C02 ALIGN 4 .rodata:00057C04 aNotAXenixNamed DCB "Not a XENIX named type file",0 .rodata:00057C20 aStructureNeeds DCB "Structure needs cleaning",0 .rodata:00057C39 ALIGN 4 .rodata:00057C3C aStaleNfsFileHa DCB "Stale NFS file handle",0 .rodata:00057C52 ALIGN 4 .rodata:00057C54 aOperationNowIn DCB "Operation now in progress",0 .rodata:00057C6E ALIGN 0x10 .rodata:00057C70 aOperationAlrea DCB "Operation already in progress",0 .rodata:00057C8E ALIGN 0x10 .rodata:00057C90 aNoRouteToHost DCB "No route to host",0 .rodata:00057CA1 ALIGN 4 .rodata:00057CA4 aHostIsDown DCB "Host is down",0 .rodata:00057CB1 ALIGN 4 .rodata:00057CB4 aConnectionRefu DCB "Connection refused",0 .rodata:00057CC7 ALIGN 4 .rodata:00057CC8 aConnectionTime DCB "Connection timed out",0 .rodata:00057CDD ALIGN 0x10 .rodata:00057CE0 aTooManyReferen DCB "Too many references: cannot splice",0 .rodata:00057D03 ALIGN 4 .rodata:00057D04 aCannotSendAfte DCB "Cannot send after transport endpoint shutdown",0 .rodata:00057D32 ALIGN 4 .rodata:00057D34 aTransportEndpo DCB "Transport endpoint is not connected",0 .rodata:00057D58 aTransportEnd_0 DCB "Transport endpoint is already connected",0 .rodata:00057D80 aNoBufferSpaceA DCB "No buffer space available",0 .rodata:00057D9A ALIGN 4 .rodata:00057D9C aConnectionRese DCB "Connection reset by peer",0 .rodata:00057DB5 ALIGN 4 .rodata:00057DB8 aSoftwareCaused DCB "Software caused connection abort",0 .rodata:00057DD9 ALIGN 4 .rodata:00057DDC aNetworkDropped DCB "Network dropped connection on reset",0 .rodata:00057E00 aNetworkIsUnrea DCB "Network is unreachable",0 .rodata:00057E17 ALIGN 4 .rodata:00057E18 aNetworkIsDown DCB "Network is down",0 .rodata:00057E28 aCannotAssignRe DCB "Cannot assign requested address",0 .rodata:00057E48 aAddressAlready DCB "Address already in use",0 .rodata:00057E5F ALIGN 0x10 .rodata:00057E60 aAddressFamilyN DCB "Address family not supported by protocol",0 .rodata:00057E89 ALIGN 4 .rodata:00057E8C aProtocolFamily DCB "Protocol family not supported",0 .rodata:00057EAA ALIGN 4 .rodata:00057EAC aOperationNotSu DCB "Operation not supported",0 .rodata:00057EC4 aSocketTypeNotS DCB "Socket type not supported",0 .rodata:00057EDE ALIGN 0x10 .rodata:00057EE0 aProtocolNotSup DCB "Protocol not supported",0 .rodata:00057EF7 ALIGN 4 .rodata:00057EF8 aProtocolNotAva DCB "Protocol not available",0 .rodata:00057F0F ALIGN 0x10 .rodata:00057F10 aProtocolWrongT DCB "Protocol wrong type for socket",0 .rodata:00057F2F ALIGN 0x10 .rodata:00057F30 aMessageTooLong DCB "Message too long",0 .rodata:00057F41 ALIGN 4 .rodata:00057F44 aDestinationAdd DCB "Destination address required",0 .rodata:00057F61 ALIGN 4 .rodata:00057F64 aSocketOperatio DCB "Socket operation on non-socket",0 .rodata:00057F83 ALIGN 4 .rodata:00057F84 aTooManyUsers DCB "Too many users",0 .rodata:00057F93 ALIGN 4 .rodata:00057F94 aStreamsPipeErr DCB "Streams pipe error",0 .rodata:00057FA7 ALIGN 4 .rodata:00057FA8 aInterruptedSys DCB "Interrupted system call should be restarted",0 .rodata:00057FD4 aInvalidOrIncom DCB "Invalid or incomplete multibyte or wide character",0 .rodata:00058006 ALIGN 4 .rodata:00058008 aCannotExecASha DCB "Cannot exec a shared library directly",0 .rodata:0005802E ALIGN 0x10 .rodata:00058030 aAttemptingToLi DCB "Attempting to link in too many shared libraries",0 .rodata:00058060 a_libSectionInA DCB ".lib section in a.out corrupted",0 .rodata:00058080 aAccessingACorr DCB "Accessing a corrupted shared library",0 .rodata:000580A5 ALIGN 4 .rodata:000580A8 aCanNotAccessAN DCB "Can not access a needed shared library",0 .rodata:000580CF ALIGN 0x10 .rodata:000580D0 aRemoteAddressC DCB "Remote address changed",0 .rodata:000580E7 ALIGN 4 .rodata:000580E8 aFileDescriptor DCB "File descriptor in bad state",0 .rodata:00058105 ALIGN 4 .rodata:00058108 aNameNotUniqueO DCB "Name not unique on network",0 .rodata:00058123 ALIGN 4 .rodata:00058124 aValueTooLargeF DCB "Value too large for defined data type",0 .rodata:0005814A ALIGN 4 .rodata:0005814C aBadMessage DCB "Bad message",0 .rodata:00058158 aRfsSpecificErr DCB "RFS specific error",0 .rodata:0005816B ALIGN 4 .rodata:0005816C aMultihopAttemp DCB "Multihop attempted",0 .rodata:0005817F ALIGN 0x10 .rodata:00058180 aProtocolError DCB "Protocol error",0 .rodata:0005818F ALIGN 0x10 .rodata:00058190 aCommunicationE DCB "Communication error on send",0 .rodata:000581AC aSrmountError DCB "Srmount error",0 .rodata:000581BA ALIGN 4 .rodata:000581BC aAdvertiseError DCB "Advertise error",0 .rodata:000581CC aLinkHasBeenSev DCB "Link has been severed",0 .rodata:000581E2 ALIGN 4 .rodata:000581E4 aObjectIsRemote DCB "Object is remote",0 .rodata:000581F5 ALIGN 4 .rodata:000581F8 aPackageNotInst DCB "Package not installed",0 .rodata:0005820E ALIGN 0x10 .rodata:00058210 aMachineIsNotOn DCB "Machine is not on the network",0 .rodata:0005822E ALIGN 0x10 .rodata:00058230 aOutOfStreamsRe DCB "Out of streams resources",0 .rodata:00058249 ALIGN 4 .rodata:0005824C aTimerExpired DCB "Timer expired",0 .rodata:0005825A ALIGN 4 .rodata:0005825C aNoDataAvailabl DCB "No data available",0 .rodata:0005826E ALIGN 0x10 .rodata:00058270 aDeviceNotAStre DCB "Device not a stream",0 .rodata:00058284 aBadFontFileFor DCB "Bad font file format",0 .rodata:00058299 ALIGN 4 .rodata:0005829C aInvalidSlot DCB "Invalid slot",0 .rodata:000582A9 ALIGN 4 .rodata:000582AC aInvalidRequest DCB "Invalid request code",0 .rodata:000582C1 ALIGN 4 .rodata:000582C4 aNoAnode DCB "No anode",0 .rodata:000582CD ALIGN 0x10 .rodata:000582D0 aExchangeFull DCB "Exchange full",0 .rodata:000582DE ALIGN 0x10 .rodata:000582E0 aInvalidReque_0 DCB "Invalid request descriptor",0 .rodata:000582FB ALIGN 4 .rodata:000582FC aInvalidExchang DCB "Invalid exchange",0 .rodata:0005830D ALIGN 0x10 .rodata:00058310 aLevel2Halted DCB "Level 2 halted",0 .rodata:0005831F ALIGN 0x10 .rodata:00058320 aNoCsiStructure DCB "No CSI structure available",0 .rodata:0005833B ALIGN 4 .rodata:0005833C aProtocolDriver DCB "Protocol driver not attached",0 .rodata:00058359 ALIGN 4 .rodata:0005835C aLinkNumberOutO DCB "Link number out of range",0 .rodata:00058375 ALIGN 4 .rodata:00058378 aLevel3Reset DCB "Level 3 reset",0 .rodata:00058386 ALIGN 4 .rodata:00058388 aLevel3Halted DCB "Level 3 halted",0 .rodata:00058397 ALIGN 4 .rodata:00058398 aLevel2NotSynch DCB "Level 2 not synchronized",0 .rodata:000583B1 ALIGN 4 .rodata:000583B4 aChannelNumberO DCB "Channel number out of range",0 .rodata:000583D0 aIdentifierRemo DCB "Identifier removed",0 .rodata:000583E3 ALIGN 4 .rodata:000583E4 aNoMessageOfDes DCB "No message of desired type",0 .rodata:000583FF ALIGN 0x10 .rodata:00058400 aTooManyLevelsO DCB "Too many levels of symbolic links",0 .rodata:00058422 ALIGN 4 .rodata:00058424 aDirectoryNotEm DCB "Directory not empty",0 .rodata:00058438 aFunctionNotImp DCB "Function not implemented",0 .rodata:00058451 ALIGN 4 .rodata:00058454 aNoLocksAvailab DCB "No locks available",0 .rodata:00058467 ALIGN 4 .rodata:00058468 aFileNameTooLon DCB "File name too long",0 .rodata:0005847B ALIGN 4 .rodata:0005847C aResourceDeadlo DCB "Resource deadlock avoided",0 .rodata:00058496 ALIGN 4 .rodata:00058498 aNumericalResul DCB "Numerical result out of range",0 .rodata:000584B6 ALIGN 4 .rodata:000584B8 aNumericalArgum DCB "Numerical argument out of domain",0 .rodata:000584D9 ALIGN 4 .rodata:000584DC aBrokenPipe DCB "Broken pipe",0 .rodata:000584E8 aTooManyLinks DCB "Too many links",0 .rodata:000584F7 ALIGN 4 .rodata:000584F8 aReadOnlyFileSy DCB "Read-only file system",0 .rodata:0005850E ALIGN 0x10 .rodata:00058510 aIllegalSeek DCB "Illegal seek",0 .rodata:0005851D ALIGN 0x10 .rodata:00058520 aNoSpaceLeftOnD DCB "No space left on device",0 .rodata:00058538 aFileTooLarge DCB "File too large",0 .rodata:00058547 ALIGN 4 .rodata:00058548 aTextFileBusy DCB "Text file busy",0 .rodata:00058557 ALIGN 4 .rodata:00058558 aInappropriateI DCB "Inappropriate ioctl for device",0 .rodata:00058577 ALIGN 4 .rodata:00058578 aTooManyOpenFil DCB "Too many open files",0 .rodata:0005858C aTooManyOpenF_0 DCB "Too many open files in system",0 .rodata:000585AA ALIGN 4 .rodata:000585AC aInvalidArgumen DCB "Invalid argument",0 .rodata:000585BD ALIGN 0x10 .rodata:000585C0 aIsADirectory DCB "Is a directory",0 .rodata:000585CF ALIGN 0x10 .rodata:000585D0 aNotADirectory DCB "Not a directory",0 .rodata:000585E0 aNoSuchDevice DCB "No such device",0 .rodata:000585EF ALIGN 0x10 .rodata:000585F0 aInvalidCrossDe DCB "Invalid cross-device link",0 .rodata:0005860A ALIGN 4 .rodata:0005860C aFileExists DCB "File exists",0 .rodata:00058618 aDeviceOrResour DCB "Device or resource busy",0 .rodata:00058630 aBlockDeviceReq DCB "Block device required",0 .rodata:00058646 ALIGN 4 .rodata:00058648 aBadAddress DCB "Bad address",0 .rodata:00058654 aPermissionDeni DCB "Permission denied",0 .rodata:00058666 ALIGN 4 .rodata:00058668 aCannotAlloca_4 DCB "Cannot allocate memory",0 .rodata:0005867F ALIGN 0x10 .rodata:00058680 aResourceTempor DCB "Resource temporarily unavailable",0 .rodata:000586A1 ALIGN 4 .rodata:000586A4 aNoChildProcess DCB "No child processes",0 .rodata:000586B7 ALIGN 4 .rodata:000586B8 aBadFileDescrip DCB "Bad file descriptor",0 .rodata:000586CC aExecFormatErro DCB "Exec format error",0 .rodata:000586DE ALIGN 0x10 .rodata:000586E0 aArgumentListTo DCB "Argument list too long",0 .rodata:000586F7 ALIGN 4 .rodata:000586F8 aNoSuchDeviceOr DCB "No such device or address",0 .rodata:00058712 ALIGN 4 .rodata:00058714 aInputOutputErr DCB "Input/output error",0 .rodata:00058727 ALIGN 4 .rodata:00058728 aInterruptedS_0 DCB "Interrupted system call",0 .rodata:00058740 aNoSuchProcess DCB "No such process",0 .rodata:00058750 aNoSuchFileOrDi DCB "No such file or directory",0 .rodata:0005876A ALIGN 4 .rodata:0005876C aOperationNotPe DCB "Operation not permitted",0 .rodata:00058784 aSuccess DCB "Success",0 .rodata:0005878C WEAK sys_nerr .rodata:0005878C sys_nerr DCD 0x7D ; DATA XREF: strerror_r+20o .rodata:0005878C ; strerror_r+24r ... .rodata:0005878C ; Alternative name is '_sys_nerr' .rodata:00058790 blanks DCB 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 .rodata:00058790 ; DATA XREF: _IO_padn+1Co .rodata:00058790 ; _IO_padn:off_2E810o .rodata:00058790 DCB 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 .rodata:000587A0 zeroes DCB 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 .rodata:000587A0 ; DATA XREF: _IO_padn+2Co .rodata:000587A0 ; _IO_padn:off_2E814o .rodata:000587A0 DCB 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 .rodata:000587B0 blanks_0 DCB 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:000587B0 ; DATA XREF: _IO_wpadn+1Co .rodata:000587B0 ; _IO_wpadn:off_2E8E8o .rodata:000587B0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:000587B0 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:000587B0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:000587B0 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0 .rodata:000587F0 zeroes_0 DCB 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30 .rodata:000587F0 ; DATA XREF: _IO_wpadn+2Co .rodata:000587F0 ; _IO_wpadn:off_2E8ECo .rodata:000587F0 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0 .rodata:000587F0 DCB 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30 .rodata:000587F0 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0 .rodata:000587F0 DCB 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0 .rodata:00058830 aStatus__codecv DCB "status == __codecvt_partial",0 .rodata:00058830 ; DATA XREF: _IO_wfile_underflow+384o .rodata:00058830 ; _IO_wfile_underflow:off_2FD98o .rodata:0005884C aWfileops_c DCB "wfileops.c",0 ; DATA XREF: _IO_wfile_underflow+388o .rodata:0005884C ; _IO_wfile_underflow:off_2FD9Co .rodata:00058857 ALIGN 4 .rodata:00058858 a_io_wfile_unde DCB "_IO_wfile_underflow",0 .rodata:00058858 ; DATA XREF: _IO_wfile_underflow+38Co .rodata:00058858 ; _IO_wfile_underflow:off_2FDA0o .rodata:0005886C aCcs DCB ",ccs=",0 ; DATA XREF: _IO_new_file_fopen+A8o .rodata:0005886C ; _IO_new_file_fopen:off_311ECo .rodata:00058872 ALIGN 4 .rodata:00058874 dword_58874 DCD 0 ; DATA XREF: mbrtowc+60o .rodata:00058874 ; mbrtowc:off_330E0o .rodata:00058878 aStatus__gconv_ DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:00058878 ; DATA XREF: mbrtowc+F0o .rodata:00058878 ; mbrtowc:off_330F0o .rodata:00058878 DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:00058878 DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:00058918 aMbrtowc_c DCB "mbrtowc.c",0 ; DATA XREF: mbrtowc+F4o .rodata:00058918 ; mbrtowc+144o ... .rodata:00058922 ALIGN 4 .rodata:00058924 a__mbrtowc DCB "__mbrtowc",0 ; DATA XREF: mbrtowc+F8o .rodata:00058924 ; mbrtowc+148o ... .rodata:0005892E ALIGN 0x10 .rodata:00058930 a__mbsinitData_ DCB "__mbsinit (data.__statep)",0 ; DATA XREF: mbrtowc+140o .rodata:00058930 ; mbrtowc:off_330FCo .rodata:0005894A ALIGN 4 .rodata:0005894C aStatus__gcon_0 DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:0005894C ; DATA XREF: wcrtomb+164o .rodata:0005894C ; wcrtomb:off_332CCo .rodata:0005894C DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:0005894C DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:000589EC aWcrtomb_c DCB "wcrtomb.c",0 ; DATA XREF: wcrtomb+168o .rodata:000589EC ; wcrtomb:off_332D0o .rodata:000589F6 ALIGN 4 .rodata:000589F8 a__wcrtomb DCB "__wcrtomb",0 ; DATA XREF: wcrtomb+16Co .rodata:000589F8 ; wcrtomb:off_332D4o .rodata:00058A02 ALIGN 4 .rodata:00058A04 aWchar_tData___ DCB "((wchar_t *) data.__outbuf)[-1] == L'\0'",0 .rodata:00058A04 ; DATA XREF: mbsrtowcs+124o .rodata:00058A04 ; mbsrtowcs:off_33544o .rodata:00058A2D ALIGN 0x10 .rodata:00058A30 aMbsrtowcs_c DCB "mbsrtowcs.c",0 ; DATA XREF: mbsrtowcs+128o .rodata:00058A30 ; mbsrtowcs+1D4o ... .rodata:00058A3C a__mbsrtowcs DCB "__mbsrtowcs",0 ; DATA XREF: mbsrtowcs+12Co .rodata:00058A3C ; mbsrtowcs+1D8o ... .rodata:00058A48 aResult0 DCB "result > 0",0 ; DATA XREF: mbsrtowcs+1D0o .rodata:00058A48 ; mbsrtowcs:off_33550o .rodata:00058A53 ALIGN 4 .rodata:00058A54 a__mbsinitDat_0 DCB "__mbsinit (data.__statep)",0 .rodata:00058A54 ; DATA XREF: mbsrtowcs+1F4o .rodata:00058A54 ; mbsrtowcs:off_33554o .rodata:00058A6E ALIGN 0x10 .rodata:00058A70 aStatus__gcon_1 DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:00058A70 ; DATA XREF: mbsrtowcs+230o .rodata:00058A70 ; mbsrtowcs:off_33558o .rodata:00058A70 DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:00058A70 DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:00058B10 aData___outbuf1 DCB "data.__outbuf[-1] == '\0'",0 .rodata:00058B10 ; DATA XREF: wcsrtombs+130o .rodata:00058B10 ; wcsrtombs:off_337E0o .rodata:00058B2A ALIGN 4 .rodata:00058B2C aWcsrtombs_c DCB "wcsrtombs.c",0 ; DATA XREF: wcsrtombs+134o .rodata:00058B2C ; wcsrtombs+1D4o ... .rodata:00058B38 a__wcsrtombs DCB "__wcsrtombs",0 ; DATA XREF: wcsrtombs+138o .rodata:00058B38 ; wcsrtombs+1D8o ... .rodata:00058B44 aData___outbufU DCB "data.__outbuf != (unsigned char *) dst",0 .rodata:00058B44 ; DATA XREF: wcsrtombs+1D0o .rodata:00058B44 ; wcsrtombs:off_337ECo .rodata:00058B6B ALIGN 4 .rodata:00058B6C a__mbsinitDat_1 DCB "__mbsinit (data.__statep)",0 .rodata:00058B6C ; DATA XREF: wcsrtombs+1F4o .rodata:00058B6C ; wcsrtombs:off_337F0o .rodata:00058B86 ALIGN 4 .rodata:00058B88 aStatus__gcon_2 DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:00058B88 ; DATA XREF: wcsrtombs+230o .rodata:00058B88 ; wcsrtombs:off_337F4o .rodata:00058B88 DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:00058B88 DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:00058C28 aResult0_0 DCB "result > 0",0 ; DATA XREF: mbsnrtowcs+194o .rodata:00058C28 ; mbsnrtowcs:off_33A4Co .rodata:00058C33 ALIGN 4 .rodata:00058C34 aMbsnrtowcs_c DCB "mbsnrtowcs.c",0 ; DATA XREF: mbsnrtowcs+198o .rodata:00058C34 ; mbsnrtowcs+1CCo ... .rodata:00058C41 ALIGN 4 .rodata:00058C44 a__mbsnrtowcs DCB "__mbsnrtowcs",0 ; DATA XREF: mbsnrtowcs+19Co .rodata:00058C44 ; mbsnrtowcs+1D0o ... .rodata:00058C51 ALIGN 4 .rodata:00058C54 a__mbsinitDat_2 DCB "__mbsinit (data.__statep)",0 .rodata:00058C54 ; DATA XREF: mbsnrtowcs+1C8o .rodata:00058C54 ; mbsnrtowcs:off_33A58o .rodata:00058C6E ALIGN 0x10 .rodata:00058C70 aStatus__gcon_3 DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:00058C70 ; DATA XREF: mbsnrtowcs+204o .rodata:00058C70 ; mbsnrtowcs:off_33A5Co .rodata:00058C70 DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:00058C70 DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:00058D10 aInternal DCB "INTERNAL",0 ; DATA XREF: __wcsmbs_load_conv+170o .rodata:00058D10 ; __wcsmbs_load_conv+1F4o ... .rodata:00058D19 ALIGN 4 .rodata:00058D1C aAnsi_x3_41968T DCB "ANSI_X3.4-1968//TRANSLIT",0 .rodata:00058D35 ALIGN 4 .rodata:00058D38 aTranslit_0 DCB "TRANSLIT",0 ; DATA XREF: __wcsmbs_load_conv+9Co .rodata:00058D38 ; __wcsmbs_load_conv+158o ... .rodata:00058D41 ALIGN 4 .rodata:00058D44 envvar_tail.60 DCB "_GNU_nonoption_argv_flags_=",0 .rodata:00058D44 ; DATA XREF: __getopt_clean_environment+10o .rodata:00058D44 ; __getopt_clean_environment+18o ... .rodata:00058D60 aProcSelfCwd DCB "/proc/self/cwd",0 ; DATA XREF: getcwd+164o .rodata:00058D60 ; .text:off_34D00o .rodata:00058D6F ALIGN 0x10 .rodata:00058D70 dots.120 DCB "../../../../../../../../../../../../../../../../../../../../../." .rodata:00058D70 ; DATA XREF: generic_getcwd+128o .rodata:00058D70 ; generic_getcwd:off_34F48o ... .rodata:00058D70 DCB "./../../../../../../../../../../../../../../../../../../../../.." .rodata:00058D70 DCB "/../../../../../../../../../../../../../../../../../../../../../" .rodata:00058D70 DCB "../../../../../../../../../../..",0 .rodata:00058E51 byte_58E51 DCB 0, 0, 0 ; DATA XREF: generic_getcwd+18o .rodata:00058E51 ; generic_getcwd:off_34F3Co .rodata:00058E54 a_ DCB ".",0 ; DATA XREF: generic_getcwd+C4o .rodata:00058E54 ; generic_getcwd:off_34F40o .rodata:00058E56 ALIGN 4 .rodata:00058E58 asc_58E58 DCB "/",0 ; DATA XREF: generic_getcwd+ECo .rodata:00058E58 ; generic_getcwd:off_34F44o .rodata:00058E5A ALIGN 4 .rodata:00058E5C path_proc DCB "/proc",0 ; DATA XREF: get_proc_path+90o .rodata:00058E5C ; get_proc_path:off_35D74o .rodata:00058E62 ALIGN 4 .rodata:00058E64 aEtcMtab DCB "/etc/mtab",0 ; DATA XREF: get_proc_path+1Co .rodata:00058E64 ; get_proc_path:off_35D68o .rodata:00058E6E ALIGN 0x10 .rodata:00058E70 aR_0 DCB "r",0 ; DATA XREF: get_proc_path+14o .rodata:00058E70 ; get_proc_path:off_35D64o ... .rodata:00058E72 ALIGN 4 .rodata:00058E74 aEtcFstab DCB "/etc/fstab",0 ; DATA XREF: get_proc_path+34o .rodata:00058E74 ; get_proc_path:off_35D6Co .rodata:00058E7F ALIGN 0x10 .rodata:00058E80 aProc DCB "proc",0 ; DATA XREF: get_proc_path+58o .rodata:00058E80 ; get_proc_path:off_35D70o .rodata:00058E85 ALIGN 4 .rodata:00058E88 aCpuinfo DCB "/cpuinfo",0 ; DATA XREF: get_nprocs_conf+54o .rodata:00058E88 ; get_nprocs_conf:off_35E38o .rodata:00058E91 ALIGN 4 .rodata:00058E94 aProcessor DCB "processor",0 ; DATA XREF: get_nprocs_conf+84o .rodata:00058E94 ; get_nprocs_conf:off_35E80o .rodata:00058E9E ALIGN 0x10 .rodata:00058EA0 aMeminfo DCB "/meminfo",0 ; DATA XREF: phys_pages_info+78o .rodata:00058EA0 ; phys_pages_info:off_35FA4o .rodata:00058EA9 ALIGN 4 .rodata:00058EAC aMemtotalLdKb DCB "MemTotal: %ld kB",0 ; DATA XREF: get_phys_pages+8o .rodata:00058EAC ; .text:off_35FC8o .rodata:00058EBD ALIGN 0x10 .rodata:00058EC0 aMemfreeLdKb DCB "MemFree: %ld kB",0 ; DATA XREF: get_avphys_pages+8o .rodata:00058EC0 ; .text:off_35FE4o .rodata:00058ED0 DCD 0 .rodata:00058ED4 DCD 0x2C .rodata:00058ED8 aTranslit_1 DCB "TRANSLIT",0 ; DATA XREF: __gconv_open:loc_3629Co .rodata:00058ED8 ; __gconv_open:off_36544o .rodata:00058EE1 ALIGN 4 .rodata:00058EE4 aInternal_0 DCB "INTERNAL",0 .rodata:00058EED ALIGN 0x10 .rodata:00058EF0 aIgnore DCB "IGNORE",0 ; DATA XREF: __gconv_open:loc_36334o .rodata:00058EF0 ; __gconv_open:off_36550o .rodata:00058EF7 ALIGN 4 .rodata:00058EF8 aIrreversibleVo DCB "irreversible != ((void *)0)",0 .rodata:00058EF8 ; DATA XREF: __gconv+44o .rodata:00058EF8 ; __gconv:off_36968o .rodata:00058F14 aGconv_c DCB "gconv.c",0 ; DATA XREF: __gconv+48o .rodata:00058F14 ; __gconv+104o ... .rodata:00058F1C a__gconv DCB "__gconv",0 ; DATA XREF: __gconv+4Co .rodata:00058F1C ; __gconv+108o ... .rodata:00058F24 aOutbufVoid0Out DCB "outbuf != ((void *)0) && *outbuf != ((void *)0)",0 .rodata:00058F24 ; DATA XREF: __gconv:loc_3694Co .rodata:00058F24 ; __gconv:off_36974o .rodata:00058F54 DCB "-",0 .rodata:00058F56 ALIGN 4 .rodata:00058F58 default_gconv_path DCB "/usr/local/arm/2.95.3/arm-linux/lib/gconv",0 .rodata:00058F58 ; DATA XREF: __gconv_get_path+50o .rodata:00058F58 ; __gconv_get_path+C0o ... .rodata:00058F82 ALIGN 4 .rodata:00058F84 gconv_conf_filename DCB "gconv-modules",0 .rodata:00058F84 ; DATA XREF: __gconv_read_conf+94o .rodata:00058F84 ; __gconv_read_conf:off_387BCo .rodata:00058F92 ALIGN 4 .rodata:00058F94 gconv_module_ext DCD 0x6F732E ; DATA XREF: add_module+24Co .rodata:00058F94 ; add_module+344o ... .rodata:00058F98 aInternalUcs2re DCB "=INTERNAL->ucs2reverse",0 .rodata:00058FAF ALIGN 0x10 .rodata:00058FB0 aUcs2reverseInt DCB "=ucs2reverse->INTERNAL",0 .rodata:00058FC7 ALIGN 4 .rodata:00058FC8 aUnicodebig DCB "UNICODEBIG//",0 .rodata:00058FD5 ALIGN 4 .rodata:00058FD8 aInternalAscii DCB "=INTERNAL->ascii",0 .rodata:00058FE9 ALIGN 4 .rodata:00058FEC aAsciiInternal DCB "=ascii->INTERNAL",0 .rodata:00058FFD ALIGN 0x10 .rodata:00059000 aAnsi_x3_41968 DCB "ANSI_X3.4-1968//",0 .rodata:00059011 ALIGN 4 .rodata:00059014 aInternalUcs2 DCB "=INTERNAL->ucs2",0 .rodata:00059024 aUcs2Internal DCB "=ucs2->INTERNAL",0 .rodata:00059034 aIso10646Ucs2 DCB "ISO-10646/UCS2/",0 .rodata:00059044 aUtf8Internal DCB "=utf8->INTERNAL",0 .rodata:00059054 aIso10646Utf8 DCB "ISO-10646/UTF-8/",0 .rodata:00059065 ALIGN 4 .rodata:00059068 aInternalUtf8 DCB "=INTERNAL->utf8",0 .rodata:00059078 aIso10646Utf8_0 DCB "ISO-10646/UTF8/",0 .rodata:00059088 aUcs4leInternal DCB "=ucs4le->INTERNAL",0 .rodata:0005909A ALIGN 4 .rodata:0005909C aInternalUcs4le DCB "=INTERNAL->ucs4le",0 .rodata:000590AE ALIGN 0x10 .rodata:000590B0 aUcs4le DCB "UCS-4LE//",0 .rodata:000590BA ALIGN 4 .rodata:000590BC aUcs4Internal DCB "=ucs4->INTERNAL",0 .rodata:000590CC aInternalUcs4 DCB "=INTERNAL->ucs4",0 .rodata:000590DC aIso10646Ucs4 DCB "ISO-10646/UCS4/",0 .rodata:000590EC aInternal_1 DCB "INTERNAL",0 .rodata:000590F5 ALIGN 4 .rodata:000590F8 aUcs2beUnicodeb DCB "UCS-2BE// UNICODEBIG//",0 .rodata:0005910F ALIGN 0x10 .rodata:00059110 aUcs2leIso10646 DCB "UCS-2LE// ISO-10646/UCS2/",0 .rodata:0005912A ALIGN 4 .rodata:0005912C aUnicodelittleI DCB "UNICODELITTLE// ISO-10646/UCS2/",0 .rodata:0005914C aOsf00010020Ans DCB "OSF00010020// ANSI_X3.4-1968//",0 .rodata:0005916B ALIGN 4 .rodata:0005916C aCsasciiAnsi_x3 DCB "CSASCII// ANSI_X3.4-1968//",0 .rodata:00059187 ALIGN 4 .rodata:00059188 aCp367Ansi_x3_4 DCB "CP367// ANSI_X3.4-1968//",0 .rodata:000591A1 ALIGN 4 .rodata:000591A4 aIbm367Ansi_x3_ DCB "IBM367// ANSI_X3.4-1968//",0 .rodata:000591BE ALIGN 0x10 .rodata:000591C0 aUsAnsi_x3_4196 DCB "US// ANSI_X3.4-1968//",0 .rodata:000591D6 ALIGN 4 .rodata:000591D8 aUsAsciiAnsi_x3 DCB "US-ASCII// ANSI_X3.4-1968//",0 .rodata:000591F4 aIso646UsAnsi_x DCB "ISO646-US// ANSI_X3.4-1968//",0 .rodata:00059211 ALIGN 4 .rodata:00059214 aAsciiAnsi_x3_4 DCB "ASCII// ANSI_X3.4-1968//",0 .rodata:0005922D ALIGN 0x10 .rodata:00059230 aIso_646_irv199 DCB "ISO_646.IRV:1991// ANSI_X3.4-1968//",0 .rodata:00059254 aAnsi_x3_41986A DCB "ANSI_X3.4-1986// ANSI_X3.4-1968//",0 .rodata:00059276 ALIGN 4 .rodata:00059278 aIsoIr6Ansi_x3_ DCB "ISO-IR-6// ANSI_X3.4-1968//",0 .rodata:00059294 aAnsi_x3_4Ansi_ DCB "ANSI_X3.4// ANSI_X3.4-1968//",0 .rodata:000592B1 ALIGN 4 .rodata:000592B4 aOsf00010102Iso DCB "OSF00010102// ISO-10646/UCS2/",0 .rodata:000592D2 ALIGN 4 .rodata:000592D4 aOsf00010101Iso DCB "OSF00010101// ISO-10646/UCS2/",0 .rodata:000592F2 ALIGN 4 .rodata:000592F4 aOsf00010100Iso DCB "OSF00010100// ISO-10646/UCS2/",0 .rodata:00059312 ALIGN 4 .rodata:00059314 aUcs2Iso10646Uc DCB "UCS-2// ISO-10646/UCS2/",0 .rodata:0005932C aUcs2Iso10646_0 DCB "UCS2// ISO-10646/UCS2/",0 .rodata:00059343 ALIGN 4 .rodata:00059344 aOsf05010001Iso DCB "OSF05010001// ISO-10646/UTF8/",0 .rodata:00059362 ALIGN 4 .rodata:00059364 aIsoIr193Iso106 DCB "ISO-IR-193// ISO-10646/UTF8/",0 .rodata:00059381 ALIGN 4 .rodata:00059384 aUtf8Iso10646Ut DCB "UTF-8// ISO-10646/UTF8/",0 .rodata:0005939C aUtf8Iso10646_0 DCB "UTF8// ISO-10646/UTF8/",0 .rodata:000593B3 ALIGN 4 .rodata:000593B4 aWchar_tInterna DCB "WCHAR_T// INTERNAL",0 .rodata:000593C7 ALIGN 4 .rodata:000593C8 aOsf00010106Iso DCB "OSF00010106// ISO-10646/UCS4/",0 .rodata:000593E6 ALIGN 4 .rodata:000593E8 aOsf00010105Iso DCB "OSF00010105// ISO-10646/UCS4/",0 .rodata:00059406 ALIGN 4 .rodata:00059408 aOsf00010104Iso DCB "OSF00010104// ISO-10646/UCS4/",0 .rodata:00059426 ALIGN 4 .rodata:00059428 a1064611993Ucs4 DCB "10646-1:1993/UCS4/ ISO-10646/UCS4/",0 .rodata:0005944B ALIGN 4 .rodata:0005944C a1064611993Iso1 DCB "10646-1:1993// ISO-10646/UCS4/",0 .rodata:0005946B ALIGN 4 .rodata:0005946C aIso10646Iso106 DCB "ISO-10646// ISO-10646/UCS4/",0 .rodata:00059488 aCsucs4Iso10646 DCB "CSUCS4// ISO-10646/UCS4/",0 .rodata:000594A1 ALIGN 4 .rodata:000594A4 aUcs4beIso10646 DCB "UCS-4BE// ISO-10646/UCS4/",0 .rodata:000594BE ALIGN 0x10 .rodata:000594C0 aUcs4Iso10646Uc DCB "UCS-4// ISO-10646/UCS4/",0 .rodata:000594D8 aUcs4Iso10646_0 DCB "UCS4// ISO-10646/UCS4/",0 .rodata:000594EF ALIGN 0x10 .rodata:000594F0 aR_2 DCB "r",0 ; DATA XREF: read_conf_file+1Co .rodata:000594F0 ; read_conf_file:off_381C8o .rodata:000594F2 ALIGN 4 .rodata:000594F4 aAlias DCB "alias",0 ; DATA XREF: read_conf_file+108o .rodata:000594F4 ; read_conf_file:off_381D0o .rodata:000594FA ALIGN 4 .rodata:000594FC aModule DCB "module",0 ; DATA XREF: read_conf_file+31Co .rodata:000594FC ; read_conf_file:off_38270o .rodata:00059503 ALIGN 4 .rodata:00059504 aGconv_path DCB "GCONV_PATH",0 ; DATA XREF: __gconv_get_path+38o .rodata:00059504 ; __gconv_get_path:off_384B4o .rodata:0005950F ALIGN 0x10 .rodata:00059510 asc_59510 DCB ":",0 ; DATA XREF: __gconv_get_path+B4o .rodata:00059510 ; __gconv_get_path:off_384BCo .rodata:00059512 ALIGN 4 .rodata:00059514 aDefault_gconv_ DCB "default_gconv_path[0] == '/'",0 .rodata:00059531 ALIGN 4 .rodata:00059534 aGconv_conf_c DCB "gconv_conf.c",0 ; DATA XREF: __gconv_get_path+1E0o .rodata:00059534 ; __gconv_get_path+21Co ... .rodata:00059541 ALIGN 4 .rodata:00059544 a__gconv_get_pa DCB "__gconv_get_path",0 ; DATA XREF: __gconv_get_path+1E8o .rodata:00059544 ; __gconv_get_path+220o ... .rodata:00059555 ALIGN 4 .rodata:00059558 aElemVoid0 DCB "elem != ((void *)0)",0 .rodata:00059558 ; DATA XREF: __gconv_get_path+1DCo .rodata:00059558 ; __gconv_get_path:off_384C4o .rodata:0005956C aCwdVoid0 DCB "cwd != ((void *)0)",0 .rodata:0005956C ; DATA XREF: __gconv_get_path+218o .rodata:0005956C ; __gconv_get_path:off_384D0o .rodata:0005957F ALIGN 0x10 .rodata:00059580 aInternalUcs2_0 DCB "=INTERNAL->ucs2reverse",0 .rodata:00059597 ALIGN 4 .rodata:00059598 aUcs2reverseI_0 DCB "=ucs2reverse->INTERNAL",0 .rodata:000595AF ALIGN 0x10 .rodata:000595B0 aInternalAsci_0 DCB "=INTERNAL->ascii",0 .rodata:000595C1 ALIGN 4 .rodata:000595C4 aAsciiInterna_0 DCB "=ascii->INTERNAL",0 .rodata:000595D5 ALIGN 4 .rodata:000595D8 aInternalUcs2_1 DCB "=INTERNAL->ucs2",0 .rodata:000595E8 aUcs2Internal_0 DCB "=ucs2->INTERNAL",0 .rodata:000595F8 aUtf8Internal_0 DCB "=utf8->INTERNAL",0 .rodata:00059608 aInternalUtf8_0 DCB "=INTERNAL->utf8",0 .rodata:00059618 aUcs4leIntern_0 DCB "=ucs4le->INTERNAL",0 .rodata:0005962A ALIGN 4 .rodata:0005962C aInternalUcs4_0 DCB "=INTERNAL->ucs4le",0 .rodata:0005963E ALIGN 0x10 .rodata:00059640 aUcs4Internal_0 DCB "=ucs4->INTERNAL",0 .rodata:00059650 aInternalUcs4_1 DCB "=INTERNAL->ucs4",0 .rodata:00059660 aCntSizeofMapSi DCB "cnt < sizeof (map) / sizeof (map[0])",0 .rodata:00059660 ; DATA XREF: __gconv_get_builtin_trans+44o .rodata:00059660 ; .text:off_38B3Co .rodata:00059685 ALIGN 4 .rodata:00059688 aGconv_builtin_ DCB "gconv_builtin.c",0 ; DATA XREF: __gconv_get_builtin_trans+48o .rodata:00059688 ; .text:off_38B40o .rodata:00059698 a__gconv_get_bu DCB "__gconv_get_builtin_trans",0 .rodata:00059698 ; DATA XREF: __gconv_get_builtin_trans+4Co .rodata:00059698 ; .text:off_38B44o .rodata:000596B2 ALIGN 4 .rodata:000596B4 aOutbufstartVoi DCB "outbufstart == ((void *)0)",0 .rodata:000596B4 ; DATA XREF: __gconv_transform_internal_ucs4+60o .rodata:000596B4 ; __gconv_transform_internal_ucs4+128o ... .rodata:000596CF ALIGN 0x10 .rodata:000596D0 a__IconvSkeleto DCB "../iconv/skeleton.c",0 .rodata:000596D0 ; DATA XREF: __gconv_transform_internal_ucs4+64o .rodata:000596D0 ; __gconv_transform_internal_ucs4+12Co ... .rodata:000596E4 a__gconv_transf DCB "__gconv_transform_internal_ucs4",0 .rodata:000596E4 ; DATA XREF: __gconv_transform_internal_ucs4+68o .rodata:000596E4 ; __gconv_transform_internal_ucs4+134o ... .rodata:00059704 aInendInptrp4 DCB "inend - *inptrp < 4",0 .rodata:00059704 ; DATA XREF: __gconv_transform_internal_ucs4+4A4o .rodata:00059704 ; __gconv_transform_internal_ucs4:off_39018o ... .rodata:00059718 a__gconv_tran_0 DCB "__gconv_transform_ucs4_internal",0 .rodata:00059718 ; DATA XREF: __gconv_transform_ucs4_internal+68o .rodata:00059718 ; __gconv_transform_ucs4_internal+150o ... .rodata:00059738 a__gconv_tran_1 DCB "__gconv_transform_internal_ucs4le",0 .rodata:00059738 ; DATA XREF: __gconv_transform_internal_ucs4le+68o .rodata:00059738 ; __gconv_transform_internal_ucs4le+12Co ... .rodata:0005975A ALIGN 4 .rodata:0005975C a__gconv_tran_2 DCB "__gconv_transform_ucs4le_internal",0 .rodata:0005975C ; DATA XREF: __gconv_transform_ucs4le_internal+68o .rodata:0005975C ; __gconv_transform_ucs4le_internal+150o ... .rodata:0005977E ALIGN 0x10 .rodata:00059780 a__gconv_tran_3 DCB "__gconv_transform_ascii_internal",0 .rodata:00059780 ; DATA XREF: __gconv_transform_ascii_internal+68o .rodata:00059780 ; __gconv_transform_ascii_internal:off_3A444o .rodata:000597A1 ALIGN 4 .rodata:000597A4 aInptrBytebufSt DCB "inptr - bytebuf > (state->__count & 7)",0 .rodata:000597A4 ; DATA XREF: __gconv_transform_internal_ascii+338o .rodata:000597A4 ; __gconv_transform_internal_ascii:off_3A87Co ... .rodata:000597CB ALIGN 4 .rodata:000597CC a__IconvLoop_c DCB "../iconv/loop.c",0 ; DATA XREF: __gconv_transform_internal_ascii+33Co .rodata:000597CC ; __gconv_transform_internal_ascii+394o ... .rodata:000597DC aInternal_ascii DCB "internal_ascii_loop_single",0 .rodata:000597DC ; DATA XREF: __gconv_transform_internal_ascii+340o .rodata:000597DC ; __gconv_transform_internal_ascii+39Co ... .rodata:000597F7 ALIGN 4 .rodata:000597F8 aInendBytebuf4 DCB "inend != &bytebuf[4]",0 .rodata:000597F8 ; DATA XREF: __gconv_transform_internal_ascii+390o .rodata:000597F8 ; __gconv_transform_internal_ascii:off_3A888o ... .rodata:0005980D ALIGN 0x10 .rodata:00059810 a__gconv_tran_4 DCB "__gconv_transform_internal_ascii",0 .rodata:00059810 ; DATA XREF: __gconv_transform_internal_ascii+6Co .rodata:00059810 ; __gconv_transform_internal_ascii+150o ... .rodata:00059831 ALIGN 4 .rodata:00059834 aWc0x7fffffff DCB "wc <= 0x7fffffff",0 .rodata:00059834 ; DATA XREF: __gconv_transform_internal_utf8+214o .rodata:00059834 ; __gconv_transform_internal_utf8+40Co ... .rodata:00059845 ALIGN 4 .rodata:00059848 aInternal_utf_0 DCB "internal_utf8_loop",0 .rodata:00059848 ; DATA XREF: __gconv_transform_internal_utf8+418o .rodata:00059848 ; __gconv_transform_internal_utf8:off_3B018o ... .rodata:0005985B ALIGN 4 .rodata:0005985C aInternal_utf8_ DCB "internal_utf8_loop_single",0 .rodata:0005985C ; DATA XREF: __gconv_transform_internal_utf8+220o .rodata:0005985C ; __gconv_transform_internal_utf8+2E4o ... .rodata:00059876 ALIGN 4 .rodata:00059878 a__gconv_tran_5 DCB "__gconv_transform_internal_utf8",0 .rodata:00059878 ; DATA XREF: __gconv_transform_internal_utf8+68o .rodata:00059878 ; __gconv_transform_internal_utf8+134o ... .rodata:00059898 aOutbufOuterr DCB "outbuf == outerr",0 .rodata:00059898 ; DATA XREF: __gconv_transform_internal_utf8+760o .rodata:00059898 ; __gconv_transform_internal_utf8:off_3B3FCo ... .rodata:000598A9 ALIGN 4 .rodata:000598AC aNstatus__gconv DCB "nstatus == __GCONV_FULL_OUTPUT",0 .rodata:000598AC ; DATA XREF: __gconv_transform_internal_utf8+784o .rodata:000598AC ; __gconv_transform_internal_utf8:off_3B408o ... .rodata:000598CB ALIGN 4 .rodata:000598CC aUtf8_internal_ DCB "utf8_internal_loop_single",0 .rodata:000598CC ; DATA XREF: __gconv_transform_utf8_internal+580o .rodata:000598CC ; __gconv_transform_utf8_internal+5E0o ... .rodata:000598E6 ALIGN 4 .rodata:000598E8 aInendBytebuf6 DCB "inend != &bytebuf[6]",0 .rodata:000598E8 ; DATA XREF: __gconv_transform_utf8_internal+5D4o .rodata:000598E8 ; __gconv_transform_utf8_internal:off_3BD48o .rodata:000598FD ALIGN 0x10 .rodata:00059900 a__gconv_tran_6 DCB "__gconv_transform_utf8_internal",0 .rodata:00059900 ; DATA XREF: __gconv_transform_utf8_internal+70o .rodata:00059900 ; __gconv_transform_utf8_internal+164o ... .rodata:00059920 aUcs2_internal_ DCB "ucs2_internal_loop_single",0 .rodata:00059920 ; DATA XREF: __gconv_transform_ucs2_internal+2CCo .rodata:00059920 ; __gconv_transform_ucs2_internal+330o ... .rodata:0005993A ALIGN 4 .rodata:0005993C aInendBytebuf2 DCB "inend != &bytebuf[2]",0 .rodata:0005993C ; DATA XREF: __gconv_transform_ucs2_internal+324o .rodata:0005993C ; __gconv_transform_ucs2_internal:off_3C684o ... .rodata:00059951 ALIGN 4 .rodata:00059954 a__gconv_tran_7 DCB "__gconv_transform_ucs2_internal",0 .rodata:00059954 ; DATA XREF: __gconv_transform_ucs2_internal+6Co .rodata:00059954 ; __gconv_transform_ucs2_internal+15Co ... .rodata:00059974 aInternal_ucs2_ DCB "internal_ucs2_loop_single",0 .rodata:00059974 ; DATA XREF: __gconv_transform_internal_ucs2+39Co .rodata:00059974 ; __gconv_transform_internal_ucs2+3FCo ... .rodata:0005998E ALIGN 0x10 .rodata:00059990 a__gconv_tran_8 DCB "__gconv_transform_internal_ucs2",0 .rodata:00059990 ; DATA XREF: __gconv_transform_internal_ucs2+6Co .rodata:00059990 ; __gconv_transform_internal_ucs2+15Co ... .rodata:000599B0 aUcs2reverse_in DCB "ucs2reverse_internal_loop_single",0 .rodata:000599B0 ; DATA XREF: __gconv_transform_ucs2reverse_internal+2CCo .rodata:000599B0 ; __gconv_transform_ucs2reverse_internal+330o ... .rodata:000599D1 ALIGN 4 .rodata:000599D4 a__gconv_tran_9 DCB "__gconv_transform_ucs2reverse_internal",0 .rodata:000599D4 ; DATA XREF: __gconv_transform_ucs2reverse_internal+6Co .rodata:000599D4 ; __gconv_transform_ucs2reverse_internal+15Co ... .rodata:000599FB ALIGN 4 .rodata:000599FC aInternal_ucs2r DCB "internal_ucs2reverse_loop_single",0 .rodata:000599FC ; DATA XREF: __gconv_transform_internal_ucs2reverse+3ACo .rodata:000599FC ; __gconv_transform_internal_ucs2reverse+40Co ... .rodata:00059A1D ALIGN 0x10 .rodata:00059A20 a__gconv_tra_10 DCB "__gconv_transform_internal_ucs2reverse",0 .rodata:00059A20 ; DATA XREF: __gconv_transform_internal_ucs2reverse+6Co .rodata:00059A20 ; __gconv_transform_internal_ucs2reverse+15Co ... .rodata:00059A47 ALIGN 4 .rodata:00059A48 aGconv_trans_co DCB "gconv_trans_context",0 ; DATA XREF: open_translit+28o .rodata:00059A48 ; .text:off_3EA0Co .rodata:00059A5C aGconv_trans DCB "gconv_trans",0 ; DATA XREF: open_translit+74o .rodata:00059A5C ; .text:off_3EA10o .rodata:00059A68 aGconv_trans_in DCB "gconv_trans_init",0 ; DATA XREF: open_translit+8Co .rodata:00059A68 ; .text:off_3EA14o .rodata:00059A79 ALIGN 4 .rodata:00059A7C aGconv_trans_en DCB "gconv_trans_end",0 ; DATA XREF: open_translit+ACo .rodata:00059A7C ; .text:off_3EA18o .rodata:00059A8C aTransNameVoid0 DCB "trans->name != ((void *)0)",0 .rodata:00059A8C ; DATA XREF: __gconv_translit_find+20o .rodata:00059A8C ; .text:off_3EC1Co .rodata:00059AA7 ALIGN 4 .rodata:00059AA8 aGconv_trans_c DCB "gconv_trans.c",0 ; DATA XREF: __gconv_translit_find+24o .rodata:00059AA8 ; .text:off_3EC20o .rodata:00059AB6 ALIGN 4 .rodata:00059AB8 a__gconv_transl DCB "__gconv_translit_find",0 .rodata:00059AB8 ; DATA XREF: __gconv_translit_find+2Co .rodata:00059AB8 ; .text:off_3EC24o .rodata:00059ACE ALIGN 0x10 .rodata:00059AD0 a_so DCB ".so",0 ; DATA XREF: __gconv_translit_find+108o .rodata:00059AD0 ; __gconv_translit_find+19Co ... .rodata:00059AD4 aFoundHandleVoi DCB "found->handle == ((void *)0)",0 .rodata:00059AD4 ; DATA XREF: __gconv_find_shlib+9Co .rodata:00059AD4 ; __gconv_find_shlib:off_3ED88o .rodata:00059AF1 ALIGN 4 .rodata:00059AF4 aGconv_dl_c DCB "gconv_dl.c",0 ; DATA XREF: __gconv_find_shlib+A0o .rodata:00059AF4 ; __gconv_find_shlib:off_3ED8Co ... .rodata:00059AFF ALIGN 0x10 .rodata:00059B00 a__gconv_find_s DCB "__gconv_find_shlib",0 .rodata:00059B00 ; DATA XREF: __gconv_find_shlib+A4o .rodata:00059B00 ; __gconv_find_shlib:off_3ED90o .rodata:00059B13 ALIGN 4 .rodata:00059B14 aGconv DCB "gconv",0 ; DATA XREF: __gconv_find_shlib+C4o .rodata:00059B14 ; __gconv_find_shlib:off_3ED94o .rodata:00059B1A ALIGN 4 .rodata:00059B1C aGconv_init DCB "gconv_init",0 ; DATA XREF: __gconv_find_shlib+F0o .rodata:00059B1C ; __gconv_find_shlib:off_3ED98o .rodata:00059B27 ALIGN 4 .rodata:00059B28 aGconv_end DCB "gconv_end",0 ; DATA XREF: __gconv_find_shlib+100o .rodata:00059B28 ; __gconv_find_shlib:off_3ED9Co .rodata:00059B32 ALIGN 4 .rodata:00059B34 aObjCounter0 DCB "obj->counter > 0",0 ; DATA XREF: do_release_shlib+48o .rodata:00059B34 ; .text:off_3EE68o .rodata:00059B45 ALIGN 4 .rodata:00059B48 aDo_release_shl DCB "do_release_shlib",0 ; DATA XREF: do_release_shlib+50o .rodata:00059B48 ; .text:off_3EE70o .rodata:00059B59 ALIGN 4 .rodata:00059B5C EXPORT _nl_current .rodata:00059B5C _nl_current DCB 0x64, 0xC1, 6, 0, 0x70, 0xC1, 6, 0, 0x74, 0xC1, 6 .rodata:00059B5C ; DATA XREF: _nl_init_domain_conv:loc_18E4Co .rodata:00059B5C ; _nl_init_domain_conv+114r ... .rodata:00059B5C DCB 0, 0x90, 0xC1, 6, 0, 0x6C, 0xC1, 6, 0, 0x68, 0xC1 .rodata:00059B5C DCB 6, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0x78, 0xC1, 6, 0, 0x7C .rodata:00059B5C DCB 0xC1, 6, 0, 0x80, 0xC1, 6, 0, 0x84, 0xC1, 6, 0, 0x88 .rodata:00059B5C DCB 0xC1, 6, 0, 0x8C, 0xC1, 6, 0 .rodata:00059B90 EXPORT _nl_C .rodata:00059B90 _nl_C DCB 0xF4, 5, 6, 0, 0x6C, 9, 6, 0, 0xAC, 9, 6, 0, 0, 0x1A .rodata:00059B90 ; DATA XREF: free_mem_7+2Co .rodata:00059B90 ; .text:off_3F828o ... .rodata:00059B90 DCB 6, 0, 0x90, 8, 6, 0, 0x44, 8, 6, 0, 0, 0, 0, 0, 0x90 .rodata:00059B90 DCB 0x11, 6, 0, 0xBC, 0x11, 6, 0, 0xC, 0x12, 6, 0, 0x90 .rodata:00059B90 DCB 0x12, 6, 0, 0xD4, 0x12, 6, 0, 0, 0x13, 6, 0 .rodata:00059BC4 EXPORT _nl_category_names .rodata:00059BC4 _nl_category_names DCB 0x8C, 0x9C, 5, 0, 0x80, 0x9C, 5, 0, 0x78, 0x9C, 5 .rodata:00059BC4 ; DATA XREF: setlocale+128o .rodata:00059BC4 ; setlocale+390o ... .rodata:00059BC4 DCB 0, 0x6C, 0x9C, 5, 0, 0x60, 0x9C, 5, 0, 0x54, 0x9C .rodata:00059BC4 DCB 5, 0, 0x4C, 0x9C, 5, 0, 0x40, 0x9C, 5, 0, 0x38, 0x9C .rodata:00059BC4 DCB 5, 0, 0x2C, 0x9C, 5, 0, 0x1C, 0x9C, 5, 0, 0xC, 0x9C .rodata:00059BC4 DCB 5, 0, 0xF8, 0x9B, 5, 0 .rodata:00059BF8 aLc_identificat DCB "LC_IDENTIFICATION",0 .rodata:00059C0A ALIGN 4 .rodata:00059C0C aLc_measurement DCB "LC_MEASUREMENT",0 .rodata:00059C1B ALIGN 4 .rodata:00059C1C aLc_telephone DCB "LC_TELEPHONE",0 .rodata:00059C29 ALIGN 4 .rodata:00059C2C aLc_address DCB "LC_ADDRESS",0 .rodata:00059C37 ALIGN 4 .rodata:00059C38 aLc_name DCB "LC_NAME",0 .rodata:00059C40 aLc_paper DCB "LC_PAPER",0 .rodata:00059C49 ALIGN 4 .rodata:00059C4C aLc_all_1 DCB "LC_ALL",0 .rodata:00059C53 ALIGN 4 .rodata:00059C54 aLc_messages_0 DCB "LC_MESSAGES",0 .rodata:00059C60 aLc_monetary_0 DCB "LC_MONETARY",0 .rodata:00059C6C aLc_collate_0 DCB "LC_COLLATE",0 .rodata:00059C77 ALIGN 4 .rodata:00059C78 aLc_time_0 DCB "LC_TIME",0 .rodata:00059C80 aLc_numeric_0 DCB "LC_NUMERIC",0 .rodata:00059C8B ALIGN 4 .rodata:00059C8C aLc_ctype_0 DCB "LC_CTYPE",0 .rodata:00059C95 ALIGN 4 .rodata:00059C98 EXPORT _nl_category_name_sizes .rodata:00059C98 _nl_category_name_sizes DCB 8, 0, 0, 0, 0xA, 0, 0, 0, 7, 0, 0, 0, 0xA, 0, 0, 0 .rodata:00059C98 ; DATA XREF: setlocale:loc_3F020o .rodata:00059C98 ; setlocale+2D0o ... .rodata:00059C98 DCB 0xB, 0, 0, 0, 0xB, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0 .rodata:00059C98 DCB 7, 0, 0, 0, 0xA, 0, 0, 0, 0xC, 0, 0, 0, 0xE, 0, 0 .rodata:00059C98 DCB 0, 0x11, 0, 0, 0 .rodata:00059CCC _nl_category_postload DCB 0x3C, 3, 4, 0, 0, 0, 0, 0, 0x3C, 4, 4, 0, 0, 0, 0 .rodata:00059CCC ; DATA XREF: setlocale+43Co .rodata:00059CCC ; setlocale:off_3F660o ... .rodata:00059CCC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059CCC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059CCC DCB 0, 0, 0 .rodata:00059D00 aLocpath DCB "LOCPATH",0 ; DATA XREF: setlocale+64o .rodata:00059D00 ; setlocale:off_3F2D8o .rodata:00059D08 aUsrLocalArm2_0 DCB "/usr/local/arm/2.95.3/arm-linux/lib/locale",0 .rodata:00059D08 ; DATA XREF: setlocale+A8o .rodata:00059D08 ; setlocale:off_3F2DCo .rodata:00059D33 ALIGN 4 .rodata:00059D34 aLc_all_0 DCB "LC_ALL",0 ; DATA XREF: _nl_find_locale+30o .rodata:00059D34 ; _nl_find_locale:off_3FC0Co .rodata:00059D3B ALIGN 4 .rodata:00059D3C aLang DCB "LANG",0 ; DATA XREF: _nl_find_locale:loc_3F8E0o .rodata:00059D3C ; _nl_find_locale:off_3FC14o .rodata:00059D41 ALIGN 4 .rodata:00059D44 codeset_idx.96 DCD 0xE, 5, 0x6E, 0x12, 0x2D, 4, 0 .rodata:00059D44 ; DATA XREF: _nl_find_locale+2FCo .rodata:00059D44 ; _nl_find_locale:off_3FC2Co .rodata:00059D60 DCD 2, 6, 0xC, 4, 1, 0xF .rodata:00059D78 aLocale_codeset DCB "locale_codeset != ((void *)0)",0 .rodata:00059D78 ; DATA XREF: _nl_find_locale+318o .rodata:00059D78 ; _nl_find_locale:off_3FC30o .rodata:00059D96 ALIGN 4 .rodata:00059D98 aFindlocale_c DCB "findlocale.c",0 ; DATA XREF: _nl_find_locale+31Co .rodata:00059D98 ; _nl_find_locale:off_3FC34o .rodata:00059DA5 ALIGN 4 .rodata:00059DA8 a_nl_find_local DCB "_nl_find_locale",0 ; DATA XREF: _nl_find_locale+320o .rodata:00059DA8 ; _nl_find_locale:off_3FC38o .rodata:00059DB8 aTranslit_2 DCB "TRANSLIT",0 ; DATA XREF: _nl_find_locale+590o .rodata:00059DB8 ; _nl_find_locale+5ACo ... .rodata:00059DC1 ALIGN 4 .rodata:00059DC4 _nl_category_num_items DCB 0x54, 0, 0, 0, 6, 0, 0, 0, 0x6F, 0, 0, 0, 0x13, 0 .rodata:00059DC4 ; DATA XREF: _nl_load_locale:loc_4019Co .rodata:00059DC4 ; _nl_load_locale:off_40290o .rodata:00059DC4 DCB 0, 0, 0x2E, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0 .rodata:00059DC4 DCB 0, 0, 7, 0, 0, 0, 0xD, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0 .rodata:00059DC4 DCB 0, 0x10, 0, 0, 0 .rodata:00059DF8 _nl_value_type_LC_COLLATE DCB 5, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8 .rodata:00059DF8 DCB 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059DF8 DCB 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0 .rodata:00059DF8 DCB 0, 5, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0 .rodata:00059DF8 DCB 8, 0, 0, 0, 1, 0, 0, 0 .rodata:00059E44 _nl_value_type_LC_CTYPE DCB 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0 .rodata:00059E44 DCB 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059E44 DCB 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0 .rodata:00059E44 DCB 0, 5, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0 .rodata:00059E44 DCB 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:00059E44 DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:00059E44 DCB 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:00059E44 DCB 0, 5, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0 .rodata:00059E44 DCB 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8 .rodata:00059E44 DCB 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:00059E44 DCB 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:00059E44 DCB 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 .rodata:00059E44 DCB 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5 .rodata:00059E44 DCB 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0 .rodata:00059E44 DCB 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0 .rodata:00059E44 DCB 0, 8, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0 .rodata:00059E44 DCB 5, 0, 0, 0, 1, 0, 0, 0 .rodata:00059F5C _nl_value_type_LC_MONETARY DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 4 .rodata:00059F5C DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0 .rodata:00059F5C DCB 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0 .rodata:00059F5C DCB 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0 .rodata:00059F5C DCB 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3 .rodata:00059F5C DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0 .rodata:00059F5C DCB 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0 .rodata:00059F5C DCB 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0 .rodata:00059F5C DCB 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 5 .rodata:00059F5C DCB 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 7, 0 .rodata:00059F5C DCB 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0 .rodata:0005A014 _nl_value_type_LC_NUMERIC DCB 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 5 .rodata:0005A014 DCB 0, 0, 0, 1, 0, 0, 0 .rodata:0005A02C _nl_value_type_LC_TIME DCB 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:0005A02C DCB 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:0005A02C DCB 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0 .rodata:0005A02C DCB 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A02C DCB 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0 .rodata:0005A02C DCB 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0 .rodata:0005A02C DCB 0, 0xA, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0 .rodata:0005A02C DCB 5, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3 .rodata:0005A02C DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0 .rodata:0005A02C DCB 0, 0 .rodata:0005A1E8 _nl_value_type_LC_MESSAGES DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:0005A1E8 DCB 0, 0, 0 .rodata:0005A1FC _nl_value_type_LC_PAPER DCB 5, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0 .rodata:0005A208 _nl_value_type_LC_NAME DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:0005A208 DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 .rodata:0005A224 _nl_value_type_LC_ADDRESS DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:0005A224 DCB 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:0005A224 DCB 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:0005A224 DCB 0 .rodata:0005A258 _nl_value_type_LC_TELEPHONE DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:0005A258 DCB 0, 0, 0 .rodata:0005A26C _nl_value_type_LC_MEASUREMENT DCQ 0x100000003 .rodata:0005A274 _nl_value_type_LC_IDENTIFICATION DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:0005A274 DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:0005A274 DCB 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:0005A274 DCB 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0 .rodata:0005A2B4 aSys_ DCB "/SYS_",0 ; DATA XREF: _nl_load_locale+B0o .rodata:0005A2B4 ; _nl_load_locale:off_40288o .rodata:0005A2BA ALIGN 4 .rodata:0005A2BC aIdx__alignof__ DCB "idx % __alignof__ (u_int32_t) == 0",0 .rodata:0005A2BC ; DATA XREF: _nl_load_locale+2E4o .rodata:0005A2BC ; _nl_load_locale:off_40298o .rodata:0005A2DF ALIGN 0x10 .rodata:0005A2E0 aLoadlocale_c DCB "loadlocale.c",0 ; DATA XREF: _nl_load_locale+2E8o .rodata:0005A2E0 ; _nl_load_locale:off_4029Co .rodata:0005A2ED ALIGN 0x10 .rodata:0005A2F0 a_nl_load_local DCB "_nl_load_locale",0 ; DATA XREF: _nl_load_locale+2ECo .rodata:0005A2F0 ; _nl_load_locale:off_402A0o .rodata:0005A300 translit_from_idx DCB 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 6, 0, 0, 0, 8 .rodata:0005A300 DCB 0, 0, 0, 0xA, 0, 0, 0, 0xC, 0, 0, 0, 0xE, 0, 0, 0 .rodata:0005A300 DCB 0x10, 0, 0, 0, 0x12, 0, 0, 0, 0x14, 0, 0, 0, 0x16 .rodata:0005A300 DCB 0, 0, 0, 0x18, 0, 0, 0, 0x1A, 0, 0, 0, 0x1C, 0, 0 .rodata:0005A300 DCB 0, 0x1E, 0, 0, 0, 0x20, 0, 0, 0, 0x22, 0, 0, 0, 0x24 .rodata:0005A300 DCB 0, 0, 0, 0x26, 0, 0, 0, 0x28, 0, 0, 0, 0x2A, 0, 0 .rodata:0005A300 DCB 0, 0x2C, 0, 0, 0, 0x2E, 0, 0, 0, 0x30, 0, 0, 0, 0x32 .rodata:0005A300 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x36, 0, 0, 0, 0x38, 0, 0 .rodata:0005A300 DCB 0, 0x3A, 0, 0, 0, 0x3C, 0, 0, 0, 0x3E, 0, 0, 0, 0x40 .rodata:0005A300 DCB 0, 0, 0, 0x42, 0, 0, 0, 0x44, 0, 0, 0, 0x46, 0, 0 .rodata:0005A300 DCB 0, 0x48, 0, 0, 0, 0x4A, 0, 0, 0, 0x4C, 0, 0, 0, 0x4E .rodata:0005A300 DCB 0, 0, 0, 0x50, 0, 0, 0, 0x52, 0, 0, 0, 0x54, 0, 0 .rodata:0005A300 DCB 0, 0x56, 0, 0, 0, 0x58, 0, 0, 0, 0x5A, 0, 0, 0, 0x5C .rodata:0005A300 DCB 0, 0, 0, 0x5E, 0, 0, 0, 0x60, 0, 0, 0, 0x62, 0, 0 .rodata:0005A300 DCB 0, 0x64, 0, 0, 0, 0x66, 0, 0, 0, 0x68, 0, 0, 0, 0x6A .rodata:0005A300 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0x6E, 0, 0, 0, 0x70, 0, 0 .rodata:0005A300 DCB 0, 0x72, 0, 0, 0, 0x74, 0, 0, 0, 0x76, 0, 0, 0, 0x78 .rodata:0005A300 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0x7C, 0, 0, 0, 0x7E, 0, 0 .rodata:0005A300 DCB 0, 0x80, 0, 0, 0, 0x82, 0, 0, 0, 0x84, 0, 0, 0, 0x86 .rodata:0005A300 DCB 0, 0, 0, 0x88, 0, 0, 0, 0x8A, 0, 0, 0, 0x8C, 0, 0 .rodata:0005A300 DCB 0, 0x8E, 0, 0, 0, 0x90, 0, 0, 0, 0x92, 0, 0, 0, 0x94 .rodata:0005A300 DCB 0, 0, 0, 0x96, 0, 0, 0, 0x98, 0, 0, 0, 0x9A, 0, 0 .rodata:0005A300 DCB 0, 0x9C, 0, 0, 0, 0x9E, 0, 0, 0, 0xA0, 0, 0, 0, 0xA2 .rodata:0005A300 DCB 0, 0, 0, 0xA4, 0, 0, 0, 0xA6, 0, 0, 0, 0xA8, 0, 0 .rodata:0005A300 DCB 0, 0xAA, 0, 0, 0, 0xAC, 0, 0, 0, 0xAE, 0, 0, 0, 0xB0 .rodata:0005A300 DCB 0, 0, 0, 0xB2, 0, 0, 0, 0xB4, 0, 0, 0, 0xB6, 0, 0 .rodata:0005A300 DCB 0, 0xB8, 0, 0, 0, 0xBA, 0, 0, 0, 0xBC, 0, 0, 0, 0xBE .rodata:0005A300 DCB 0, 0, 0, 0xC0, 0, 0, 0, 0xC2, 0, 0, 0, 0xC4, 0, 0 .rodata:0005A300 DCB 0, 0xC6, 0, 0, 0, 0xC8, 0, 0, 0, 0xCA, 0, 0, 0, 0xCC .rodata:0005A300 DCB 0, 0, 0, 0xCE, 0, 0, 0, 0xD0, 0, 0, 0, 0xD2, 0, 0 .rodata:0005A300 DCB 0, 0xD4, 0, 0, 0, 0xD6, 0, 0, 0, 0xD8, 0, 0, 0, 0xDA .rodata:0005A300 DCB 0, 0, 0, 0xDC, 0, 0, 0, 0xDE, 0, 0, 0, 0xE0, 0, 0 .rodata:0005A300 DCB 0, 0xE2, 0, 0, 0, 0xE4, 0, 0, 0, 0xE6, 0, 0, 0, 0xE8 .rodata:0005A300 DCB 0, 0, 0, 0xEA, 0, 0, 0, 0xEC, 0, 0, 0, 0xEE, 0, 0 .rodata:0005A300 DCB 0, 0xF0, 0, 0, 0, 0xF2, 0, 0, 0, 0xF4, 0, 0, 0, 0xF6 .rodata:0005A300 DCB 0, 0, 0, 0xF8, 0, 0, 0, 0xFA, 0, 0, 0, 0xFC, 0, 0 .rodata:0005A300 DCB 0, 0xFE, 0, 0, 0, 0, 1, 0, 0, 2, 1, 0, 0, 4, 1, 0 .rodata:0005A300 DCB 0, 6, 1, 0, 0, 8, 1, 0, 0, 0xA, 1, 0, 0, 0xC, 1, 0 .rodata:0005A300 DCB 0, 0xE, 1, 0, 0, 0x10, 1, 0, 0, 0x12, 1, 0, 0, 0x14 .rodata:0005A300 DCB 1, 0, 0, 0x16, 1, 0, 0, 0x18, 1, 0, 0, 0x1A, 1, 0 .rodata:0005A300 DCB 0, 0x1C, 1, 0, 0, 0x1E, 1, 0, 0, 0x20, 1, 0, 0, 0x22 .rodata:0005A300 DCB 1, 0, 0, 0x24, 1, 0, 0, 0x26, 1, 0, 0, 0x28, 1, 0 .rodata:0005A300 DCB 0, 0x2A, 1, 0, 0, 0x2C, 1, 0, 0, 0x2E, 1, 0, 0, 0x30 .rodata:0005A300 DCB 1, 0, 0, 0x32, 1, 0, 0, 0x34, 1, 0, 0, 0x36, 1, 0 .rodata:0005A300 DCB 0, 0x38, 1, 0, 0, 0x3A, 1, 0, 0, 0x3C, 1, 0, 0, 0x3E .rodata:0005A300 DCB 1, 0, 0, 0x40, 1, 0, 0, 0x42, 1, 0, 0, 0x44, 1, 0 .rodata:0005A300 DCB 0, 0x46, 1, 0, 0, 0x48, 1, 0, 0, 0x4A, 1, 0, 0, 0x4C .rodata:0005A300 DCB 1, 0, 0, 0x4E, 1, 0, 0, 0x50, 1, 0, 0, 0x52, 1, 0 .rodata:0005A300 DCB 0, 0x54, 1, 0, 0, 0x56, 1, 0, 0, 0x58, 1, 0, 0, 0x5A .rodata:0005A300 DCB 1, 0, 0, 0x5C, 1, 0, 0, 0x5E, 1, 0, 0, 0x60, 1, 0 .rodata:0005A300 DCB 0, 0x62, 1, 0, 0, 0x64, 1, 0, 0, 0x66, 1, 0, 0, 0x68 .rodata:0005A300 DCB 1, 0, 0, 0x6A, 1, 0, 0, 0x6C, 1, 0, 0, 0x6E, 1, 0 .rodata:0005A300 DCB 0, 0x70, 1, 0, 0, 0x72, 1, 0, 0, 0x74, 1, 0, 0, 0x76 .rodata:0005A300 DCB 1, 0, 0, 0x78, 1, 0, 0, 0x7A, 1, 0, 0, 0x7C, 1, 0 .rodata:0005A300 DCB 0, 0x7E, 1, 0, 0, 0x80, 1, 0, 0, 0x82, 1, 0, 0, 0x84 .rodata:0005A300 DCB 1, 0, 0, 0x86, 1, 0, 0, 0x88, 1, 0, 0, 0x8A, 1, 0 .rodata:0005A300 DCB 0, 0x8C, 1, 0, 0, 0x8E, 1, 0, 0, 0x90, 1, 0, 0, 0x92 .rodata:0005A300 DCB 1, 0, 0, 0x94, 1, 0, 0, 0x96, 1, 0, 0, 0x98, 1, 0 .rodata:0005A300 DCB 0, 0x9A, 1, 0, 0, 0x9C, 1, 0, 0, 0x9E, 1, 0, 0, 0xA0 .rodata:0005A300 DCB 1, 0, 0, 0xA2, 1, 0, 0, 0xA4, 1, 0, 0, 0xA6, 1, 0 .rodata:0005A300 DCB 0, 0xA8, 1, 0, 0, 0xAA, 1, 0, 0, 0xAC, 1, 0, 0, 0xAE .rodata:0005A300 DCB 1, 0, 0, 0xB0, 1, 0, 0, 0xB2, 1, 0, 0, 0xB4, 1, 0 .rodata:0005A300 DCB 0, 0xB6, 1, 0, 0, 0xB8, 1, 0, 0, 0xBA, 1, 0, 0, 0xBC .rodata:0005A300 DCB 1, 0, 0, 0xBE, 1, 0, 0, 0xC0, 1, 0, 0, 0xC2, 1, 0 .rodata:0005A300 DCB 0, 0xC4, 1, 0, 0, 0xC6, 1, 0, 0, 0xC8, 1, 0, 0, 0xCA .rodata:0005A300 DCB 1, 0, 0, 0xCC, 1, 0, 0, 0xCE, 1, 0, 0, 0xD0, 1, 0 .rodata:0005A300 DCB 0, 0xD2, 1, 0, 0, 0xD4, 1, 0, 0, 0xD6, 1, 0, 0, 0xD8 .rodata:0005A300 DCB 1, 0, 0, 0xDA, 1, 0, 0, 0xDC, 1, 0, 0, 0xDE, 1, 0 .rodata:0005A300 DCB 0, 0xE0, 1, 0, 0, 0xE2, 1, 0, 0, 0xE4, 1, 0, 0, 0xE6 .rodata:0005A300 DCB 1, 0, 0, 0xE8, 1, 0, 0, 0xEA, 1, 0, 0, 0xEC, 1, 0 .rodata:0005A300 DCB 0, 0xEE, 1, 0, 0, 0xF0, 1, 0, 0, 0xF2, 1, 0, 0, 0xF4 .rodata:0005A300 DCB 1, 0, 0, 0xF6, 1, 0, 0, 0xF8, 1, 0, 0, 0xFA, 1, 0 .rodata:0005A300 DCB 0, 0xFC, 1, 0, 0, 0xFE, 1, 0, 0, 0, 2, 0, 0, 2, 2 .rodata:0005A300 DCB 0, 0, 4, 2, 0, 0, 6, 2, 0, 0, 8, 2, 0, 0, 0xA, 2, 0 .rodata:0005A300 DCB 0, 0xC, 2, 0, 0, 0xE, 2, 0, 0, 0x10, 2, 0, 0, 0x12 .rodata:0005A300 DCB 2, 0, 0, 0x14, 2, 0, 0, 0x16, 2, 0, 0, 0x18, 2, 0 .rodata:0005A300 DCB 0, 0x1A, 2, 0, 0, 0x1C, 2, 0, 0, 0x1E, 2, 0, 0, 0x20 .rodata:0005A300 DCB 2, 0, 0, 0x22, 2, 0, 0, 0x24, 2, 0, 0, 0x26, 2, 0 .rodata:0005A300 DCB 0, 0x28, 2, 0, 0, 0x2A, 2, 0, 0, 0x2C, 2, 0, 0, 0x2E .rodata:0005A300 DCB 2, 0, 0, 0x30, 2, 0, 0, 0x32, 2, 0, 0, 0x34, 2, 0 .rodata:0005A300 DCB 0, 0x36, 2, 0, 0, 0x38, 2, 0, 0, 0x3A, 2, 0, 0, 0x3C .rodata:0005A300 DCB 2, 0, 0, 0x3E, 2, 0, 0, 0x40, 2, 0, 0, 0x42, 2, 0 .rodata:0005A300 DCB 0, 0x44, 2, 0, 0, 0x46, 2, 0, 0, 0x48, 2, 0, 0, 0x4A .rodata:0005A300 DCB 2, 0, 0, 0x4C, 2, 0, 0, 0x4E, 2, 0, 0, 0x50, 2, 0 .rodata:0005A300 DCB 0, 0x52, 2, 0, 0, 0x54, 2, 0, 0, 0x56, 2, 0, 0, 0x58 .rodata:0005A300 DCB 2, 0, 0, 0x5A, 2, 0, 0, 0x5C, 2, 0, 0, 0x5E, 2, 0 .rodata:0005A300 DCB 0, 0x60, 2, 0, 0, 0x62, 2, 0, 0, 0x64, 2, 0, 0, 0x66 .rodata:0005A300 DCB 2, 0, 0, 0x68, 2, 0, 0, 0x6A, 2, 0, 0, 0x6C, 2, 0 .rodata:0005A300 DCB 0, 0x6E, 2, 0, 0, 0x70, 2, 0, 0, 0x72, 2, 0, 0, 0x74 .rodata:0005A300 DCB 2, 0, 0, 0x76, 2, 0, 0, 0x78, 2, 0, 0, 0x7A, 2, 0 .rodata:0005A300 DCB 0, 0x7C, 2, 0, 0, 0x7E, 2, 0, 0, 0x80, 2, 0, 0, 0x82 .rodata:0005A300 DCB 2, 0, 0, 0x84, 2, 0, 0, 0x86, 2, 0, 0, 0x88, 2, 0 .rodata:0005A300 DCB 0, 0x8A, 2, 0, 0, 0x8C, 2, 0, 0, 0x8E, 2, 0, 0, 0x90 .rodata:0005A300 DCB 2, 0, 0, 0x92, 2, 0, 0, 0x94, 2, 0, 0, 0x96, 2, 0 .rodata:0005A300 DCB 0, 0x98, 2, 0, 0, 0x9A, 2, 0, 0, 0x9C, 2, 0, 0, 0x9E .rodata:0005A300 DCB 2, 0, 0, 0xA0, 2, 0, 0, 0xA2, 2, 0, 0, 0xA4, 2, 0 .rodata:0005A300 DCB 0, 0xA6, 2, 0, 0, 0xA8, 2, 0, 0, 0xAA, 2, 0, 0, 0xAC .rodata:0005A300 DCB 2, 0, 0, 0xAE, 2, 0, 0, 0xB0, 2, 0, 0, 0xB2, 2, 0 .rodata:0005A300 DCB 0, 0xB4, 2, 0, 0, 0xB6, 2, 0, 0, 0xB8, 2, 0, 0, 0xBA .rodata:0005A300 DCB 2, 0, 0, 0xBC, 2, 0, 0, 0xBE, 2, 0, 0, 0xC0, 2, 0 .rodata:0005A300 DCB 0, 0xC2, 2, 0, 0, 0xC4, 2, 0, 0, 0xC6, 2, 0, 0, 0xC8 .rodata:0005A300 DCB 2, 0, 0, 0xCA, 2, 0, 0, 0xCC, 2, 0, 0, 0xCE, 2, 0 .rodata:0005A300 DCB 0, 0xD0, 2, 0, 0, 0xD2, 2, 0, 0, 0xD4, 2, 0, 0, 0xD6 .rodata:0005A300 DCB 2, 0, 0, 0xD8, 2, 0, 0, 0xDA, 2, 0, 0, 0xDC, 2, 0 .rodata:0005A300 DCB 0, 0xDE, 2, 0, 0, 0xE0, 2, 0, 0, 0xE2, 2, 0, 0, 0xE4 .rodata:0005A300 DCB 2, 0, 0, 0xE6, 2, 0, 0, 0xE8, 2, 0, 0, 0xEA, 2, 0 .rodata:0005A300 DCB 0, 0xEC, 2, 0, 0, 0xEE, 2, 0, 0, 0xF0, 2, 0, 0, 0xF2 .rodata:0005A300 DCB 2, 0, 0, 0xF4, 2, 0, 0, 0xF6, 2, 0, 0, 0xF8, 2, 0 .rodata:0005A300 DCB 0, 0xFA, 2, 0, 0, 0xFC, 2, 0, 0, 0xFE, 2, 0, 0, 0 .rodata:0005A300 DCB 3, 0, 0, 2, 3, 0, 0, 4, 3, 0, 0, 6, 3, 0, 0, 8, 3 .rodata:0005A300 DCB 0, 0, 0xA, 3, 0, 0, 0xC, 3, 0, 0, 0xE, 3, 0, 0, 0x10 .rodata:0005A300 DCB 3, 0, 0, 0x12, 3, 0, 0, 0x14, 3, 0, 0, 0x16, 3, 0 .rodata:0005A300 DCB 0, 0x18, 3, 0, 0, 0x1A, 3, 0, 0, 0x1C, 3, 0, 0, 0x1E .rodata:0005A300 DCB 3, 0, 0, 0x20, 3, 0, 0, 0x22, 3, 0, 0, 0x24, 3, 0 .rodata:0005A300 DCB 0, 0x26, 3, 0, 0, 0x28, 3, 0, 0, 0x2A, 3, 0, 0, 0x2C .rodata:0005A300 DCB 3, 0, 0, 0x2E, 3, 0, 0, 0x30, 3, 0, 0, 0x32, 3, 0 .rodata:0005A300 DCB 0, 0x34, 3, 0, 0, 0x36, 3, 0, 0, 0x38, 3, 0, 0, 0x3A .rodata:0005A300 DCB 3, 0, 0, 0x3C, 3, 0, 0, 0x3E, 3, 0, 0, 0x40, 3, 0 .rodata:0005A300 DCB 0, 0x42, 3, 0, 0, 0x44, 3, 0, 0, 0x46, 3, 0, 0, 0x48 .rodata:0005A300 DCB 3, 0, 0, 0x4A, 3, 0, 0, 0x4C, 3, 0, 0, 0x4E, 3, 0 .rodata:0005A300 DCB 0, 0x50, 3, 0, 0, 0x52, 3, 0, 0, 0x54, 3, 0, 0, 0x56 .rodata:0005A300 DCB 3, 0, 0, 0x58, 3, 0, 0, 0x5A, 3, 0, 0, 0x5C, 3, 0 .rodata:0005A300 DCB 0, 0x5E, 3, 0, 0, 0x60, 3, 0, 0, 0x62, 3, 0, 0, 0x64 .rodata:0005A300 DCB 3, 0, 0, 0x66, 3, 0, 0, 0x68, 3, 0, 0, 0x6A, 3, 0 .rodata:0005A300 DCB 0, 0x6C, 3, 0, 0, 0x6E, 3, 0, 0, 0x70, 3, 0, 0, 0x72 .rodata:0005A300 DCB 3, 0, 0, 0x74, 3, 0, 0, 0x76, 3, 0, 0, 0x78, 3, 0 .rodata:0005A300 DCB 0, 0x7A, 3, 0, 0, 0x7C, 3, 0, 0, 0x7E, 3, 0, 0, 0x80 .rodata:0005A300 DCB 3, 0, 0, 0x82, 3, 0, 0, 0x84, 3, 0, 0, 0x86, 3, 0 .rodata:0005A300 DCB 0, 0x88, 3, 0, 0, 0x8A, 3, 0, 0, 0x8C, 3, 0, 0, 0x8E .rodata:0005A300 DCB 3, 0, 0, 0x90, 3, 0, 0, 0x92, 3, 0, 0, 0x94, 3, 0 .rodata:0005A300 DCB 0, 0x96, 3, 0, 0, 0x98, 3, 0, 0, 0x9A, 3, 0, 0, 0x9C .rodata:0005A300 DCB 3, 0, 0, 0x9E, 3, 0, 0, 0xA0, 3, 0, 0, 0xA2, 3, 0 .rodata:0005A300 DCB 0, 0xA4, 3, 0, 0, 0xA6, 3, 0, 0, 0xA8, 3, 0, 0, 0xAA .rodata:0005A300 DCB 3, 0, 0, 0xAC, 3, 0, 0, 0xAE, 3, 0, 0, 0xB0, 3, 0 .rodata:0005A300 DCB 0, 0xB2, 3, 0, 0, 0xB4, 3, 0, 0, 0xB6, 3, 0, 0, 0xB8 .rodata:0005A300 DCB 3, 0, 0, 0xBA, 3, 0, 0, 0xBC, 3, 0, 0, 0xBE, 3, 0 .rodata:0005A300 DCB 0, 0xC0, 3, 0, 0, 0xC2, 3, 0, 0, 0xC4, 3, 0, 0, 0xC6 .rodata:0005A300 DCB 3, 0, 0, 0xC8, 3, 0, 0, 0xCA, 3, 0, 0, 0xCC, 3, 0 .rodata:0005A300 DCB 0, 0xCE, 3, 0, 0, 0xD0, 3, 0, 0, 0xD2, 3, 0, 0, 0xD4 .rodata:0005A300 DCB 3, 0, 0, 0xD6, 3, 0, 0, 0xD8, 3, 0, 0, 0xDA, 3, 0 .rodata:0005A300 DCB 0, 0xDC, 3, 0, 0, 0xDE, 3, 0, 0, 0xE0, 3, 0, 0, 0xE2 .rodata:0005A300 DCB 3, 0, 0, 0xE4, 3, 0, 0, 0xE6, 3, 0, 0, 0xE8, 3, 0 .rodata:0005A300 DCB 0, 0xEA, 3, 0, 0, 0xEC, 3, 0, 0, 0xEE, 3, 0, 0, 0xF0 .rodata:0005A300 DCB 3, 0, 0, 0xF2, 3, 0, 0, 0xF4, 3, 0, 0, 0xF6, 3, 0 .rodata:0005A300 DCB 0, 0xF8, 3, 0, 0, 0xFA, 3, 0, 0, 0xFC, 3, 0, 0, 0xFE .rodata:0005A300 DCB 3, 0, 0, 0, 4, 0, 0, 2, 4, 0, 0, 4, 4, 0, 0, 6, 4 .rodata:0005A300 DCB 0, 0, 8, 4, 0, 0, 0xA, 4, 0, 0, 0xC, 4, 0, 0, 0xE .rodata:0005A300 DCB 4, 0, 0, 0x10, 4, 0, 0, 0x12, 4, 0, 0, 0x14, 4, 0 .rodata:0005A300 DCB 0, 0x16, 4, 0, 0, 0x18, 4, 0, 0, 0x1A, 4, 0, 0, 0x1C .rodata:0005A300 DCB 4, 0, 0, 0x1E, 4, 0, 0, 0x20, 4, 0, 0, 0x22, 4, 0 .rodata:0005A300 DCB 0, 0x24, 4, 0, 0, 0x26, 4, 0, 0, 0x28, 4, 0, 0, 0x2A .rodata:0005A300 DCB 4, 0, 0, 0x2C, 4, 0, 0, 0x2E, 4, 0, 0, 0x30, 4, 0 .rodata:0005A300 DCB 0, 0x32, 4, 0, 0, 0x34, 4, 0, 0, 0x36, 4, 0, 0, 0x38 .rodata:0005A300 DCB 4, 0, 0, 0x3A, 4, 0, 0, 0x3C, 4, 0, 0, 0x3E, 4, 0 .rodata:0005A300 DCB 0, 0x40, 4, 0, 0, 0x42, 4, 0, 0, 0x44, 4, 0, 0, 0x46 .rodata:0005A300 DCB 4, 0, 0, 0x48, 4, 0, 0, 0x4A, 4, 0, 0, 0x4C, 4, 0 .rodata:0005A300 DCB 0, 0x4E, 4, 0, 0, 0x50, 4, 0, 0, 0x52, 4, 0, 0, 0x54 .rodata:0005A300 DCB 4, 0, 0, 0x56, 4, 0, 0, 0x58, 4, 0, 0, 0x5A, 4, 0 .rodata:0005A300 DCB 0, 0x5C, 4, 0, 0, 0x5E, 4, 0, 0, 0x60, 4, 0, 0, 0x62 .rodata:0005A300 DCB 4, 0, 0, 0x64, 4, 0, 0, 0x66, 4, 0, 0, 0x68, 4, 0 .rodata:0005A300 DCB 0, 0x6A, 4, 0, 0, 0x6C, 4, 0, 0, 0x6E, 4, 0, 0, 0x70 .rodata:0005A300 DCB 4, 0, 0, 0x72, 4, 0, 0, 0x74, 4, 0, 0, 0x76, 4, 0 .rodata:0005A300 DCB 0, 0x78, 4, 0, 0, 0x7A, 4, 0, 0, 0x7C, 4, 0, 0, 0x7E .rodata:0005A300 DCB 4, 0, 0, 0x80, 4, 0, 0, 0x82, 4, 0, 0, 0x84, 4, 0 .rodata:0005A300 DCB 0, 0x86, 4, 0, 0, 0x88, 4, 0, 0, 0x8A, 4, 0, 0, 0x8C .rodata:0005A300 DCB 4, 0, 0, 0x8E, 4, 0, 0, 0x90, 4, 0, 0, 0x92, 4, 0 .rodata:0005A300 DCB 0, 0x94, 4, 0, 0, 0x96, 4, 0, 0, 0x98, 4, 0, 0, 0x9A .rodata:0005A300 DCB 4, 0, 0 .rodata:0005AC38 translit_from_tbl DCB 0xA0, 0, 0, 0, 0, 0, 0, 0, 0xA9, 0, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xAB, 0, 0, 0, 0, 0, 0, 0, 0xAD, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0, 0xAE, 0, 0, 0, 0, 0, 0, 0, 0xB5, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0xB8, 0, 0, 0, 0, 0, 0, 0, 0xBB, 0, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xBC, 0, 0, 0, 0, 0, 0, 0, 0xBD, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0xBE, 0, 0, 0, 0, 0, 0, 0, 0xC6, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xD7, 0, 0, 0, 0, 0, 0, 0, 0xDF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0, 0xE6, 0, 0, 0, 0, 0, 0, 0, 0x32 .rodata:0005AC38 DCB 1, 0, 0, 0, 0, 0, 0, 0x33, 1, 0, 0, 0, 0, 0, 0, 0x49 .rodata:0005AC38 DCB 1, 0, 0, 0, 0, 0, 0, 0x52, 1, 0, 0, 0, 0, 0, 0, 0x52 .rodata:0005AC38 DCB 1, 0, 0, 0, 0, 0, 0, 0x53, 1, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005AC38 DCB 1, 0, 0, 0, 0, 0, 0, 0x7F, 1, 0, 0, 0, 0, 0, 0, 0xC7 .rodata:0005AC38 DCB 1, 0, 0, 0, 0, 0, 0, 0xC8, 1, 0, 0, 0, 0, 0, 0, 0xC9 .rodata:0005AC38 DCB 1, 0, 0, 0, 0, 0, 0, 0xCA, 1, 0, 0, 0, 0, 0, 0, 0xCB .rodata:0005AC38 DCB 1, 0, 0, 0, 0, 0, 0, 0xCC, 1, 0, 0, 0, 0, 0, 0, 0xF1 .rodata:0005AC38 DCB 1, 0, 0, 0, 0, 0, 0, 0xF2, 1, 0, 0, 0, 0, 0, 0, 0xF3 .rodata:0005AC38 DCB 1, 0, 0, 0, 0, 0, 0, 0xBC, 2, 0, 0, 0, 0, 0, 0, 0xC6 .rodata:0005AC38 DCB 2, 0, 0, 0, 0, 0, 0, 0xC8, 2, 0, 0, 0, 0, 0, 0, 0xCB .rodata:0005AC38 DCB 2, 0, 0, 0, 0, 0, 0, 0xCD, 2, 0, 0, 0, 0, 0, 0, 0xD0 .rodata:0005AC38 DCB 2, 0, 0, 0, 0, 0, 0, 0xDC, 2, 0, 0, 0, 0, 0, 0, 2 .rodata:0005AC38 DCB 0x20, 0, 0, 0, 0, 0, 0, 3, 0x20, 0, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 4, 0x20, 0, 0, 0, 0, 0, 0, 5, 0x20, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 6, 0x20, 0, 0, 0, 0, 0, 0, 8, 0x20, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0, 9, 0x20, 0, 0, 0, 0, 0, 0, 0xA, 0x20, 0, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0xB, 0x20, 0, 0, 0, 0, 0, 0, 0x10, 0x20, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0x11, 0x20, 0, 0, 0, 0, 0, 0, 0x12 .rodata:0005AC38 DCB 0x20, 0, 0, 0, 0, 0, 0, 0x13, 0x20, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x14, 0x20, 0, 0, 0, 0, 0, 0, 0x15, 0x20, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x18, 0x20, 0, 0, 0, 0, 0, 0, 0x19, 0x20 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x1A, 0x20, 0, 0, 0, 0, 0, 0, 0x1B .rodata:0005AC38 DCB 0x20, 0, 0, 0, 0, 0, 0, 0x1C, 0x20, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x1D, 0x20, 0, 0, 0, 0, 0, 0, 0x1E, 0x20, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x1F, 0x20, 0, 0, 0, 0, 0, 0, 0x20, 0x20 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x22, 0x20, 0, 0, 0, 0, 0, 0, 0x24 .rodata:0005AC38 DCB 0x20, 0, 0, 0, 0, 0, 0, 0x25, 0x20, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x26, 0x20, 0, 0, 0, 0, 0, 0, 0x2F, 0x20, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x35, 0x20, 0, 0, 0, 0, 0, 0, 0x36, 0x20 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x37, 0x20, 0, 0, 0, 0, 0, 0, 0x39 .rodata:0005AC38 DCB 0x20, 0, 0, 0, 0, 0, 0, 0x3A, 0x20, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x3C, 0x20, 0, 0, 0, 0, 0, 0, 0x48, 0x20, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x49, 0x20, 0, 0, 0, 0, 0, 0, 0xA8, 0x20 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xAC, 0x20, 0, 0, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 1, 0x21, 0, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 2, 0x21, 0, 0, 0, 0, 0, 0, 5, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 6, 0x21, 0, 0, 0, 0, 0, 0, 0xA, 0x21, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0, 0xB, 0x21, 0, 0, 0, 0, 0, 0, 0xC, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xD, 0x21, 0, 0, 0, 0, 0, 0, 0xE, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x10, 0x21, 0, 0, 0, 0, 0, 0, 0x11 .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x12, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x13, 0x21, 0, 0, 0, 0, 0, 0, 0x15, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x16, 0x21, 0, 0, 0, 0, 0, 0, 0x19, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x1A, 0x21, 0, 0, 0, 0, 0, 0, 0x1B .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x1C, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x1D, 0x21, 0, 0, 0, 0, 0, 0, 0x21, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x22, 0x21, 0, 0, 0, 0, 0, 0, 0x24, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x26, 0x21, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x2C, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x2D, 0x21, 0, 0, 0, 0, 0, 0, 0x2E, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x2F, 0x21, 0, 0, 0, 0, 0, 0, 0x30, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x31, 0x21, 0, 0, 0, 0, 0, 0, 0x33 .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x34, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x39, 0x21, 0, 0, 0, 0, 0, 0, 0x53, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x54, 0x21, 0, 0, 0, 0, 0, 0, 0x55, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x56, 0x21, 0, 0, 0, 0, 0, 0, 0x57 .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x58, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x59, 0x21, 0, 0, 0, 0, 0, 0, 0x5A, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x5B, 0x21, 0, 0, 0, 0, 0, 0, 0x5C, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x5D, 0x21, 0, 0, 0, 0, 0, 0, 0x5E .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x5F, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x60, 0x21, 0, 0, 0, 0, 0, 0, 0x61, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x62, 0x21, 0, 0, 0, 0, 0, 0, 0x63, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x64, 0x21, 0, 0, 0, 0, 0, 0, 0x65 .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x66, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x67, 0x21, 0, 0, 0, 0, 0, 0, 0x68, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x69, 0x21, 0, 0, 0, 0, 0, 0, 0x6A, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x6B, 0x21, 0, 0, 0, 0, 0, 0, 0x6C .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x6D, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x6E, 0x21, 0, 0, 0, 0, 0, 0, 0x6F, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x70, 0x21, 0, 0, 0, 0, 0, 0, 0x71, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x72, 0x21, 0, 0, 0, 0, 0, 0, 0x73 .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x74, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x75, 0x21, 0, 0, 0, 0, 0, 0, 0x76, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x77, 0x21, 0, 0, 0, 0, 0, 0, 0x78, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x79, 0x21, 0, 0, 0, 0, 0, 0, 0x7A .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x7B, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x7C, 0x21, 0, 0, 0, 0, 0, 0, 0x7D, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x7E, 0x21, 0, 0, 0, 0, 0, 0, 0x7F, 0x21 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x90, 0x21, 0, 0, 0, 0, 0, 0, 0x92 .rodata:0005AC38 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x94, 0x21, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xD0, 0x21, 0, 0, 0, 0, 0, 0, 0xD2, 0x21, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xD4, 0x21, 0, 0, 0, 0, 0, 0, 0x12, 0x22 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x15, 0x22, 0, 0, 0, 0, 0, 0, 0x16 .rodata:0005AC38 DCB 0x22, 0, 0, 0, 0, 0, 0, 0x17, 0x22, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x23, 0x22, 0, 0, 0, 0, 0, 0, 0x36, 0x22, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x3C, 0x22, 0, 0, 0, 0, 0, 0, 0x64, 0x22 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x65, 0x22, 0, 0, 0, 0, 0, 0, 0x6A .rodata:0005AC38 DCB 0x22, 0, 0, 0, 0, 0, 0, 0x6B, 0x22, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xD8, 0x22, 0, 0, 0, 0, 0, 0, 0xD9, 0x22, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0x24, 0, 0, 0, 0, 0, 0, 1, 0x24, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 2, 0x24, 0, 0, 0, 0, 0, 0, 3, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 4, 0x24, 0, 0, 0, 0, 0, 0, 5, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 6, 0x24, 0, 0, 0, 0, 0, 0, 7, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 8, 0x24, 0, 0, 0, 0, 0, 0, 9, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xA, 0x24, 0, 0, 0, 0, 0, 0, 0xB .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xC, 0x24, 0, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0xD, 0x24, 0, 0, 0, 0, 0, 0, 0xE, 0x24, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0, 0xF, 0x24, 0, 0, 0, 0, 0, 0, 0x10, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x11, 0x24, 0, 0, 0, 0, 0, 0, 0x12, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x13, 0x24, 0, 0, 0, 0, 0, 0, 0x14 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x15, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x16, 0x24, 0, 0, 0, 0, 0, 0, 0x17, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x18, 0x24, 0, 0, 0, 0, 0, 0, 0x19, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x1A, 0x24, 0, 0, 0, 0, 0, 0, 0x1B .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x1C, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x1D, 0x24, 0, 0, 0, 0, 0, 0, 0x1E, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x1F, 0x24, 0, 0, 0, 0, 0, 0, 0x20, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x21, 0x24, 0, 0, 0, 0, 0, 0, 0x23 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x24, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x60, 0x24, 0, 0, 0, 0, 0, 0, 0x61, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x62, 0x24, 0, 0, 0, 0, 0, 0, 0x63, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x64, 0x24, 0, 0, 0, 0, 0, 0, 0x65 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x66, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x67, 0x24, 0, 0, 0, 0, 0, 0, 0x68, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x69, 0x24, 0, 0, 0, 0, 0, 0, 0x6A, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x6B, 0x24, 0, 0, 0, 0, 0, 0, 0x6C .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x6D, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x6E, 0x24, 0, 0, 0, 0, 0, 0, 0x6F, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x70, 0x24, 0, 0, 0, 0, 0, 0, 0x71, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x72, 0x24, 0, 0, 0, 0, 0, 0, 0x73 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x74, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x75, 0x24, 0, 0, 0, 0, 0, 0, 0x76, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x77, 0x24, 0, 0, 0, 0, 0, 0, 0x78, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x79, 0x24, 0, 0, 0, 0, 0, 0, 0x7A .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x7B, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x7C, 0x24, 0, 0, 0, 0, 0, 0, 0x7D, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x7E, 0x24, 0, 0, 0, 0, 0, 0, 0x7F, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x80, 0x24, 0, 0, 0, 0, 0, 0, 0x81 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x82, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x83, 0x24, 0, 0, 0, 0, 0, 0, 0x84, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x85, 0x24, 0, 0, 0, 0, 0, 0, 0x86, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x87, 0x24, 0, 0, 0, 0, 0, 0, 0x88 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x89, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x8A, 0x24, 0, 0, 0, 0, 0, 0, 0x8B, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x8C, 0x24, 0, 0, 0, 0, 0, 0, 0x8D, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x8E, 0x24, 0, 0, 0, 0, 0, 0, 0x8F .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x90, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x91, 0x24, 0, 0, 0, 0, 0, 0, 0x92, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x93, 0x24, 0, 0, 0, 0, 0, 0, 0x94, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x95, 0x24, 0, 0, 0, 0, 0, 0, 0x96 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x97, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x98, 0x24, 0, 0, 0, 0, 0, 0, 0x99, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x9A, 0x24, 0, 0, 0, 0, 0, 0, 0x9B, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x9C, 0x24, 0, 0, 0, 0, 0, 0, 0x9D .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x9E, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x9F, 0x24, 0, 0, 0, 0, 0, 0, 0xA0, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xA1, 0x24, 0, 0, 0, 0, 0, 0, 0xA2, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xA3, 0x24, 0, 0, 0, 0, 0, 0, 0xA4 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xA5, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xA6, 0x24, 0, 0, 0, 0, 0, 0, 0xA7, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xA8, 0x24, 0, 0, 0, 0, 0, 0, 0xA9, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xAA, 0x24, 0, 0, 0, 0, 0, 0, 0xAB .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xAC, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xAD, 0x24, 0, 0, 0, 0, 0, 0, 0xAE, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xAF, 0x24, 0, 0, 0, 0, 0, 0, 0xB0, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xB1, 0x24, 0, 0, 0, 0, 0, 0, 0xB2 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xB3, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xB4, 0x24, 0, 0, 0, 0, 0, 0, 0xB5, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xB6, 0x24, 0, 0, 0, 0, 0, 0, 0xB7, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xB8, 0x24, 0, 0, 0, 0, 0, 0, 0xB9 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xBA, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xBB, 0x24, 0, 0, 0, 0, 0, 0, 0xBC, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xBD, 0x24, 0, 0, 0, 0, 0, 0, 0xBE, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xBF, 0x24, 0, 0, 0, 0, 0, 0, 0xC0 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xC1, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xC2, 0x24, 0, 0, 0, 0, 0, 0, 0xC3, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xC4, 0x24, 0, 0, 0, 0, 0, 0, 0xC5, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xC6, 0x24, 0, 0, 0, 0, 0, 0, 0xC7 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xC8, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xC9, 0x24, 0, 0, 0, 0, 0, 0, 0xCA, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xCB, 0x24, 0, 0, 0, 0, 0, 0, 0xCC, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xCD, 0x24, 0, 0, 0, 0, 0, 0, 0xCE .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xCF, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xD0, 0x24, 0, 0, 0, 0, 0, 0, 0xD1, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xD2, 0x24, 0, 0, 0, 0, 0, 0, 0xD3, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xD4, 0x24, 0, 0, 0, 0, 0, 0, 0xD5 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xD6, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xD7, 0x24, 0, 0, 0, 0, 0, 0, 0xD8, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xD9, 0x24, 0, 0, 0, 0, 0, 0, 0xDA, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xDB, 0x24, 0, 0, 0, 0, 0, 0, 0xDC .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xDD, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xDE, 0x24, 0, 0, 0, 0, 0, 0, 0xDF, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xE0, 0x24, 0, 0, 0, 0, 0, 0, 0xE1, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xE2, 0x24, 0, 0, 0, 0, 0, 0, 0xE3 .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xE4, 0x24, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xE5, 0x24, 0, 0, 0, 0, 0, 0, 0xE6, 0x24, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xE7, 0x24, 0, 0, 0, 0, 0, 0, 0xE8, 0x24 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xE9, 0x24, 0, 0, 0, 0, 0, 0, 0xEA .rodata:0005AC38 DCB 0x24, 0, 0, 0, 0, 0, 0, 0, 0x25, 0, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 2, 0x25, 0, 0, 0, 0, 0, 0, 0xC, 0x25, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x10, 0x25, 0, 0, 0, 0, 0, 0, 0x14, 0x25, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x18, 0x25, 0, 0, 0, 0, 0, 0, 0x1C, 0x25 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x24, 0x25, 0, 0, 0, 0, 0, 0, 0x2C .rodata:0005AC38 DCB 0x25, 0, 0, 0, 0, 0, 0, 0x34, 0x25, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x3C, 0x25, 0, 0, 0, 0, 0, 0, 0xE6, 0x25, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0x30, 0, 0, 0, 0, 0, 0, 0x71, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x72, 0x33, 0, 0, 0, 0, 0, 0, 0x73 .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x74, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x75, 0x33, 0, 0, 0, 0, 0, 0, 0x76, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x80, 0x33, 0, 0, 0, 0, 0, 0, 0x81, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x82, 0x33, 0, 0, 0, 0, 0, 0, 0x83 .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x84, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x85, 0x33, 0, 0, 0, 0, 0, 0, 0x86, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x87, 0x33, 0, 0, 0, 0, 0, 0, 0x88, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x89, 0x33, 0, 0, 0, 0, 0, 0, 0x8A .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x8B, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x8C, 0x33, 0, 0, 0, 0, 0, 0, 0x8D, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x8E, 0x33, 0, 0, 0, 0, 0, 0, 0x8F, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x90, 0x33, 0, 0, 0, 0, 0, 0, 0x91 .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x92, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x93, 0x33, 0, 0, 0, 0, 0, 0, 0x94, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x95, 0x33, 0, 0, 0, 0, 0, 0, 0x96, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x97, 0x33, 0, 0, 0, 0, 0, 0, 0x98 .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x99, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x9A, 0x33, 0, 0, 0, 0, 0, 0, 0x9B, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x9C, 0x33, 0, 0, 0, 0, 0, 0, 0x9D, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x9E, 0x33, 0, 0, 0, 0, 0, 0, 0x9F .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xA0, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xA1, 0x33, 0, 0, 0, 0, 0, 0, 0xA2, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xA3, 0x33, 0, 0, 0, 0, 0, 0, 0xA4, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xA5, 0x33, 0, 0, 0, 0, 0, 0, 0xA6 .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xA7, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xA8, 0x33, 0, 0, 0, 0, 0, 0, 0xA9, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xAA, 0x33, 0, 0, 0, 0, 0, 0, 0xAB, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xAC, 0x33, 0, 0, 0, 0, 0, 0, 0xAD .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xAE, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xAF, 0x33, 0, 0, 0, 0, 0, 0, 0xB0, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xB1, 0x33, 0, 0, 0, 0, 0, 0, 0xB2, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xB3, 0x33, 0, 0, 0, 0, 0, 0, 0xB4 .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xB5, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xB6, 0x33, 0, 0, 0, 0, 0, 0, 0xB7, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xB8, 0x33, 0, 0, 0, 0, 0, 0, 0xB9, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xBA, 0x33, 0, 0, 0, 0, 0, 0, 0xBB .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xBC, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xBD, 0x33, 0, 0, 0, 0, 0, 0, 0xBE, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xBF, 0x33, 0, 0, 0, 0, 0, 0, 0xC2, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xC3, 0x33, 0, 0, 0, 0, 0, 0, 0xC4 .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xC5, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xC6, 0x33, 0, 0, 0, 0, 0, 0, 0xC7, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xC8, 0x33, 0, 0, 0, 0, 0, 0, 0xC9, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xCA, 0x33, 0, 0, 0, 0, 0, 0, 0xCB .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xCC, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xCD, 0x33, 0, 0, 0, 0, 0, 0, 0xCE, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xCF, 0x33, 0, 0, 0, 0, 0, 0, 0xD0, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xD1, 0x33, 0, 0, 0, 0, 0, 0, 0xD2 .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xD3, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xD4, 0x33, 0, 0, 0, 0, 0, 0, 0xD5, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xD6, 0x33, 0, 0, 0, 0, 0, 0, 0xD7, 0x33 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xD8, 0x33, 0, 0, 0, 0, 0, 0, 0xD9 .rodata:0005AC38 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xDA, 0x33, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0xDB, 0x33, 0, 0, 0, 0, 0, 0, 0xDC, 0x33, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0xDD, 0x33, 0, 0, 0, 0, 0, 0, 0, 0xFB .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 1, 0xFB, 0, 0, 0, 0, 0, 0, 2, 0xFB .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 3, 0xFB, 0, 0, 0, 0, 0, 0, 4, 0xFB .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 6, 0xFB, 0, 0, 0, 0, 0, 0, 0x29 .rodata:0005AC38 DCB 0xFB, 0, 0, 0, 0, 0, 0, 0x4D, 0xFE, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x4E, 0xFE, 0, 0, 0, 0, 0, 0, 0x4F, 0xFE, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x50, 0xFE, 0, 0, 0, 0, 0, 0, 0x52, 0xFE .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x54, 0xFE, 0, 0, 0, 0, 0, 0, 0x55 .rodata:0005AC38 DCB 0xFE, 0, 0, 0, 0, 0, 0, 0x56, 0xFE, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x57, 0xFE, 0, 0, 0, 0, 0, 0, 0x59, 0xFE, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x5A, 0xFE, 0, 0, 0, 0, 0, 0, 0x5B, 0xFE .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x5C, 0xFE, 0, 0, 0, 0, 0, 0, 0x5F .rodata:0005AC38 DCB 0xFE, 0, 0, 0, 0, 0, 0, 0x60, 0xFE, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x61, 0xFE, 0, 0, 0, 0, 0, 0, 0x62, 0xFE, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x63, 0xFE, 0, 0, 0, 0, 0, 0, 0x64, 0xFE .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x65, 0xFE, 0, 0, 0, 0, 0, 0, 0x66 .rodata:0005AC38 DCB 0xFE, 0, 0, 0, 0, 0, 0, 0x68, 0xFE, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x69, 0xFE, 0, 0, 0, 0, 0, 0, 0x6A, 0xFE, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x6B, 0xFE, 0, 0, 0, 0, 0, 0, 0xFF, 0xFE .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 1, 0xFF, 0, 0, 0, 0, 0, 0, 2, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 3, 0xFF, 0, 0, 0, 0, 0, 0, 4, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 5, 0xFF, 0, 0, 0, 0, 0, 0, 6, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 7, 0xFF, 0, 0, 0, 0, 0, 0, 8, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 9, 0xFF, 0, 0, 0, 0, 0, 0, 0xA, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0xB, 0xFF, 0, 0, 0, 0, 0, 0, 0xC .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0xD, 0xFF, 0, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0xE, 0xFF, 0, 0, 0, 0, 0, 0, 0xF, 0xFF, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0, 0x10, 0xFF, 0, 0, 0, 0, 0, 0, 0x11, 0xFF, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0x12, 0xFF, 0, 0, 0, 0, 0, 0, 0x13 .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x14, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x15, 0xFF, 0, 0, 0, 0, 0, 0, 0x16, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x17, 0xFF, 0, 0, 0, 0, 0, 0, 0x18, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x19, 0xFF, 0, 0, 0, 0, 0, 0, 0x1A .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x1B, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x1C, 0xFF, 0, 0, 0, 0, 0, 0, 0x1D, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x1E, 0xFF, 0, 0, 0, 0, 0, 0, 0x1F, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x20, 0xFF, 0, 0, 0, 0, 0, 0, 0x21 .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x22, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x23, 0xFF, 0, 0, 0, 0, 0, 0, 0x24, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x25, 0xFF, 0, 0, 0, 0, 0, 0, 0x26, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x27, 0xFF, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x29, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x2A, 0xFF, 0, 0, 0, 0, 0, 0, 0x2B, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x2C, 0xFF, 0, 0, 0, 0, 0, 0, 0x2D, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x2E, 0xFF, 0, 0, 0, 0, 0, 0, 0x2F .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x30, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x31, 0xFF, 0, 0, 0, 0, 0, 0, 0x32, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x33, 0xFF, 0, 0, 0, 0, 0, 0, 0x34, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x35, 0xFF, 0, 0, 0, 0, 0, 0, 0x36 .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x37, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x38, 0xFF, 0, 0, 0, 0, 0, 0, 0x39, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x3A, 0xFF, 0, 0, 0, 0, 0, 0, 0x3B, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x3C, 0xFF, 0, 0, 0, 0, 0, 0, 0x3D .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x3E, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x3F, 0xFF, 0, 0, 0, 0, 0, 0, 0x40, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x41, 0xFF, 0, 0, 0, 0, 0, 0, 0x42, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x43, 0xFF, 0, 0, 0, 0, 0, 0, 0x44 .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x45, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x46, 0xFF, 0, 0, 0, 0, 0, 0, 0x47, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x48, 0xFF, 0, 0, 0, 0, 0, 0, 0x49, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x4A, 0xFF, 0, 0, 0, 0, 0, 0, 0x4B .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x4C, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x4D, 0xFF, 0, 0, 0, 0, 0, 0, 0x4E, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x4F, 0xFF, 0, 0, 0, 0, 0, 0, 0x50, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x51, 0xFF, 0, 0, 0, 0, 0, 0, 0x52 .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x53, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x54, 0xFF, 0, 0, 0, 0, 0, 0, 0x55, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x56, 0xFF, 0, 0, 0, 0, 0, 0, 0x57, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0, 0x58, 0xFF, 0, 0, 0, 0, 0, 0, 0x59 .rodata:0005AC38 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x5A, 0xFF, 0, 0, 0, 0, 0 .rodata:0005AC38 DCB 0, 0x5B, 0xFF, 0, 0, 0, 0, 0, 0, 0x5C, 0xFF, 0, 0 .rodata:0005AC38 DCB 0, 0, 0, 0, 0x5D, 0xFF, 0, 0, 0, 0, 0, 0, 0x5E, 0xFF .rodata:0005AC38 DCB 0, 0, 0, 0, 0, 0 .rodata:0005BEA8 translit_to_idx DCB 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 0xC, 0, 0, 0, 0xF .rodata:0005BEA8 DCB 0, 0, 0, 0x14, 0, 0, 0, 0x17, 0, 0, 0, 0x1A, 0, 0 .rodata:0005BEA8 DCB 0, 0x1E, 0, 0, 0, 0x25, 0, 0, 0, 0x2C, 0, 0, 0, 0x33 .rodata:0005BEA8 DCB 0, 0, 0, 0x37, 0, 0, 0, 0x3A, 0, 0, 0, 0x3E, 0, 0 .rodata:0005BEA8 DCB 0, 0x42, 0, 0, 0, 0x46, 0, 0, 0, 0x4A, 0, 0, 0, 0x4E .rodata:0005BEA8 DCB 0, 0, 0, 0x52, 0, 0, 0, 0x56, 0, 0, 0, 0x5A, 0, 0 .rodata:0005BEA8 DCB 0, 0x5E, 0, 0, 0, 0x61, 0, 0, 0, 0x65, 0, 0, 0, 0x69 .rodata:0005BEA8 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x71, 0, 0, 0, 0x75, 0, 0 .rodata:0005BEA8 DCB 0, 0x79, 0, 0, 0, 0x7D, 0, 0, 0, 0x81, 0, 0, 0, 0x85 .rodata:0005BEA8 DCB 0, 0, 0, 0x88, 0, 0, 0, 0x8B, 0, 0, 0, 0x8E, 0, 0 .rodata:0005BEA8 DCB 0, 0x91, 0, 0, 0, 0x94, 0, 0, 0, 0x97, 0, 0, 0, 0x9A .rodata:0005BEA8 DCB 0, 0, 0, 0x9D, 0, 0, 0, 0xA0, 0, 0, 0, 0xA3, 0, 0 .rodata:0005BEA8 DCB 0, 0xA6, 0, 0, 0, 0xA9, 0, 0, 0, 0xAC, 0, 0, 0, 0xAF .rodata:0005BEA8 DCB 0, 0, 0, 0xB2, 0, 0, 0, 0xB4, 0, 0, 0, 0xB7, 0, 0 .rodata:0005BEA8 DCB 0, 0xBA, 0, 0, 0, 0xBD, 0, 0, 0, 0xC0, 0, 0, 0, 0xC4 .rodata:0005BEA8 DCB 0, 0, 0, 0xC7, 0, 0, 0, 0xCA, 0, 0, 0, 0xCD, 0, 0 .rodata:0005BEA8 DCB 0, 0xD0, 0, 0, 0, 0xD3, 0, 0, 0, 0xD6, 0, 0, 0, 0xD9 .rodata:0005BEA8 DCB 0, 0, 0, 0xDD, 0, 0, 0, 0xE0, 0, 0, 0, 0xE3, 0, 0 .rodata:0005BEA8 DCB 0, 0xE6, 0, 0, 0, 0xE9, 0, 0, 0, 0xED, 0, 0, 0, 0xF2 .rodata:0005BEA8 DCB 0, 0, 0, 0xF5, 0, 0, 0, 0xF8, 0, 0, 0, 0xFC, 0, 0 .rodata:0005BEA8 DCB 0, 1, 1, 0, 0, 4, 1, 0, 0, 7, 1, 0, 0, 0xB, 1, 0, 0 .rodata:0005BEA8 DCB 0xF, 1, 0, 0, 0x13, 1, 0, 0, 0x17, 1, 0, 0, 0x1C, 1 .rodata:0005BEA8 DCB 0, 0, 0x21, 1, 0, 0, 0x26, 1, 0, 0, 0x29, 1, 0, 0 .rodata:0005BEA8 DCB 0x2E, 1, 0, 0, 0x33, 1, 0, 0, 0x36, 1, 0, 0, 0x39 .rodata:0005BEA8 DCB 1, 0, 0, 0x3C, 1, 0, 0, 0x3F, 1, 0, 0, 0x42, 1, 0 .rodata:0005BEA8 DCB 0, 0x45, 1, 0, 0, 0x48, 1, 0, 0, 0x4B, 1, 0, 0, 0x4E .rodata:0005BEA8 DCB 1, 0, 0, 0x51, 1, 0, 0, 0x55, 1, 0, 0, 0x58, 1, 0 .rodata:0005BEA8 DCB 0, 0x5B, 1, 0, 0, 0x5E, 1, 0, 0, 0x61, 1, 0, 0, 0x64 .rodata:0005BEA8 DCB 1, 0, 0, 0x69, 1, 0, 0, 0x6F, 1, 0, 0, 0x72, 1, 0 .rodata:0005BEA8 DCB 0, 0x77, 1, 0, 0, 0x7A, 1, 0, 0, 0x7D, 1, 0, 0, 0x80 .rodata:0005BEA8 DCB 1, 0, 0, 0x83, 1, 0, 0, 0x86, 1, 0, 0, 0x89, 1, 0 .rodata:0005BEA8 DCB 0, 0x8C, 1, 0, 0, 0x8F, 1, 0, 0, 0x92, 1, 0, 0, 0x95 .rodata:0005BEA8 DCB 1, 0, 0, 0x9C, 1, 0, 0, 0xA3, 1, 0, 0, 0xAA, 1, 0 .rodata:0005BEA8 DCB 0, 0xB1, 1, 0, 0, 0xB8, 1, 0, 0, 0xBF, 1, 0, 0, 0xC6 .rodata:0005BEA8 DCB 1, 0, 0, 0xCD, 1, 0, 0, 0xD4, 1, 0, 0, 0xDB, 1, 0 .rodata:0005BEA8 DCB 0, 0xE2, 1, 0, 0, 0xE9, 1, 0, 0, 0xEE, 1, 0, 0, 0xF1 .rodata:0005BEA8 DCB 1, 0, 0, 0xF5, 1, 0, 0, 0xFA, 1, 0, 0, 0xFE, 1, 0 .rodata:0005BEA8 DCB 0, 1, 2, 0, 0, 5, 2, 0, 0, 0xA, 2, 0, 0, 0x10, 2, 0 .rodata:0005BEA8 DCB 0, 0x14, 2, 0, 0, 0x17, 2, 0, 0, 0x1B, 2, 0, 0, 0x20 .rodata:0005BEA8 DCB 2, 0, 0, 0x23, 2, 0, 0, 0x26, 2, 0, 0, 0x29, 2, 0 .rodata:0005BEA8 DCB 0, 0x2C, 2, 0, 0, 0x2F, 2, 0, 0, 0x33, 2, 0, 0, 0x38 .rodata:0005BEA8 DCB 2, 0, 0, 0x3C, 2, 0, 0, 0x3F, 2, 0, 0, 0x43, 2, 0 .rodata:0005BEA8 DCB 0, 0x48, 2, 0, 0, 0x4E, 2, 0, 0, 0x52, 2, 0, 0, 0x55 .rodata:0005BEA8 DCB 2, 0, 0, 0x59, 2, 0, 0, 0x5E, 2, 0, 0, 0x61, 2, 0 .rodata:0005BEA8 DCB 0, 0x64, 2, 0, 0, 0x67, 2, 0, 0, 0x6A, 2, 0, 0, 0x6E .rodata:0005BEA8 DCB 2, 0, 0, 0x72, 2, 0, 0, 0x77, 2, 0, 0, 0x7B, 2, 0 .rodata:0005BEA8 DCB 0, 0x7F, 2, 0, 0, 0x84, 2, 0, 0, 0x87, 2, 0, 0, 0x8A .rodata:0005BEA8 DCB 2, 0, 0, 0x8D, 2, 0, 0, 0x90, 2, 0, 0, 0x93, 2, 0 .rodata:0005BEA8 DCB 0, 0x96, 2, 0, 0, 0x99, 2, 0, 0, 0x9D, 2, 0, 0, 0xA1 .rodata:0005BEA8 DCB 2, 0, 0, 0xA5, 2, 0, 0, 0xA9, 2, 0, 0, 0xAE, 2, 0 .rodata:0005BEA8 DCB 0, 0xB3, 2, 0, 0, 0xB8, 2, 0, 0, 0xBD, 2, 0, 0, 0xC2 .rodata:0005BEA8 DCB 2, 0, 0, 0xC7, 2, 0, 0, 0xCC, 2, 0, 0, 0xD1, 2, 0 .rodata:0005BEA8 DCB 0, 0xD6, 2, 0, 0, 0xDB, 2, 0, 0, 0xDF, 2, 0, 0, 0xE3 .rodata:0005BEA8 DCB 2, 0, 0, 0xE7, 2, 0, 0, 0xEB, 2, 0, 0, 0xEF, 2, 0 .rodata:0005BEA8 DCB 0, 0xF3, 2, 0, 0, 0xF7, 2, 0, 0, 0xFB, 2, 0, 0, 0 .rodata:0005BEA8 DCB 3, 0, 0, 5, 3, 0, 0, 0xA, 3, 0, 0, 0xF, 3, 0, 0, 0x14 .rodata:0005BEA8 DCB 3, 0, 0, 0x19, 3, 0, 0, 0x1E, 3, 0, 0, 0x23, 3, 0 .rodata:0005BEA8 DCB 0, 0x28, 3, 0, 0, 0x2C, 3, 0, 0, 0x31, 3, 0, 0, 0x36 .rodata:0005BEA8 DCB 3, 0, 0, 0x3A, 3, 0, 0, 0x3E, 3, 0, 0, 0x42, 3, 0 .rodata:0005BEA8 DCB 0, 0x46, 3, 0, 0, 0x4A, 3, 0, 0, 0x4F, 3, 0, 0, 0x52 .rodata:0005BEA8 DCB 3, 0, 0, 0x56, 3, 0, 0, 0x5B, 3, 0, 0, 0x60, 3, 0 .rodata:0005BEA8 DCB 0, 0x65, 3, 0, 0, 0x6A, 3, 0, 0, 0x6F, 3, 0, 0, 0x74 .rodata:0005BEA8 DCB 3, 0, 0, 0x79, 3, 0, 0, 0x7E, 3, 0, 0, 0x83, 3, 0 .rodata:0005BEA8 DCB 0, 0x89, 3, 0, 0, 0x8F, 3, 0, 0, 0x95, 3, 0, 0, 0x9B .rodata:0005BEA8 DCB 3, 0, 0, 0xA1, 3, 0, 0, 0xA7, 3, 0, 0, 0xAD, 3, 0 .rodata:0005BEA8 DCB 0, 0xB3, 3, 0, 0, 0xB9, 3, 0, 0, 0xBF, 3, 0, 0, 0xC5 .rodata:0005BEA8 DCB 3, 0, 0, 0xCA, 3, 0, 0, 0xCF, 3, 0, 0, 0xD4, 3, 0 .rodata:0005BEA8 DCB 0, 0xD9, 3, 0, 0, 0xDE, 3, 0, 0, 0xE3, 3, 0, 0, 0xE8 .rodata:0005BEA8 DCB 3, 0, 0, 0xED, 3, 0, 0, 0xF2, 3, 0, 0, 0xF8, 3, 0 .rodata:0005BEA8 DCB 0, 0xFE, 3, 0, 0, 4, 4, 0, 0, 0xA, 4, 0, 0, 0x10, 4 .rodata:0005BEA8 DCB 0, 0, 0x16, 4, 0, 0, 0x1C, 4, 0, 0, 0x22, 4, 0, 0 .rodata:0005BEA8 DCB 0x28, 4, 0, 0, 0x2E, 4, 0, 0, 0x34, 4, 0, 0, 0x38 .rodata:0005BEA8 DCB 4, 0, 0, 0x3C, 4, 0, 0, 0x40, 4, 0, 0, 0x44, 4, 0 .rodata:0005BEA8 DCB 0, 0x48, 4, 0, 0, 0x4C, 4, 0, 0, 0x50, 4, 0, 0, 0x54 .rodata:0005BEA8 DCB 4, 0, 0, 0x58, 4, 0, 0, 0x5D, 4, 0, 0, 0x62, 4, 0 .rodata:0005BEA8 DCB 0, 0x67, 4, 0, 0, 0x6C, 4, 0, 0, 0x71, 4, 0, 0, 0x76 .rodata:0005BEA8 DCB 4, 0, 0, 0x7B, 4, 0, 0, 0x80, 4, 0, 0, 0x85, 4, 0 .rodata:0005BEA8 DCB 0, 0x8A, 4, 0, 0, 0x8F, 4, 0, 0, 0x94, 4, 0, 0, 0x99 .rodata:0005BEA8 DCB 4, 0, 0, 0x9E, 4, 0, 0, 0xA3, 4, 0, 0, 0xA8, 4, 0 .rodata:0005BEA8 DCB 0, 0xAD, 4, 0, 0, 0xB2, 4, 0, 0, 0xB7, 4, 0, 0, 0xBC .rodata:0005BEA8 DCB 4, 0, 0, 0xC1, 4, 0, 0, 0xC6, 4, 0, 0, 0xCB, 4, 0 .rodata:0005BEA8 DCB 0, 0xD0, 4, 0, 0, 0xD5, 4, 0, 0, 0xDA, 4, 0, 0, 0xDF .rodata:0005BEA8 DCB 4, 0, 0, 0xE4, 4, 0, 0, 0xE9, 4, 0, 0, 0xEE, 4, 0 .rodata:0005BEA8 DCB 0, 0xF3, 4, 0, 0, 0xF8, 4, 0, 0, 0xFD, 4, 0, 0, 2 .rodata:0005BEA8 DCB 5, 0, 0, 7, 5, 0, 0, 0xC, 5, 0, 0, 0x11, 5, 0, 0, 0x16 .rodata:0005BEA8 DCB 5, 0, 0, 0x1B, 5, 0, 0, 0x20, 5, 0, 0, 0x25, 5, 0 .rodata:0005BEA8 DCB 0, 0x2A, 5, 0, 0, 0x2F, 5, 0, 0, 0x34, 5, 0, 0, 0x39 .rodata:0005BEA8 DCB 5, 0, 0, 0x3E, 5, 0, 0, 0x43, 5, 0, 0, 0x48, 5, 0 .rodata:0005BEA8 DCB 0, 0x4D, 5, 0, 0, 0x52, 5, 0, 0, 0x57, 5, 0, 0, 0x5C .rodata:0005BEA8 DCB 5, 0, 0, 0x61, 5, 0, 0, 0x66, 5, 0, 0, 0x6B, 5, 0 .rodata:0005BEA8 DCB 0, 0x70, 5, 0, 0, 0x75, 5, 0, 0, 0x7A, 5, 0, 0, 0x7F .rodata:0005BEA8 DCB 5, 0, 0, 0x84, 5, 0, 0, 0x89, 5, 0, 0, 0x8E, 5, 0 .rodata:0005BEA8 DCB 0, 0x93, 5, 0, 0, 0x98, 5, 0, 0, 0x9D, 5, 0, 0, 0xA2 .rodata:0005BEA8 DCB 5, 0, 0, 0xA7, 5, 0, 0, 0xAC, 5, 0, 0, 0xB1, 5, 0 .rodata:0005BEA8 DCB 0, 0xB6, 5, 0, 0, 0xBB, 5, 0, 0, 0xC0, 5, 0, 0, 0xC5 .rodata:0005BEA8 DCB 5, 0, 0, 0xCA, 5, 0, 0, 0xCF, 5, 0, 0, 0xD4, 5, 0 .rodata:0005BEA8 DCB 0, 0xD9, 5, 0, 0, 0xDE, 5, 0, 0, 0xE3, 5, 0, 0, 0xE8 .rodata:0005BEA8 DCB 5, 0, 0, 0xED, 5, 0, 0, 0xF2, 5, 0, 0, 0xF7, 5, 0 .rodata:0005BEA8 DCB 0, 0xFC, 5, 0, 0, 1, 6, 0, 0, 6, 6, 0, 0, 0xB, 6, 0 .rodata:0005BEA8 DCB 0, 0x10, 6, 0, 0, 0x15, 6, 0, 0, 0x1A, 6, 0, 0, 0x1D .rodata:0005BEA8 DCB 6, 0, 0, 0x20, 6, 0, 0, 0x23, 6, 0, 0, 0x26, 6, 0 .rodata:0005BEA8 DCB 0, 0x29, 6, 0, 0, 0x2C, 6, 0, 0, 0x2F, 6, 0, 0, 0x32 .rodata:0005BEA8 DCB 6, 0, 0, 0x35, 6, 0, 0, 0x38, 6, 0, 0, 0x3B, 6, 0 .rodata:0005BEA8 DCB 0, 0x3E, 6, 0, 0, 0x41, 6, 0, 0, 0x46, 6, 0, 0, 0x4A .rodata:0005BEA8 DCB 6, 0, 0, 0x4E, 6, 0, 0, 0x53, 6, 0, 0, 0x57, 6, 0 .rodata:0005BEA8 DCB 0, 0x5B, 6, 0, 0, 0x5F, 6, 0, 0, 0x63, 6, 0, 0, 0x67 .rodata:0005BEA8 DCB 6, 0, 0, 0x6B, 6, 0, 0, 0x6F, 6, 0, 0, 0x73, 6, 0 .rodata:0005BEA8 DCB 0, 0x77, 6, 0, 0, 0x7B, 6, 0, 0, 0x80, 6, 0, 0, 0x86 .rodata:0005BEA8 DCB 6, 0, 0, 0x8A, 6, 0, 0, 0x8E, 6, 0, 0, 0x92, 6, 0 .rodata:0005BEA8 DCB 0, 0x96, 6, 0, 0, 0x9A, 6, 0, 0, 0x9E, 6, 0, 0, 0xA2 .rodata:0005BEA8 DCB 6, 0, 0, 0xA7, 6, 0, 0, 0xAC, 6, 0, 0, 0xB1, 6, 0 .rodata:0005BEA8 DCB 0, 0xB6, 6, 0, 0, 0xBA, 6, 0, 0, 0xBE, 6, 0, 0, 0xC2 .rodata:0005BEA8 DCB 6, 0, 0, 0xC6, 6, 0, 0, 0xCA, 6, 0, 0, 0xCE, 6, 0 .rodata:0005BEA8 DCB 0, 0xD2, 6, 0, 0, 0xD6, 6, 0, 0, 0xDA, 6, 0, 0, 0xDE .rodata:0005BEA8 DCB 6, 0, 0, 0xE4, 6, 0, 0, 0xEA, 6, 0, 0, 0xEF, 6, 0 .rodata:0005BEA8 DCB 0, 0xF5, 6, 0, 0, 0xFB, 6, 0, 0, 1, 7, 0, 0, 6, 7 .rodata:0005BEA8 DCB 0, 0, 0xC, 7, 0, 0, 0x11, 7, 0, 0, 0x18, 7, 0, 0, 0x1C .rodata:0005BEA8 DCB 7, 0, 0, 0x21, 7, 0, 0, 0x26, 7, 0, 0, 0x2B, 7, 0 .rodata:0005BEA8 DCB 0, 0x30, 7, 0, 0, 0x37, 7, 0, 0, 0x40, 7, 0, 0, 0x44 .rodata:0005BEA8 DCB 7, 0, 0, 0x48, 7, 0, 0, 0x4C, 7, 0, 0, 0x50, 7, 0 .rodata:0005BEA8 DCB 0, 0x54, 7, 0, 0, 0x58, 7, 0, 0, 0x5C, 7, 0, 0, 0x60 .rodata:0005BEA8 DCB 7, 0, 0, 0x64, 7, 0, 0, 0x68, 7, 0, 0, 0x6C, 7, 0 .rodata:0005BEA8 DCB 0, 0x70, 7, 0, 0, 0x74, 7, 0, 0, 0x78, 7, 0, 0, 0x7C .rodata:0005BEA8 DCB 7, 0, 0, 0x80, 7, 0, 0, 0x86, 7, 0, 0, 0x8A, 7, 0 .rodata:0005BEA8 DCB 0, 0x8E, 7, 0, 0, 0x92, 7, 0, 0, 0x98, 7, 0, 0, 0x9D .rodata:0005BEA8 DCB 7, 0, 0, 0xA1, 7, 0, 0, 0xA5, 7, 0, 0, 0xA9, 7, 0 .rodata:0005BEA8 DCB 0, 0xAD, 7, 0, 0, 0xB1, 7, 0, 0, 0xB5, 7, 0, 0, 0xB9 .rodata:0005BEA8 DCB 7, 0, 0, 0xBD, 7, 0, 0, 0xC1, 7, 0, 0, 0xC5, 7, 0 .rodata:0005BEA8 DCB 0, 0xCA, 7, 0, 0, 0xCE, 7, 0, 0, 0xD2, 7, 0, 0, 0xD7 .rodata:0005BEA8 DCB 7, 0, 0, 0xDC, 7, 0, 0, 0xE0, 7, 0, 0, 0xE6, 7, 0 .rodata:0005BEA8 DCB 0, 0xEB, 7, 0, 0, 0xEF, 7, 0, 0, 0xF3, 7, 0, 0, 0xF7 .rodata:0005BEA8 DCB 7, 0, 0, 0xFB, 7, 0, 0, 0xFF, 7, 0, 0, 3, 8, 0, 0 .rodata:0005BEA8 DCB 7, 8, 0, 0, 0xC, 8, 0, 0, 0x11, 8, 0, 0, 0x15, 8, 0 .rodata:0005BEA8 DCB 0, 0x18, 8, 0, 0, 0x1B, 8, 0, 0, 0x1E, 8, 0, 0, 0x21 .rodata:0005BEA8 DCB 8, 0, 0, 0x24, 8, 0, 0, 0x27, 8, 0, 0, 0x2A, 8, 0 .rodata:0005BEA8 DCB 0, 0x2D, 8, 0, 0, 0x30, 8, 0, 0, 0x33, 8, 0, 0, 0x36 .rodata:0005BEA8 DCB 8, 0, 0, 0x39, 8, 0, 0, 0x3C, 8, 0, 0, 0x3F, 8, 0 .rodata:0005BEA8 DCB 0, 0x42, 8, 0, 0, 0x45, 8, 0, 0, 0x48, 8, 0, 0, 0x4B .rodata:0005BEA8 DCB 8, 0, 0, 0x4E, 8, 0, 0, 0x51, 8, 0, 0, 0x54, 8, 0 .rodata:0005BEA8 DCB 0, 0x57, 8, 0, 0, 0x5A, 8, 0, 0, 0x5D, 8, 0, 0, 0x60 .rodata:0005BEA8 DCB 8, 0, 0, 0x63, 8, 0, 0, 0x65, 8, 0, 0, 0x68, 8, 0 .rodata:0005BEA8 DCB 0, 0x6B, 8, 0, 0, 0x6E, 8, 0, 0, 0x71, 8, 0, 0, 0x74 .rodata:0005BEA8 DCB 8, 0, 0, 0x77, 8, 0, 0, 0x7A, 8, 0, 0, 0x7D, 8, 0 .rodata:0005BEA8 DCB 0, 0x80, 8, 0, 0, 0x83, 8, 0, 0, 0x86, 8, 0, 0, 0x89 .rodata:0005BEA8 DCB 8, 0, 0, 0x8C, 8, 0, 0, 0x8F, 8, 0, 0, 0x92, 8, 0 .rodata:0005BEA8 DCB 0, 0x95, 8, 0, 0, 0x98, 8, 0, 0, 0x9B, 8, 0, 0, 0x9E .rodata:0005BEA8 DCB 8, 0, 0, 0xA1, 8, 0, 0, 0xA4, 8, 0, 0, 0xA7, 8, 0 .rodata:0005BEA8 DCB 0, 0xAA, 8, 0, 0, 0xAD, 8, 0, 0, 0xB0, 8, 0, 0, 0xB3 .rodata:0005BEA8 DCB 8, 0, 0, 0xB6, 8, 0, 0, 0xB9, 8, 0, 0, 0xBC, 8, 0 .rodata:0005BEA8 DCB 0, 0xBF, 8, 0, 0, 0xC2, 8, 0, 0, 0xC5, 8, 0, 0, 0xC8 .rodata:0005BEA8 DCB 8, 0, 0, 0xCB, 8, 0, 0, 0xCE, 8, 0, 0, 0xD1, 8, 0 .rodata:0005BEA8 DCB 0, 0xD4, 8, 0, 0, 0xD7, 8, 0, 0, 0xDA, 8, 0, 0, 0xDD .rodata:0005BEA8 DCB 8, 0, 0, 0xE0, 8, 0, 0, 0xE3, 8, 0, 0, 0xE6, 8, 0 .rodata:0005BEA8 DCB 0, 0xE9, 8, 0, 0, 0xEC, 8, 0, 0, 0xEF, 8, 0, 0, 0xF2 .rodata:0005BEA8 DCB 8, 0, 0, 0xF5, 8, 0, 0, 0xF8, 8, 0, 0, 0xFB, 8, 0 .rodata:0005BEA8 DCB 0, 0xFE, 8, 0, 0, 1, 9, 0, 0, 4, 9, 0, 0, 7, 9, 0 .rodata:0005BEA8 DCB 0, 0xA, 9, 0, 0, 0xD, 9, 0, 0, 0x10, 9, 0, 0, 0x13 .rodata:0005BEA8 DCB 9, 0, 0, 0x16, 9, 0, 0, 0x19, 9, 0, 0, 0x1C, 9, 0 .rodata:0005BEA8 DCB 0, 0x1F, 9, 0, 0, 0x22, 9, 0, 0, 0x25, 9, 0, 0, 0x28 .rodata:0005BEA8 DCB 9, 0, 0, 0x2B, 9, 0, 0, 0x2E, 9, 0, 0, 0x31, 9, 0 .rodata:0005BEA8 DCB 0, 0x34, 9, 0, 0, 0x37, 9, 0, 0, 0x3A, 9, 0, 0, 0x3D .rodata:0005BEA8 DCB 9, 0, 0, 0x40, 9, 0, 0, 0x43, 9, 0, 0, 0x46, 9, 0 .rodata:0005BEA8 DCB 0, 0x49, 9, 0, 0, 0x4C, 9, 0, 0, 0x4F, 9, 0, 0, 0x52 .rodata:0005BEA8 DCB 9, 0, 0, 0x55, 9, 0, 0, 0x58, 9, 0, 0, 0x5B, 9, 0 .rodata:0005BEA8 DCB 0, 0x5E, 9, 0, 0, 0x61, 9, 0, 0, 0x64, 9, 0, 0, 0x67 .rodata:0005BEA8 DCB 9, 0, 0, 0x6A, 9, 0, 0, 0x6D, 9, 0, 0, 0x70, 9, 0 .rodata:0005BEA8 DCB 0, 0x73, 9, 0, 0, 0x76, 9, 0, 0, 0x79, 9, 0, 0, 0x7C .rodata:0005BEA8 DCB 9, 0, 0 .rodata:0005C7E0 translit_to_tbl DCB 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0 .rodata:0005C7E0 DCB 0, 0x43, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0x3C, 0, 0, 0, 0x3C, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x52, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0x2C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E, 0, 0 .rodata:0005C7E0 DCB 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0 .rodata:0005C7E0 DCB 0, 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0x34, 0, 0, 0 .rodata:0005C7E0 DCB 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0 .rodata:0005C7E0 DCB 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0x32, 0, 0, 0, 0x20 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x33 .rodata:0005C7E0 DCB 0, 0, 0, 0x2F, 0, 0, 0, 0x34, 0, 0, 0, 0x20, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x41, 0, 0, 0, 0x45, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x73, 0, 0, 0, 0x73, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x61, 0, 0, 0, 0x65, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0x4A, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x27, 0, 0, 0, 0x6E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4F, 0, 0, 0, 0x45 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4F, 0, 0, 0, 0x45 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6F, 0, 0, 0, 0x65 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6F, 0, 0, 0, 0x65 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x73, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x4C, 0, 0, 0, 0x4A, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x4C, 0, 0, 0, 0x6A, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0x6A, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x4A .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x6A .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x6A .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0x5A .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0x7A .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x64, 0, 0, 0, 0x7A .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x27, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x5E, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x60 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x3A, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x7E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0x2D, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0x27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2C, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x27, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0x22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2C, 0 .rodata:0005C7E0 DCB 0, 0, 0x2C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x22 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x6F, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0x60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x60, 0, 0 .rodata:0005C7E0 DCB 0, 0x60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x60, 0 .rodata:0005C7E0 DCB 0, 0, 0x60, 0, 0, 0, 0x60, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x3C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x21, 0, 0, 0, 0x21 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3F, 0, 0, 0, 0x21 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x21, 0, 0, 0, 0x3F .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x52, 0, 0, 0, 0x73 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x45, 0, 0, 0, 0x55 .rodata:0005C7E0 DCB 0, 0, 0, 0x52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x61 .rodata:0005C7E0 DCB 0, 0, 0, 0x2F, 0, 0, 0, 0x63, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x61, 0, 0, 0, 0x2F, 0, 0, 0, 0x73, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x2F, 0, 0, 0, 0x6F .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x2F .rodata:0005C7E0 DCB 0, 0, 0, 0x75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x67 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x68 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x4C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x6F, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0x52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x52, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x52, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x54, 0, 0, 0, 0x45, 0, 0, 0, 0x4C .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x54 .rodata:0005C7E0 DCB 0, 0, 0, 0x4D, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x5A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0x4F, 0, 0, 0, 0x68, 0, 0, 0, 0x6D, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x5A, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0x42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x65, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x65, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x46 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x6F, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0005C7E0 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0x33, 0, 0 .rodata:0005C7E0 DCB 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0 .rodata:0005C7E0 DCB 0, 0, 0x32, 0, 0, 0, 0x2F, 0, 0, 0, 0x33, 0, 0, 0 .rodata:0005C7E0 DCB 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0 .rodata:0005C7E0 DCB 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0x35, 0, 0, 0, 0x20 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x32 .rodata:0005C7E0 DCB 0, 0, 0, 0x2F, 0, 0, 0, 0x35, 0, 0, 0, 0x20, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x33, 0 .rodata:0005C7E0 DCB 0, 0, 0x2F, 0, 0, 0, 0x35, 0, 0, 0, 0x20, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x34, 0, 0 .rodata:0005C7E0 DCB 0, 0x2F, 0, 0, 0, 0x35, 0, 0, 0, 0x20, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x31, 0, 0, 0 .rodata:0005C7E0 DCB 0x2F, 0, 0, 0, 0x36, 0, 0, 0, 0x20, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x35, 0, 0, 0, 0x2F .rodata:0005C7E0 DCB 0, 0, 0, 0x36, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x20, 0, 0, 0, 0x31, 0, 0, 0, 0x2F, 0 .rodata:0005C7E0 DCB 0, 0, 0x38, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x33, 0, 0, 0, 0x2F, 0, 0 .rodata:0005C7E0 DCB 0, 0x38, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0x20, 0, 0, 0, 0x35, 0, 0, 0, 0x2F, 0, 0, 0 .rodata:0005C7E0 DCB 0x38, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0x20, 0, 0, 0, 0x37, 0, 0, 0, 0x2F, 0, 0, 0, 0x38 .rodata:0005C7E0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0005C7E0 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0x49, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0x49, 0, 0, 0, 0x49, 0, 0, 0, 0x49, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0x56, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x56, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x56, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x56, 0, 0, 0, 0x49, 0, 0, 0, 0x49 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x56, 0, 0, 0, 0x49 .rodata:0005C7E0 DCB 0, 0, 0, 0x49, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x49, 0, 0, 0, 0x58, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0x58, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0x58, 0, 0, 0, 0x49, 0, 0, 0, 0x49, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x4C, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0x44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x69, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x69, 0, 0, 0, 0x69 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x76 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x76, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x76, 0, 0, 0, 0x69, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x76, 0, 0, 0, 0x69, 0, 0 .rodata:0005C7E0 DCB 0, 0x69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x76, 0 .rodata:0005C7E0 DCB 0, 0, 0x69, 0, 0, 0, 0x69, 0, 0, 0, 0x69, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x78, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0x69, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0x69, 0, 0, 0, 0x69 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x2D .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0x3E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x2D .rodata:0005C7E0 DCB 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C .rodata:0005C7E0 DCB 0, 0, 0, 0x3D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3D .rodata:0005C7E0 DCB 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C .rodata:0005C7E0 DCB 0, 0, 0, 0x3D, 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0x2F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5C, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2A, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x7C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0x3A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7E, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x3D .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E, 0, 0, 0, 0x3D .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x3C .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E, 0, 0, 0, 0x3E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x3C .rodata:0005C7E0 DCB 0, 0, 0, 0x3C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E .rodata:0005C7E0 DCB 0, 0, 0, 0x3E, 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x55, 0, 0, 0, 0x4C, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53, 0, 0, 0, 0x4F .rodata:0005C7E0 DCB 0, 0, 0, 0x48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0x54, 0, 0, 0, 0x58, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x45, 0, 0, 0, 0x54, 0, 0, 0, 0x58, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x45, 0, 0, 0, 0x4F .rodata:0005C7E0 DCB 0, 0, 0, 0x54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x45 .rodata:0005C7E0 DCB 0, 0, 0, 0x4E, 0, 0, 0, 0x51, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x41, 0, 0, 0, 0x43, 0, 0, 0, 0x4B, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x42, 0, 0, 0, 0x45 .rodata:0005C7E0 DCB 0, 0, 0, 0x4C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x42 .rodata:0005C7E0 DCB 0, 0, 0, 0x53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48 .rodata:0005C7E0 DCB 0, 0, 0, 0x54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4C .rodata:0005C7E0 DCB 0, 0, 0, 0x46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x56 .rodata:0005C7E0 DCB 0, 0, 0, 0x54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x46 .rodata:0005C7E0 DCB 0, 0, 0, 0x46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43 .rodata:0005C7E0 DCB 0, 0, 0, 0x52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0x4F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44 .rodata:0005C7E0 DCB 0, 0, 0, 0x4C, 0, 0, 0, 0x45, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x44, 0, 0, 0, 0x43, 0, 0, 0, 0x31, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0x43 .rodata:0005C7E0 DCB 0, 0, 0, 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44 .rodata:0005C7E0 DCB 0, 0, 0, 0x43, 0, 0, 0, 0x33, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x44, 0, 0, 0, 0x43, 0, 0, 0, 0x34, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x41 .rodata:0005C7E0 DCB 0, 0, 0, 0x4B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0x59, 0, 0, 0, 0x4E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x45, 0, 0, 0, 0x54, 0, 0, 0, 0x42, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43, 0, 0, 0, 0x41 .rodata:0005C7E0 DCB 0, 0, 0, 0x4E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x45 .rodata:0005C7E0 DCB 0, 0, 0, 0x4D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0x55, 0, 0, 0, 0x42, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x45, 0, 0, 0, 0x53, 0, 0, 0, 0x43, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x46, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x47, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x52, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x55, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53, 0, 0, 0, 0x50 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0x45 .rodata:0005C7E0 DCB 0, 0, 0, 0x4C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x4C .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x32, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x33, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x34 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x35, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x36, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x37 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x38, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x39, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31 .rodata:0005C7E0 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x31, 0 .rodata:0005C7E0 DCB 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x29, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0 .rodata:0005C7E0 DCB 0, 0, 0x33, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x34, 0, 0 .rodata:0005C7E0 DCB 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0 .rodata:0005C7E0 DCB 0, 0, 0x31, 0, 0, 0, 0x35, 0, 0, 0, 0x29, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0 .rodata:0005C7E0 DCB 0, 0x36, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x37, 0, 0, 0 .rodata:0005C7E0 DCB 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0 .rodata:0005C7E0 DCB 0, 0x31, 0, 0, 0, 0x38, 0, 0, 0, 0x29, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0 .rodata:0005C7E0 DCB 0x39, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0x28, 0, 0, 0, 0x32, 0, 0, 0, 0x30, 0, 0, 0, 0x29 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x32, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x33, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x34 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x35, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x36, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x37 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x38, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x39, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31 .rodata:0005C7E0 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x31, 0 .rodata:0005C7E0 DCB 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x29, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0 .rodata:0005C7E0 DCB 0, 0, 0x33, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x34, 0, 0 .rodata:0005C7E0 DCB 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0 .rodata:0005C7E0 DCB 0, 0, 0x31, 0, 0, 0, 0x35, 0, 0, 0, 0x29, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0 .rodata:0005C7E0 DCB 0, 0x36, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x37, 0, 0, 0 .rodata:0005C7E0 DCB 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0 .rodata:0005C7E0 DCB 0, 0x31, 0, 0, 0, 0x38, 0, 0, 0, 0x29, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0 .rodata:0005C7E0 DCB 0x39, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0x28, 0, 0, 0, 0x32, 0, 0, 0, 0x30, 0, 0, 0, 0x29 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x32, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x33, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x34, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x35, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x36, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x37, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x38, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x39, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x30 .rodata:0005C7E0 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31 .rodata:0005C7E0 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x2E, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x33 .rodata:0005C7E0 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31 .rodata:0005C7E0 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x31, 0, 0, 0, 0x35, 0, 0, 0, 0x2E, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x36 .rodata:0005C7E0 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31 .rodata:0005C7E0 DCB 0, 0, 0, 0x37, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x31, 0, 0, 0, 0x38, 0, 0, 0, 0x2E, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x39 .rodata:0005C7E0 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x32 .rodata:0005C7E0 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x61, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x62 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x63, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x64, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x65 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x66, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x67, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x68 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x69, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6A, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6B .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6D, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6E .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x6F, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x70, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x71 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x72, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x73, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x74 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x75, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x76, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x77 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x78, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x79, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x7A .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x41, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x42, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x43 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x44, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x45, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x46 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x47, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x48, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x49 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x4A, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x4B, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x4C .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x4D, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x4E, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x4F .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x50, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x51, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x52 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x53, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x54, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x55 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x56, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x57, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x58 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x59, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x5A, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x61 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x62, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x63, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x64 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x65, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x66, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x67 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x68, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x69, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6A .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x6B, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6C, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6D .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x6E, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6F, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x70 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x71, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x72, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x73 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x74, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x75, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x76 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x77, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x78, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x79 .rodata:0005C7E0 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x30, 0, 0, 0, 0x29, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x7C, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6F .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x68, 0, 0, 0, 0x50, 0, 0, 0 .rodata:0005C7E0 DCB 0x61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x64, 0, 0 .rodata:0005C7E0 DCB 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x41, 0 .rodata:0005C7E0 DCB 0, 0, 0x55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x62 .rodata:0005C7E0 DCB 0, 0, 0, 0x61, 0, 0, 0, 0x72, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x6F, 0, 0, 0, 0x56, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x63, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x41, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x41, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x41, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x41, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x41 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4B, 0, 0, 0, 0x42 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0x42 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x47, 0, 0, 0, 0x42 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x61 .rodata:0005C7E0 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B .rodata:0005C7E0 DCB 0, 0, 0, 0x63, 0, 0, 0, 0x61, 0, 0, 0, 0x6C, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x46, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x46 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x46 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x67 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x67 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x67 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0x7A .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x48 .rodata:0005C7E0 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D .rodata:0005C7E0 DCB 0, 0, 0, 0x48, 0, 0, 0, 0x7A, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x47, 0, 0, 0, 0x48, 0, 0, 0, 0x7A, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x54, 0, 0, 0, 0x48 .rodata:0005C7E0 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75 .rodata:0005C7E0 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C7E0 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x64 .rodata:0005C7E0 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B .rodata:0005C7E0 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66 .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75 .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63 .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0, 0, 0x32, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x6D, 0 .rodata:0005C7E0 DCB 0, 0, 0x5E, 0, 0, 0, 0x32, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0, 0, 0x32, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x6D, 0 .rodata:0005C7E0 DCB 0, 0, 0x5E, 0, 0, 0, 0x32, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0 .rodata:0005C7E0 DCB 0, 0x33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63, 0 .rodata:0005C7E0 DCB 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0, 0, 0x33, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0 .rodata:0005C7E0 DCB 0, 0x33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0 .rodata:0005C7E0 DCB 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0, 0, 0x33, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x2F, 0, 0 .rodata:0005C7E0 DCB 0, 0x73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0 .rodata:0005C7E0 DCB 0, 0, 0x2F, 0, 0, 0, 0x73, 0, 0, 0, 0x5E, 0, 0, 0 .rodata:0005C7E0 DCB 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0 .rodata:0005C7E0 DCB 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0 .rodata:0005C7E0 DCB 0, 0, 0x50, 0, 0, 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x4D, 0, 0, 0, 0x50, 0, 0, 0, 0x61, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x47, 0, 0, 0, 0x50, 0 .rodata:0005C7E0 DCB 0, 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x72 .rodata:0005C7E0 DCB 0, 0, 0, 0x61, 0, 0, 0, 0x64, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x72, 0, 0, 0, 0x61, 0, 0, 0, 0x64, 0 .rodata:0005C7E0 DCB 0, 0, 0x2F, 0, 0, 0, 0x73, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x72, 0, 0, 0, 0x61, 0, 0, 0, 0x64, 0, 0 .rodata:0005C7E0 DCB 0, 0x2F, 0, 0, 0, 0x73, 0, 0, 0, 0x5E, 0, 0, 0, 0x32 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x73 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x73 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x73 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x73 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x56 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x56 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x56 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x56 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x56 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0x56 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x57 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x57 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x57 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x57 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x57 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0x57 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x61, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x42, 0, 0, 0, 0x71, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x63, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x64, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x43, 0, 0, 0, 0x2F, 0, 0, 0 .rodata:0005C7E0 DCB 0x6B, 0, 0, 0, 0x67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0x43, 0, 0, 0, 0x6F, 0, 0, 0, 0x2E, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x64, 0, 0, 0, 0x42, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x47, 0, 0, 0, 0x79, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x68, 0, 0, 0, 0x61, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0x50 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x6E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4B, 0, 0, 0, 0x4B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4B, 0, 0, 0, 0x4D .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x74 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0x6D .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0x6E .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0x6F .rodata:0005C7E0 DCB 0, 0, 0, 0x67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C .rodata:0005C7E0 DCB 0, 0, 0, 0x78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C7E0 DCB 0, 0, 0, 0x62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C7E0 DCB 0, 0, 0, 0x69, 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x6F, 0, 0, 0, 0x6C, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0, 0x48 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x2E .rodata:0005C7E0 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x50, 0, 0, 0, 0x50, 0, 0, 0, 0x4D, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0, 0x52 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x73, 0, 0, 0, 0x72 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53, 0, 0, 0, 0x76 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x57, 0, 0, 0, 0x62 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66, 0, 0, 0, 0x66 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66, 0, 0, 0, 0x69 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66, 0, 0, 0, 0x6C .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66, 0, 0, 0, 0x66 .rodata:0005C7E0 DCB 0, 0, 0, 0x69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66 .rodata:0005C7E0 DCB 0, 0, 0, 0x66, 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0x5F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0x2C, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3A, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x3F, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x29, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x7B, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x7D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x23 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x26, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x2A, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x3D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5C .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x24, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x25, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x21, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x23 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x24, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x25, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x27 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x2A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2C, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2F .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x33 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x34, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x35, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x37 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x38, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x39, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x3A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x3D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3F .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x40, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x41, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x45, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x47 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x4A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4C, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x4E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4F .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x51, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x54, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x55, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x57 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x58, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x59, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x5A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5C, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x5D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x5E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x60, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x64, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x65, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x67 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x68, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x6A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x6E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6F .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x71, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x73 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x74, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x77 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x79, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7B .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7C, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0, 0, 0, 0, 0x7D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C7E0 DCB 0, 0, 0, 0x7E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC EXPORT _nl_C_LC_CTYPE_class .rodata:0005EDDC _nl_C_LC_CTYPE_class DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC ; DATA XREF: .rodata:00060614o .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0 .rodata:0005EDDC DCB 2, 0, 3, 0x20, 2, 0x20, 2, 0x20, 2, 0x20, 2, 0x20 .rodata:0005EDDC DCB 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2 .rodata:0005EDDC DCB 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0 .rodata:0005EDDC DCB 2, 0, 1, 0x60, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005EDDC DCB 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005EDDC DCB 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 8, 0xD8 .rodata:0005EDDC DCB 8, 0xD8, 8, 0xD8, 8, 0xD8, 8, 0xD8, 8, 0xD8, 8, 0xD8 .rodata:0005EDDC DCB 8, 0xD8, 8, 0xD8, 8, 0xD8, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005EDDC DCB 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 8, 0xD5, 8, 0xD5 .rodata:0005EDDC DCB 8, 0xD5, 8, 0xD5, 8, 0xD5, 8, 0xD5, 8, 0xC5, 8, 0xC5 .rodata:0005EDDC DCB 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5 .rodata:0005EDDC DCB 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5 .rodata:0005EDDC DCB 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5 .rodata:0005EDDC DCB 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005EDDC DCB 8, 0xD6, 8, 0xD6, 8, 0xD6, 8, 0xD6, 8, 0xD6, 8, 0xD6 .rodata:0005EDDC DCB 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6 .rodata:0005EDDC DCB 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6 .rodata:0005EDDC DCB 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6 .rodata:0005EDDC DCB 8, 0xC6, 8, 0xC6, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005EDDC DCB 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EDDC DCB 0, 0, 0 .rodata:0005F0DC EXPORT _nl_C_LC_CTYPE_class32 .rodata:0005F0DC _nl_C_LC_CTYPE_class32 DCB 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0 .rodata:0005F0DC ; DATA XREF: .rodata:00060628o .rodata:0005F0DC DCB 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 .rodata:0005F0DC DCB 2, 0, 0, 0, 3, 0x20, 0, 0, 2, 0x20, 0, 0, 2, 0x20 .rodata:0005F0DC DCB 0, 0, 2, 0x20, 0, 0, 2, 0x20, 0, 0, 2, 0, 0, 0, 2 .rodata:0005F0DC DCB 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0 .rodata:0005F0DC DCB 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0 .rodata:0005F0DC DCB 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 .rodata:0005F0DC DCB 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1 .rodata:0005F0DC DCB 0x60, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0 .rodata:0005F0DC DCB 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0 .rodata:0005F0DC DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0 .rodata:0005F0DC DCB 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0 .rodata:0005F0DC DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 8, 0xD8, 0, 0, 8, 0xD8 .rodata:0005F0DC DCB 0, 0, 8, 0xD8, 0, 0, 8, 0xD8, 0, 0, 8, 0xD8, 0, 0 .rodata:0005F0DC DCB 8, 0xD8, 0, 0, 8, 0xD8, 0, 0, 8, 0xD8, 0, 0, 8, 0xD8 .rodata:0005F0DC DCB 0, 0, 8, 0xD8, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0 .rodata:0005F0DC DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0 .rodata:0005F0DC DCB 0, 0, 4, 0xC0, 0, 0, 8, 0xD5, 0, 0, 8, 0xD5, 0, 0 .rodata:0005F0DC DCB 8, 0xD5, 0, 0, 8, 0xD5, 0, 0, 8, 0xD5, 0, 0, 8, 0xD5 .rodata:0005F0DC DCB 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0 .rodata:0005F0DC DCB 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5 .rodata:0005F0DC DCB 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0 .rodata:0005F0DC DCB 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5 .rodata:0005F0DC DCB 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0 .rodata:0005F0DC DCB 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 4, 0xC0 .rodata:0005F0DC DCB 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0 .rodata:0005F0DC DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 8, 0xD6, 0, 0, 8, 0xD6 .rodata:0005F0DC DCB 0, 0, 8, 0xD6, 0, 0, 8, 0xD6, 0, 0, 8, 0xD6, 0, 0 .rodata:0005F0DC DCB 8, 0xD6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6 .rodata:0005F0DC DCB 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0 .rodata:0005F0DC DCB 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6 .rodata:0005F0DC DCB 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0 .rodata:0005F0DC DCB 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6 .rodata:0005F0DC DCB 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0 .rodata:0005F0DC DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0 .rodata:0005F0DC DCB 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005F0DC DCB 0, 0, 0, 0, 0, 0 .rodata:0005F4DC EXPORT _nl_C_LC_CTYPE_toupper .rodata:0005F4DC _nl_C_LC_CTYPE_toupper DCB 0x80, 0, 0, 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83 .rodata:0005F4DC ; DATA XREF: .rodata:00060618o .rodata:0005F4DC DCB 0, 0, 0, 0x84, 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0 .rodata:0005F4DC DCB 0, 0x87, 0, 0, 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A .rodata:0005F4DC DCB 0, 0, 0, 0x8B, 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0 .rodata:0005F4DC DCB 0, 0x8E, 0, 0, 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91 .rodata:0005F4DC DCB 0, 0, 0, 0x92, 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0 .rodata:0005F4DC DCB 0, 0x95, 0, 0, 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98 .rodata:0005F4DC DCB 0, 0, 0, 0x99, 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0 .rodata:0005F4DC DCB 0, 0x9C, 0, 0, 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F .rodata:0005F4DC DCB 0, 0, 0, 0xA0, 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0 .rodata:0005F4DC DCB 0, 0xA3, 0, 0, 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6 .rodata:0005F4DC DCB 0, 0, 0, 0xA7, 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0 .rodata:0005F4DC DCB 0, 0xAA, 0, 0, 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD .rodata:0005F4DC DCB 0, 0, 0, 0xAE, 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0 .rodata:0005F4DC DCB 0, 0xB1, 0, 0, 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4 .rodata:0005F4DC DCB 0, 0, 0, 0xB5, 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0 .rodata:0005F4DC DCB 0, 0xB8, 0, 0, 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB .rodata:0005F4DC DCB 0, 0, 0, 0xBC, 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0 .rodata:0005F4DC DCB 0, 0xBF, 0, 0, 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2 .rodata:0005F4DC DCB 0, 0, 0, 0xC3, 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0 .rodata:0005F4DC DCB 0, 0xC6, 0, 0, 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9 .rodata:0005F4DC DCB 0, 0, 0, 0xCA, 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0 .rodata:0005F4DC DCB 0, 0xCD, 0, 0, 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0 .rodata:0005F4DC DCB 0, 0, 0, 0xD1, 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0 .rodata:0005F4DC DCB 0, 0xD4, 0, 0, 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7 .rodata:0005F4DC DCB 0, 0, 0, 0xD8, 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0 .rodata:0005F4DC DCB 0, 0xDB, 0, 0, 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE .rodata:0005F4DC DCB 0, 0, 0, 0xDF, 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0 .rodata:0005F4DC DCB 0, 0xE2, 0, 0, 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5 .rodata:0005F4DC DCB 0, 0, 0, 0xE6, 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0 .rodata:0005F4DC DCB 0, 0xE9, 0, 0, 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC .rodata:0005F4DC DCB 0, 0, 0, 0xED, 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0 .rodata:0005F4DC DCB 0, 0xF0, 0, 0, 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3 .rodata:0005F4DC DCB 0, 0, 0, 0xF4, 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0 .rodata:0005F4DC DCB 0, 0xF7, 0, 0, 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA .rodata:0005F4DC DCB 0, 0, 0, 0xFB, 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0 .rodata:0005F4DC DCB 0, 0xFE, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0 .rodata:0005F4DC DCB 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0 .rodata:0005F4DC DCB 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9 .rodata:0005F4DC DCB 0, 0, 0, 0xA, 0, 0, 0, 0xB, 0, 0, 0, 0xC, 0, 0, 0 .rodata:0005F4DC DCB 0xD, 0, 0, 0, 0xE, 0, 0, 0, 0xF, 0, 0, 0, 0x10, 0 .rodata:0005F4DC DCB 0, 0, 0x11, 0, 0, 0, 0x12, 0, 0, 0, 0x13, 0, 0, 0 .rodata:0005F4DC DCB 0x14, 0, 0, 0, 0x15, 0, 0, 0, 0x16, 0, 0, 0, 0x17 .rodata:0005F4DC DCB 0, 0, 0, 0x18, 0, 0, 0, 0x19, 0, 0, 0, 0x1A, 0, 0 .rodata:0005F4DC DCB 0, 0x1B, 0, 0, 0, 0x1C, 0, 0, 0, 0x1D, 0, 0, 0, 0x1E .rodata:0005F4DC DCB 0, 0, 0, 0x1F, 0, 0, 0, 0x20, 0, 0, 0, 0x21, 0, 0 .rodata:0005F4DC DCB 0, 0x22, 0, 0, 0, 0x23, 0, 0, 0, 0x24, 0, 0, 0, 0x25 .rodata:0005F4DC DCB 0, 0, 0, 0x26, 0, 0, 0, 0x27, 0, 0, 0, 0x28, 0, 0 .rodata:0005F4DC DCB 0, 0x29, 0, 0, 0, 0x2A, 0, 0, 0, 0x2B, 0, 0, 0, 0x2C .rodata:0005F4DC DCB 0, 0, 0, 0x2D, 0, 0, 0, 0x2E, 0, 0, 0, 0x2F, 0, 0 .rodata:0005F4DC DCB 0, 0x30, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33 .rodata:0005F4DC DCB 0, 0, 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0 .rodata:0005F4DC DCB 0, 0x37, 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x3A .rodata:0005F4DC DCB 0, 0, 0, 0x3B, 0, 0, 0, 0x3C, 0, 0, 0, 0x3D, 0, 0 .rodata:0005F4DC DCB 0, 0x3E, 0, 0, 0, 0x3F, 0, 0, 0, 0x40, 0, 0, 0, 0x41 .rodata:0005F4DC DCB 0, 0, 0, 0x42, 0, 0, 0, 0x43, 0, 0, 0, 0x44, 0, 0 .rodata:0005F4DC DCB 0, 0x45, 0, 0, 0, 0x46, 0, 0, 0, 0x47, 0, 0, 0, 0x48 .rodata:0005F4DC DCB 0, 0, 0, 0x49, 0, 0, 0, 0x4A, 0, 0, 0, 0x4B, 0, 0 .rodata:0005F4DC DCB 0, 0x4C, 0, 0, 0, 0x4D, 0, 0, 0, 0x4E, 0, 0, 0, 0x4F .rodata:0005F4DC DCB 0, 0, 0, 0x50, 0, 0, 0, 0x51, 0, 0, 0, 0x52, 0, 0 .rodata:0005F4DC DCB 0, 0x53, 0, 0, 0, 0x54, 0, 0, 0, 0x55, 0, 0, 0, 0x56 .rodata:0005F4DC DCB 0, 0, 0, 0x57, 0, 0, 0, 0x58, 0, 0, 0, 0x59, 0, 0 .rodata:0005F4DC DCB 0, 0x5A, 0, 0, 0, 0x5B, 0, 0, 0, 0x5C, 0, 0, 0, 0x5D .rodata:0005F4DC DCB 0, 0, 0, 0x5E, 0, 0, 0, 0x5F, 0, 0, 0, 0x60, 0, 0 .rodata:0005F4DC DCB 0, 0x41, 0, 0, 0, 0x42, 0, 0, 0, 0x43, 0, 0, 0, 0x44 .rodata:0005F4DC DCB 0, 0, 0, 0x45, 0, 0, 0, 0x46, 0, 0, 0, 0x47, 0, 0 .rodata:0005F4DC DCB 0, 0x48, 0, 0, 0, 0x49, 0, 0, 0, 0x4A, 0, 0, 0, 0x4B .rodata:0005F4DC DCB 0, 0, 0, 0x4C, 0, 0, 0, 0x4D, 0, 0, 0, 0x4E, 0, 0 .rodata:0005F4DC DCB 0, 0x4F, 0, 0, 0, 0x50, 0, 0, 0, 0x51, 0, 0, 0, 0x52 .rodata:0005F4DC DCB 0, 0, 0, 0x53, 0, 0, 0, 0x54, 0, 0, 0, 0x55, 0, 0 .rodata:0005F4DC DCB 0, 0x56, 0, 0, 0, 0x57, 0, 0, 0, 0x58, 0, 0, 0, 0x59 .rodata:0005F4DC DCB 0, 0, 0, 0x5A, 0, 0, 0, 0x7B, 0, 0, 0, 0x7C, 0, 0 .rodata:0005F4DC DCB 0, 0x7D, 0, 0, 0, 0x7E, 0, 0, 0, 0x7F, 0, 0, 0, 0x80 .rodata:0005F4DC DCB 0, 0, 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83, 0, 0 .rodata:0005F4DC DCB 0, 0x84, 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0, 0, 0x87 .rodata:0005F4DC DCB 0, 0, 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A, 0, 0 .rodata:0005F4DC DCB 0, 0x8B, 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0, 0, 0x8E .rodata:0005F4DC DCB 0, 0, 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91, 0, 0 .rodata:0005F4DC DCB 0, 0x92, 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0, 0, 0x95 .rodata:0005F4DC DCB 0, 0, 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98, 0, 0 .rodata:0005F4DC DCB 0, 0x99, 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0, 0, 0x9C .rodata:0005F4DC DCB 0, 0, 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F, 0, 0 .rodata:0005F4DC DCB 0, 0xA0, 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0, 0, 0xA3 .rodata:0005F4DC DCB 0, 0, 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6, 0, 0 .rodata:0005F4DC DCB 0, 0xA7, 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0, 0, 0xAA .rodata:0005F4DC DCB 0, 0, 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD, 0, 0 .rodata:0005F4DC DCB 0, 0xAE, 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0, 0, 0xB1 .rodata:0005F4DC DCB 0, 0, 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4, 0, 0 .rodata:0005F4DC DCB 0, 0xB5, 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0, 0, 0xB8 .rodata:0005F4DC DCB 0, 0, 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB, 0, 0 .rodata:0005F4DC DCB 0, 0xBC, 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0, 0, 0xBF .rodata:0005F4DC DCB 0, 0, 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2, 0, 0 .rodata:0005F4DC DCB 0, 0xC3, 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0, 0, 0xC6 .rodata:0005F4DC DCB 0, 0, 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9, 0, 0 .rodata:0005F4DC DCB 0, 0xCA, 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0, 0, 0xCD .rodata:0005F4DC DCB 0, 0, 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0, 0, 0 .rodata:0005F4DC DCB 0, 0xD1, 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0, 0, 0xD4 .rodata:0005F4DC DCB 0, 0, 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7, 0, 0 .rodata:0005F4DC DCB 0, 0xD8, 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0, 0, 0xDB .rodata:0005F4DC DCB 0, 0, 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE, 0, 0 .rodata:0005F4DC DCB 0, 0xDF, 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0, 0, 0xE2 .rodata:0005F4DC DCB 0, 0, 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5, 0, 0 .rodata:0005F4DC DCB 0, 0xE6, 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0, 0, 0xE9 .rodata:0005F4DC DCB 0, 0, 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC, 0, 0 .rodata:0005F4DC DCB 0, 0xED, 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0, 0, 0xF0 .rodata:0005F4DC DCB 0, 0, 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3, 0, 0 .rodata:0005F4DC DCB 0, 0xF4, 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0, 0, 0xF7 .rodata:0005F4DC DCB 0, 0, 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA, 0, 0 .rodata:0005F4DC DCB 0, 0xFB, 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0, 0, 0xFE .rodata:0005F4DC DCB 0, 0, 0, 0xFF, 0, 0, 0 .rodata:0005FADC EXPORT _nl_C_LC_CTYPE_tolower .rodata:0005FADC _nl_C_LC_CTYPE_tolower DCB 0x80, 0, 0, 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83 .rodata:0005FADC ; DATA XREF: .rodata:00060620o .rodata:0005FADC DCB 0, 0, 0, 0x84, 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0 .rodata:0005FADC DCB 0, 0x87, 0, 0, 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A .rodata:0005FADC DCB 0, 0, 0, 0x8B, 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0 .rodata:0005FADC DCB 0, 0x8E, 0, 0, 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91 .rodata:0005FADC DCB 0, 0, 0, 0x92, 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0 .rodata:0005FADC DCB 0, 0x95, 0, 0, 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98 .rodata:0005FADC DCB 0, 0, 0, 0x99, 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0 .rodata:0005FADC DCB 0, 0x9C, 0, 0, 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F .rodata:0005FADC DCB 0, 0, 0, 0xA0, 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0 .rodata:0005FADC DCB 0, 0xA3, 0, 0, 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6 .rodata:0005FADC DCB 0, 0, 0, 0xA7, 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0 .rodata:0005FADC DCB 0, 0xAA, 0, 0, 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD .rodata:0005FADC DCB 0, 0, 0, 0xAE, 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0 .rodata:0005FADC DCB 0, 0xB1, 0, 0, 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4 .rodata:0005FADC DCB 0, 0, 0, 0xB5, 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0 .rodata:0005FADC DCB 0, 0xB8, 0, 0, 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB .rodata:0005FADC DCB 0, 0, 0, 0xBC, 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0 .rodata:0005FADC DCB 0, 0xBF, 0, 0, 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2 .rodata:0005FADC DCB 0, 0, 0, 0xC3, 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0 .rodata:0005FADC DCB 0, 0xC6, 0, 0, 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9 .rodata:0005FADC DCB 0, 0, 0, 0xCA, 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0 .rodata:0005FADC DCB 0, 0xCD, 0, 0, 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0 .rodata:0005FADC DCB 0, 0, 0, 0xD1, 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0 .rodata:0005FADC DCB 0, 0xD4, 0, 0, 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7 .rodata:0005FADC DCB 0, 0, 0, 0xD8, 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0 .rodata:0005FADC DCB 0, 0xDB, 0, 0, 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE .rodata:0005FADC DCB 0, 0, 0, 0xDF, 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0 .rodata:0005FADC DCB 0, 0xE2, 0, 0, 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5 .rodata:0005FADC DCB 0, 0, 0, 0xE6, 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0 .rodata:0005FADC DCB 0, 0xE9, 0, 0, 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC .rodata:0005FADC DCB 0, 0, 0, 0xED, 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0 .rodata:0005FADC DCB 0, 0xF0, 0, 0, 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3 .rodata:0005FADC DCB 0, 0, 0, 0xF4, 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0 .rodata:0005FADC DCB 0, 0xF7, 0, 0, 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA .rodata:0005FADC DCB 0, 0, 0, 0xFB, 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0 .rodata:0005FADC DCB 0, 0xFE, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0 .rodata:0005FADC DCB 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0 .rodata:0005FADC DCB 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9 .rodata:0005FADC DCB 0, 0, 0, 0xA, 0, 0, 0, 0xB, 0, 0, 0, 0xC, 0, 0, 0 .rodata:0005FADC DCB 0xD, 0, 0, 0, 0xE, 0, 0, 0, 0xF, 0, 0, 0, 0x10, 0 .rodata:0005FADC DCB 0, 0, 0x11, 0, 0, 0, 0x12, 0, 0, 0, 0x13, 0, 0, 0 .rodata:0005FADC DCB 0x14, 0, 0, 0, 0x15, 0, 0, 0, 0x16, 0, 0, 0, 0x17 .rodata:0005FADC DCB 0, 0, 0, 0x18, 0, 0, 0, 0x19, 0, 0, 0, 0x1A, 0, 0 .rodata:0005FADC DCB 0, 0x1B, 0, 0, 0, 0x1C, 0, 0, 0, 0x1D, 0, 0, 0, 0x1E .rodata:0005FADC DCB 0, 0, 0, 0x1F, 0, 0, 0, 0x20, 0, 0, 0, 0x21, 0, 0 .rodata:0005FADC DCB 0, 0x22, 0, 0, 0, 0x23, 0, 0, 0, 0x24, 0, 0, 0, 0x25 .rodata:0005FADC DCB 0, 0, 0, 0x26, 0, 0, 0, 0x27, 0, 0, 0, 0x28, 0, 0 .rodata:0005FADC DCB 0, 0x29, 0, 0, 0, 0x2A, 0, 0, 0, 0x2B, 0, 0, 0, 0x2C .rodata:0005FADC DCB 0, 0, 0, 0x2D, 0, 0, 0, 0x2E, 0, 0, 0, 0x2F, 0, 0 .rodata:0005FADC DCB 0, 0x30, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33 .rodata:0005FADC DCB 0, 0, 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0 .rodata:0005FADC DCB 0, 0x37, 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x3A .rodata:0005FADC DCB 0, 0, 0, 0x3B, 0, 0, 0, 0x3C, 0, 0, 0, 0x3D, 0, 0 .rodata:0005FADC DCB 0, 0x3E, 0, 0, 0, 0x3F, 0, 0, 0, 0x40, 0, 0, 0, 0x61 .rodata:0005FADC DCB 0, 0, 0, 0x62, 0, 0, 0, 0x63, 0, 0, 0, 0x64, 0, 0 .rodata:0005FADC DCB 0, 0x65, 0, 0, 0, 0x66, 0, 0, 0, 0x67, 0, 0, 0, 0x68 .rodata:0005FADC DCB 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0, 0, 0, 0x6B, 0, 0 .rodata:0005FADC DCB 0, 0x6C, 0, 0, 0, 0x6D, 0, 0, 0, 0x6E, 0, 0, 0, 0x6F .rodata:0005FADC DCB 0, 0, 0, 0x70, 0, 0, 0, 0x71, 0, 0, 0, 0x72, 0, 0 .rodata:0005FADC DCB 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0x75, 0, 0, 0, 0x76 .rodata:0005FADC DCB 0, 0, 0, 0x77, 0, 0, 0, 0x78, 0, 0, 0, 0x79, 0, 0 .rodata:0005FADC DCB 0, 0x7A, 0, 0, 0, 0x5B, 0, 0, 0, 0x5C, 0, 0, 0, 0x5D .rodata:0005FADC DCB 0, 0, 0, 0x5E, 0, 0, 0, 0x5F, 0, 0, 0, 0x60, 0, 0 .rodata:0005FADC DCB 0, 0x61, 0, 0, 0, 0x62, 0, 0, 0, 0x63, 0, 0, 0, 0x64 .rodata:0005FADC DCB 0, 0, 0, 0x65, 0, 0, 0, 0x66, 0, 0, 0, 0x67, 0, 0 .rodata:0005FADC DCB 0, 0x68, 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0, 0, 0, 0x6B .rodata:0005FADC DCB 0, 0, 0, 0x6C, 0, 0, 0, 0x6D, 0, 0, 0, 0x6E, 0, 0 .rodata:0005FADC DCB 0, 0x6F, 0, 0, 0, 0x70, 0, 0, 0, 0x71, 0, 0, 0, 0x72 .rodata:0005FADC DCB 0, 0, 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0x75, 0, 0 .rodata:0005FADC DCB 0, 0x76, 0, 0, 0, 0x77, 0, 0, 0, 0x78, 0, 0, 0, 0x79 .rodata:0005FADC DCB 0, 0, 0, 0x7A, 0, 0, 0, 0x7B, 0, 0, 0, 0x7C, 0, 0 .rodata:0005FADC DCB 0, 0x7D, 0, 0, 0, 0x7E, 0, 0, 0, 0x7F, 0, 0, 0, 0x80 .rodata:0005FADC DCB 0, 0, 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83, 0, 0 .rodata:0005FADC DCB 0, 0x84, 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0, 0, 0x87 .rodata:0005FADC DCB 0, 0, 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A, 0, 0 .rodata:0005FADC DCB 0, 0x8B, 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0, 0, 0x8E .rodata:0005FADC DCB 0, 0, 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91, 0, 0 .rodata:0005FADC DCB 0, 0x92, 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0, 0, 0x95 .rodata:0005FADC DCB 0, 0, 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98, 0, 0 .rodata:0005FADC DCB 0, 0x99, 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0, 0, 0x9C .rodata:0005FADC DCB 0, 0, 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F, 0, 0 .rodata:0005FADC DCB 0, 0xA0, 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0, 0, 0xA3 .rodata:0005FADC DCB 0, 0, 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6, 0, 0 .rodata:0005FADC DCB 0, 0xA7, 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0, 0, 0xAA .rodata:0005FADC DCB 0, 0, 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD, 0, 0 .rodata:0005FADC DCB 0, 0xAE, 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0, 0, 0xB1 .rodata:0005FADC DCB 0, 0, 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4, 0, 0 .rodata:0005FADC DCB 0, 0xB5, 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0, 0, 0xB8 .rodata:0005FADC DCB 0, 0, 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB, 0, 0 .rodata:0005FADC DCB 0, 0xBC, 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0, 0, 0xBF .rodata:0005FADC DCB 0, 0, 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2, 0, 0 .rodata:0005FADC DCB 0, 0xC3, 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0, 0, 0xC6 .rodata:0005FADC DCB 0, 0, 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9, 0, 0 .rodata:0005FADC DCB 0, 0xCA, 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0, 0, 0xCD .rodata:0005FADC DCB 0, 0, 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0, 0, 0 .rodata:0005FADC DCB 0, 0xD1, 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0, 0, 0xD4 .rodata:0005FADC DCB 0, 0, 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7, 0, 0 .rodata:0005FADC DCB 0, 0xD8, 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0, 0, 0xDB .rodata:0005FADC DCB 0, 0, 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE, 0, 0 .rodata:0005FADC DCB 0, 0xDF, 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0, 0, 0xE2 .rodata:0005FADC DCB 0, 0, 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5, 0, 0 .rodata:0005FADC DCB 0, 0xE6, 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0, 0, 0xE9 .rodata:0005FADC DCB 0, 0, 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC, 0, 0 .rodata:0005FADC DCB 0, 0xED, 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0, 0, 0xF0 .rodata:0005FADC DCB 0, 0, 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3, 0, 0 .rodata:0005FADC DCB 0, 0xF4, 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0, 0, 0xF7 .rodata:0005FADC DCB 0, 0, 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA, 0, 0 .rodata:0005FADC DCB 0, 0xFB, 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0, 0, 0xFE .rodata:0005FADC DCB 0, 0, 0, 0xFF, 0, 0, 0 .rodata:000600DC EXPORT _nl_C_LC_CTYPE_class_upper .rodata:000600DC _nl_C_LC_CTYPE_class_upper DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 7, 0, 0 .rodata:000600DC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000600DC DCB 0, 7, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0 .rodata:000600DC DCB 1, 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0 .rodata:000600DC DCB 0, 0xFE, 0xFF, 0xFF, 7, 0, 0, 0, 0 .rodata:00060124 EXPORT _nl_C_LC_CTYPE_class_lower .rodata:00060124 _nl_C_LC_CTYPE_class_lower DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFE, 0xFF, 0xFF .rodata:00060124 DCB 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060124 DCB 7, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:00060124 DCB 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0 .rodata:00060124 DCB 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 7 .rodata:0006016C EXPORT _nl_C_LC_CTYPE_class_alpha .rodata:0006016C _nl_C_LC_CTYPE_class_alpha DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 7, 0xFE .rodata:0006016C DCB 0xFF, 0xFF, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0006016C DCB 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1 .rodata:0006016C DCB 0, 0, 0, 1, 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0006016C DCB 0, 0, 0, 0xFE, 0xFF, 0xFF, 7, 0xFE, 0xFF, 0xFF, 7 .rodata:000601B4 EXPORT _nl_C_LC_CTYPE_class_digit .rodata:000601B4 _nl_C_LC_CTYPE_class_digit DCB 0, 0, 0, 0, 0, 0, 0xFF, 3, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000601B4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 .rodata:000601B4 DCB 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0 .rodata:000601B4 DCB 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000601B4 DCB 0, 0xFF, 3 .rodata:000601F8 EXPORT _nl_C_LC_CTYPE_class_xdigit .rodata:000601F8 _nl_C_LC_CTYPE_class_xdigit DCB 0, 0, 0, 0, 0, 0, 0xFF, 3, 0x7E, 0, 0, 0, 0x7E, 0 .rodata:000601F8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000601F8 DCB 0, 7, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0 .rodata:000601F8 DCB 3, 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 0, 0 .rodata:000601F8 DCB 0, 0, 0, 0xFF, 3, 0x7E, 0, 0, 0, 0x7E, 0, 0, 0 .rodata:00060244 EXPORT _nl_C_LC_CTYPE_class_space .rodata:00060244 _nl_C_LC_CTYPE_class_space DCB 0, 0x3E, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060244 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 .rodata:00060244 DCB 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0 .rodata:00060244 DCB 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 0x3E, 0, 0 .rodata:00060244 DCB 1, 0, 0, 0 .rodata:00060288 EXPORT _nl_C_LC_CTYPE_class_print .rodata:00060288 _nl_C_LC_CTYPE_class_print DCB 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .rodata:00060288 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0, 0, 0, 0, 0, 0, 0 .rodata:00060288 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0 .rodata:00060288 DCB 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0 .rodata:00060288 DCB 0x1C, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF .rodata:00060288 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F .rodata:000602D4 EXPORT _nl_C_LC_CTYPE_class_graph .rodata:000602D4 _nl_C_LC_CTYPE_class_graph DCB 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .rodata:000602D4 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0, 0, 0, 0, 0, 0, 0 .rodata:000602D4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0 .rodata:000602D4 DCB 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0 .rodata:000602D4 DCB 0x1C, 0, 0, 0, 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 0xFF .rodata:000602D4 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F .rodata:00060320 EXPORT _nl_C_LC_CTYPE_class_blank .rodata:00060320 _nl_C_LC_CTYPE_class_blank DCB 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060320 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0 .rodata:00060320 DCB 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 .rodata:00060320 DCB 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 2, 0, 0, 1, 0 .rodata:00060320 DCB 0, 0 .rodata:00060364 EXPORT _nl_C_LC_CTYPE_class_cntrl .rodata:00060364 _nl_C_LC_CTYPE_class_cntrl DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060364 DCB 0, 0, 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060364 DCB 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0 .rodata:00060364 DCB 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0xFF .rodata:00060364 DCB 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060364 DCB 0x80 .rodata:000603B0 EXPORT _nl_C_LC_CTYPE_class_punct .rodata:000603B0 _nl_C_LC_CTYPE_class_punct DCB 0, 0, 0, 0, 0xFE, 0xFF, 0, 0xFC, 1, 0, 0, 0xF8, 1 .rodata:000603B0 DCB 0, 0, 0x78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000603B0 DCB 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0 .rodata:000603B0 DCB 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0 .rodata:000603B0 DCB 0, 0, 0, 0xFE, 0xFF, 0, 0xFC, 1, 0, 0, 0xF8, 1, 0 .rodata:000603B0 DCB 0, 0x78 .rodata:000603FC EXPORT _nl_C_LC_CTYPE_class_alnum .rodata:000603FC _nl_C_LC_CTYPE_class_alnum DCB 0, 0, 0, 0, 0, 0, 0xFF, 3, 0xFE, 0xFF, 0xFF, 7, 0xFE .rodata:000603FC DCB 0xFF, 0xFF, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000603FC DCB 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0 .rodata:000603FC DCB 0, 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0 .rodata:000603FC DCB 0, 0, 0, 0, 0, 0, 0xFF, 3, 0xFE, 0xFF, 0xFF, 7, 0xFE .rodata:000603FC DCB 0xFF, 0xFF, 7 .rodata:00060448 EXPORT _nl_C_LC_CTYPE_map_toupper .rodata:00060448 _nl_C_LC_CTYPE_map_toupper DCB 7, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0x1F .rodata:00060448 ; DATA XREF: .rodata:0006075Co .rodata:00060448 DCB 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060448 DCB 0, 0, 0, 0x28, 0, 0, 0, 0, 0, 0, 0, 0xE0, 0xFF, 0xFF .rodata:00060448 DCB 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF .rodata:00060448 DCB 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0 .rodata:00060448 DCB 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF .rodata:00060448 DCB 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF .rodata:00060448 DCB 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF .rodata:00060448 DCB 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0 .rodata:00060448 DCB 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF .rodata:00060448 DCB 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF .rodata:00060448 DCB 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF .rodata:00060448 DCB 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0 .rodata:00060448 DCB 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF .rodata:00060448 DCB 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060448 DCB 0, 0, 0, 0, 0, 0, 0 .rodata:000604F0 EXPORT _nl_C_LC_CTYPE_map_tolower .rodata:000604F0 _nl_C_LC_CTYPE_map_tolower DCB 7, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0x1F .rodata:000604F0 ; DATA XREF: .rodata:00060760o .rodata:000604F0 DCB 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:000604F0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:000604F0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:000604F0 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:000604F0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:000604F0 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:000604F0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:000604F0 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:000604F0 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:000604F0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000604F0 DCB 0, 0, 0, 0 .rodata:00060598 EXPORT _nl_C_LC_CTYPE_width .rodata:00060598 _nl_C_LC_CTYPE_width DCB 7, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0xF .rodata:00060598 ; DATA XREF: .rodata:00060644o .rodata:00060598 DCB 0, 0, 0, 0x18, 0, 0, 0, 0x38, 0, 0, 0, 0, 0, 0, 0 .rodata:00060598 DCB 0x48, 0, 0, 0, 0x48, 0, 0, 0, 0x48, 0, 0, 0, 0x48 .rodata:00060598 DCB 0, 0, 0, 0x48, 0, 0, 0, 0x49, 0, 0, 0, 0, 0xFF, 0xFF .rodata:00060598 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .rodata:00060598 DCB 0xFF, 0xFF, 0xFF, 0xFF, 1, 1, 1, 1, 1, 1, 1, 1, 1 .rodata:00060598 DCB 1, 1, 1, 1, 1, 1, 1, 0xFF, 0, 0, 0 .rodata:000605F4 EXPORT _nl_C_LC_CTYPE .rodata:000605F4 _nl_C_LC_CTYPE DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000605F4 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 1, 0, 0, 0, 0, 0, 0, 0 .rodata:000605F4 DCB 0x54, 0, 0, 0 .rodata:00060614 DCD _nl_C_LC_CTYPE_class .rodata:00060618 DCD _nl_C_LC_CTYPE_toupper .rodata:0006061C ALIGN 0x10 .rodata:00060620 DCD _nl_C_LC_CTYPE_tolower .rodata:00060624 ALIGN 8 .rodata:00060628 DCD _nl_C_LC_CTYPE_class32 .rodata:0006062C DCD 0, 0, 0, 0 .rodata:0006063C DCD aUpper ; "upper" .rodata:00060640 DCD aToupper ; "toupper" .rodata:00060644 DCD _nl_C_LC_CTYPE_width .rodata:00060648 DCD 1, 0x61A78, 0x5F6DC, 0x5FCDC, 0x46, 0x52, 1, 0x607E0 .rodata:00060648 DCD 0x607DC, 0x607D8, 0x607D4, 0x607D0, 0x607CC, 0x607C8 .rodata:00060648 DCD 0x607C4, 0x607C0, 0x607BC, 1, 0x607B4, 0x607AC, 0x607A4 .rodata:00060648 DCD 0x6079C, 0x60794, 0x6078C, 0x60784, 0x6077C, 0x60774 .rodata:00060648 DCD 0x6076C, 0x607E0, 0x607DC, 0x607D8, 0x607D4, 0x607D0 .rodata:00060648 DCD 0x607CC, 0x607C8, 0x607C4, 0x607C0, 0x607BC, 0x30 .rodata:00060648 DCD 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 .rodata:00060648 DCD 0x24E, 0x5A300, 0x5AC38, 0x5BEA8, 0x5C7E0, 1, 0x60764 .rodata:00060648 DCD 0, 0 .rodata:0006072C DCD _nl_C_LC_CTYPE_class_upper+0x20 .rodata:00060730 DCD _nl_C_LC_CTYPE_class_lower+0x20 .rodata:00060734 DCD _nl_C_LC_CTYPE_class_alpha+0x20 .rodata:00060738 DCD _nl_C_LC_CTYPE_class_digit+0x20 .rodata:0006073C DCD _nl_C_LC_CTYPE_class_xdigit+0x20 .rodata:00060740 DCD _nl_C_LC_CTYPE_class_space+0x20 .rodata:00060744 DCD _nl_C_LC_CTYPE_class_print+0x20 .rodata:00060748 DCD _nl_C_LC_CTYPE_class_graph+0x20 .rodata:0006074C DCD _nl_C_LC_CTYPE_class_blank+0x20 .rodata:00060750 DCD _nl_C_LC_CTYPE_class_cntrl+0x20 .rodata:00060754 DCD _nl_C_LC_CTYPE_class_punct+0x20 .rodata:00060758 DCD _nl_C_LC_CTYPE_class_alnum+0x20 .rodata:0006075C DCD _nl_C_LC_CTYPE_map_toupper .rodata:00060760 DCD _nl_C_LC_CTYPE_map_tolower .rodata:00060764 DCD 0x3F, 0 .rodata:0006076C DCD 0x39, 0 .rodata:00060774 DCD 0x38, 0 .rodata:0006077C DCD 0x37, 0 .rodata:00060784 DCD 0x36, 0 .rodata:0006078C DCD 0x35, 0 .rodata:00060794 DCD 0x34, 0 .rodata:0006079C DCD 0x33, 0 .rodata:000607A4 DCD 0x32, 0 .rodata:000607AC DCD 0x31, 0 .rodata:000607B4 DCD 0x30, 0 .rodata:000607BC DCD 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31 .rodata:000607BC DCD 0x30 .rodata:000607E4 aToupper DCB "toupper",0 ; DATA XREF: .rodata:00060640o .rodata:000607EC aTolower DCB "tolower",0 .rodata:000607F4 ALIGN 8 .rodata:000607F8 aUpper DCB "upper",0 ; DATA XREF: .rodata:0006063Co .rodata:000607FE aLower DCB "lower",0 .rodata:00060804 aAlpha DCB "alpha",0 .rodata:0006080A aDigit DCB "digit",0 .rodata:00060810 aXdigit DCB "xdigit",0 .rodata:00060817 aSpace DCB "space",0 .rodata:0006081D aPrint DCB "print",0 .rodata:00060823 aGraph DCB "graph",0 .rodata:00060829 aBlank DCB "blank",0 .rodata:0006082F aCntrl DCB "cntrl",0 .rodata:00060835 aPunct DCB "punct",0 .rodata:0006083B aAlnum DCB "alnum",0 .rodata:00060841 ALIGN 4 .rodata:00060844 EXPORT _nl_C_LC_MESSAGES .rodata:00060844 _nl_C_LC_MESSAGES DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060844 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060844 DCB 5, 0, 0, 0 .rodata:00060864 DCD aYy ; "^[yY]" .rodata:00060868 DCD aNn ; "^[nN]" .rodata:0006086C DCD dword_60878 .rodata:00060870 DCD dword_60878 .rodata:00060874 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00060878 dword_60878 DCD 0 ; DATA XREF: .rodata:0006086Co .rodata:00060878 ; .rodata:00060870o .rodata:0006087C aNn DCB "^[nN]",0 ; DATA XREF: .rodata:00060868o .rodata:00060882 ALIGN 4 .rodata:00060884 aYy DCB "^[yY]",0 ; DATA XREF: .rodata:00060864o .rodata:0006088A ALIGN 4 .rodata:0006088C not_available DCW 0xFF ; DATA XREF: .rodata:000608CCo .rodata:0006088C ; .rodata:000608D0o ... .rodata:0006088E ALIGN 0x10 .rodata:00060890 EXPORT _nl_C_LC_MONETARY .rodata:00060890 _nl_C_LC_MONETARY DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060890 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060890 DCB 0x2E, 0, 0, 0 .rodata:000608B0 DCD dword_60968 .rodata:000608B4 DCD dword_60968 .rodata:000608B8 DCD dword_60968 .rodata:000608BC DCD dword_60968 .rodata:000608C0 DCD dword_60968 .rodata:000608C4 DCD dword_60968 .rodata:000608C8 DCD dword_60968 .rodata:000608CC DCD not_available .rodata:000608D0 DCD not_available .rodata:000608D4 DCD not_available .rodata:000608D8 DCD not_available .rodata:000608DC DCD not_available .rodata:000608E0 DCD not_available .rodata:000608E4 DCD not_available .rodata:000608E8 DCD not_available .rodata:000608EC DCD dword_60968 .rodata:000608F0 DCD not_available .rodata:000608F4 DCD not_available .rodata:000608F8 DCD not_available .rodata:000608FC DCD not_available .rodata:00060900 DCD not_available .rodata:00060904 DCD not_available .rodata:00060908 DCD dword_60968 .rodata:0006090C DCD dword_60968 .rodata:00060910 DCD not_available .rodata:00060914 DCD not_available .rodata:00060918 DCD not_available .rodata:0006091C DCD not_available .rodata:00060920 DCD not_available .rodata:00060924 DCD not_available .rodata:00060928 DCD not_available .rodata:0006092C DCD not_available .rodata:00060930 DCD not_available .rodata:00060934 DCD not_available .rodata:00060938 DCD not_available .rodata:0006093C DCD not_available .rodata:00060940 DCD not_available .rodata:00060944 DCD not_available .rodata:00060948 DCD 0x2775, 0x5F5BEBF, 0x2775, 0x5F5BEBF, 1, 0, 0 .rodata:00060964 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00060968 dword_60968 DCD 0 ; DATA XREF: .rodata:000608B0o .rodata:00060968 ; .rodata:000608B4o ... .rodata:0006096C EXPORT _nl_C_LC_NUMERIC .rodata:0006096C _nl_C_LC_NUMERIC DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0006096C DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0006096C DCB 6, 0, 0, 0 .rodata:0006098C DCD dword_609A8 .rodata:00060990 DCD dword_609A4 .rodata:00060994 DCD dword_609A4 .rodata:00060998 DCD 0x2E, 0 .rodata:000609A0 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:000609A4 dword_609A4 DCD 0 ; DATA XREF: .rodata:00060990o .rodata:000609A4 ; .rodata:00060994o .rodata:000609A8 dword_609A8 DCD 0x2E ; DATA XREF: .rodata:0006098Co .rodata:000609AC EXPORT _nl_C_LC_TIME .rodata:000609AC _nl_C_LC_TIME DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000609AC DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000609AC DCB 0x6F, 0, 0, 0 .rodata:000609CC DCD aSun ; "Sun" .rodata:000609D0 DCD aMon ; "Mon" .rodata:000609D4 DCD aTue ; "Tue" .rodata:000609D8 DCD aWed ; "Wed" .rodata:000609DC DCD aThu ; "Thu" .rodata:000609E0 DCD aFri ; "Fri" .rodata:000609E4 DCD aSat ; "Sat" .rodata:000609E8 DCD aSunday ; "Sunday" .rodata:000609EC DCD aMonday ; "Monday" .rodata:000609F0 DCD aTuesday ; "Tuesday" .rodata:000609F4 DCD aWednesday ; "Wednesday" .rodata:000609F8 DCD aThursday ; "Thursday" .rodata:000609FC DCD aFriday ; "Friday" .rodata:00060A00 DCD aSaturday ; "Saturday" .rodata:00060A04 DCD aJan ; "Jan" .rodata:00060A08 DCD aFeb ; "Feb" .rodata:00060A0C DCD aMar ; "Mar" .rodata:00060A10 DCD aApr ; "Apr" .rodata:00060A14 DCD aMay ; "May" .rodata:00060A18 DCD aJun ; "Jun" .rodata:00060A1C DCD aJul ; "Jul" .rodata:00060A20 DCD aAug ; "Aug" .rodata:00060A24 DCD aSep ; "Sep" .rodata:00060A28 DCD aOct ; "Oct" .rodata:00060A2C DCD aNov ; "Nov" .rodata:00060A30 DCD aDec ; "Dec" .rodata:00060A34 DCD aJanuary ; "January" .rodata:00060A38 DCD aFebruary ; "February" .rodata:00060A3C DCD aMarch ; "March" .rodata:00060A40 DCD aApril ; "April" .rodata:00060A44 DCD aMay ; "May" .rodata:00060A48 DCD aJune ; "June" .rodata:00060A4C DCD aJuly ; "July" .rodata:00060A50 DCD aAugust ; "August" .rodata:00060A54 DCD aSeptember ; "September" .rodata:00060A58 DCD aOctober ; "October" .rodata:00060A5C DCD aNovember ; "November" .rodata:00060A60 DCD aDecember ; "December" .rodata:00060A64 DCD aAm ; "AM" .rodata:00060A68 DCD aPm ; "PM" .rodata:00060A6C DCD aABEHMSY ; "%a %b %e %H:%M:%S %Y" .rodata:00060A70 DCD aMDY ; "%m/%d/%y" .rodata:00060A74 DCD aHMS ; "%H:%M:%S" .rodata:00060A78 DCD aIMSP ; "%I:%M:%S %p" .rodata:00060A7C ALIGN 0x10 .rodata:00060A80 DCD dword_61050 .rodata:00060A84 DCD dword_61050 .rodata:00060A88 DCD dword_61050 .rodata:00060A8C DCD dword_61050 .rodata:00060A90 DCD dword_61050 .rodata:00060A94 ALIGN 8 .rodata:00060A98 DCD dword_61050 .rodata:00060A9C DCD dword_61040 .rodata:00060AA0 DCD dword_61030 .rodata:00060AA4 DCD dword_61020 .rodata:00060AA8 DCD dword_61010 .rodata:00060AAC DCD dword_61000 .rodata:00060AB0 DCD dword_60FF0 .rodata:00060AB4 DCD dword_60FE0 .rodata:00060AB8 DCD dword_60FC4 .rodata:00060ABC DCD dword_60FA8 .rodata:00060AC0 DCD dword_60F88 .rodata:00060AC4 DCD dword_60F60 .rodata:00060AC8 DCD dword_60F3C .rodata:00060ACC DCD dword_60F20 .rodata:00060AD0 DCD dword_60EFC .rodata:00060AD4 DCD dword_60EEC .rodata:00060AD8 DCD dword_60EDC .rodata:00060ADC DCD dword_60ECC .rodata:00060AE0 DCD dword_60EBC .rodata:00060AE4 DCD dword_60EAC .rodata:00060AE8 DCD dword_60E9C .rodata:00060AEC DCD dword_60E8C .rodata:00060AF0 DCD dword_60E7C .rodata:00060AF4 DCD dword_60E6C .rodata:00060AF8 DCD dword_60E5C .rodata:00060AFC DCD dword_60E4C .rodata:00060B00 DCD dword_60E3C .rodata:00060B04 DCD dword_60E1C .rodata:00060B08 DCD dword_60DF8 .rodata:00060B0C DCD dword_60DE0 .rodata:00060B10 DCD dword_60DC8 .rodata:00060B14 DCD dword_60EAC .rodata:00060B18 DCD dword_60DB4 .rodata:00060B1C DCD dword_60DA0 .rodata:00060B20 DCD dword_60D84 .rodata:00060B24 DCD dword_60D5C .rodata:00060B28 DCD dword_60D3C .rodata:00060B2C DCD dword_60D18 .rodata:00060B30 DCD dword_60CF4 .rodata:00060B34 DCD dword_60CE8 .rodata:00060B38 DCD dword_60CDC .rodata:00060B3C DCD dword_60C88 .rodata:00060B40 DCD dword_60C64 .rodata:00060B44 DCD dword_60C40 .rodata:00060B48 DCD dword_60C10 .rodata:00060B4C DCD dword_60C0C .rodata:00060B50 DCD dword_60C0C .rodata:00060B54 DCD dword_60C0C .rodata:00060B58 DCD dword_60C0C .rodata:00060B5C DCD dword_60C0C .rodata:00060B60 DCD dword_60C08 .rodata:00060B64 DCD 0x130BC3A, 0x60C04, 0x60C08, 0x60C00, 0x60C00, 0x61050 .rodata:00060B64 DCD 0x60BE8, 0x60B88, 0x61A78, 0x25, 0x61, 0x20, 0x25 .rodata:00060B64 DCD 0x62, 0x20, 0x25, 0x65, 0x20, 0x25, 0x48, 0x3A, 0x25 .rodata:00060B64 DCD 0x4D, 0x3A, 0x25, 0x53, 0x20, 0x25, 0x5A, 0x20, 0x25 .rodata:00060B64 DCD 0x59, 0 .rodata:00060BE8 aABEHMSZY DCB "%a %b %e %H:%M:%S %Z %Y",0 .rodata:00060C00 DCD 1, 4 .rodata:00060C08 dword_60C08 DCD 7 ; DATA XREF: .rodata:00060B60o .rodata:00060C0C dword_60C0C DCD 0 ; DATA XREF: .rodata:00060B4Co .rodata:00060C0C ; .rodata:00060B50o ... .rodata:00060C10 dword_60C10 DCD 0x25, 0x49, 0x3A, 0x25, 0x4D, 0x3A, 0x25, 0x53, 0x20 .rodata:00060C10 ; DATA XREF: .rodata:00060B48o .rodata:00060C10 DCD 0x25, 0x70, 0 .rodata:00060C40 dword_60C40 DCD 0x25, 0x48, 0x3A, 0x25, 0x4D, 0x3A, 0x25, 0x53, 0 .rodata:00060C40 ; DATA XREF: .rodata:00060B44o .rodata:00060C64 dword_60C64 DCD 0x25, 0x6D, 0x2F, 0x25, 0x64, 0x2F, 0x25, 0x79, 0 .rodata:00060C64 ; DATA XREF: .rodata:00060B40o .rodata:00060C88 dword_60C88 DCD 0x25, 0x61, 0x20, 0x25, 0x62, 0x20, 0x25, 0x65, 0x20 .rodata:00060C88 ; DATA XREF: .rodata:00060B3Co .rodata:00060C88 DCD 0x25, 0x48, 0x3A, 0x25, 0x4D, 0x3A, 0x25, 0x53, 0x20 .rodata:00060C88 DCD 0x25, 0x59, 0 .rodata:00060CDC dword_60CDC DCD 0x50, 0x4D, 0 ; DATA XREF: .rodata:00060B38o .rodata:00060CE8 dword_60CE8 DCD 0x41, 0x4D, 0 ; DATA XREF: .rodata:00060B34o .rodata:00060CF4 dword_60CF4 DCD 0x44, 0x65, 0x63, 0x65, 0x6D, 0x62, 0x65, 0x72, 0 .rodata:00060CF4 ; DATA XREF: .rodata:00060B30o .rodata:00060D18 dword_60D18 DCD 0x4E, 0x6F, 0x76, 0x65, 0x6D, 0x62, 0x65, 0x72, 0 .rodata:00060D18 ; DATA XREF: .rodata:00060B2Co .rodata:00060D3C dword_60D3C DCD 0x4F, 0x63, 0x74, 0x6F, 0x62, 0x65, 0x72, 0 .rodata:00060D3C ; DATA XREF: .rodata:00060B28o .rodata:00060D5C dword_60D5C DCD 0x53, 0x65, 0x70, 0x74, 0x65, 0x6D, 0x62, 0x65, 0x72 .rodata:00060D5C ; DATA XREF: .rodata:00060B24o .rodata:00060D5C DCD 0 .rodata:00060D84 dword_60D84 DCD 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0 .rodata:00060D84 ; DATA XREF: .rodata:00060B20o .rodata:00060DA0 dword_60DA0 DCD 0x4A, 0x75, 0x6C, 0x79, 0 .rodata:00060DA0 ; DATA XREF: .rodata:00060B1Co .rodata:00060DB4 dword_60DB4 DCD 0x4A, 0x75, 0x6E, 0x65, 0 .rodata:00060DB4 ; DATA XREF: .rodata:00060B18o .rodata:00060DC8 dword_60DC8 DCD 0x41, 0x70, 0x72, 0x69, 0x6C, 0 .rodata:00060DC8 ; DATA XREF: .rodata:00060B10o .rodata:00060DE0 dword_60DE0 DCD 0x4D, 0x61, 0x72, 0x63, 0x68, 0 .rodata:00060DE0 ; DATA XREF: .rodata:00060B0Co .rodata:00060DF8 dword_60DF8 DCD 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0 .rodata:00060DF8 ; DATA XREF: .rodata:00060B08o .rodata:00060E1C dword_60E1C DCD 0x4A, 0x61, 0x6E, 0x75, 0x61, 0x72, 0x79, 0 .rodata:00060E1C ; DATA XREF: .rodata:00060B04o .rodata:00060E3C dword_60E3C DCD 0x44, 0x65, 0x63, 0 ; DATA XREF: .rodata:00060B00o .rodata:00060E4C dword_60E4C DCD 0x4E, 0x6F, 0x76, 0 ; DATA XREF: .rodata:00060AFCo .rodata:00060E5C dword_60E5C DCD 0x4F, 0x63, 0x74, 0 ; DATA XREF: .rodata:00060AF8o .rodata:00060E6C dword_60E6C DCD 0x53, 0x65, 0x70, 0 ; DATA XREF: .rodata:00060AF4o .rodata:00060E7C dword_60E7C DCD 0x41, 0x75, 0x67, 0 ; DATA XREF: .rodata:00060AF0o .rodata:00060E8C dword_60E8C DCD 0x4A, 0x75, 0x6C, 0 ; DATA XREF: .rodata:00060AECo .rodata:00060E9C dword_60E9C DCD 0x4A, 0x75, 0x6E, 0 ; DATA XREF: .rodata:00060AE8o .rodata:00060EAC dword_60EAC DCD 0x4D, 0x61, 0x79, 0 ; DATA XREF: .rodata:00060AE4o .rodata:00060EAC ; .rodata:00060B14o .rodata:00060EBC dword_60EBC DCD 0x41, 0x70, 0x72, 0 ; DATA XREF: .rodata:00060AE0o .rodata:00060ECC dword_60ECC DCD 0x4D, 0x61, 0x72, 0 ; DATA XREF: .rodata:00060ADCo .rodata:00060EDC dword_60EDC DCD 0x46, 0x65, 0x62, 0 ; DATA XREF: .rodata:00060AD8o .rodata:00060EEC dword_60EEC DCD 0x4A, 0x61, 0x6E, 0 ; DATA XREF: .rodata:00060AD4o .rodata:00060EFC dword_60EFC DCD 0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0 .rodata:00060EFC ; DATA XREF: .rodata:00060AD0o .rodata:00060F20 dword_60F20 DCD 0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0 .rodata:00060F20 ; DATA XREF: .rodata:00060ACCo .rodata:00060F3C dword_60F3C DCD 0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0 .rodata:00060F3C ; DATA XREF: .rodata:00060AC8o .rodata:00060F60 dword_60F60 DCD 0x57, 0x65, 0x64, 0x6E, 0x65, 0x73, 0x64, 0x61, 0x79 .rodata:00060F60 ; DATA XREF: .rodata:00060AC4o .rodata:00060F60 DCD 0 .rodata:00060F88 dword_60F88 DCD 0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0 .rodata:00060F88 ; DATA XREF: .rodata:00060AC0o .rodata:00060FA8 dword_60FA8 DCD 0x4D, 0x6F, 0x6E, 0x64, 0x61, 0x79, 0 .rodata:00060FA8 ; DATA XREF: .rodata:00060ABCo .rodata:00060FC4 dword_60FC4 DCD 0x53, 0x75, 0x6E, 0x64, 0x61, 0x79, 0 .rodata:00060FC4 ; DATA XREF: .rodata:00060AB8o .rodata:00060FE0 dword_60FE0 DCD 0x53, 0x61, 0x74, 0 ; DATA XREF: .rodata:00060AB4o .rodata:00060FF0 dword_60FF0 DCD 0x46, 0x72, 0x69, 0 ; DATA XREF: .rodata:00060AB0o .rodata:00061000 dword_61000 DCD 0x54, 0x68, 0x75, 0 ; DATA XREF: .rodata:00060AACo .rodata:00061010 dword_61010 DCD 0x57, 0x65, 0x64, 0 ; DATA XREF: .rodata:00060AA8o .rodata:00061020 dword_61020 DCD 0x54, 0x75, 0x65, 0 ; DATA XREF: .rodata:00060AA4o .rodata:00061030 dword_61030 DCD 0x4D, 0x6F, 0x6E, 0 ; DATA XREF: .rodata:00060AA0o .rodata:00061040 dword_61040 DCD 0x53, 0x75, 0x6E, 0 ; DATA XREF: .rodata:00060A9Co .rodata:00061050 dword_61050 DCD 0 ; DATA XREF: .rodata:00060A80o .rodata:00061050 ; .rodata:00060A84o ... .rodata:00061054 aIMSP DCB "%I:%M:%S %p",0 ; DATA XREF: .rodata:00060A78o .rodata:00061060 aHMS DCB "%H:%M:%S",0 ; DATA XREF: .rodata:00060A74o .rodata:00061069 ALIGN 4 .rodata:0006106C aMDY DCB "%m/%d/%y",0 ; DATA XREF: .rodata:00060A70o .rodata:00061075 ALIGN 4 .rodata:00061078 aABEHMSY DCB "%a %b %e %H:%M:%S %Y",0 ; DATA XREF: .rodata:00060A6Co .rodata:0006108D ALIGN 0x10 .rodata:00061090 aPm DCB "PM",0 ; DATA XREF: .rodata:00060A68o .rodata:00061093 ALIGN 4 .rodata:00061094 aAm DCB "AM",0 ; DATA XREF: .rodata:00060A64o .rodata:00061097 ALIGN 4 .rodata:00061098 aDecember DCB "December",0 ; DATA XREF: .rodata:00060A60o .rodata:000610A1 ALIGN 4 .rodata:000610A4 aNovember DCB "November",0 ; DATA XREF: .rodata:00060A5Co .rodata:000610AD ALIGN 0x10 .rodata:000610B0 aOctober DCB "October",0 ; DATA XREF: .rodata:00060A58o .rodata:000610B8 aSeptember DCB "September",0 ; DATA XREF: .rodata:00060A54o .rodata:000610C2 ALIGN 4 .rodata:000610C4 aAugust DCB "August",0 ; DATA XREF: .rodata:00060A50o .rodata:000610CB ALIGN 4 .rodata:000610CC aJuly DCB "July",0 ; DATA XREF: .rodata:00060A4Co .rodata:000610D1 ALIGN 4 .rodata:000610D4 aJune DCB "June",0 ; DATA XREF: .rodata:00060A48o .rodata:000610D9 ALIGN 4 .rodata:000610DC aApril DCB "April",0 ; DATA XREF: .rodata:00060A40o .rodata:000610E2 ALIGN 4 .rodata:000610E4 aMarch DCB "March",0 ; DATA XREF: .rodata:00060A3Co .rodata:000610EA ALIGN 4 .rodata:000610EC aFebruary DCB "February",0 ; DATA XREF: .rodata:00060A38o .rodata:000610F5 ALIGN 4 .rodata:000610F8 aJanuary DCB "January",0 ; DATA XREF: .rodata:00060A34o .rodata:00061100 aDec DCB "Dec",0 ; DATA XREF: .rodata:00060A30o .rodata:00061104 aNov DCB "Nov",0 ; DATA XREF: .rodata:00060A2Co .rodata:00061108 aOct DCB "Oct",0 ; DATA XREF: .rodata:00060A28o .rodata:0006110C aSep DCB "Sep",0 ; DATA XREF: .rodata:00060A24o .rodata:00061110 aAug DCB "Aug",0 ; DATA XREF: .rodata:00060A20o .rodata:00061114 aJul DCB "Jul",0 ; DATA XREF: .rodata:00060A1Co .rodata:00061118 aJun DCB "Jun",0 ; DATA XREF: .rodata:00060A18o .rodata:0006111C aMay DCB "May",0 ; DATA XREF: .rodata:00060A14o .rodata:0006111C ; .rodata:00060A44o .rodata:00061120 aApr DCB "Apr",0 ; DATA XREF: .rodata:00060A10o .rodata:00061124 aMar DCB "Mar",0 ; DATA XREF: .rodata:00060A0Co .rodata:00061128 aFeb DCB "Feb",0 ; DATA XREF: .rodata:00060A08o .rodata:0006112C aJan DCB "Jan",0 ; DATA XREF: .rodata:00060A04o .rodata:00061130 aSaturday DCB "Saturday",0 ; DATA XREF: .rodata:00060A00o .rodata:00061139 ALIGN 4 .rodata:0006113C aFriday DCB "Friday",0 ; DATA XREF: .rodata:000609FCo .rodata:00061143 ALIGN 4 .rodata:00061144 aThursday DCB "Thursday",0 ; DATA XREF: .rodata:000609F8o .rodata:0006114D ALIGN 0x10 .rodata:00061150 aWednesday DCB "Wednesday",0 ; DATA XREF: .rodata:000609F4o .rodata:0006115A ALIGN 4 .rodata:0006115C aTuesday DCB "Tuesday",0 ; DATA XREF: .rodata:000609F0o .rodata:00061164 aMonday DCB "Monday",0 ; DATA XREF: .rodata:000609ECo .rodata:0006116B ALIGN 4 .rodata:0006116C aSunday DCB "Sunday",0 ; DATA XREF: .rodata:000609E8o .rodata:00061173 ALIGN 4 .rodata:00061174 aSat DCB "Sat",0 ; DATA XREF: .rodata:000609E4o .rodata:00061178 aFri DCB "Fri",0 ; DATA XREF: .rodata:000609E0o .rodata:0006117C aThu DCB "Thu",0 ; DATA XREF: .rodata:000609DCo .rodata:00061180 aWed DCB "Wed",0 ; DATA XREF: .rodata:000609D8o .rodata:00061184 aTue DCB "Tue",0 ; DATA XREF: .rodata:000609D4o .rodata:00061188 aMon DCB "Mon",0 ; DATA XREF: .rodata:000609D0o .rodata:0006118C aSun DCB "Sun",0 ; DATA XREF: .rodata:000609CCo .rodata:00061190 EXPORT _nl_C_LC_PAPER .rodata:00061190 _nl_C_LC_PAPER DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061190 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061190 DCB 3, 0, 0, 0 .rodata:000611B0 DCD 0x129, 0xD2, 0x61A78 .rodata:000611BC EXPORT _nl_C_LC_NAME .rodata:000611BC _nl_C_LC_NAME DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000611BC DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000611BC DCB 7, 0, 0, 0 .rodata:000611DC DCD aPTGTMTF ; "%p%t%g%t%m%t%f" .rodata:000611E0 DCD dword_611F8 .rodata:000611E4 DCD dword_611F8 .rodata:000611E8 DCD dword_611F8 .rodata:000611EC DCD dword_611F8 .rodata:000611F0 DCD dword_611F8 .rodata:000611F4 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:000611F8 dword_611F8 DCD 0 ; DATA XREF: .rodata:000611E0o .rodata:000611F8 ; .rodata:000611E4o ... .rodata:000611FC aPTGTMTF DCB "%p%t%g%t%m%t%f",0 ; DATA XREF: .rodata:000611DCo .rodata:0006120B ALIGN 4 .rodata:0006120C EXPORT _nl_C_LC_ADDRESS .rodata:0006120C _nl_C_LC_ADDRESS DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0006120C DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0006120C DCB 0xD, 0, 0, 0 .rodata:0006122C DCD aANFNDNBNSHERNC ; "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N"... .rodata:00061230 DCD dword_61260 .rodata:00061234 DCD dword_61260 .rodata:00061238 DCD dword_61260 .rodata:0006123C DCD dword_61260 .rodata:00061240 DCD dword_61260 .rodata:00061244 DCD dword_61260 .rodata:00061248 DCD dword_61260 .rodata:0006124C DCD dword_61260 .rodata:00061250 DCD dword_61260 .rodata:00061254 DCD dword_61260 .rodata:00061258 DCD dword_61260 .rodata:0006125C DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00061260 dword_61260 DCD 0 ; DATA XREF: .rodata:00061230o .rodata:00061260 ; .rodata:00061234o ... .rodata:00061264 aANFNDNBNSHERNC DCB "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N",0 .rodata:00061264 ; DATA XREF: .rodata:0006122Co .rodata:00061290 EXPORT _nl_C_LC_TELEPHONE .rodata:00061290 _nl_C_LC_TELEPHONE DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061290 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061290 DCB 5, 0, 0, 0 .rodata:000612B0 DCD aCAL ; "+%c %a %l" .rodata:000612B4 DCD dword_612C4 .rodata:000612B8 DCD dword_612C4 .rodata:000612BC DCD dword_612C4 .rodata:000612C0 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:000612C4 dword_612C4 DCD 0 ; DATA XREF: .rodata:000612B4o .rodata:000612C4 ; .rodata:000612B8o ... .rodata:000612C8 aCAL DCB "+%c %a %l",0 ; DATA XREF: .rodata:000612B0o .rodata:000612D2 ALIGN 4 .rodata:000612D4 EXPORT _nl_C_LC_MEASUREMENT .rodata:000612D4 _nl_C_LC_MEASUREMENT DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000612D4 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000612D4 DCB 2, 0, 0, 0 .rodata:000612F4 DCD dword_612FC .rodata:000612F8 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:000612FC dword_612FC DCD 1 ; DATA XREF: .rodata:000612F4o .rodata:00061300 EXPORT _nl_C_LC_IDENTIFICATION .rodata:00061300 _nl_C_LC_IDENTIFICATION DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061300 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061300 DCB 0x10, 0, 0, 0 .rodata:00061320 DCD aIsoIec14652I18 ; "ISO/IEC 14652 i18n FDCC-set" .rodata:00061324 DCD aIsoIecJtc1Sc22 ; "ISO/IEC JTC1/SC22/WG20 - internationali"... .rodata:00061328 DCD aCOKeldSimonsen ; "C/o Keld Simonsen, Skt. Jorgens Alle 8,"... .rodata:0006132C DCD aKeldSimonsen ; "Keld Simonsen" .rodata:00061330 DCD aKeldDkuug_dk ; "keld@dkuug.dk" .rodata:00061334 DCD a4531226543 ; "+45 3122-6543" .rodata:00061338 DCD a4533256543 ; "+45 3325-6543" .rodata:0006133C DCD dword_61418 .rodata:00061340 DCD aIso_0 ; "ISO" .rodata:00061344 DCD dword_61418 .rodata:00061348 DCD dword_61418 .rodata:0006134C DCD dword_61418 .rodata:00061350 DCD a1_0 ; "1.0" .rodata:00061354 DCD a19971220 ; "1997-12-20" .rodata:00061358 DCD aI18n1999 ; "i18n:1999" .rodata:0006135C DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00061360 aI18n1999 DCB "i18n:1999",0 ; DATA XREF: .rodata:00061358o .rodata:0006136A aI18n1999_0 DCB "i18n:1999",0 .rodata:00061374 aI18n1999_1 DCB "i18n:1999",0 .rodata:0006137E aI18n1999_2 DCB "i18n:1999",0 .rodata:00061388 aI18n1999_3 DCB "i18n:1999",0 .rodata:00061392 aI18n1999_4 DCB "i18n:1999",0 .rodata:0006139C DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:0006139C DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:0006139C DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:0006139C DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:0006139C DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:0006139C DCD 0 .rodata:00061404 a19971220 DCB "1997-12-20",0 ; DATA XREF: .rodata:00061354o .rodata:0006140F ALIGN 0x10 .rodata:00061410 a1_0 DCB "1.0",0 ; DATA XREF: .rodata:00061350o .rodata:00061414 aIso_0 DCB "ISO",0 ; DATA XREF: .rodata:00061340o .rodata:00061418 dword_61418 DCD 0 ; DATA XREF: .rodata:0006133Co .rodata:00061418 ; .rodata:00061344o ... .rodata:0006141C a4533256543 DCB "+45 3325-6543",0 ; DATA XREF: .rodata:00061338o .rodata:0006142A ALIGN 4 .rodata:0006142C a4531226543 DCB "+45 3122-6543",0 ; DATA XREF: .rodata:00061334o .rodata:0006143A ALIGN 4 .rodata:0006143C aKeldDkuug_dk DCB "keld@dkuug.dk",0 ; DATA XREF: .rodata:00061330o .rodata:0006144A ALIGN 4 .rodata:0006144C aKeldSimonsen DCB "Keld Simonsen",0 ; DATA XREF: .rodata:0006132Co .rodata:0006145A ALIGN 4 .rodata:0006145C aCOKeldSimonsen DCB "C/o Keld Simonsen, Skt. Jorgens Alle 8, DK-1615 Kobenhavn V",0 .rodata:0006145C ; DATA XREF: .rodata:00061328o .rodata:00061498 aIsoIecJtc1Sc22 DCB "ISO/IEC JTC1/SC22/WG20 - internationalization",0 .rodata:00061498 ; DATA XREF: .rodata:00061324o .rodata:000614C6 ALIGN 4 .rodata:000614C8 aIsoIec14652I18 DCB "ISO/IEC 14652 i18n FDCC-set",0 .rodata:000614C8 ; DATA XREF: .rodata:00061320o .rodata:000614E4 collseqmb DCB 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, 0xE .rodata:000614E4 ; DATA XREF: .rodata:00061A60o .rodata:000614E4 DCB 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 .rodata:000614E4 DCB 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20 .rodata:000614E4 DCB 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29 .rodata:000614E4 DCB 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32 .rodata:000614E4 DCB 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B .rodata:000614E4 DCB 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44 .rodata:000614E4 DCB 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D .rodata:000614E4 DCB 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56 .rodata:000614E4 DCB 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F .rodata:000614E4 DCB 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68 .rodata:000614E4 DCB 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71 .rodata:000614E4 DCB 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A .rodata:000614E4 DCB 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83 .rodata:000614E4 DCB 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C .rodata:000614E4 DCB 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95 .rodata:000614E4 DCB 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E .rodata:000614E4 DCB 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7 .rodata:000614E4 DCB 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0 .rodata:000614E4 DCB 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 .rodata:000614E4 DCB 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2 .rodata:000614E4 DCB 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB .rodata:000614E4 DCB 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4 .rodata:000614E4 DCB 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD .rodata:000614E4 DCB 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6 .rodata:000614E4 DCB 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF .rodata:000614E4 DCB 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8 .rodata:000614E4 DCB 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF .rodata:000615E4 collseqwc DCB 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0xFF .rodata:000615E4 ; DATA XREF: .rodata:00061A64o .rodata:000615E4 DCB 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 0, 0, 0 .rodata:000615E4 DCB 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5 .rodata:000615E4 DCB 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0 .rodata:000615E4 DCB 0, 0, 0xA, 0, 0, 0, 0xB, 0, 0, 0, 0xC, 0, 0, 0, 0xD .rodata:000615E4 DCB 0, 0, 0, 0xE, 0, 0, 0, 0xF, 0, 0, 0, 0x10, 0, 0, 0 .rodata:000615E4 DCB 0x11, 0, 0, 0, 0x12, 0, 0, 0, 0x13, 0, 0, 0, 0x14 .rodata:000615E4 DCB 0, 0, 0, 0x15, 0, 0, 0, 0x16, 0, 0, 0, 0x17, 0, 0 .rodata:000615E4 DCB 0, 0x18, 0, 0, 0, 0x19, 0, 0, 0, 0x1A, 0, 0, 0, 0x1B .rodata:000615E4 DCB 0, 0, 0, 0x1C, 0, 0, 0, 0x1D, 0, 0, 0, 0x1E, 0, 0 .rodata:000615E4 DCB 0, 0x1F, 0, 0, 0, 0x20, 0, 0, 0, 0x21, 0, 0, 0, 0x22 .rodata:000615E4 DCB 0, 0, 0, 0x23, 0, 0, 0, 0x24, 0, 0, 0, 0x25, 0, 0 .rodata:000615E4 DCB 0, 0x26, 0, 0, 0, 0x27, 0, 0, 0, 0x28, 0, 0, 0, 0x29 .rodata:000615E4 DCB 0, 0, 0, 0x2A, 0, 0, 0, 0x2B, 0, 0, 0, 0x2C, 0, 0 .rodata:000615E4 DCB 0, 0x2D, 0, 0, 0, 0x2E, 0, 0, 0, 0x2F, 0, 0, 0, 0x30 .rodata:000615E4 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33, 0, 0 .rodata:000615E4 DCB 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0, 0, 0x37 .rodata:000615E4 DCB 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x3A, 0, 0 .rodata:000615E4 DCB 0, 0x3B, 0, 0, 0, 0x3C, 0, 0, 0, 0x3D, 0, 0, 0, 0x3E .rodata:000615E4 DCB 0, 0, 0, 0x3F, 0, 0, 0, 0x40, 0, 0, 0, 0x41, 0, 0 .rodata:000615E4 DCB 0, 0x42, 0, 0, 0, 0x43, 0, 0, 0, 0x44, 0, 0, 0, 0x45 .rodata:000615E4 DCB 0, 0, 0, 0x46, 0, 0, 0, 0x47, 0, 0, 0, 0x48, 0, 0 .rodata:000615E4 DCB 0, 0x49, 0, 0, 0, 0x4A, 0, 0, 0, 0x4B, 0, 0, 0, 0x4C .rodata:000615E4 DCB 0, 0, 0, 0x4D, 0, 0, 0, 0x4E, 0, 0, 0, 0x4F, 0, 0 .rodata:000615E4 DCB 0, 0x50, 0, 0, 0, 0x51, 0, 0, 0, 0x52, 0, 0, 0, 0x53 .rodata:000615E4 DCB 0, 0, 0, 0x54, 0, 0, 0, 0x55, 0, 0, 0, 0x56, 0, 0 .rodata:000615E4 DCB 0, 0x57, 0, 0, 0, 0x58, 0, 0, 0, 0x59, 0, 0, 0, 0x5A .rodata:000615E4 DCB 0, 0, 0, 0x5B, 0, 0, 0, 0x5C, 0, 0, 0, 0x5D, 0, 0 .rodata:000615E4 DCB 0, 0x5E, 0, 0, 0, 0x5F, 0, 0, 0, 0x60, 0, 0, 0, 0x61 .rodata:000615E4 DCB 0, 0, 0, 0x62, 0, 0, 0, 0x63, 0, 0, 0, 0x64, 0, 0 .rodata:000615E4 DCB 0, 0x65, 0, 0, 0, 0x66, 0, 0, 0, 0x67, 0, 0, 0, 0x68 .rodata:000615E4 DCB 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0, 0, 0, 0x6B, 0, 0 .rodata:000615E4 DCB 0, 0x6C, 0, 0, 0, 0x6D, 0, 0, 0, 0x6E, 0, 0, 0, 0x6F .rodata:000615E4 DCB 0, 0, 0, 0x70, 0, 0, 0, 0x71, 0, 0, 0, 0x72, 0, 0 .rodata:000615E4 DCB 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0x75, 0, 0, 0, 0x76 .rodata:000615E4 DCB 0, 0, 0, 0x77, 0, 0, 0, 0x78, 0, 0, 0, 0x79, 0, 0 .rodata:000615E4 DCB 0, 0x7A, 0, 0, 0, 0x7B, 0, 0, 0, 0x7C, 0, 0, 0, 0x7D .rodata:000615E4 DCB 0, 0, 0, 0x7E, 0, 0, 0, 0x7F, 0, 0, 0, 0x80, 0, 0 .rodata:000615E4 DCB 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83, 0, 0, 0, 0x84 .rodata:000615E4 DCB 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0, 0, 0x87, 0, 0 .rodata:000615E4 DCB 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A, 0, 0, 0, 0x8B .rodata:000615E4 DCB 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0, 0, 0x8E, 0, 0 .rodata:000615E4 DCB 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91, 0, 0, 0, 0x92 .rodata:000615E4 DCB 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0, 0, 0x95, 0, 0 .rodata:000615E4 DCB 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98, 0, 0, 0, 0x99 .rodata:000615E4 DCB 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0, 0, 0x9C, 0, 0 .rodata:000615E4 DCB 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F, 0, 0, 0, 0xA0 .rodata:000615E4 DCB 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0, 0, 0xA3, 0, 0 .rodata:000615E4 DCB 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6, 0, 0, 0, 0xA7 .rodata:000615E4 DCB 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0, 0, 0xAA, 0, 0 .rodata:000615E4 DCB 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD, 0, 0, 0, 0xAE .rodata:000615E4 DCB 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0, 0, 0xB1, 0, 0 .rodata:000615E4 DCB 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4, 0, 0, 0, 0xB5 .rodata:000615E4 DCB 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0, 0, 0xB8, 0, 0 .rodata:000615E4 DCB 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB, 0, 0, 0, 0xBC .rodata:000615E4 DCB 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0, 0, 0xBF, 0, 0 .rodata:000615E4 DCB 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2, 0, 0, 0, 0xC3 .rodata:000615E4 DCB 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0, 0, 0xC6, 0, 0 .rodata:000615E4 DCB 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9, 0, 0, 0, 0xCA .rodata:000615E4 DCB 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0, 0, 0xCD, 0, 0 .rodata:000615E4 DCB 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0, 0, 0, 0, 0xD1 .rodata:000615E4 DCB 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0, 0, 0xD4, 0, 0 .rodata:000615E4 DCB 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7, 0, 0, 0, 0xD8 .rodata:000615E4 DCB 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0, 0, 0xDB, 0, 0 .rodata:000615E4 DCB 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE, 0, 0, 0, 0xDF .rodata:000615E4 DCB 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0, 0, 0xE2, 0, 0 .rodata:000615E4 DCB 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5, 0, 0, 0, 0xE6 .rodata:000615E4 DCB 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0, 0, 0xE9, 0, 0 .rodata:000615E4 DCB 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC, 0, 0, 0, 0xED .rodata:000615E4 DCB 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0, 0, 0xF0, 0, 0 .rodata:000615E4 DCB 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3, 0, 0, 0, 0xF4 .rodata:000615E4 DCB 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0, 0, 0xF7, 0, 0 .rodata:000615E4 DCB 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA, 0, 0, 0, 0xFB .rodata:000615E4 DCB 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0, 0, 0xFE, 0, 0 .rodata:000615E4 DCB 0, 0xFF, 0, 0, 0 .rodata:00061A00 EXPORT _nl_C_LC_COLLATE .rodata:00061A00 _nl_C_LC_COLLATE DCB 0x6C, 0x1A, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061A00 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061A00 DCB 0x13, 0, 0, 0 .rodata:00061A20 DCD 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061A60 DCD collseqmb .rodata:00061A64 DCD collseqwc .rodata:00061A68 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00061A6C EXPORT _nl_C_name .rodata:00061A6C _nl_C_name DCW 0x43 ; DATA XREF: __wcsmbs_load_conv+40o .rodata:00061A6C ; __wcsmbs_load_conv:off_33DF4o ... .rodata:00061A6E ALIGN 0x10 .rodata:00061A70 EXPORT _nl_POSIX_name .rodata:00061A70 _nl_POSIX_name DCB "POSIX",0 ; DATA XREF: setlocale+32Co .rodata:00061A70 ; setlocale:off_3F2F4o ... .rodata:00061A76 ALIGN 4 .rodata:00061A78 EXPORT _nl_C_codeset .rodata:00061A78 _nl_C_codeset DCB "ANSI_X3.4-1968",0 ; DATA XREF: .rodata:00060874o .rodata:00061A78 ; .rodata:00060964o ... .rodata:00061A87 ALIGN 4 .rodata:00061A88 _tens_in_limb DCB 0, 0, 0, 0, 0xA, 0, 0, 0, 0x64, 0, 0, 0, 0xE8, 3, 0 .rodata:00061A88 ; DATA XREF: __strtof_internal+1498o .rodata:00061A88 ; __strtof_internal:loc_43510o ... .rodata:00061A88 DCB 0, 0x10, 0x27, 0, 0, 0xA0, 0x86, 1, 0, 0x40, 0x42 .rodata:00061A88 DCB 0xF, 0, 0x80, 0x96, 0x98, 0, 0, 0xE1, 0xF5, 5, 0, 0xCA .rodata:00061A88 DCB 0x9A, 0x3B .rodata:00061AB0 dword_61AB0 DCD 0x666E69 ; DATA XREF: __strtof_internal+174o .rodata:00061AB0 ; __strtof_internal:off_42408o .rodata:00061AB4 aInfinity DCB "infinity",0 ; DATA XREF: __strtof_internal+190o .rodata:00061AB4 ; __strtof_internal:off_4240Co .rodata:00061ABD ALIGN 0x10 .rodata:00061AC0 aNan_0 DCB "nan",0 ; DATA XREF: __strtof_internal+1D8o .rodata:00061AC0 ; __strtof_internal:off_42410o .rodata:00061AC4 nbits.138 DCB 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3 .rodata:00061AC4 ; DATA XREF: __strtof_internal:loc_42D60o .rodata:00061AC4 ; __strtof_internal:off_43058o .rodata:00061AC4 DCB 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0 .rodata:00061AC4 DCB 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0 .rodata:00061AC4 DCB 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .rodata:00061B04 _tens_in_limb_0 DCB 0, 0, 0, 0, 0xA, 0, 0, 0, 0x64, 0, 0, 0, 0xE8, 3, 0 .rodata:00061B04 ; DATA XREF: __strtod_internal+16E4o .rodata:00061B04 ; __strtod_internal:loc_46A94o ... .rodata:00061B04 DCB 0, 0x10, 0x27, 0, 0, 0xA0, 0x86, 1, 0, 0x40, 0x42 .rodata:00061B04 DCB 0xF, 0, 0x80, 0x96, 0x98, 0, 0, 0xE1, 0xF5, 5, 0, 0xCA .rodata:00061B04 DCB 0x9A, 0x3B .rodata:00061B2C dword_61B2C DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1168o .rodata:00061B2C ; __strtod_internal+1434o ... .rodata:00061B34 dword_61B34 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1178o .rodata:00061B34 ; __strtod_internal+1444o ... .rodata:00061B3C dword_61B3C DCD 0x666E69 ; DATA XREF: __strtod_internal+1A0o .rodata:00061B3C ; __strtod_internal:off_4571Co .rodata:00061B40 aInfinity_0 DCB "infinity",0 ; DATA XREF: __strtod_internal+1BCo .rodata:00061B40 ; __strtod_internal:off_45720o .rodata:00061B49 ALIGN 4 .rodata:00061B4C dword_61B4C DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1F4o .rodata:00061B4C ; __strtod_internal:off_45724o .rodata:00061B54 dword_61B54 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal:loc_45598o .rodata:00061B54 ; __strtod_internal:off_45728o .rodata:00061B5C dword_61B5C DCD 0x6E616E ; DATA XREF: __strtod_internal+224o .rodata:00061B5C ; __strtod_internal:off_4572Co .rodata:00061B60 dword_61B60 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+AF8o .rodata:00061B60 ; __strtod_internal:off_460B8o .rodata:00061B68 dword_61B68 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+B08o .rodata:00061B68 ; __strtod_internal:off_460BCo .rodata:00061B70 nbits.138_0 DCB 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3 .rodata:00061B70 ; DATA XREF: __strtod_internal:loc_46180o .rodata:00061B70 ; __strtod_internal:off_46468o .rodata:00061B70 DCB 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0 .rodata:00061B70 DCB 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0 .rodata:00061B70 DCB 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .rodata:00061BB0 dword_61BB0 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+14CCo .rodata:00061BB0 ; __strtod_internal:off_46898o .rodata:00061BB8 dword_61BB8 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+14D4o .rodata:00061BB8 ; __strtod_internal:off_4689Co .rodata:00061BC0 dword_61BC0 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1910o .rodata:00061BC0 ; __strtod_internal:off_46D38o .rodata:00061BC8 dword_61BC8 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1918o .rodata:00061BC8 ; __strtod_internal:off_46D3Co .rodata:00061BD0 EXPORT __clz_tab_1 .rodata:00061BD0 __clz_tab_1 DCB 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5 .rodata:00061BD0 ; DATA XREF: __printf_fp:loc_21D2Co .rodata:00061BD0 ; __printf_fp:loc_21DF8o ... .rodata:00061BD0 DCB 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6 .rodata:00061BD0 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 .rodata:00061BD0 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7 .rodata:00061BD0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00061BD0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00061BD0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00061BD0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061BD0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061BD0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061BD0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061BD0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061BD0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061BD0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061BD0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061BD0 DCB 8 .rodata:00061CD0 EXPORT __tens .rodata:00061CD0 __tens DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xA, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061CD0 ; DATA XREF: __printf_fp+824o .rodata:00061CD0 ; __printf_fp:off_21EE8o ... .rodata:00061CD0 DCB 0, 0, 0, 0x64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10 .rodata:00061CD0 DCB 0x27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xE1, 0xF5 .rodata:00061CD0 DCB 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xC1, 0x6F, 0xF2 .rodata:00061CD0 DCB 0x86, 0x23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061CD0 DCB 0x81, 0xEF, 0xAC, 0x85, 0x5B, 0x41, 0x6D, 0x2D, 0xEE .rodata:00061CD0 DCB 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061CD0 DCB 0, 0, 1, 0x1F, 0x6A, 0xBF, 0x64, 0xED, 0x38, 0x6E .rodata:00061CD0 DCB 0xED, 0x97, 0xA7, 0xDA, 0xF4, 0xF9, 0x3F, 0xE9, 3 .rodata:00061CD0 DCB 0x4F, 0x18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061CD0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0x3E, 0x95 .rodata:00061CD0 DCB 0x2E, 9, 0x99, 0xDF, 3, 0xFD, 0x38, 0x15, 0xF, 0x2F .rodata:00061CD0 DCB 0xE4, 0x74, 0x23, 0xEC, 0xF5, 0xCF, 0xD3, 8, 0xDC .rodata:00061CD0 DCB 4, 0xC4, 0xDA, 0xB0, 0xCD, 0xBC, 0x19, 0x7F, 0x33 .rodata:00061CD0 DCB 0xA6, 3, 0x26, 0x1F, 0xE9, 0x4E, 2, 0, 0, 0, 0, 0 .rodata:00061CD0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061CD0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061CD0 DCB 0, 0, 0, 1, 0x7C, 0x2E, 0x98, 0x5B, 0x87, 0xD3, 0xBE .rodata:00061CD0 DCB 0x72, 0x9F, 0xD9, 0xD8, 0x87, 0x2F, 0x15, 0x12, 0xC6 .rodata:00061CD0 DCB 0x50, 0xDE, 0x6B, 0x70, 0x6E, 0x4A, 0xCF, 0xF, 0xD8 .rodata:00061CD0 DCB 0x95, 0xD5, 0x6E, 0x71, 0xB2, 0x26, 0xB0, 0x66, 0xC6 .rodata:00061CD0 DCB 0xAD, 0x24, 0x36, 0x15, 0x1D, 0x5A, 0xD3, 0x42, 0x3C .rodata:00061CD0 DCB 0xE, 0x54, 0xFF, 0x63, 0xC0, 0x73, 0x55, 0xCC, 0x17 .rodata:00061CD0 DCB 0xEF, 0xF9, 0x65, 0xF2, 0x28, 0xBC, 0x55, 0xF7, 0xC7 .rodata:00061CD0 DCB 0xDC, 0x80, 0xDC, 0xED, 0x6E, 0xF4, 0xCE, 0xEF, 0xDC .rodata:00061CD0 DCB 0x5F, 0xF7, 0x53, 5, 0 .rodata:00061E00 EXPORT _fpioconst_pow10 .rodata:00061E00 _fpioconst_pow10 DCB 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3 .rodata:00061E00 ; DATA XREF: __printf_fp:loc_21D58o .rodata:00061E00 ; __printf_fp:off_21EF4o ... .rodata:00061E00 DCB 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 6, 0 .rodata:00061E00 DCB 0, 0, 3, 0, 0, 0, 0xE, 0, 0, 0, 0xA, 0, 0, 0, 9, 0 .rodata:00061E00 DCB 0, 0, 3, 0, 0, 0, 0x1B, 0, 0, 0, 0x18, 0, 0, 0, 0xC .rodata:00061E00 DCB 0, 0, 0, 4, 0, 0, 0, 0x36, 0, 0, 0, 0x32, 0, 0, 0 .rodata:00061E00 DCB 0x10, 0, 0, 0, 6, 0, 0, 0, 0x6B, 0, 0, 0, 0x67, 0 .rodata:00061E00 DCB 0, 0, 0x16, 0, 0, 0, 9, 0, 0, 0, 0xD5, 0, 0, 0, 0xD2 .rodata:00061E00 DCB 0, 0, 0, 0x1F, 0, 0, 0, 0x10, 0, 0, 0, 0xAA, 1, 0 .rodata:00061E00 DCB 0, 0xA6, 1, 0, 0, 0x2F, 0, 0, 0, 0x1D, 0, 0, 0, 0x53 .rodata:00061E00 DCB 3, 0, 0, 0x50, 3, 0, 0 .rodata:00061E90 EXPORT _itoa_base_table .rodata:00061E90 _itoa_base_table DCB 0, 0, 0, 0, 1, 1, 0, 0, 0, 0x1F, 0, 0, 0, 0, 0, 0x80 .rodata:00061E90 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xAA, 0xAA, 0xAA, 0 .rodata:00061E90 DCB 1, 0, 0, 0, 0x14, 0, 0, 0x91, 0x1B, 0xD4, 0xCF, 0x24 .rodata:00061E90 DCB 0x3C, 0x56, 0x3B, 0, 0, 0, 0, 1, 2, 0, 0, 1, 0xF, 0 .rodata:00061E90 DCB 0, 0, 0, 0, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xCC .rodata:00061E90 DCB 0xCC, 0xCC, 0, 2, 0, 0, 1, 0xD, 0, 0, 0x95, 0x73, 0xC2 .rodata:00061E90 DCB 0x48, 0x84, 0x26, 0x5C, 0xC2, 0xAB, 0xAA, 0xAA, 0xAA .rodata:00061E90 DCB 0, 2, 0, 0, 0, 0xC, 0, 0, 0, 0x10, 0xBF, 0x81, 0xB6 .rodata:00061E90 DCB 0xD1, 0x1B, 0xF9, 0x25, 0x49, 0x92, 0x24, 1, 3, 0 .rodata:00061E90 DCB 0, 1, 0xB, 0, 0, 0x97, 0x9C, 0xDB, 0x75, 0xCB, 0xA2 .rodata:00061E90 DCB 7, 0x16, 0, 0, 0, 0, 1, 3, 0, 0, 1, 0xA, 0, 0, 0, 0 .rodata:00061E90 DCB 0, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0x39, 0x8E, 0xE3 .rodata:00061E90 DCB 0x38, 0, 1, 0, 0, 0, 0xA, 0, 0, 0x91, 0x1B, 0xD4, 0xCF .rodata:00061E90 DCB 0x24, 0x3C, 0x56, 0x3B, 0xCD, 0xCC, 0xCC, 0xCC, 0 .rodata:00061E90 DCB 3, 0, 0, 2, 9, 0, 0, 0, 0xCA, 0x9A, 0x3B, 0x82, 0xBE .rodata:00061E90 DCB 0xE0, 0x12, 0xA3, 0x8B, 0x2E, 0xBA, 0, 3, 0, 0, 0 .rodata:00061E90 DCB 9, 0, 0, 0x2B, 0x6D, 0x8B, 0x8C, 4, 0xDE, 0x4C, 0xD2 .rodata:00061E90 DCB 0xAB, 0xAA, 0xAA, 0xAA, 0, 3, 0, 0, 3, 8, 0, 0, 0 .rodata:00061E90 DCB 0, 0xA1, 0x19, 0xB5, 0x9A, 0xA3, 0x3F, 0x4F, 0xEC .rodata:00061E90 DCB 0xC4, 0x4E, 0, 2, 0, 0, 2, 8, 0, 0, 0x21, 0x10, 0x9F .rodata:00061E90 DCB 0x30, 0x5F, 0xAC, 0xF8, 0x50, 0x25, 0x49, 0x92, 0x24 .rodata:00061E90 DCB 1, 4, 0, 0, 1, 8, 0, 0, 0, 0xC1, 0xF6, 0x57, 0x1E .rodata:00061E90 DCB 0x3B, 0x84, 0x74, 0x89, 0x88, 0x88, 0x88, 0, 3, 0 .rodata:00061E90 DCB 0, 0, 8, 0, 0, 0x81, 0x9B, 0xC2, 0x98, 0xC2, 0x26 .rodata:00061E90 DCB 3, 0xAD, 0, 0, 0, 0, 1, 4, 0, 0, 3, 7, 0, 0, 0, 0 .rodata:00061E90 DCB 0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xF0, 0xF0 .rodata:00061E90 DCB 0xF0, 0, 4, 0, 0, 3, 7, 0, 0, 0x71, 0x45, 0x75, 0x18 .rodata:00061E90 DCB 0xBD, 0xB6, 0xF0, 0x4E, 0x39, 0x8E, 0xE3, 0x38, 0 .rodata:00061E90 DCB 2, 0, 0, 2, 7, 0, 0, 0x80, 0xBC, 0x7D, 0x24, 0xA1 .rodata:00061E90 DCB 0x48, 0xFC, 0xC0, 0xCB, 0x6B, 0x28, 0xAF, 1, 5, 0 .rodata:00061E90 DCB 0, 2, 7, 0, 0, 0x7B, 0x66, 0x47, 0x35, 0x42, 0x89 .rodata:00061E90 DCB 0x83, 0x33, 0xCD, 0xCC, 0xCC, 0xCC, 0, 4, 0, 0, 1 .rodata:00061E90 DCB 7, 0, 0, 0, 0x40, 0x4B, 0x4C, 0xAB, 0x29, 0x7F, 0xAD .rodata:00061E90 DCB 0x87, 0x61, 0x18, 0x86, 1, 5, 0, 0, 1, 7, 0, 0, 0x1D .rodata:00061E90 DCB 0x6E, 0x5A, 0x6B, 0x15, 0x3D, 0x3C, 0x31, 0xA3, 0x8B .rodata:00061E90 DCB 0x2E, 0xBA, 0, 4, 0, 0, 0, 7, 0, 0, 0x80, 0xE1, 0xAC .rodata:00061E90 DCB 0x94, 0xE0, 0xA9, 0xCC, 0xB8, 0xC9, 0x42, 0x16, 0xB2 .rodata:00061E90 DCB 0, 4, 0, 0, 0, 7, 0, 0, 0x67, 0x83, 0xF1, 0xCA, 0xE9 .rodata:00061E90 DCB 0x6D, 0xED, 0x42, 0xAB, 0xAA, 0xAA, 0xAA, 0, 4, 0 .rodata:00061E90 DCB 0, 4, 6, 0, 0, 0, 0, 0x64, 0xB, 0xB, 0xE, 0x98, 0x67 .rodata:00061E90 DCB 0x1F, 0x85, 0xEB, 0x51, 0, 3, 0, 0, 4, 6, 0, 0, 0x51 .rodata:00061E90 DCB 0x4A, 0x8D, 0xE, 0x12, 0x98, 0x79, 0x19, 0x4F, 0xEC .rodata:00061E90 DCB 0xC4, 0x4E, 0, 3, 0, 0, 3, 6, 0, 0, 0x40, 0xAE, 0x69 .rodata:00061E90 DCB 0x12, 0x96, 0x53, 0xE8, 0xBC, 0xDB, 0x4B, 0x68, 0x2F .rodata:00061E90 DCB 1, 5, 0, 0, 3, 6, 0, 0, 0x49, 0x91, 0x17, 0x17, 0xA9 .rodata:00061E90 DCB 3, 0xC1, 0x62, 0x25, 0x49, 0x92, 0x24, 1, 5, 0, 0 .rodata:00061E90 DCB 3, 6, 0, 0, 0, 0x10, 0xB9, 0x1C, 0x43, 0x3D, 0x35 .rodata:00061E90 DCB 0x1D, 9, 0xCB, 0x3D, 0x8D, 0, 4, 0, 0, 2, 6, 0, 0 .rodata:00061E90 DCB 0x99, 0x48, 0x74, 0x23, 0xEA, 0xEC, 0x1D, 0xCE, 0x89 .rodata:00061E90 DCB 0x88, 0x88, 0x88, 0, 4, 0, 0, 2, 6, 0, 0, 0x40, 0xA8 .rodata:00061E90 DCB 0x73, 0x2B, 0x11, 0xC5, 0xF, 0x79, 0x85, 0x10, 0x42 .rodata:00061E90 DCB 8, 1, 5, 0, 0, 2, 6, 0, 0, 0x41, 0x3B, 0xE6, 0x34 .rodata:00061E90 DCB 0xA0, 0x65, 0xB8, 0x35, 0, 0, 0, 0, 1, 5, 0, 0, 1 .rodata:00061E90 DCB 6, 0, 0, 0, 0, 0, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1 .rodata:00061E90 DCB 0x83, 0xF, 0x3E, 0, 3, 0, 0, 1, 6, 0, 0, 0xC1, 0x3C .rodata:00061E90 DCB 0xFA, 0x4C, 0xB3, 0xD1, 0xAE, 0xA9, 0xF1, 0xF0, 0xF0 .rodata:00061E90 DCB 0xF0, 0, 5, 0, 0, 1, 6, 0, 0, 0x40, 0xD8, 0x13, 0x5C .rodata:00061E90 DCB 0x29, 0xC2, 0xDF, 0x63, 0xD5, 0x41, 0x1D, 0xD4, 1 .rodata:00061E90 DCB 6, 0, 0, 1, 6, 0, 0, 0x19, 0xB5, 0x91, 0x6D, 0x30 .rodata:00061E90 DCB 0xEE, 0xF, 0x2B, 0x39, 0x8E, 0xE3, 0x38, 0, 3, 0, 0 .rodata:00061E90 DCB 0, 6, 0, 0, 0, 0x10, 0xBF, 0x81, 0xB6, 0xD1, 0x1B .rodata:00061E90 DCB 0xF9 .rodata:0006214C EXPORT _itoa_upper_digits .rodata:0006214C _itoa_upper_digits DCB "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .rodata:0006214C ; DATA XREF: vfprintf+DC4o .rodata:0006214C ; vfprintf:off_1DCE0o ... .rodata:00062170 EXPORT _itowa_lower_digits .rodata:00062170 _itowa_lower_digits DCB 0x30, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33 .rodata:00062170 ; DATA XREF: __printf_fphex+8A0o .rodata:00062170 ; __printf_fphex:off_23E4Co ... .rodata:00062170 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0 .rodata:00062170 DCB 0, 0x37, 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x61 .rodata:00062170 DCB 0, 0, 0, 0x62, 0, 0, 0, 0x63, 0, 0, 0, 0x64, 0, 0 .rodata:00062170 DCB 0, 0x65, 0, 0, 0, 0x66, 0, 0, 0, 0x67, 0, 0, 0, 0x68 .rodata:00062170 DCB 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0, 0, 0, 0x6B, 0, 0 .rodata:00062170 DCB 0, 0x6C, 0, 0, 0, 0x6D, 0, 0, 0, 0x6E, 0, 0, 0, 0x6F .rodata:00062170 DCB 0, 0, 0, 0x70, 0, 0, 0, 0x71, 0, 0, 0, 0x72, 0, 0 .rodata:00062170 DCB 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0x75, 0, 0, 0, 0x76 .rodata:00062170 DCB 0, 0, 0, 0x77, 0, 0, 0, 0x78, 0, 0, 0, 0x79, 0, 0 .rodata:00062170 DCB 0, 0x7A, 0, 0, 0 .rodata:00062200 EXPORT _itowa_upper_digits .rodata:00062200 _itowa_upper_digits DCB 0x30, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33 .rodata:00062200 ; DATA XREF: vfwprintf+10C0o .rodata:00062200 ; vfwprintf:off_2A82Co ... .rodata:00062200 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0 .rodata:00062200 DCB 0, 0x37, 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x41 .rodata:00062200 DCB 0, 0, 0, 0x42, 0, 0, 0, 0x43, 0, 0, 0, 0x44, 0, 0 .rodata:00062200 DCB 0, 0x45, 0, 0, 0, 0x46, 0, 0, 0, 0x47, 0, 0, 0, 0x48 .rodata:00062200 DCB 0, 0, 0, 0x49, 0, 0, 0, 0x4A, 0, 0, 0, 0x4B, 0, 0 .rodata:00062200 DCB 0, 0x4C, 0, 0, 0, 0x4D, 0, 0, 0, 0x4E, 0, 0, 0, 0x4F .rodata:00062200 DCB 0, 0, 0, 0x50, 0, 0, 0, 0x51, 0, 0, 0, 0x52, 0, 0 .rodata:00062200 DCB 0, 0x53, 0, 0, 0, 0x54, 0, 0, 0, 0x55, 0, 0, 0, 0x56 .rodata:00062200 DCB 0, 0, 0, 0x57, 0, 0, 0, 0x58, 0, 0, 0, 0x59, 0, 0 .rodata:00062200 DCB 0, 0x5A, 0, 0, 0 .rodata:00062290 dword_62290 DCD 0x544D47 ; DATA XREF: __tz_convert+13Co .rodata:00062290 ; __tz_convert:off_4CEE0o .rodata:00062294 dword_62294 DCD 0x5A54 ; DATA XREF: tzset_internal+3Co .rodata:00062294 ; tzset_internal:off_4C128o .rodata:00062298 byte_62298 DCB 0x2F ; DATA XREF: tzset_internal+48o .rodata:00062298 ; tzset_internal+50r ... .rodata:00062299 aUsrLocalArm2_2 DCB "usr/local/arm/2.95.3/arm-linux/etc/localtime",0 .rodata:000622C6 ALIGN 4 .rodata:000622C8 aUniversal DCB "Universal",0 ; DATA XREF: tzset_internal+54o .rodata:000622C8 ; tzset_internal:off_4C130o .rodata:000622D2 ALIGN 4 .rodata:000622D4 aUtc DCB "UTC",0 ; DATA XREF: tzset_internal+194o .rodata:000622D4 ; tzset_internal:off_4C140o .rodata:000622D8 dword_622D8 DCD 0 ; DATA XREF: tzset_internal+1B4o .rodata:000622D8 ; tzset_internal:off_4C144o .rodata:000622DC a09 DCB "%[^0-9,+-]",0 ; DATA XREF: tzset_internal+1F0o .rodata:000622DC ; tzset_internal:off_4C148o ... .rodata:000622E7 ALIGN 4 .rodata:000622E8 aHuHuHu DCB "%hu:%hu:%hu",0 ; DATA XREF: tzset_internal+2A4o .rodata:000622E8 ; tzset_internal:off_4C150o ... .rodata:000622F4 aMHu_Hu_HuN DCB "M%hu.%hu.%hu%n",0 ; DATA XREF: tzset_internal+78Co .rodata:000622F4 ; tzset_internal:off_4C748o .rodata:00062303 ALIGN 4 .rodata:00062304 default_tzdir.120 DCB "/usr/local/arm/2.95.3/arm-linux/share/zoneinfo",0 .rodata:00062304 ; DATA XREF: __tzfile_read+90o .rodata:00062304 ; __tzfile_read+E4o ... .rodata:00062333 ALIGN 4 .rodata:00062334 byte_62334 DCB 0x2F ; DATA XREF: __tzfile_read+48o .rodata:00062334 ; __tzfile_read+50r ... .rodata:00062335 aUsrLocalArm2_3 DCB "usr/local/arm/2.95.3/arm-linux/etc/localtime",0 .rodata:00062362 ALIGN 4 .rodata:00062364 a__ DCB "../",0 ; DATA XREF: __tzfile_read:loc_4D014o .rodata:00062364 ; __tzfile_read:off_4D360o .rodata:00062368 aTzdir DCB "TZDIR",0 ; DATA XREF: __tzfile_read+C4o .rodata:00062368 ; __tzfile_read:off_4D364o .rodata:0006236E ALIGN 0x10 .rodata:00062370 aR_1 DCB "r",0 ; DATA XREF: __tzfile_read:loc_4D0ACo .rodata:00062370 ; __tzfile_read:off_4D368o .rodata:00062372 ALIGN 4 .rodata:00062374 aNum_types1 DCB "num_types == 1",0 ; DATA XREF: __tzfile_read+848o .rodata:00062374 ; __tzfile_read:off_4D91Co ... .rodata:00062383 ALIGN 4 .rodata:00062384 aTzfile_c DCB "tzfile.c",0 ; DATA XREF: __tzfile_read+84Co .rodata:00062384 ; __tzfile_read:off_4D920o ... .rodata:0006238D ALIGN 0x10 .rodata:00062390 a__tzfile_read DCB "__tzfile_read",0 ; DATA XREF: __tzfile_read+854o .rodata:00062390 ; __tzfile_read:off_4D924o .rodata:0006239E ALIGN 0x10 .rodata:000623A0 aPosixrules DCB "posixrules",0 ; DATA XREF: __tzfile_default+3Co .rodata:000623A0 ; __tzfile_default:off_4DA64o .rodata:000623AB ALIGN 4 .rodata:000623AC a__tzfile_compu DCB "__tzfile_compute",0 ; DATA XREF: __tzfile_compute+FCo .rodata:000623AC ; __tzfile_compute:off_4DD70o .rodata:000623BD ALIGN 0x10 .rodata:000623C0 aDevNull_0 DCB "/dev/null",0 ; DATA XREF: tryopen_o_directory+14o .rodata:000623C0 ; .text:off_4E004o .rodata:000623CA ALIGN 4 .rodata:000623CC aLast_offset1 DCB "last_offset != -1",0 ; DATA XREF: __getdents+2B8o .rodata:000623CC ; __getdents:off_4E5B0o .rodata:000623DE ALIGN 0x10 .rodata:000623E0 a__SysdepsUnixS DCB "../sysdeps/unix/sysv/linux/getdents.c",0 .rodata:000623E0 ; DATA XREF: __getdents+2BCo .rodata:000623E0 ; __getdents:off_4E5B4o .rodata:00062406 ALIGN 4 .rodata:00062408 a__getdents DCB "__getdents",0 ; DATA XREF: __getdents+2C0o .rodata:00062408 ; __getdents:off_4E5B8o .rodata:00062413 ALIGN 4 .rodata:00062414 DCB " ",9,0 .rodata:00062417 ALIGN 4 .rodata:00062418 dword_62418 DCD 0 ; DATA XREF: getmntent_r:loc_4ED94o .rodata:00062418 ; getmntent_r:loc_4EE6Co ... .rodata:0006241C aDD DCB " %d %d ",0 ; DATA XREF: getmntent_r+418o .rodata:0006241C ; getmntent_r:off_4F070o .rodata:00062424 aSSSSDD DCB "%s %s %s %s %d %d",0xA,0 ; DATA XREF: addmntent+4Co .rodata:00062424 ; addmntent:off_4F3FCo .rodata:00062437 ALIGN 4 .rodata:00062438 dword_62438 DCD 0x6E6F6D67 ; DATA XREF: _dl_start_profile+19Co .rodata:00062438 ; _dl_start_profile+1A0r ... .rodata:0006243C ALIGN 0x10 .rodata:00062440 aSeconds DCB "seconds",0 ; DATA XREF: _dl_start_profile+1C4o .rodata:00062440 ; _dl_start_profile:off_4F8F8o .rodata:00062448 a_profile DCB ".profile",0 ; DATA XREF: _dl_start_profile+224o .rodata:00062448 ; _dl_start_profile:off_4F900o .rodata:00062451 ALIGN 4 .rodata:00062454 aSCannotOpenFil DCB "%s: cannot open file: %s",0xA,0 .rodata:00062454 ; DATA XREF: _dl_start_profile+26Co .rodata:00062454 ; _dl_start_profile:off_4F904o .rodata:0006246E ALIGN 0x10 .rodata:00062470 aSCannotStatFil DCB "%s: cannot stat file: %s",0xA,0 .rodata:00062470 ; DATA XREF: _dl_start_profile+2C4o .rodata:00062470 ; _dl_start_profile:off_4F908o .rodata:0006248A ALIGN 4 .rodata:0006248C aSCannotCreateF DCB "%s: cannot create file: %s",0xA,0 .rodata:0006248C ; DATA XREF: _dl_start_profile+368o .rodata:0006248C ; _dl_start_profile:off_4F90Co .rodata:000624A8 aSFileIsNoCorre DCB "%s: file is no correct profile data file for `%s'",0xA,0 .rodata:000624A8 ; DATA XREF: _dl_start_profile:loc_4F8C0o .rodata:000624A8 ; _dl_start_profile:off_4F910o .rodata:000624DB ALIGN 4 .rodata:000624DC aSCannotMapFile DCB "%s: cannot map file: %s",0xA,0 .rodata:000624DC ; DATA XREF: _dl_start_profile+498o .rodata:000624DC ; _dl_start_profile:off_4FC28o .rodata:000624F5 ALIGN 4 .rodata:000624F8 aOutOfMemoryWhi DCB "Out of memory while initializing profiler",0xA,0 .rodata:000624F8 ; DATA XREF: _dl_start_profile+5C0o .rodata:000624F8 ; _dl_start_profile:off_4FC40o .rodata:00062523 ALIGN 4 .rodata:00062524 table.45 DCD 0x2020100, 0x3030303, 0x4040404, 0x4040404, 0x5050505 .rodata:00062524 ; DATA XREF: ffsl:loc_50534o .rodata:00062524 ; .text:off_50548o .rodata:00062524 DCD 0x5050505, 0x5050505, 0x5050505, 0x6060606, 0x6060606 .rodata:00062524 DCD 0x6060606, 0x6060606, 0x6060606, 0x6060606, 0x6060606 .rodata:00062524 DCD 0x6060606, 0x7070707, 0x7070707, 0x7070707, 0x7070707 .rodata:00062524 DCD 0x7070707, 0x7070707, 0x7070707, 0x7070707, 0x7070707 .rodata:00062524 DCD 0x7070707, 0x7070707, 0x7070707, 0x7070707, 0x7070707 .rodata:00062524 DCD 0x7070707, 0x7070707, 0x8080808, 0x8080808, 0x8080808 .rodata:00062524 DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:00062524 DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:00062524 DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:00062524 DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:00062524 DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:00062524 DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:00062624 EXPORT __mon_yday .rodata:00062624 __mon_yday DCB 0, 0, 0x1F, 0, 0x3B, 0, 0x5A, 0, 0x78, 0, 0x97, 0 .rodata:00062624 ; DATA XREF: compute_change+1F0o .rodata:00062624 ; compute_change:off_4CBB8o ... .rodata:00062624 DCB 0xB5, 0, 0xD4, 0, 0xF3, 0, 0x11, 1, 0x30, 1, 0x4E .rodata:00062624 DCB 1, 0x6D, 1, 0, 0, 0x1F, 0, 0x3C, 0, 0x5B, 0, 0x79 .rodata:00062624 DCB 0, 0x98, 0, 0xB6, 0, 0xD5, 0, 0xF4, 0, 0x12, 1, 0x31 .rodata:00062624 DCB 1, 0x4F, 1, 0x6E, 1 .rodata:00062658 aCannotExtendGl DCB "cannot extend global scope",0 .rodata:00062658 ; DATA XREF: add_to_global+84o .rodata:00062658 ; .text:off_51378o .rodata:00062673 ALIGN 4 .rodata:00062674 aDlopen DCB "dlopen",0 ; DATA XREF: dl_open_worker+54o .rodata:00062674 ; dl_open_worker+16Co ... .rodata:0006267B ALIGN 4 .rodata:0006267C aDstNotAllowedI DCB "DST not allowed in SUID/SGID programs",0 .rodata:0006267C ; DATA XREF: dl_open_worker+58o .rodata:0006267C ; dl_open_worker:off_51630o .rodata:000626A2 ALIGN 4 .rodata:000626A4 aCall_mapL_name DCB "(call_map)->l_name[0] == '\0'",0 .rodata:000626A4 ; DATA XREF: dl_open_worker+D0o .rodata:000626A4 ; dl_open_worker:off_51638o .rodata:000626C2 ALIGN 4 .rodata:000626C4 aDlOpen_c DCB "dl-open.c",0 ; DATA XREF: dl_open_worker+D4o .rodata:000626C4 ; dl_open_worker+1B0o ... .rodata:000626CE ALIGN 0x10 .rodata:000626D0 aDl_open_worker DCB "dl_open_worker",0 ; DATA XREF: dl_open_worker+D8o .rodata:000626D0 ; dl_open_worker+1B4o ... .rodata:000626DF ALIGN 0x10 .rodata:000626E0 aEmptyDynamicSt DCB "empty dynamic string token substitution",0 .rodata:000626E0 ; DATA XREF: dl_open_worker+170o .rodata:000626E0 ; dl_open_worker:off_51648o .rodata:00062708 aMode0x00004 DCB "mode & 0x00004",0 ; DATA XREF: dl_open_worker+1ACo .rodata:00062708 ; dl_open_worker:off_5164Co .rodata:00062717 ALIGN 4 .rodata:00062718 aOpeningFileSOp DCB "opening file=%s; opencount == %u",0xA .rodata:00062718 ; DATA XREF: dl_open_worker+1DCo .rodata:00062718 ; dl_open_worker:off_51654o ... .rodata:00062718 DCB 0xA,0 .rodata:0006273B ALIGN 4 .rodata:0006273C aInvalidModeFor DCB "invalid mode for dlopen()",0 .rodata:0006273C ; DATA XREF: .text:00051784o .rodata:0006273C ; .text:off_518E0o .rodata:00062756 ALIGN 4 .rodata:00062758 aSharedObjectNo DCB "shared object not open",0 ; DATA XREF: _dl_close+48o .rodata:00062758 ; _dl_close:off_51C70o .rodata:0006276F ALIGN 0x10 .rodata:00062770 aClosingFileSOp DCB 0xA ; DATA XREF: _dl_close+A8o .rodata:00062770 ; _dl_close:off_51C80o .rodata:00062770 DCB "closing file=%s; opencount == %u",0xA,0 .rodata:00062793 ALIGN 4 .rodata:00062794 aDep_listJL_idx DCB "dep_list[j]->l_idx < map->l_searchlist.r_nlist",0 .rodata:00062794 ; DATA XREF: _dl_close+1D8o .rodata:00062794 ; _dl_close:off_51C88o .rodata:000627C3 ALIGN 4 .rodata:000627C4 aDlClose_c DCB "dl-close.c",0 ; DATA XREF: _dl_close+1DCo .rodata:000627C4 ; _dl_close+22Co ... .rodata:000627CF ALIGN 0x10 .rodata:000627D0 a_dl_close DCB "_dl_close",0 ; DATA XREF: _dl_close+1E0o .rodata:000627D0 ; _dl_close+230o ... .rodata:000627DA ALIGN 4 .rodata:000627DC aNew_opencount0 DCB "new_opencount[0] == 0",0 ; DATA XREF: _dl_close+228o .rodata:000627DC ; _dl_close:off_51C94o .rodata:000627F2 ALIGN 4 .rodata:000627F4 aCallingFiniS DCB 0xA ; DATA XREF: _dl_close+2C4o .rodata:000627F4 ; _dl_close:off_51C98o .rodata:000627F4 DCB "calling fini: %s",0xA .rodata:000627F4 DCB 0xA,0 .rodata:00062808 aImapL_typeLt_l DCB "imap->l_type == lt_loaded || imap->l_opencount > 0",0 .rodata:00062808 ; DATA XREF: _dl_close+35Co .rodata:00062808 ; _dl_close:off_51C9Co .rodata:0006283B ALIGN 4 .rodata:0006283C aBadDynamicTa_1 DCB "bad dynamic tag",0 .rodata:0006284C aBadDynamicTa_2 DCB "! ",0x22,"bad dynamic tag",0x22,0 .rodata:00062860 aDynamicLink__0 DCB "dynamic-link.h",0 .rodata:0006286F ALIGN 0x10 .rodata:00062870 aElf_get_dyna_0 DCB "elf_get_dynamic_info",0 .rodata:00062885 ALIGN 4 .rodata:00062888 aInfo19D_un_d_0 DCB "info[19]->d_un.d_val == sizeof (Elf32_Rel)",0 .rodata:000628B3 ALIGN 4 .rodata:000628B4 aInfo20D_un_d_0 DCB "info[20]->d_un.d_val == 17",0 .rodata:000628CF ALIGN 0x10 .rodata:000628D0 aRelocationProc DCB 0xA ; DATA XREF: .text:000522DCo .rodata:000628D0 ; .text:off_5267Co .rodata:000628D0 DCB "relocation processing: %s%s",0xA,0 .rodata:000628EE ALIGN 0x10 .rodata:000628F0 aLazy DCB " (lazy)",0 ; DATA XREF: .text:000522D4o .rodata:000628F0 ; .text:off_52678o .rodata:000628F8 dword_628F8 DCD 0 ; DATA XREF: .text:000522CCo .rodata:000628F8 ; .text:off_52674o .rodata:000628FC aCannotMakeSegm DCB "cannot make segment writable for relocation",0 .rodata:000628FC ; DATA XREF: .text:00052394o .rodata:000628FC ; .text:off_52684o .rodata:00062928 aCouldNotMapPag DCB "could not map page for fixup",0 .rodata:00062928 ; DATA XREF: fix_bad_pc24.111+78o .rodata:00062928 ; fix_bad_pc24.111:off_521F8o .rodata:00062945 ALIGN 4 .rodata:00062948 aCouldNotMapP_0 DCB "! ",0x22,"could not map page for fixup",0x22,0 .rodata:00062948 ; DATA XREF: fix_bad_pc24.111+84o .rodata:00062948 ; fix_bad_pc24.111:off_521FCo .rodata:00062969 ALIGN 4 .rodata:0006296C a__SysdepsArmDl DCB "../sysdeps/arm/dl-machine.h",0 .rodata:0006296C ; DATA XREF: fix_bad_pc24.111+88o .rodata:0006296C ; fix_bad_pc24.111:off_52200o .rodata:00062988 aFix_bad_pc24 DCB "fix_bad_pc24",0 ; DATA XREF: fix_bad_pc24.111+90o .rodata:00062988 ; fix_bad_pc24.111:off_52204o .rodata:00062995 ALIGN 4 .rodata:00062998 aSSymbolSHasDif DCB "%s: Symbol `%s' has different size in shared object, consider re" .rodata:00062998 ; DATA XREF: .text:00052754o .rodata:00062998 ; .text:000529D4o ... .rodata:00062998 DCB "-linking",0xA,0 .rodata:000629E2 ALIGN 4 .rodata:000629E4 aProgramNameU_0 DCB "<program name unknown>",0 .rodata:000629E4 ; DATA XREF: .text:loc_52750o .rodata:000629E4 ; .text:loc_529D0o ... .rodata:000629FB ALIGN 4 .rodata:000629FC aR_arm_pc24Relo DCB "R_ARM_PC24 relocation out of range",0 .rodata:000629FC ; DATA XREF: .text:0005282Co .rodata:000629FC ; .text:00052AACo ... .rodata:00062A1F ALIGN 0x10 .rodata:00062A20 aSProfilerFound DCB "%s: profiler found no PLTREL in object %s",0xA,0 .rodata:00062A20 ; DATA XREF: .text:00052B40o .rodata:00062A20 ; .text:off_52C80o .rodata:00062A4B ALIGN 4 .rodata:00062A4C aSProfilerOutOf DCB "%s: profiler out of memory shadowing PLTREL of %s",0xA,0 .rodata:00062A4C ; DATA XREF: .text:00052B94o .rodata:00062A4C ; .text:off_52C84o .rodata:00062A7F ALIGN 0x10 .rodata:00062A80 aCanTRestoreSeg DCB "can't restore segment prot after reloc",0 .rodata:00062A80 ; DATA XREF: .text:00052C68o .rodata:00062A80 ; .text:off_52C90o .rodata:00062AA7 ALIGN 4 .rodata:00062AA8 aDstNotAllowe_0 DCB "DST not allowed in SUID/SGID programs",0 .rodata:00062AA8 ; DATA XREF: .text:00053004o .rodata:00062AA8 ; .text:000531ECo ... .rodata:00062ACE ALIGN 0x10 .rodata:00062AD0 aLL_name00_0 DCB "(l)->l_name[0] == '\0'",0 ; DATA XREF: .text:00053038o .rodata:00062AD0 ; .text:00053220o ... .rodata:00062AE7 ALIGN 4 .rodata:00062AE8 aDlDeps_c DCB "dl-deps.c",0 ; DATA XREF: .text:0005303Co .rodata:00062AE8 ; .text:00053224o ... .rodata:00062AF2 ALIGN 4 .rodata:00062AF4 a_dl_map_obje_0 DCB "_dl_map_object_deps",0 ; DATA XREF: .text:00053040o .rodata:00062AF4 ; .text:0005322Co ... .rodata:00062B08 aEmptyDynamicsS DCB "empty dynamics string token substitution",0 .rodata:00062B08 ; DATA XREF: .text:000532C4o .rodata:00062B08 ; .text:off_533B8o .rodata:00062B31 ALIGN 4 .rodata:00062B34 aCannotLoadAuxi DCB "cannot load auxiliary `%s' because ofempty dynamic string token " .rodata:00062B34 ; DATA XREF: .text:000530D8o .rodata:00062B34 ; .text:000532E0o ... .rodata:00062B34 DCB "substitution",0xA,0 .rodata:00062B82 ALIGN 4 .rodata:00062B84 aLoadAuxiliaryO DCB "load auxiliary object=%s requested by file=%s",0xA,0 .rodata:00062B84 ; DATA XREF: .text:0005331Co .rodata:00062B84 ; .text:off_533BCo .rodata:00062BB3 ALIGN 4 .rodata:00062BB4 aErrstringVoid0 DCB "errstring != ((void *)0)",0 .rodata:00062BB4 ; DATA XREF: .text:00053360o .rodata:00062BB4 ; .text:off_533C4o .rodata:00062BCD ALIGN 0x10 .rodata:00062BD0 aLoadFilteredOb DCB "load filtered object=%s requested by file=%s",0xA,0 .rodata:00062BD0 ; DATA XREF: .text:000533E4o .rodata:00062BD0 ; .text:off_53780o .rodata:00062BFE ALIGN 0x10 .rodata:00062C00 aCannotAlloca_1 DCB "cannot allocate dependency list",0 .rodata:00062C00 ; DATA XREF: .text:0005367Co .rodata:00062C00 ; .text:off_5378Co .rodata:00062C20 aMapL_searchlis DCB "map->l_searchlist.r_list == ((void *)0)",0 .rodata:00062C20 ; DATA XREF: .text:0005370Co .rodata:00062C20 ; .text:off_53790o .rodata:00062C48 aCannotAlloca_2 DCB "cannot allocate symbol search list",0 .rodata:00062C48 ; DATA XREF: .text:00053770o .rodata:00062C48 ; .text:off_5379Co .rodata:00062C6B ALIGN 4 .rodata:00062C6C dword_62C6C DCD 0 ; DATA XREF: .text:000539E0o .rodata:00062C6C ; .text:off_53A04o .rodata:00062C70 aCannotLoadShar DCB "cannot load shared object file",0 .rodata:00062C70 ; DATA XREF: .text:000539E8o .rodata:00062C70 ; .text:off_53A08o .rodata:00062C8F ALIGN 0x10 .rodata:00062C90 aBadDynamicTa_3 DCB "bad dynamic tag",0 .rodata:00062CA0 aBadDynamicTa_4 DCB "! ",0x22,"bad dynamic tag",0x22,0 .rodata:00062CB4 aDynamicLink__1 DCB "dynamic-link.h",0 .rodata:00062CC3 ALIGN 4 .rodata:00062CC4 aElf_get_dyna_1 DCB "elf_get_dynamic_info",0 .rodata:00062CD9 ALIGN 4 .rodata:00062CDC aInfo19D_un_d_1 DCB "info[19]->d_un.d_val == sizeof (Elf32_Rel)",0 .rodata:00062D07 ALIGN 4 .rodata:00062D08 aInfo20D_un_d_1 DCB "info[20]->d_un.d_val == 17",0 .rodata:00062D23 ALIGN 4 .rodata:00062D24 aRelocR_info0xf DCB "((reloc->r_info) & 0xff) == 22",0 .rodata:00062D24 ; DATA XREF: fixup+64o .rodata:00062D24 ; fixup:off_53B5Co ... .rodata:00062D43 ALIGN 4 .rodata:00062D44 aDlRuntime_c DCB "dl-runtime.c",0 ; DATA XREF: fixup+68o .rodata:00062D44 ; fixup:off_53B60o ... .rodata:00062D51 ALIGN 4 .rodata:00062D54 aFixup DCB "fixup",0 ; DATA XREF: fixup+6Co .rodata:00062D54 ; fixup:off_53B64o .rodata:00062D5A ALIGN 4 .rodata:00062D5C aProfile_fixup DCB "profile_fixup",0 ; DATA XREF: profile_fixup+84o .rodata:00062D5C ; profile_fixup:off_53CC0o .rodata:00062D6A ALIGN 4 .rodata:00062D6C aCallingInitS DCB 0xA ; DATA XREF: call_init+84o .rodata:00062D6C ; .text:off_53E58o .rodata:00062D6C DCB "calling init: %s",0xA .rodata:00062D6C DCB 0xA,0 .rodata:00062D80 aCallingPreinit DCB 0xA ; DATA XREF: _dl_init+7Co .rodata:00062D80 ; .text:off_53F88o .rodata:00062D80 DCB "calling preinit: %s",0xA .rodata:00062D80 DCB 0xA,0 .rodata:00062D97 ALIGN 4 .rodata:00062D98 aCheckingForVer DCB "checking for version `%s' in file %s required by file %s",0xA,0 .rodata:00062D98 ; DATA XREF: match_symbol+54o .rodata:00062D98 ; match_symbol:off_54320o .rodata:00062DD2 ALIGN 4 .rodata:00062DD4 aNoVersionInfor DCB "no version information available (required by ",0 .rodata:00062DD4 ; DATA XREF: match_symbol+98o .rodata:00062DD4 ; match_symbol:off_54324o .rodata:00062E03 ALIGN 4 .rodata:00062E04 asc_62E04 DCB ")",0 ; DATA XREF: match_symbol+A8o .rodata:00062E04 ; match_symbol+2A8o ... .rodata:00062E06 ALIGN 4 .rodata:00062E08 aDef_offset0 DCB "def_offset != 0",0 ; DATA XREF: match_symbol+114o .rodata:00062E08 ; match_symbol:off_5432Co .rodata:00062E18 aDlVersion_c DCB "dl-version.c",0 ; DATA XREF: match_symbol+118o .rodata:00062E18 ; match_symbol:off_54330o ... .rodata:00062E25 ALIGN 4 .rodata:00062E28 aMatch_symbol DCB "match_symbol",0 ; DATA XREF: match_symbol+11Co .rodata:00062E28 ; match_symbol:off_54334o .rodata:00062E35 ALIGN 4 .rodata:00062E38 aUnsupportedVer DCB "unsupported version ",0 ; DATA XREF: match_symbol+164o .rodata:00062E38 ; match_symbol:off_54338o ... .rodata:00062E4D ALIGN 0x10 .rodata:00062E50 aOfVerdefRecord DCB " of Verdef record",0 ; DATA XREF: match_symbol+184o .rodata:00062E50 ; match_symbol:off_54340o .rodata:00062E62 ALIGN 4 .rodata:00062E64 aWeakVersion DCB "weak version `",0 ; DATA XREF: match_symbol+290o .rodata:00062E64 ; match_symbol:off_54344o .rodata:00062E73 ALIGN 4 .rodata:00062E74 aNotFoundRequir DCB "' not found (required by ",0 .rodata:00062E74 ; DATA XREF: match_symbol+298o .rodata:00062E74 ; match_symbol:off_54348o ... .rodata:00062E8E ALIGN 0x10 .rodata:00062E90 aVersion_0 DCB "version `",0 ; DATA XREF: match_symbol+370o .rodata:00062E90 ; match_symbol:off_543E4o .rodata:00062E9A ALIGN 4 .rodata:00062E9C aOfVerneedRecor DCB " of Verneed record",0xA,0 .rodata:00062E9C ; DATA XREF: _dl_check_map_versions+E8o .rodata:00062E9C ; _dl_check_map_versions:off_547DCo .rodata:00062EB0 aNeededVoid0 DCB "needed != ((void *)0)",0 .rodata:00062EB0 ; DATA XREF: _dl_check_map_versions+260o .rodata:00062EB0 ; _dl_check_map_versions:off_547E4o .rodata:00062EC6 ALIGN 4 .rodata:00062EC8 a_dl_check_map_ DCB "_dl_check_map_versions",0 .rodata:00062EC8 ; DATA XREF: _dl_check_map_versions+268o .rodata:00062EC8 ; _dl_check_map_versions:off_547ECo .rodata:00062EDF ALIGN 0x10 .rodata:00062EE0 aCannotAlloca_3 DCB "cannot allocate version reference table",0 .rodata:00062EE0 ; DATA XREF: _dl_check_map_versions+3D0o .rodata:00062EE0 ; _dl_check_map_versions:off_547F0o .rodata:00062F08 __clz_tab DCB 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5 .rodata:00062F08 ; DATA XREF: __udivdi3+54o .rodata:00062F08 ; __udivdi3+188o ... .rodata:00062F08 DCB 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6 .rodata:00062F08 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 .rodata:00062F08 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7 .rodata:00062F08 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00062F08 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00062F08 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00062F08 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062F08 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062F08 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062F08 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062F08 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062F08 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062F08 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062F08 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062F08 DCB 8 .rodata:00063008 __clz_tab_0 DCB 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5 .rodata:00063008 ; DATA XREF: __umoddi3+5Co .rodata:00063008 ; __umoddi3+DCo ... .rodata:00063008 DCB 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6 .rodata:00063008 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 .rodata:00063008 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7 .rodata:00063008 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00063008 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00063008 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00063008 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00063008 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00063008 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00063008 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00063008 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00063008 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00063008 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00063008 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00063008 DCB 8 .rodata:00063008 ; .rodata ends .rodata:00063008 __libc_atexit:00063108 ; =========================================================================== __libc_atexit:00063108 __libc_atexit:00063108 ; Segment type: Pure data __libc_atexit:00063108 AREA __libc_atexit, DATA, READONLY __libc_atexit:00063108 ; ORG 0x63108 __libc_atexit:00063108 __elf_set___libc_atexit_element__cleanup__ DCD 0xA748 __libc_atexit:00063108 ; DATA XREF: exit+Co __libc_atexit:00063108 ; .text:off_9078o __libc_atexit:00063108 ; __libc_atexit ends __libc_atexit:00063108 __libc_subinit:0006310C ; =========================================================================== __libc_subinit:0006310C __libc_subinit:0006310C ; Segment type: Pure data __libc_subinit:0006310C AREA __libc_subinit, DATA, READONLY __libc_subinit:0006310C ; ORG 0x6310C __libc_subinit:0006310C __elf_set___libc_subinit_element_non_dynamic_init__ DCD 0x173EC __libc_subinit:0006310C ; DATA XREF: exit+14o __libc_subinit:0006310C ; .text:off_907Co ... __libc_subinit:00063110 __elf_set___libc_subinit_element_set_progname__ DCD 0x179B0 __libc_subinit:00063114 __elf_set___libc_subinit_element___init_misc__ DCD 0x3602C __libc_subinit:00063114 ; __libc_subinit ends __libc_subinit:00063114 __libc_subfreeres:00063118 ; =========================================================================== __libc_subfreeres:00063118 __libc_subfreeres:00063118 ; Segment type: Pure data __libc_subfreeres:00063118 AREA __libc_subfreeres, DATA, READONLY __libc_subfreeres:00063118 ; ORG 0x63118 __libc_subfreeres:00063118 __elf_set___libc_subfreeres_element_free_mem__ DCD 0x189B4 __libc_subfreeres:00063118 ; DATA XREF: __libc_init+1Co __libc_subfreeres:00063118 ; .text:off_178C8o __libc_subfreeres:0006311C __elf_set___libc_subfreeres_element_free_mem___0 DCD 0x18CE8 __libc_subfreeres:00063120 __elf_set___libc_subfreeres_element_free_mem___1 DCD 0x19B4C __libc_subfreeres:00063124 __elf_set___libc_subfreeres_element_free_mem___2 DCD 0x1BCC0 __libc_subfreeres:00063128 __elf_set___libc_subfreeres_element_free_mem___3 DCD 0x35FE8 __libc_subfreeres:0006312C __elf_set___libc_subfreeres_element_free_mem___4 DCD 0x379CC __libc_subfreeres:00063130 __elf_set___libc_subfreeres_element_free_mem___5 DCD 0x38A3C __libc_subfreeres:00063134 __elf_set___libc_subfreeres_element_free_mem___6 DCD 0x3EED4 __libc_subfreeres:00063138 __elf_set___libc_subfreeres_element_free_mem___7 DCD 0x3F770 __libc_subfreeres:0006313C __elf_set___libc_subfreeres_element_free_mem___8 DCD 0x3FEF0 __libc_subfreeres:00063140 __elf_set___libc_subfreeres_element_free_mem___9 DCD 0x40A64 __libc_subfreeres:00063144 __elf_set___libc_subfreeres_element_free_mem___10 DCD 0x4CF14 __libc_subfreeres:00063148 __elf_set___libc_subfreeres_element_freeres__ DCD 0x4DF78 __libc_subfreeres:0006314C __elf_set___libc_subfreeres_element_free_mem___11 DCD 0x501E0 __libc_subfreeres:00063150 __elf_set___libc_subfreeres_element_free_mem___12 DCD 0x51F58 __libc_subfreeres:00063150 ; __libc_subfreeres ends __libc_subfreeres:00063150 .data:0006B154 ; =========================================================================== .data:0006B154 .data:0006B154 ; Segment type: Pure data .data:0006B154 AREA .data, DATA .data:0006B154 ; ORG 0x6B154 .data:0006B154 EXPORT __data_start .data:0006B154 __data_start DCD 0 ; Alternative name is 'data_start' .data:0006B158 p.3 DCD 0x6C244 ; DATA XREF: __do_global_dtors_aux+20o .data:0006B158 ; __do_global_dtors_aux+24r ... .data:0006B15C completed.4 DCD 0 ; DATA XREF: __do_global_dtors_aux+8o .data:0006B15C ; __do_global_dtors_aux+10r ... .data:0006B160 force_to_data_0 DCD 0xFFFFFFFF ; DATA XREF: open_usbd_interface+18o .data:0006B160 ; open_usbd_interface+20w ... .data:0006B164 arm_fpga_p DCD 0 ; DATA XREF: open_fpga_interface+5Co .data:0006B164 ; open_fpga_interface+64w ... .data:0006B168 arm_fpga_fd DCD 0 ; DATA XREF: open_fpga_interface+1Co .data:0006B168 ; open_fpga_interface+24w ... .data:0006B16C lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006B16C ; DATA XREF: abort+20o .data:0006B16C ; abort+B8o ... .data:0006B16C DCB 0, 0, 0, 0, 0, 0, 0 .data:0006B184 EXPORT __exit_funcs .data:0006B184 __exit_funcs DCD 0x9534C ; DATA XREF: exit+8o .data:0006B184 ; exit+1Cr ... .data:0006B188 list_all_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006B188 ; DATA XREF: _IO_un_link+28o .data:0006B188 ; _IO_un_link+84o ... .data:0006B188 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006B1A0 _IO_stdfile_0_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006B1A0 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 _IO_wide_data_0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1B8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0xBB .data:0006B1B8 DCB 6, 0 .data:0006B274 EXPORT _IO_2_1_stdin_ .data:0006B274 _IO_2_1_stdin_ DCB 0x88, 0x20, 0xAD, 0xFB, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B274 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B274 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B274 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B274 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0xA0, 0xB1, 6 .data:0006B274 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .data:0006B274 DCB 0, 0, 0, 0, 0xB8, 0xB1, 6, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B274 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B274 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B274 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4C .data:0006B274 DCB 0xBC, 6, 0 .data:0006B30C _IO_stdfile_1_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006B30C DCB 0, 0, 0, 0, 0, 0, 0 .data:0006B324 _IO_wide_data_1 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B324 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0xBB .data:0006B324 DCB 6, 0 .data:0006B3E0 EXPORT _IO_2_1_stdout_ .data:0006B3E0 _IO_2_1_stdout_ DCB 0x84, 0x20, 0xAD, 0xFB, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B3E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B3E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B3E0 DCB 0, 0, 0, 0, 0, 0x74, 0xB2, 6, 0, 1, 0, 0, 0, 0, 0 .data:0006B3E0 DCB 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0xC, 0xB3 .data:0006B3E0 DCB 6, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .data:0006B3E0 DCB 0, 0, 0, 0, 0x24, 0xB3, 6, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B3E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B3E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B3E0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4C .data:0006B3E0 DCB 0xBC, 6, 0 .data:0006B478 _IO_stdfile_2_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006B478 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006B490 _IO_wide_data_2 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B490 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0xBB .data:0006B490 DCB 6, 0 .data:0006B54C EXPORT _IO_2_1_stderr_ .data:0006B54C _IO_2_1_stderr_ DCB 0x86, 0x20, 0xAD, 0xFB, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B54C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B54C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B54C DCB 0, 0, 0, 0, 0, 0xE0, 0xB3, 6, 0, 2, 0, 0, 0, 0, 0 .data:0006B54C DCB 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0x78, 0xB4 .data:0006B54C DCB 6, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .data:0006B54C DCB 0, 0, 0, 0, 0x90, 0xB4, 6, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B54C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B54C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B54C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4C .data:0006B54C DCB 0xBC, 6, 0 .data:0006B5E4 EXPORT _IO_list_all .data:0006B5E4 _IO_list_all DCD 0x6B54C ; DATA XREF: _IO_un_link:loc_9844o .data:0006B5E4 ; _IO_un_link+38r ... .data:0006B5E8 EXPORT stdin .data:0006B5E8 stdin DCD 0x6B274 ; DATA XREF: fclose:loc_2E6E8o .data:0006B5E8 ; fclose+14Cr ... .data:0006B5E8 ; Alternative name is '_IO_stdin' .data:0006B5EC EXPORT stdout .data:0006B5EC stdout DCD 0x6B3E0 ; DATA XREF: printf+Co .data:0006B5EC ; printf+18r ... .data:0006B5EC ; Alternative name is '_IO_stdout' .data:0006B5F0 EXPORT stderr .data:0006B5F0 stderr DCD 0x6B54C ; DATA XREF: perror+54o .data:0006B5F0 ; perror+5Cr ... .data:0006B5F0 ; Alternative name is '_IO_stderr' .data:0006B5F4 EXPORT _IO_str_jumps .data:0006B5F4 _IO_str_jumps DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xE0, 0xB0, 0, 0, 0xF0, 0xAC .data:0006B5F4 ; DATA XREF: vsscanf+44o .data:0006B5F4 ; vsscanf:off_96E8o .data:0006B5F4 DCB 0, 0, 0x60, 0xAE, 0, 0, 0x44, 0x9F, 0, 0, 0xA4, 0xB0 .data:0006B5F4 DCB 0, 0, 0x84, 0x9F, 0, 0, 0x78, 0xA0, 0, 0, 0xE4, 0xAE .data:0006B5F4 DCB 0, 0, 0xEC, 0xA1, 0, 0, 0x28, 0xA1, 0, 0, 0xCC, 0xA3 .data:0006B5F4 DCB 0, 0, 0x20, 0xA2, 0, 0, 0x7C, 0xAA, 0, 0, 0x90, 0xAA .data:0006B5F4 DCB 0, 0, 0x50, 0xAA, 0, 0, 0xCC, 0xA3, 0, 0, 0x68, 0xAA .data:0006B5F4 DCB 0, 0, 0xA4, 0xAA, 0, 0, 0xB8, 0xAA, 0, 0 .data:0006B648 EXPORT __morecore .data:0006B648 __morecore DCD 0xF350 ; DATA XREF: chunk_alloc:loc_C4B8o .data:0006B648 ; chunk_alloc:off_C73Co ... .data:0006B64C main_arena DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x4C, 0xB6, 6, 0, 0x4C, 0xB6 .data:0006B64C ; DATA XREF: ptmalloc_lock_all:loc_B158o .data:0006B64C ; .text:off_B228o ... .data:0006B64C DCB 6, 0, 0x54, 0xB6, 6, 0, 0x54, 0xB6, 6, 0, 0x5C, 0xB6 .data:0006B64C DCB 6, 0, 0x5C, 0xB6, 6, 0, 0x64, 0xB6, 6, 0, 0x64, 0xB6 .data:0006B64C DCB 6, 0, 0x6C, 0xB6, 6, 0, 0x6C, 0xB6, 6, 0, 0x74, 0xB6 .data:0006B64C DCB 6, 0, 0x74, 0xB6, 6, 0, 0x7C, 0xB6, 6, 0, 0x7C, 0xB6 .data:0006B64C DCB 6, 0, 0x84, 0xB6, 6, 0, 0x84, 0xB6, 6, 0, 0x8C, 0xB6 .data:0006B64C DCB 6, 0, 0x8C, 0xB6, 6, 0, 0x94, 0xB6, 6, 0, 0x94, 0xB6 .data:0006B64C DCB 6, 0, 0x9C, 0xB6, 6, 0, 0x9C, 0xB6, 6, 0, 0xA4, 0xB6 .data:0006B64C DCB 6, 0, 0xA4, 0xB6, 6, 0, 0xAC, 0xB6, 6, 0, 0xAC, 0xB6 .data:0006B64C DCB 6, 0, 0xB4, 0xB6, 6, 0, 0xB4, 0xB6, 6, 0, 0xBC, 0xB6 .data:0006B64C DCB 6, 0, 0xBC, 0xB6, 6, 0, 0xC4, 0xB6, 6, 0, 0xC4, 0xB6 .data:0006B64C DCB 6, 0, 0xCC, 0xB6, 6, 0, 0xCC, 0xB6, 6, 0, 0xD4, 0xB6 .data:0006B64C DCB 6, 0, 0xD4, 0xB6, 6, 0, 0xDC, 0xB6, 6, 0, 0xDC, 0xB6 .data:0006B64C DCB 6, 0, 0xE4, 0xB6, 6, 0, 0xE4, 0xB6, 6, 0, 0xEC, 0xB6 .data:0006B64C DCB 6, 0, 0xEC, 0xB6, 6, 0, 0xF4, 0xB6, 6, 0, 0xF4, 0xB6 .data:0006B64C DCB 6, 0, 0xFC, 0xB6, 6, 0, 0xFC, 0xB6, 6, 0, 4, 0xB7 .data:0006B64C DCB 6, 0, 4, 0xB7, 6, 0, 0xC, 0xB7, 6, 0, 0xC, 0xB7, 6 .data:0006B64C DCB 0, 0x14, 0xB7, 6, 0, 0x14, 0xB7, 6, 0, 0x1C, 0xB7 .data:0006B64C DCB 6, 0, 0x1C, 0xB7, 6, 0, 0x24, 0xB7, 6, 0, 0x24, 0xB7 .data:0006B64C DCB 6, 0, 0x2C, 0xB7, 6, 0, 0x2C, 0xB7, 6, 0, 0x34, 0xB7 .data:0006B64C DCB 6, 0, 0x34, 0xB7, 6, 0, 0x3C, 0xB7, 6, 0, 0x3C, 0xB7 .data:0006B64C DCB 6, 0, 0x44, 0xB7, 6, 0, 0x44, 0xB7, 6, 0, 0x4C, 0xB7 .data:0006B64C DCB 6, 0, 0x4C, 0xB7, 6, 0, 0x54, 0xB7, 6, 0, 0x54, 0xB7 .data:0006B64C DCB 6, 0, 0x5C, 0xB7, 6, 0, 0x5C, 0xB7, 6, 0, 0x64, 0xB7 .data:0006B64C DCB 6, 0, 0x64, 0xB7, 6, 0, 0x6C, 0xB7, 6, 0, 0x6C, 0xB7 .data:0006B64C DCB 6, 0, 0x74, 0xB7, 6, 0, 0x74, 0xB7, 6, 0, 0x7C, 0xB7 .data:0006B64C DCB 6, 0, 0x7C, 0xB7, 6, 0, 0x84, 0xB7, 6, 0, 0x84, 0xB7 .data:0006B64C DCB 6, 0, 0x8C, 0xB7, 6, 0, 0x8C, 0xB7, 6, 0, 0x94, 0xB7 .data:0006B64C DCB 6, 0, 0x94, 0xB7, 6, 0, 0x9C, 0xB7, 6, 0, 0x9C, 0xB7 .data:0006B64C DCB 6, 0, 0xA4, 0xB7, 6, 0, 0xA4, 0xB7, 6, 0, 0xAC, 0xB7 .data:0006B64C DCB 6, 0, 0xAC, 0xB7, 6, 0, 0xB4, 0xB7, 6, 0, 0xB4, 0xB7 .data:0006B64C DCB 6, 0, 0xBC, 0xB7, 6, 0, 0xBC, 0xB7, 6, 0, 0xC4, 0xB7 .data:0006B64C DCB 6, 0, 0xC4, 0xB7, 6, 0, 0xCC, 0xB7, 6, 0, 0xCC, 0xB7 .data:0006B64C DCB 6, 0, 0xD4, 0xB7, 6, 0, 0xD4, 0xB7, 6, 0, 0xDC, 0xB7 .data:0006B64C DCB 6, 0, 0xDC, 0xB7, 6, 0, 0xE4, 0xB7, 6, 0, 0xE4, 0xB7 .data:0006B64C DCB 6, 0, 0xEC, 0xB7, 6, 0, 0xEC, 0xB7, 6, 0, 0xF4, 0xB7 .data:0006B64C DCB 6, 0, 0xF4, 0xB7, 6, 0, 0xFC, 0xB7, 6, 0, 0xFC, 0xB7 .data:0006B64C DCB 6, 0, 4, 0xB8, 6, 0, 4, 0xB8, 6, 0, 0xC, 0xB8, 6, 0 .data:0006B64C DCB 0xC, 0xB8, 6, 0, 0x14, 0xB8, 6, 0, 0x14, 0xB8, 6, 0 .data:0006B64C DCB 0x1C, 0xB8, 6, 0, 0x1C, 0xB8, 6, 0, 0x24, 0xB8, 6 .data:0006B64C DCB 0, 0x24, 0xB8, 6, 0, 0x2C, 0xB8, 6, 0, 0x2C, 0xB8 .data:0006B64C DCB 6, 0, 0x34, 0xB8, 6, 0, 0x34, 0xB8, 6, 0, 0x3C, 0xB8 .data:0006B64C DCB 6, 0, 0x3C, 0xB8, 6, 0, 0x44, 0xB8, 6, 0, 0x44, 0xB8 .data:0006B64C DCB 6, 0, 0x4C, 0xB8, 6, 0, 0x4C, 0xB8, 6, 0, 0x54, 0xB8 .data:0006B64C DCB 6, 0, 0x54, 0xB8, 6, 0, 0x5C, 0xB8, 6, 0, 0x5C, 0xB8 .data:0006B64C DCB 6, 0, 0x64, 0xB8, 6, 0, 0x64, 0xB8, 6, 0, 0x6C, 0xB8 .data:0006B64C DCB 6, 0, 0x6C, 0xB8, 6, 0, 0x74, 0xB8, 6, 0, 0x74, 0xB8 .data:0006B64C DCB 6, 0, 0x7C, 0xB8, 6, 0, 0x7C, 0xB8, 6, 0, 0x84, 0xB8 .data:0006B64C DCB 6, 0, 0x84, 0xB8, 6, 0, 0x8C, 0xB8, 6, 0, 0x8C, 0xB8 .data:0006B64C DCB 6, 0, 0x94, 0xB8, 6, 0, 0x94, 0xB8, 6, 0, 0x9C, 0xB8 .data:0006B64C DCB 6, 0, 0x9C, 0xB8, 6, 0, 0xA4, 0xB8, 6, 0, 0xA4, 0xB8 .data:0006B64C DCB 6, 0, 0xAC, 0xB8, 6, 0, 0xAC, 0xB8, 6, 0, 0xB4, 0xB8 .data:0006B64C DCB 6, 0, 0xB4, 0xB8, 6, 0, 0xBC, 0xB8, 6, 0, 0xBC, 0xB8 .data:0006B64C DCB 6, 0, 0xC4, 0xB8, 6, 0, 0xC4, 0xB8, 6, 0, 0xCC, 0xB8 .data:0006B64C DCB 6, 0, 0xCC, 0xB8, 6, 0, 0xD4, 0xB8, 6, 0, 0xD4, 0xB8 .data:0006B64C DCB 6, 0, 0xDC, 0xB8, 6, 0, 0xDC, 0xB8, 6, 0, 0xE4, 0xB8 .data:0006B64C DCB 6, 0, 0xE4, 0xB8, 6, 0, 0xEC, 0xB8, 6, 0, 0xEC, 0xB8 .data:0006B64C DCB 6, 0, 0xF4, 0xB8, 6, 0, 0xF4, 0xB8, 6, 0, 0xFC, 0xB8 .data:0006B64C DCB 6, 0, 0xFC, 0xB8, 6, 0, 4, 0xB9, 6, 0, 4, 0xB9, 6 .data:0006B64C DCB 0, 0xC, 0xB9, 6, 0, 0xC, 0xB9, 6, 0, 0x14, 0xB9, 6 .data:0006B64C DCB 0, 0x14, 0xB9, 6, 0, 0x1C, 0xB9, 6, 0, 0x1C, 0xB9 .data:0006B64C DCB 6, 0, 0x24, 0xB9, 6, 0, 0x24, 0xB9, 6, 0, 0x2C, 0xB9 .data:0006B64C DCB 6, 0, 0x2C, 0xB9, 6, 0, 0x34, 0xB9, 6, 0, 0x34, 0xB9 .data:0006B64C DCB 6, 0, 0x3C, 0xB9, 6, 0, 0x3C, 0xB9, 6, 0, 0x44, 0xB9 .data:0006B64C DCB 6, 0, 0x44, 0xB9, 6, 0, 0x4C, 0xB9, 6, 0, 0x4C, 0xB9 .data:0006B64C DCB 6, 0, 0x54, 0xB9, 6, 0, 0x54, 0xB9, 6, 0, 0x5C, 0xB9 .data:0006B64C DCB 6, 0, 0x5C, 0xB9, 6, 0, 0x64, 0xB9, 6, 0, 0x64, 0xB9 .data:0006B64C DCB 6, 0, 0x6C, 0xB9, 6, 0, 0x6C, 0xB9, 6, 0, 0x74, 0xB9 .data:0006B64C DCB 6, 0, 0x74, 0xB9, 6, 0, 0x7C, 0xB9, 6, 0, 0x7C, 0xB9 .data:0006B64C DCB 6, 0, 0x84, 0xB9, 6, 0, 0x84, 0xB9, 6, 0, 0x8C, 0xB9 .data:0006B64C DCB 6, 0, 0x8C, 0xB9, 6, 0, 0x94, 0xB9, 6, 0, 0x94, 0xB9 .data:0006B64C DCB 6, 0, 0x9C, 0xB9, 6, 0, 0x9C, 0xB9, 6, 0, 0xA4, 0xB9 .data:0006B64C DCB 6, 0, 0xA4, 0xB9, 6, 0, 0xAC, 0xB9, 6, 0, 0xAC, 0xB9 .data:0006B64C DCB 6, 0, 0xB4, 0xB9, 6, 0, 0xB4, 0xB9, 6, 0, 0xBC, 0xB9 .data:0006B64C DCB 6, 0, 0xBC, 0xB9, 6, 0, 0xC4, 0xB9, 6, 0, 0xC4, 0xB9 .data:0006B64C DCB 6, 0, 0xCC, 0xB9, 6, 0, 0xCC, 0xB9, 6, 0, 0xD4, 0xB9 .data:0006B64C DCB 6, 0, 0xD4, 0xB9, 6, 0, 0xDC, 0xB9, 6, 0, 0xDC, 0xB9 .data:0006B64C DCB 6, 0, 0xE4, 0xB9, 6, 0, 0xE4, 0xB9, 6, 0, 0xEC, 0xB9 .data:0006B64C DCB 6, 0, 0xEC, 0xB9, 6, 0, 0xF4, 0xB9, 6, 0, 0xF4, 0xB9 .data:0006B64C DCB 6, 0, 0xFC, 0xB9, 6, 0, 0xFC, 0xB9, 6, 0, 4, 0xBA .data:0006B64C DCB 6, 0, 4, 0xBA, 6, 0, 0xC, 0xBA, 6, 0, 0xC, 0xBA, 6 .data:0006B64C DCB 0, 0x14, 0xBA, 6, 0, 0x14, 0xBA, 6, 0, 0x1C, 0xBA .data:0006B64C DCB 6, 0, 0x1C, 0xBA, 6, 0, 0x24, 0xBA, 6, 0, 0x24, 0xBA .data:0006B64C DCB 6, 0, 0x2C, 0xBA, 6, 0, 0x2C, 0xBA, 6, 0, 0x34, 0xBA .data:0006B64C DCB 6, 0, 0x34, 0xBA, 6, 0, 0x3C, 0xBA, 6, 0, 0x3C, 0xBA .data:0006B64C DCB 6, 0, 0x44, 0xBA, 6, 0, 0x44, 0xBA, 6, 0, 0x4C, 0xB6 .data:0006B64C DCB 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B64C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BA74 list_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BA74 ; DATA XREF: ptmalloc_lock_all+18o .data:0006BA74 ; ptmalloc_lock_all:loc_B14Co ... .data:0006BA74 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006BA8C trim_threshold DCD 0x20000 ; DATA XREF: chunk_free+74o .data:0006BA8C ; chunk_free+78r ... .data:0006BA90 top_pad DCD 0 ; DATA XREF: new_heap+Co .data:0006BA90 ; new_heap+14r ... .data:0006BA94 n_mmaps_max DCD 0x400 ; DATA XREF: chunk_alloc+358o .data:0006BA94 ; chunk_alloc+360r ... .data:0006BA98 mmap_threshold DCD 0x20000 ; DATA XREF: chunk_alloc+344o .data:0006BA98 ; chunk_alloc+348r ... .data:0006BA9C check_action DCD 1 ; DATA XREF: __malloc_check_init+5Co .data:0006BA9C ; __malloc_check_init+60r ... .data:0006BAA0 sbrk_base DCD 0xFFFFFFFF ; DATA XREF: chunk_alloc+430o .data:0006BAA0 ; chunk_alloc+438r ... .data:0006BAA4 EXPORT __libc_malloc_initialized .data:0006BAA4 __libc_malloc_initialized DCD 0xFFFFFFFF ; DATA XREF: ptmalloc_init+8o .data:0006BAA4 ; ptmalloc_init+10r ... .data:0006BAA8 WEAK __malloc_initialize_hook .data:0006BAA8 __malloc_initialize_hook DCD 0 ; DATA XREF: ptmalloc_init:loc_B654o .data:0006BAA8 ; ptmalloc_init+22Cr ... .data:0006BAAC WEAK __free_hook .data:0006BAAC __free_hook DCD 0 ; DATA XREF: ptmalloc_lock_all+3Co .data:0006BAAC ; .text:off_B230o ... .data:0006BAB0 WEAK __malloc_hook .data:0006BAB0 __malloc_hook DCD 0xB6E0 ; DATA XREF: ptmalloc_lock_all+38o .data:0006BAB0 ; .text:off_B22Co ... .data:0006BAB4 WEAK __realloc_hook .data:0006BAB4 __realloc_hook DCD 0xB710 ; DATA XREF: realloc_hook_ini+18o .data:0006BAB4 ; realloc_hook_ini+1Cw ... .data:0006BAB8 WEAK __memalign_hook .data:0006BAB8 __memalign_hook DCD 0xB754 ; DATA XREF: memalign_hook_ini+8o .data:0006BAB8 ; memalign_hook_ini+10w ... .data:0006BABC WEAK __after_morecore_hook .data:0006BABC __after_morecore_hook DCD 0 ; DATA XREF: chunk_alloc:loc_C4E0o .data:0006BABC ; chunk_alloc+494r ... .data:0006BAC0 WEAK environ .data:0006BAC0 environ DCD 0 ; DATA XREF: __libc_start_main+58o .data:0006BAC0 ; __libc_start_main+5Cw ... .data:0006BAC0 ; Alternative name is '__environ' .data:0006BAC4 EXPORT _dl_correct_cache_id .data:0006BAC4 _dl_correct_cache_id DCD 3 ; DATA XREF: _dl_load_cache_lookup+2C8o .data:0006BAC4 ; _dl_load_cache_lookup+2CCr ... .data:0006BAC8 EXPORT _dl_debug_fd .data:0006BAC8 _dl_debug_fd DCD 2 ; DATA XREF: _dl_debug_printf+Co .data:0006BAC8 ; _dl_debug_printf+1Cr ... .data:0006BACC EXPORT _dl_argv .data:0006BACC _dl_argv DCD 0x6BD28 ; DATA XREF: print_search_path+160o .data:0006BACC ; print_search_path+164r ... .data:0006BAD0 EXPORT _dl_dynamic_weak .data:0006BAD0 _dl_dynamic_weak DCD 1 ; DATA XREF: _dl_lookup_symbol+30Co .data:0006BAD0 ; _dl_lookup_symbol+310r ... .data:0006BAD4 EXPORT _dl_global_scope .data:0006BAD4 _dl_global_scope DCQ 0x95D10 .data:0006BADC EXPORT _dl_main_searchlist .data:0006BADC _dl_main_searchlist DCD 0x95D10 ; DATA XREF: add_to_global+20o .data:0006BADC ; add_to_global+110o ... .data:0006BAE0 EXPORT _dl_starting_up .data:0006BAE0 _dl_starting_up DCD 1 ; DATA XREF: __libc_start_main+2Co .data:0006BAE0 ; __libc_start_main+40r ... .data:0006BAE4 EXPORT _dl_load_lock .data:0006BAE4 _dl_load_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006BAE4 ; DATA XREF: add_dependency+24o .data:0006BAE4 ; add_dependency+17Co ... .data:0006BAE4 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006BAFC unsecure_envvars.111 DCD aGconv_path_0 ; DATA XREF: non_dynamic_init+E8o .data:0006BAFC ; .text:off_17570o .data:0006BAFC ; "GCONV_PATH" .data:0006BB00 DCD aHostaliases ; "HOSTALIASES" .data:0006BB04 DCD aLocaldomain ; "LOCALDOMAIN" .data:0006BB08 DCD aLocpath_0 ; "LOCPATH" .data:0006BB0C DCD aMalloc_trace ; "MALLOC_TRACE" .data:0006BB10 DCD aNlspath ; "NLSPATH" .data:0006BB14 DCD aResolv_host_co ; "RESOLV_HOST_CONF" .data:0006BB18 DCD aRes_options ; "RES_OPTIONS" .data:0006BB1C DCD aTmpdir ; "TMPDIR" .data:0006BB20 DCD aTzdir_0 ; "TZDIR" .data:0006BB24 EXPORT __libc_enable_secure .data:0006BB24 __libc_enable_secure DCD 1 ; DATA XREF: __libc_start_main:loc_8BE8o .data:0006BB24 ; __libc_start_main+88r ... .data:0006BB28 EXPORT __libc_multiple_libcs .data:0006BB28 __libc_multiple_libcs DCD 1 ; DATA XREF: __libc_start_main:loc_8BB4o .data:0006BB28 ; __libc_start_main+54w ... .data:0006BB2C EXPORT _nl_current_default_domain .data:0006BB2C _nl_current_default_domain DCD 0x568EC ; DATA XREF: __dcigettext+50o .data:0006BB2C ; __dcigettext+54r ... .data:0006BB30 EXPORT _nl_state_lock .data:0006BB30 _nl_state_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BB30 ; DATA XREF: __dcigettext+3Co .data:0006BB30 ; __dcigettext+3A4o ... .data:0006BB30 DCB 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 .data:0006BB50 germanic_plural DCB 2, 0, 0, 0, 0xD, 0, 0, 0, 0x9C, 0x69, 5, 0, 0xB0, 0x69 .data:0006BB50 ; DATA XREF: _nl_load_domain+434o .data:0006BB50 ; _nl_load_domain:off_19464o ... .data:0006BB50 DCB 5, 0, 0, 0, 0, 0 .data:0006BB64 locale_alias_path.123 DCD 0x56A08 ; DATA XREF: _nl_expand_alias:loc_19564o .data:0006BB64 ; _nl_expand_alias+9Cr ... .data:0006BB68 EXPORT __fpu_control .data:0006BB68 __fpu_control DCD 0x1000 ; DATA XREF: init+4Co .data:0006BB68 ; init+50r ... .data:0006BB6C EXPORT _IO_wfile_jumps .data:0006BB6C _IO_wfile_jumps DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x54, 0xF, 3, 0, 0xB0, 0xFD .data:0006BB6C ; DATA XREF: fopen+30o .data:0006BB6C ; fopen:off_2E7D0o .data:0006BB6C DCB 2, 0, 0xF8, 0xF9, 2, 0, 0x64, 0xED, 2, 0, 0xC, 0xEB .data:0006BB6C DCB 2, 0, 0x88, 7, 3, 0, 0xC, 0x20, 3, 0, 0xB8, 1, 3, 0 .data:0006BB6C DCB 0xEC, 0xA1, 0, 0, 0x10, 0x13, 3, 0, 0x3C, 0, 3, 0 .data:0006BB6C DCB 0xDC, 0xB5, 4, 0, 0x9C, 0x1D, 3, 0, 8, 0x1E, 3, 0 .data:0006BB6C DCB 0xB4, 0x1D, 3, 0, 0xF0, 0x1D, 3, 0, 0xCC, 0x1D, 3 .data:0006BB6C DCB 0, 0xA4, 0xAA, 0, 0, 0xB8, 0xAA, 0, 0 .data:0006BBC0 EXPORT __libio_codecvt .data:0006BBC0 __libio_codecvt DCB 0, 0, 0, 0, 8, 0xA, 3, 0, 0xD0, 0xA, 3, 0, 0x7C, 0xB .data:0006BBC0 ; DATA XREF: _IO_fwide+A4o .data:0006BBC0 ; _IO_fwide:off_309FCo ... .data:0006BBC0 DCB 3, 0, 0x44, 0xC, 3, 0, 0x78, 0xC, 3, 0, 0x8C, 0xC .data:0006BBC0 DCB 3, 0, 0x14, 0xD, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BBC0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BBC0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BBC0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BBC0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BBC0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BC38 libio_translit DCB 0x50, 0xE5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BC38 ; DATA XREF: _IO_fwide+F4o .data:0006BC38 ; _IO_fwide:off_30A00o .data:0006BC38 DCB 0, 0, 0, 0, 0 .data:0006BC4C EXPORT _IO_file_jumps .data:0006BC4C _IO_file_jumps DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x54, 0xF, 3, 0, 0x1C, 0x16 .data:0006BC4C ; DATA XREF: fopen+4Co .data:0006BC4C ; fopen:off_2E7D4o .data:0006BC4C DCB 3, 0, 0xC8, 0x14, 3, 0, 0x44, 0x9F, 0, 0, 0x18, 0xA9 .data:0006BC4C DCB 0, 0, 0x88, 0x1E, 3, 0, 0xC, 0x20, 3, 0, 0xB8, 0x18 .data:0006BC4C DCB 3, 0, 0xEC, 0xA1, 0, 0, 0x10, 0x13, 3, 0, 0xC0, 0x17 .data:0006BC4C DCB 3, 0, 0xF4, 0xB4, 4, 0, 0x9C, 0x1D, 3, 0, 8, 0x1E .data:0006BC4C DCB 3, 0, 0xB4, 0x1D, 3, 0, 0xF0, 0x1D, 3, 0, 0xCC, 0x1D .data:0006BC4C DCB 3, 0, 0xA4, 0xAA, 0, 0, 0xB8, 0xAA, 0, 0 .data:0006BCA0 EXPORT __wcsmbs_last_locale .data:0006BCA0 __wcsmbs_last_locale DCD 0x605F4 ; DATA XREF: btowc+80o .data:0006BCA0 ; btowc+88r ... .data:0006BCA4 to_wc DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0x1C .data:0006BCA4 ; DATA XREF: __wcsmbs_load_conv:loc_33BACo .data:0006BCA4 ; __wcsmbs_load_conv:off_33DF8o .data:0006BCA4 DCB 0x8D, 5, 0, 0x10, 0x8D, 5, 0, 0x30, 0xA1, 3, 0, 0 .data:0006BCA4 DCB 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0 .data:0006BCA4 DCB 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BCDC to_mb DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0x10 .data:0006BCDC ; DATA XREF: __wcsmbs_load_conv+58o .data:0006BCDC ; __wcsmbs_load_conv:off_33E00o .data:0006BCDC DCB 0x8D, 5, 0, 0x1C, 0x8D, 5, 0, 0x50, 0xA4, 3, 0, 0 .data:0006BCDC DCB 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0 .data:0006BCDC DCB 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BD14 EXPORT __wcsmbs_gconv_fcts .data:0006BD14 __wcsmbs_gconv_fcts DCQ 0x6BCDC0006BCA4 ; DATA XREF: btowc+A0o .data:0006BD14 ; btowc+A4r ... .data:0006BD1C EXPORT __libc_missing_32bit_uids .data:0006BD1C __libc_missing_32bit_uids DCD 0xFFFFFFFF ; DATA XREF: getuid+8o .data:0006BD1C ; getuid+Cr ... .data:0006BD20 EXPORT __curbrk .data:0006BD20 __curbrk DCD 0 ; DATA XREF: sbrk+Co .data:0006BD20 ; sbrk+14r ... .data:0006BD24 WEAK program_invocation_name .data:0006BD24 program_invocation_name DCD 0x58ED0 ; DATA XREF: __init_misc+40o .data:0006BD24 ; __init_misc+48w ... .data:0006BD24 ; Alternative name is '__progname_full' .data:0006BD28 WEAK program_invocation_short_name .data:0006BD28 program_invocation_short_name DCD 0x58ED0 ; DATA XREF: __init_misc+2Co .data:0006BD28 ; __init_misc+34o ... .data:0006BD2C internal_trans_names.84 DCD 0x58EE4 ; DATA XREF: __gconv_open+1B4o .data:0006BD2C ; __gconv_open:off_3654Co .data:0006BD30 builtin_modules DCB 0xEC, 0x90, 5, 0, 0xDC, 0x90, 5, 0, 1, 0, 0, 0, 0xFF .data:0006BD30 ; DATA XREF: __gconv_read_conf:loc_386C8o .data:0006BD30 ; __gconv_read_conf+10Co ... .data:0006BD30 DCB 0xFF, 0xFF, 0x7F, 0xCC, 0x90, 5, 0, 0, 0, 0, 0, 0 .data:0006BD30 DCB 0, 0, 0, 0, 0, 0, 0, 0xDC, 0x90, 5, 0, 0xEC, 0x90 .data:0006BD30 DCB 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0xBC, 0x90 .data:0006BD30 DCB 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xEC, 0x90 .data:0006BD30 DCB 5, 0, 0xB0, 0x90, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF .data:0006BD30 DCB 0x7F, 0x9C, 0x90, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BD30 DCB 0, 0, 0, 0xB0, 0x90, 5, 0, 0xEC, 0x90, 5, 0, 1, 0 .data:0006BD30 DCB 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0x88, 0x90, 5, 0, 0 .data:0006BD30 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xEC, 0x90, 5, 0 .data:0006BD30 DCB 0x78, 0x90, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F .data:0006BD30 DCB 0x68, 0x90, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BD30 DCB 0, 0x54, 0x90, 5, 0, 0xEC, 0x90, 5, 0, 1, 0, 0, 0 .data:0006BD30 DCB 0xFF, 0xFF, 0xFF, 0x7F, 0x44, 0x90, 5, 0, 0, 0, 0 .data:0006BD30 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x78, 0x90, 5, 0, 0xEC .data:0006BD30 DCB 0x90, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0x44 .data:0006BD30 DCB 0x90, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x34 .data:0006BD30 DCB 0x90, 5, 0, 0xEC, 0x90, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF .data:0006BD30 DCB 0xFF, 0x7F, 0x24, 0x90, 5, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BD30 DCB 0, 0, 0, 0, 0, 0xEC, 0x90, 5, 0, 0x34, 0x90, 5, 0 .data:0006BD30 DCB 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0x14, 0x90, 5 .data:0006BD30 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x90, 5 .data:0006BD30 DCB 0, 0xEC, 0x90, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF .data:0006BD30 DCB 0x7F, 0xEC, 0x8F, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BD30 DCB 0, 0, 0, 0xEC, 0x90, 5, 0, 0, 0x90, 5, 0, 1, 0, 0 .data:0006BD30 DCB 0, 0xFF, 0xFF, 0xFF, 0x7F, 0xD8, 0x8F, 5, 0, 0, 0 .data:0006BD30 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xC8, 0x8F, 5, 0, 0xEC .data:0006BD30 DCB 0x90, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0xB0 .data:0006BD30 DCB 0x8F, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xEC .data:0006BD30 DCB 0x90, 5, 0, 0xC8, 0x8F, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF .data:0006BD30 DCB 0xFF, 0x7F, 0x98, 0x8F, 5, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BD30 DCB 0, 0, 0, 0, 0 .data:0006BED0 builtin_aliases DCB 0xD8, 0x94, 5, 0, 0xC0, 0x94, 5, 0, 0xA4, 0x94, 5 .data:0006BED0 ; DATA XREF: __gconv_read_conf:loc_38800o .data:0006BED0 ; __gconv_read_conf:off_38A28o .data:0006BED0 DCB 0, 0x88, 0x94, 5, 0, 0x6C, 0x94, 5, 0, 0x4C, 0x94 .data:0006BED0 DCB 5, 0, 0x28, 0x94, 5, 0, 8, 0x94, 5, 0, 0xE8, 0x93 .data:0006BED0 DCB 5, 0, 0xC8, 0x93, 5, 0, 0xB4, 0x93, 5, 0, 0x9C, 0x93 .data:0006BED0 DCB 5, 0, 0x84, 0x93, 5, 0, 0x64, 0x93, 5, 0, 0x44, 0x93 .data:0006BED0 DCB 5, 0, 0x2C, 0x93, 5, 0, 0x14, 0x93, 5, 0, 0xF4, 0x92 .data:0006BED0 DCB 5, 0, 0xD4, 0x92, 5, 0, 0xB4, 0x92, 5, 0, 0x94, 0x92 .data:0006BED0 DCB 5, 0, 0x78, 0x92, 5, 0, 0x54, 0x92, 5, 0, 0x30, 0x92 .data:0006BED0 DCB 5, 0, 0x14, 0x92, 5, 0, 0xF4, 0x91, 5, 0, 0xD8, 0x91 .data:0006BED0 DCB 5, 0, 0xC0, 0x91, 5, 0, 0xA4, 0x91, 5, 0, 0x88, 0x91 .data:0006BED0 DCB 5, 0, 0x6C, 0x91, 5, 0, 0x4C, 0x91, 5, 0, 0x2C, 0x91 .data:0006BED0 DCB 5, 0, 0x10, 0x91, 5, 0, 0xF8, 0x90, 5, 0 .data:0006BF5C map DCB 0x50, 0x96, 5, 0, 0x48, 0x8B, 3, 0, 0, 0, 0, 0, 0 .data:0006BF5C ; DATA XREF: __gconv_get_builtin_trans+18o .data:0006BF5C ; .text:off_38B38o .data:0006BF5C DCB 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0 .data:0006BF5C DCB 0, 0, 0x40, 0x96, 5, 0, 0x7C, 0x90, 3, 0, 0, 0, 0 .data:0006BF5C DCB 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .data:0006BF5C DCB 4, 0, 0, 0, 0x2C, 0x96, 5, 0, 0xBC, 0x96, 3, 0, 0 .data:0006BF5C DCB 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0 .data:0006BF5C DCB 0, 0, 4, 0, 0, 0, 0x18, 0x96, 5, 0, 0x48, 0x9B, 3 .data:0006BF5C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .data:0006BF5C DCB 4, 0, 0, 0, 4, 0, 0, 0, 8, 0x96, 5, 0, 0xD4, 0xAB .data:0006BF5C DCB 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0 .data:0006BF5C DCB 0, 1, 0, 0, 0, 6, 0, 0, 0, 0xF8, 0x95, 5, 0, 0x68 .data:0006BF5C DCB 0xB4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6 .data:0006BF5C DCB 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0xF8, 0x95, 5, 0 .data:0006BF5C DCB 0x68, 0xB4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 .data:0006BF5C DCB 0, 6, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0xE8, 0x95 .data:0006BF5C DCB 5, 0, 0x38, 0xC2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 .data:0006BF5C DCB 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0xD8 .data:0006BF5C DCB 0x95, 5, 0, 0xDC, 0xC9, 3, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BF5C DCB 0, 4, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 .data:0006BF5C DCB 0xC4, 0x95, 5, 0, 0x30, 0xA1, 3, 0, 0, 0, 0, 0, 0 .data:0006BF5C DCB 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 1, 0 .data:0006BF5C DCB 0, 0, 0xB0, 0x95, 5, 0, 0x50, 0xA4, 3, 0, 0, 0, 0 .data:0006BF5C DCB 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0 .data:0006BF5C DCB 1, 0, 0, 0, 0x98, 0x95, 5, 0, 0xBC, 0xD3, 3, 0, 0 .data:0006BF5C DCB 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 4, 0 .data:0006BF5C DCB 0, 0, 4, 0, 0, 0, 0x80, 0x95, 5, 0, 0x60, 0xDB, 3 .data:0006BF5C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .data:0006BF5C DCB 2, 0, 0, 0, 2, 0, 0, 0 .data:0006C0FC _nl_current_names DCB 0x6C, 0x1A, 6, 0, 0x6C, 0x1A, 6, 0, 0x6C, 0x1A, 6 .data:0006C0FC ; DATA XREF: setlocale+24o .data:0006C0FC ; setlocale+30o ... .data:0006C0FC DCB 0, 0x6C, 0x1A, 6, 0, 0x6C, 0x1A, 6, 0, 0x6C, 0x1A .data:0006C0FC DCB 6, 0, 0x6C, 0x1A, 6, 0, 0x6C, 0x1A, 6, 0, 0x6C, 0x1A .data:0006C0FC DCB 6, 0, 0x6C, 0x1A, 6, 0, 0x6C, 0x1A, 6, 0, 0x6C, 0x1A .data:0006C0FC DCB 6, 0, 0x6C, 0x1A, 6, 0 .data:0006C130 _nl_value_types DCB 0x44, 0x9E, 5, 0, 0x14, 0xA0, 5, 0, 0x2C, 0xA0, 5 .data:0006C130 ; DATA XREF: _nl_load_locale+2B0o .data:0006C130 ; _nl_load_locale:off_40294o .data:0006C130 DCB 0, 0xF8, 0x9D, 5, 0, 0x5C, 0x9F, 5, 0, 0xE8, 0xA1 .data:0006C130 DCB 5, 0, 0, 0, 0, 0, 0xFC, 0xA1, 5, 0, 8, 0xA2, 5, 0 .data:0006C130 DCB 0x24, 0xA2, 5, 0, 0x58, 0xA2, 5, 0, 0x6C, 0xA2, 5 .data:0006C130 DCB 0, 0x74, 0xA2, 5, 0 .data:0006C164 EXPORT _nl_current_LC_CTYPE .data:0006C164 _nl_current_LC_CTYPE DCD 0x605F4 ; DATA XREF: _i18n_number_rewrite+7Co .data:0006C164 ; _i18n_number_rewrite+84r ... .data:0006C168 EXPORT _nl_current_LC_MESSAGES .data:0006C168 _nl_current_LC_MESSAGES DCD 0x60844 .data:0006C16C EXPORT _nl_current_LC_MONETARY .data:0006C16C _nl_current_LC_MONETARY DCD 0x60890 ; DATA XREF: __printf_fp:loc_214ACo .data:0006C16C ; __printf_fp+74r ... .data:0006C170 EXPORT _nl_current_LC_NUMERIC .data:0006C170 _nl_current_LC_NUMERIC DCD 0x6096C ; DATA XREF: __strtol_internal+30o .data:0006C170 ; __strtol_internal+34r ... .data:0006C174 EXPORT _nl_current_LC_TIME .data:0006C174 _nl_current_LC_TIME DCD 0x609AC ; DATA XREF: _nl_init_era_entries+34o .data:0006C174 ; _nl_init_era_entries+38r ... .data:0006C178 EXPORT _nl_current_LC_PAPER .data:0006C178 _nl_current_LC_PAPER DCD 0x61190 .data:0006C17C EXPORT _nl_current_LC_NAME .data:0006C17C _nl_current_LC_NAME DCD 0x611BC .data:0006C180 EXPORT _nl_current_LC_ADDRESS .data:0006C180 _nl_current_LC_ADDRESS DCD 0x6120C .data:0006C184 EXPORT _nl_current_LC_TELEPHONE .data:0006C184 _nl_current_LC_TELEPHONE DCD 0x61290 .data:0006C188 EXPORT _nl_current_LC_MEASUREMENT .data:0006C188 _nl_current_LC_MEASUREMENT DCD 0x612D4 .data:0006C18C EXPORT _nl_current_LC_IDENTIFICATION .data:0006C18C _nl_current_LC_IDENTIFICATION DCD 0x61300 .data:0006C190 EXPORT _nl_current_LC_COLLATE .data:0006C190 _nl_current_LC_COLLATE DCD 0x61A00 .data:0006C194 EXPORT __ctype_b .data:0006C194 __ctype_b DCD 0x5EEDC ; DATA XREF: _nl_load_domain+388o .data:0006C194 ; _nl_load_domain+390r ... .data:0006C198 EXPORT __ctype32_b .data:0006C198 __ctype32_b DCD 0x5F0DC ; DATA XREF: _nl_postload_ctype+44o .data:0006C198 ; _nl_postload_ctype+4Cw ... .data:0006C19C EXPORT __ctype_tolower .data:0006C19C __ctype_tolower DCD 0x5FCDC ; DATA XREF: _nl_normalize_codeset+B0o .data:0006C19C ; _nl_normalize_codeset+D4r ... .data:0006C1A0 EXPORT __ctype_toupper .data:0006C1A0 __ctype_toupper DCD 0x5F6DC ; DATA XREF: _nl_init_domain_conv+188o .data:0006C1A0 ; _nl_init_domain_conv+190r ... .data:0006C1A4 EXPORT __ctype32_tolower .data:0006C1A4 __ctype32_tolower DCD 0x5FCDC ; DATA XREF: _nl_postload_ctype+5Co .data:0006C1A4 ; _nl_postload_ctype+64w ... .data:0006C1A8 EXPORT __ctype32_toupper .data:0006C1A8 __ctype32_toupper DCD 0x5F6DC ; DATA XREF: _nl_postload_ctype+50o .data:0006C1A8 ; _nl_postload_ctype+58w ... .data:0006C1AC EXPORT __ctype32_wctype .data:0006C1AC __ctype32_wctype DCB 0xFC, 0, 6, 0, 0x44, 1, 6, 0, 0x8C, 1, 6, 0, 0xD4 .data:0006C1AC ; DATA XREF: _nl_postload_ctype+68o .data:0006C1AC ; .text:off_40430o .data:0006C1AC DCB 1, 6, 0, 0x18, 2, 6, 0, 0x64, 2, 6, 0, 0xA8, 2, 6 .data:0006C1AC DCB 0, 0xF4, 2, 6, 0, 0x40, 3, 6, 0, 0x84, 3, 6, 0, 0xD0 .data:0006C1AC DCB 3, 6, 0, 0x1C, 4, 6, 0 .data:0006C1DC EXPORT __ctype32_wctrans .data:0006C1DC __ctype32_wctrans DCQ 0x604F000060448 ; DATA XREF: _nl_postload_ctype+94o .data:0006C1DC ; .text:off_40434o .data:0006C1E4 EXPORT __ctype32_width .data:0006C1E4 __ctype32_width DCD 0x60598 ; DATA XREF: _nl_postload_ctype+C8o .data:0006C1E4 ; _nl_postload_ctype+D0w ... .data:0006C1E8 WEAK tzname .data:0006C1E8 tzname DCQ 0x6229000062290 ; DATA XREF: tz_compute+ACo .data:0006C1E8 ; tz_compute+B4w ... .data:0006C1F0 WEAK daylight .data:0006C1F0 daylight DCD 0 ; DATA XREF: tz_compute+90o .data:0006C1F0 ; tz_compute+9Cw ... .data:0006C1F4 WEAK timezone .data:0006C1F4 timezone DCD 0 ; DATA XREF: tzset_internal+9D0o .data:0006C1F4 ; tzset_internal+9D8w ... .data:0006C1F4 ; Alternative name is '__timezone' .data:0006C1F8 state DCD 3 ; DATA XREF: _dl_start_profile:loc_4F584o .data:0006C1F8 ; _dl_start_profile+B8w ... .data:0006C1FC msg.146 DCB "unexpected PLT reloc type 0x??",0 .data:0006C1FC ; DATA XREF: .text:00052CE0o .data:0006C1FC ; .text:off_52D30o .data:0006C21B ALIGN 4 .data:0006C21C msg.147 DCB "unexpected reloc type 0x??",0 .data:0006C21C ; DATA XREF: .text:00052D08o .data:0006C21C ; .text:off_52D34o .data:0006C237 ALIGN 4 .data:0006C237 ; .data ends .data:0006C237 .ctors:0006C238 ; =========================================================================== .ctors:0006C238 .ctors:0006C238 ; Segment type: Pure data .ctors:0006C238 AREA .ctors, DATA .ctors:0006C238 ; ORG 0x6C238 .ctors:0006C238 force_to_data DCD 0xFFFFFFFF ; DATA XREF: __do_global_ctors_aux+8o .ctors:0006C238 ; __do_global_ctors_aux+Cr ... .ctors:0006C23C __CTOR_END__ DCD 0 .ctors:0006C23C ; .ctors ends .ctors:0006C23C .dtors:0006C240 ; =========================================================================== .dtors:0006C240 .dtors:0006C240 ; Segment type: Pure data .dtors:0006C240 AREA .dtors, DATA .dtors:0006C240 ; ORG 0x6C240 .dtors:0006C240 __DTOR_LIST__ DCD 0xFFFFFFFF .dtors:0006C244 __DTOR_END__ DCD 0 .dtors:0006C244 ; .dtors ends .dtors:0006C244 .got:0006C248 ; =========================================================================== .got:0006C248 .got:0006C248 ; Segment type: Pure data .got:0006C248 AREA .got, DATA .got:0006C248 ; ORG 0x6C248 .got:0006C248 EXPORT _GLOBAL_OFFSET_TABLE_ .got:0006C248 _GLOBAL_OFFSET_TABLE_ DCD 0 ; DATA XREF: call_gmon_start+10o .got:0006C248 ; .text:off_8144o ... .got:0006C24C DCD 0 .got:0006C250 DCD 0 .got:0006C254 off_6C254 DCD 0 ; DATA XREF: call_gmon_start+14r .got:0006C254 ; .text:off_8148o .got:0006C258 __clz_tab_ptr DCD __clz_tab ; DATA XREF: __udivdi3+54r .got:0006C258 ; __udivdi3+188r ... .got:0006C25C __clz_tab_0_ptr DCD __clz_tab_0 ; DATA XREF: __umoddi3+5Cr .got:0006C25C ; __umoddi3+DCr ... .got:0006C25C ; .got ends .got:0006C25C .bss:0006C260 ; =========================================================================== .bss:0006C260 .bss:0006C260 ; Segment type: Uninitialized .bss:0006C260 AREA .bss, DATA, ALIGN=4 .bss:0006C260 ; ORG 0x6C260 .bss:0006C260 usbd_recv_buf % 0x1F40 ; DATA XREF: read_data_from_usbd+20o .bss:0006C260 ; .text:off_82F0o .bss:0006E1A0 data0 % 0x1F54 ; DATA XREF: main+9Co .bss:0006E1A0 ; main+230o ... .bss:000700F4 data1 % 0x1F54 ; DATA XREF: main+ACo .bss:000700F4 ; main+278o ... .bss:00072048 data2 % 0x1F54 ; DATA XREF: main+C0o .bss:00072048 ; main+2C4o ... .bss:00073F9C data3 % 0x1F54 ; DATA XREF: main+D0o .bss:00073F9C ; main+310o ... .bss:00075EF0 data4 % 0x7D14 ; DATA XREF: main+E8o .bss:00075EF0 ; main:off_8A10o .bss:0007DC04 getdata1 % 0x7D14 ; DATA XREF: main+F0o .bss:0007DC04 ; main+380o ... .bss:00085918 getdata2 % 0x7D14 ; DATA XREF: main+10Co .bss:00085918 ; main:off_8A18o .bss:0008D62C pt_data % 4 .bss:0008D630 fifo_data % 0x7D00 ; DATA XREF: main+B4o .bss:0008D630 ; main+200o ... .bss:00095330 stage % 4 ; DATA XREF: abort:loc_8DD8o .bss:00095330 ; abort+30r ... .bss:00095334 lock_0 % 0x18 ; DATA XREF: __new_exitfn+1Co .bss:00095334 ; __new_exitfn+E4o ... .bss:0009534C initial % 0x208 .bss:00095554 __libc_pagesize % 4 ; DATA XREF: ptmalloc_init+28o .bss:00095554 ; ptmalloc_init+30w ... .bss:00095558 arena_key % 4 .bss:0009555C max_sbrked_mem % 4 ; DATA XREF: chunk_alloc+580o .bss:0009555C ; chunk_alloc+588r ... .bss:00095560 n_mmaps % 4 ; DATA XREF: munmap_chunk+8o .bss:00095560 ; munmap_chunk+Cr ... .bss:00095564 max_n_mmaps % 4 ; DATA XREF: chunk_alloc+3B4o .bss:00095564 ; chunk_alloc+3BCr ... .bss:00095568 mmapped_mem % 4 ; DATA XREF: munmap_chunk+20o .bss:00095568 ; munmap_chunk+2Cr ... .bss:0009556C max_mmapped_mem % 4 ; DATA XREF: mremap_chunk+6Co .bss:0009556C ; mremap_chunk+74r ... .bss:00095570 arena_mem % 4 ; DATA XREF: arena_get2+17Co .bss:00095570 ; arena_get2+1B0r ... .bss:00095574 save_malloc_hook % 4 ; DATA XREF: ptmalloc_lock_all+8Co .bss:00095574 ; ptmalloc_lock_all+90w ... .bss:00095578 save_free_hook % 4 ; DATA XREF: ptmalloc_lock_all+9Co .bss:00095578 ; ptmalloc_lock_all+A4w ... .bss:0009557C save_arena % 4 ; DATA XREF: ptmalloc_lock_all+C8o .bss:0009557C ; ptmalloc_lock_all+D0w ... .bss:00095580 using_malloc_checking % 4 ; DATA XREF: __malloc_check_init+24o .bss:00095580 ; __malloc_check_init+2Cw ... .bss:00095584 disallow_malloc_check % 4 ; DATA XREF: __malloc_check_init+8o .bss:00095584 ; __malloc_check_init+Cr ... .bss:00095588 env_path_list % 4 ; DATA XREF: _dl_init_paths+224o .bss:00095588 ; _dl_init_paths+22Cw ... .bss:0009558C dword_9558C % 4 ; DATA XREF: _dl_init_paths+548o .bss:00095590 capstr % 4 ; DATA XREF: _dl_init_paths+34o .bss:00095590 ; _dl_init_paths+38w ... .bss:00095594 ncapstr % 4 ; DATA XREF: decompose_rpath:loc_10A2Co .bss:00095594 ; decompose_rpath+270r ... .bss:00095598 max_capstrlen % 4 ; DATA XREF: _dl_init_paths+8o .bss:00095598 ; _dl_init_paths:off_10F1Co ... .bss:0009559C rtld_search_dirs % 4 ; DATA XREF: _dl_init_paths+44o .bss:0009559C ; _dl_init_paths+4Cw ... .bss:000955A0 dword_955A0 % 4 ; DATA XREF: _dl_init_paths+B8o .bss:000955A4 max_dirnamelen % 4 ; DATA XREF: decompose_rpath+2CCo .bss:000955A4 ; decompose_rpath+2D0r ... .bss:000955A8 cache % 4 ; DATA XREF: _dl_load_cache_lookup:loc_13000o .bss:000955A8 ; _dl_load_cache_lookup+34r ... .bss:000955AC cache_new % 4 ; DATA XREF: _dl_load_cache_lookup+90o .bss:000955AC ; _dl_load_cache_lookup+ACw ... .bss:000955B0 cachesize % 4 ; DATA XREF: _dl_load_cache_lookup+40o .bss:000955B0 ; _dl_load_cache_lookup+5Cr ... .bss:000955B4 __libc_tsd_DL_ERROR_data % 4 ; DATA XREF: _dl_signal_error:loc_16A1Co .bss:000955B4 ; _dl_signal_error+50r ... .bss:000955B8 receiver % 4 ; DATA XREF: _dl_signal_cerror+8o .bss:000955B8 ; _dl_signal_cerror+Cr ... .bss:000955BC EXPORT errno .bss:000955BC errno % 4 ; DATA XREF: __errno_location+Co .bss:000955BC ; .text:off_8DA8o ... .bss:000955BC ; Alternative name is '_errno' .bss:000955C0 lock.93 % 0x18 ; DATA XREF: _nl_find_msg+3ACo .bss:000955C0 ; _nl_find_msg+440o ... .bss:000955D8 freemem.94 % 4 ; DATA XREF: _nl_find_msg+3C0o .bss:000955D8 ; _nl_find_msg+3C8r ... .bss:000955DC freemem_size.95 % 4 ; DATA XREF: _nl_find_msg+3D0o .bss:000955DC ; _nl_find_msg:loc_1843Cr ... .bss:000955E0 root % 4 ; DATA XREF: __dcigettext+98o .bss:000955E0 ; __dcigettext:off_17E68o ... .bss:000955E4 transmem_list % 4 ; DATA XREF: _nl_find_msg+468o .bss:000955E4 ; _nl_find_msg+470r ... .bss:000955E8 _nl_loaded_domains % 4 ; DATA XREF: _nl_find_domain+54o .bss:000955E8 ; _nl_find_domain:off_18C80o ... .bss:000955EC lock_1 % 0x18 ; DATA XREF: _nl_expand_alias+24o .bss:000955EC ; _nl_expand_alias:off_19550o ... .bss:00095604 string_space % 4 ; DATA XREF: read_alias_file+2C8o .bss:00095604 ; read_alias_file+2D8r ... .bss:00095608 string_space_act % 4 ; DATA XREF: read_alias_file+2A0o .bss:00095608 ; read_alias_file+2A8r ... .bss:0009560C string_space_max % 4 ; DATA XREF: read_alias_file+2A4o .bss:0009560C ; read_alias_file+2B0r ... .bss:00095610 map_0 % 4 ; DATA XREF: _nl_expand_alias+54o .bss:00095610 ; _nl_expand_alias+5Cr ... .bss:00095614 nmap % 4 ; DATA XREF: _nl_expand_alias:loc_194FCo .bss:00095614 ; _nl_expand_alias:loc_19504r ... .bss:00095618 maxmap % 4 ; DATA XREF: read_alias_file+1D8o .bss:00095618 ; read_alias_file:off_19898o ... .bss:0009561C phys_pages.87 % 4 ; DATA XREF: qsort:loc_1B5E8o .bss:0009561C ; qsort+58r ... .bss:00095620 pagesize.88 % 4 ; DATA XREF: qsort+54o .bss:00095620 ; qsort+9Cw ... .bss:00095624 envlock % 0x18 ; DATA XREF: __add_to_environ+54o .bss:00095624 ; __add_to_environ+F4o ... .bss:0009563C known_values % 4 ; DATA XREF: __add_to_environ+150o .bss:0009563C ; __add_to_environ+270o ... .bss:00095640 last_environ % 4 ; DATA XREF: __add_to_environ:loc_1B8A4o .bss:00095640 ; __add_to_environ+D4r ... .bss:00095644 printf_funcs % 0x400 ; DATA XREF: register_printf_function+20o .bss:00095644 ; .text:off_233F0o .bss:00095A44 internal % 8 ; DATA XREF: mbrlen+1Co .bss:00095A44 ; .text:off_32F78o .bss:00095A4C state_0 % 8 ; DATA XREF: mbrtowc+3Co .bss:00095A4C ; mbrtowc:off_330DCo .bss:00095A54 state_1 % 8 ; DATA XREF: wcrtomb+44o .bss:00095A54 ; wcrtomb:off_332BCo .bss:00095A5C state_2 % 8 ; DATA XREF: mbsrtowcs+28o .bss:00095A5C ; mbsrtowcs:off_33534o .bss:00095A64 state_3 % 8 ; DATA XREF: wcsrtombs+28o .bss:00095A64 ; wcsrtombs:off_337D0o .bss:00095A6C state_4 % 8 ; DATA XREF: mbsnrtowcs+28o .bss:00095A6C ; mbsnrtowcs:off_33A3Co .bss:00095A74 lock_2 % 0x18 ; DATA XREF: __wcsmbs_load_conv+20o .bss:00095A74 ; __wcsmbs_load_conv:off_33DECo ... .bss:00095A8C no_syscall_getcwd % 4 ; DATA XREF: getcwd+10o .bss:00095A8C ; getcwd+18r ... .bss:00095A90 have_new_dcache % 4 ; DATA XREF: getcwd+28o .bss:00095A90 ; getcwd+2Cr ... .bss:00095A94 mount_proc % 4 ; DATA XREF: get_proc_path+D0o .bss:00095A94 ; get_proc_path:loc_35D80r ... .bss:00095A98 lock_3 % 0x18 ; DATA XREF: __gconv_find_transform+5Co .bss:00095A98 ; __gconv_find_transform+138o ... .bss:00095AB0 known_derivations % 4 ; DATA XREF: derivation_lookup+30o .bss:00095AB0 ; derivation_lookup:off_36BA0o ... .bss:00095AB4 once % 4 ; DATA XREF: __gconv_lookup_alias+1Co .bss:00095AB4 ; __gconv_lookup_alias:loc_376A4o ... .bss:00095AB8 modcounter.168 % 4 ; DATA XREF: read_conf_file+338o .bss:00095AB8 ; read_conf_file+33Cr ... .bss:00095ABC lock.172 % 0x18 ; DATA XREF: __gconv_get_path+1Co .bss:00095ABC ; __gconv_get_path:off_384ACo ... .bss:00095AD4 empty_path_elem % 8 ; DATA XREF: __gconv_get_path:loc_3859Co .bss:00095AD4 ; __gconv_get_path:off_385E0o ... .bss:00095ADC search_tree % 4 ; DATA XREF: __gconv_translit_find:loc_3EA6Co .bss:00095ADC ; __gconv_translit_find+1C8o ... .bss:00095AE0 lock_4 % 0x18 ; DATA XREF: __gconv_translit_find+44o .bss:00095AE0 ; __gconv_translit_find+1ECo ... .bss:00095AF8 loaded % 4 ; DATA XREF: __gconv_find_shlib+14o .bss:00095AF8 ; __gconv_find_shlib:off_3ED80o ... .bss:00095AFC release_handle % 4 ; DATA XREF: do_release_shlib+2Co .bss:00095AFC ; do_release_shlib+30r ... .bss:00095B00 locale_file_list % 0x34 ; DATA XREF: _nl_find_locale+1D0o .bss:00095B00 ; _nl_find_locale:off_3FC28o ... .bss:00095B34 era_initialized % 4 ; DATA XREF: _nl_postload_time+8o .bss:00095B34 ; _nl_postload_time+10w ... .bss:00095B38 eras % 4 ; DATA XREF: _nl_init_era_entries+48o .bss:00095B38 ; _nl_init_era_entries+4Cr ... .bss:00095B3C num_eras % 4 ; DATA XREF: _nl_init_era_entries:loc_404D0o .bss:00095B3C ; _nl_init_era_entries+64r ... .bss:00095B40 alt_digits_initialized % 4 ; DATA XREF: _nl_postload_time+14o .bss:00095B40 ; _nl_postload_time+18w ... .bss:00095B44 alt_digits % 4 ; DATA XREF: _nl_get_alt_digit+2Co .bss:00095B44 ; _nl_get_alt_digit+48r ... .bss:00095B48 walt_digits_initialized % 4 ; DATA XREF: _nl_postload_time+1Co .bss:00095B48 ; _nl_postload_time+24w ... .bss:00095B4C walt_digits % 4 ; DATA XREF: _nl_get_walt_digit+2Co .bss:00095B4C ; _nl_get_walt_digit+48r ... .bss:00095B50 is_initialized.126 % 4 ; DATA XREF: tzset_internal+Co .bss:00095B50 ; tzset_internal+14r ... .bss:00095B54 tzset_lock % 0x18 ; DATA XREF: __tzname_max+18o .bss:00095B54 ; __tzname_max+38o ... .bss:00095B6C tz_rules % 4 ; DATA XREF: tzset_internal:loc_4BE54o .bss:00095B6C ; tzset_internal+A4w ... .bss:00095B70 % 0x14 .bss:00095B84 dword_95B84 % 4 ; DATA XREF: __tz_convert+F4o .bss:00095B88 % 4 .bss:00095B8C dword_95B8C % 4 ; DATA XREF: tzset_internal+B4o .bss:00095B8C ; tzset+4Co .bss:00095B90 % 0x14 .bss:00095BA4 dword_95BA4 % 4 ; DATA XREF: __tz_convert+104o .bss:00095BA8 % 4 .bss:00095BAC old_tz % 4 ; DATA XREF: tzset_internal:loc_4BE30o .bss:00095BAC ; tzset_internal+7Cr ... .bss:00095BB0 num_transitions % 4 ; DATA XREF: __tzfile_read+174o .bss:00095BB0 ; __tzfile_read+1A0w ... .bss:00095BB4 transitions % 4 ; DATA XREF: __tzfile_read+14o .bss:00095BB4 ; __tzfile_read+1Cr ... .bss:00095BB8 type_idxs % 4 ; DATA XREF: __tzfile_read+28Co .bss:00095BB8 ; __tzfile_read+294w ... .bss:00095BBC num_types % 4 ; DATA XREF: __tzfile_read+1D8o .bss:00095BBC ; __tzfile_read+1ECw ... .bss:00095BC0 types % 4 ; DATA XREF: __tzfile_read+298o .bss:00095BC0 ; __tzfile_read+2A0w ... .bss:00095BC4 zone_names % 4 ; DATA XREF: __tzfile_read+2A8o .bss:00095BC4 ; __tzfile_read+2B0w ... .bss:00095BC8 rule_stdoff % 4 ; DATA XREF: __tzfile_read+738o .bss:00095BC8 ; __tzfile_read:off_4D908o ... .bss:00095BCC rule_dstoff % 4 ; DATA XREF: __tzfile_read+73Co .bss:00095BCC ; __tzfile_read:off_4D90Co ... .bss:00095BD0 num_leaps % 4 ; DATA XREF: __tzfile_read+1DCo .bss:00095BD0 ; __tzfile_read+220w ... .bss:00095BD4 leaps % 4 ; DATA XREF: __tzfile_read+2B8o .bss:00095BD4 ; __tzfile_read+2C4w ... .bss:00095BD8 o_directory_works % 4 ; DATA XREF: tryopen_o_directory+2Co .bss:00095BD8 ; tryopen_o_directory+44o ... .bss:00095BDC data % 4 ; DATA XREF: _dl_start_profile+4F4o .bss:00095BDC ; _dl_start_profile+4FCw ... .bss:00095BE0 narcs % 4 ; DATA XREF: _dl_start_profile+60Co .bss:00095BE0 ; _dl_start_profile+614w ... .bss:00095BE4 narcsp % 4 ; DATA XREF: _dl_start_profile+4C4o .bss:00095BE4 ; _dl_start_profile+4D0w ... .bss:00095BE8 kcount % 4 ; DATA XREF: _dl_start_profile+4B0o .bss:00095BE8 ; _dl_start_profile+4B8w ... .bss:00095BEC kcountsize % 4 ; DATA XREF: _dl_start_profile+100o .bss:00095BEC ; _dl_start_profile+104w ... .bss:00095BF0 tos % 4 ; DATA XREF: _dl_start_profile+5A0o .bss:00095BF0 ; _dl_start_profile+5A8w ... .bss:00095BF4 froms % 4 ; DATA XREF: _dl_start_profile+5D8o .bss:00095BF4 ; _dl_start_profile+5E0w ... .bss:00095BF8 fromlimit % 4 ; DATA XREF: _dl_start_profile+128o .bss:00095BF8 ; _dl_start_profile+130w ... .bss:00095BFC fromidx % 4 ; DATA XREF: _dl_start_profile+5E4o .bss:00095BFC ; _dl_start_profile+5ECw ... .bss:00095C00 lowpc % 4 ; DATA XREF: _dl_start_profile+C0o .bss:00095C00 ; _dl_start_profile+DCw ... .bss:00095C04 textsize % 4 ; DATA XREF: _dl_start_profile+F0o .bss:00095C04 ; _dl_start_profile+F4w ... .bss:00095C08 hashfraction % 4 ; DATA XREF: _dl_start_profile+BCo .bss:00095C08 ; _dl_start_profile+CCw ... .bss:00095C0C log_hashfraction % 4 ; DATA XREF: _dl_start_profile+110o .bss:00095C0C ; _dl_start_profile+118w ... .bss:00095C10 localtime_offset % 4 ; DATA XREF: timelocal+18o .bss:00095C10 ; .text:off_50F90o .bss:00095C14 oact.18 % 0x8C ; DATA XREF: profil+58o .bss:00095C14 ; profil+98o ... .bss:00095CA0 otimer.19 % 0x10 ; DATA XREF: profil+3Co .bss:00095CA0 ; profil+80o ... .bss:00095CB0 samples % 4 ; DATA XREF: profil_counter+68o .bss:00095CB0 ; profil_counter+6Cr ... .bss:00095CB4 nsamples % 4 ; DATA XREF: profil_counter+54o .bss:00095CB4 ; profil_counter+58r ... .bss:00095CB8 pc_offset % 4 ; DATA XREF: profil_counter+20o .bss:00095CB8 ; profil_counter+24r ... .bss:00095CBC pc_scale % 4 ; DATA XREF: profil_counter+30o .bss:00095CBC ; profil_counter+38r ... .bss:00095CC0 fix_page.115 % 4 ; DATA XREF: fix_bad_pc24.111+1Co .bss:00095CC0 ; fix_bad_pc24.111+28r ... .bss:00095CC4 fix_offset.116 % 4 ; DATA XREF: fix_bad_pc24.111+30o .bss:00095CC4 ; fix_bad_pc24.111:off_521F4o ... .bss:00095CC8 pagesize.117 % 4 ; DATA XREF: fix_bad_pc24.111+20o .bss:00095CC8 ; fix_bad_pc24.111+3Cr ... .bss:00095CCC EXPORT __libc_tsd_MALLOC_data .bss:00095CCC __libc_tsd_MALLOC_data % 4 ; DATA XREF: ptmalloc_lock_all:loc_B1E0o .bss:00095CCC ; ptmalloc_lock_all+C0r ... .bss:00095CD0 EXPORT __have_no_fcntl64 .bss:00095CD0 __have_no_fcntl64 % 4 ; DATA XREF: fcntl+Co .bss:00095CD0 ; fcntl+14r ... .bss:00095CD4 EXPORT __libc_internal_tsd_set .bss:00095CD4 __libc_internal_tsd_set % 4 ; DATA XREF: ptmalloc_lock_all:loc_B1E8o .bss:00095CD4 ; ptmalloc_lock_all+CCr ... .bss:00095CD8 EXPORT __libc_internal_tsd_get .bss:00095CD8 __libc_internal_tsd_get % 4 ; DATA XREF: ptmalloc_lock_all+94o .bss:00095CD8 ; ptmalloc_lock_all+98r ... .bss:00095CDC EXPORT _dl_clktck .bss:00095CDC _dl_clktck % 4 ; DATA XREF: _dl_aux_init+1Co .bss:00095CDC ; _dl_aux_init+48w ... .bss:00095CE0 EXPORT _dl_init_all_dirs .bss:00095CE0 _dl_init_all_dirs % 4 ; DATA XREF: _dl_init_paths+580o .bss:00095CE0 ; _dl_init_paths+584w ... .bss:00095CE4 EXPORT _dl_initfirst .bss:00095CE4 _dl_initfirst % 4 ; DATA XREF: _dl_map_object_from_fd+C6Co .bss:00095CE4 ; _dl_map_object_from_fd+C70w ... .bss:00095CE8 EXPORT _dl_all_dirs .bss:00095CE8 _dl_all_dirs % 4 ; DATA XREF: decompose_rpath:loc_10998o .bss:00095CE8 ; decompose_rpath+1DCr ... .bss:00095CEC EXPORT _dl_osversion .bss:00095CEC _dl_osversion % 4 ; DATA XREF: open_verify+3C4o .bss:00095CEC ; open_verify+3C8r ... .bss:00095CF0 EXPORT _dl_pagesize .bss:00095CF0 _dl_pagesize % 4 ; DATA XREF: getpagesize+8o .bss:00095CF0 ; getpagesize+Cr ... .bss:00095CF4 EXPORT _dl_num_relocations .bss:00095CF4 _dl_num_relocations % 4 ; DATA XREF: _dl_lookup_symbol:loc_13830o .bss:00095CF4 ; _dl_lookup_symbol+F8r ... .bss:00095CF8 ALIGN 0x10 .bss:00095D00 EXPORT _dl_nloaded .bss:00095D00 _dl_nloaded % 4 ; DATA XREF: lose+54o .bss:00095D00 ; lose+58r ... .bss:00095D04 EXPORT __libc_stack_end .bss:00095D04 __libc_stack_end % 4 ; DATA XREF: __libc_start_main+64o .bss:00095D04 ; __libc_start_main+74w ... .bss:00095D08 ALIGN 0x10 .bss:00095D10 EXPORT _dl_initial_searchlist .bss:00095D10 _dl_initial_searchlist % 0x10 ; DATA XREF: free_mem_12+20o .bss:00095D10 ; free_mem_12+38r ... .bss:00095D20 EXPORT _dl_platformlen .bss:00095D20 _dl_platformlen % 4 ; DATA XREF: expand_dynamic_string_token:loc_106A4o .bss:00095D20 ; expand_dynamic_string_token+E8r ... .bss:00095D24 EXPORT _dl_debug_mask .bss:00095D24 _dl_debug_mask % 4 ; DATA XREF: _dl_map_object_from_fd+110o .bss:00095D24 ; _dl_map_object_from_fd+114r ... .bss:00095D28 EXPORT _dl_profile .bss:00095D28 _dl_profile % 4 ; DATA XREF: _dl_start_profile+1E0o .bss:00095D28 ; _dl_start_profile+1E8r ... .bss:00095D2C EXPORT _dl_bind_not .bss:00095D2C _dl_bind_not % 4 ; DATA XREF: non_dynamic_init+98o .bss:00095D2C ; non_dynamic_init+A4w ... .bss:00095D30 EXPORT _dl_platform .bss:00095D30 _dl_platform % 4 ; DATA XREF: _dl_dst_substitute:loc_104E0o .bss:00095D30 ; _dl_dst_substitute+140r ... .bss:00095D34 EXPORT _dl_lazy .bss:00095D34 _dl_lazy % 4 ; DATA XREF: non_dynamic_init+70o .bss:00095D34 ; non_dynamic_init+80w ... .bss:00095D38 EXPORT _dl_origin_path .bss:00095D38 _dl_origin_path % 4 ; DATA XREF: _dl_get_origin:loc_176B8o .bss:00095D38 ; _dl_get_origin+A4r ... .bss:00095D3C EXPORT _dl_verbose .bss:00095D3C _dl_verbose % 4 ; DATA XREF: non_dynamic_init+40o .bss:00095D3C ; non_dynamic_init+4Cw ... .bss:00095D40 EXPORT _dl_loaded .bss:00095D40 _dl_loaded % 4 ; DATA XREF: _dl_map_object_from_fd:loc_1120Co .bss:00095D40 ; _dl_map_object_from_fd+68r ... .bss:00095D44 EXPORT _dl_profile_map .bss:00095D44 _dl_profile_map % 4 ; DATA XREF: _dl_mcount_wrapper_check+8o .bss:00095D44 ; _dl_mcount_wrapper_check+10r ... .bss:00095D48 EXPORT _dl_inhibit_rpath .bss:00095D48 _dl_inhibit_rpath % 4 ; DATA XREF: decompose_rpath+Co .bss:00095D48 ; decompose_rpath+14r ... .bss:00095D4C EXPORT _dl_search_paths .bss:00095D4C _dl_search_paths % 4 .bss:00095D50 EXPORT __libc_argc .bss:00095D50 __libc_argc % 4 ; DATA XREF: init:loc_17790o .bss:00095D50 ; init+5Cw ... .bss:00095D54 EXPORT __libc_argv .bss:00095D54 __libc_argv % 4 ; DATA XREF: init+60o .bss:00095D54 ; init+64w ... .bss:00095D58 EXPORT __assert_program_name .bss:00095D58 __assert_program_name % 4 ; DATA XREF: __assert_fail+5Co .bss:00095D58 ; __assert_fail+68r ... .bss:00095D5C EXPORT _nl_domain_bindings .bss:00095D5C _nl_domain_bindings % 4 ; DATA XREF: __dcigettext+108o .bss:00095D5C ; __dcigettext+10Cr ... .bss:00095D60 EXPORT _nl_msg_cat_cntr .bss:00095D60 _nl_msg_cat_cntr % 4 ; DATA XREF: __dcigettext+C0o .bss:00095D60 ; __dcigettext+C8r ... .bss:00095D64 EXPORT __libc_missing_rt_sigs .bss:00095D64 __libc_missing_rt_sigs % 4 ; DATA XREF: sigaction+18o .bss:00095D64 ; sigaction+20r ... .bss:00095D68 ALIGN 0x10 .bss:00095D70 EXPORT __printf_arginfo_table .bss:00095D70 __printf_arginfo_table % 0x400 ; DATA XREF: vfprintf+23FCo .bss:00095D70 ; vfprintf:off_1F294o ... .bss:00096170 EXPORT __printf_function_table .bss:00096170 __printf_function_table % 4 ; DATA XREF: vfprintf+23E0o .bss:00096170 ; vfprintf+23E4r ... .bss:00096174 EXPORT __getopt_nonoption_flags .bss:00096174 __getopt_nonoption_flags % 4 ; DATA XREF: __getopt_clean_environment+90o .bss:00096174 ; __getopt_clean_environment+BCw ... .bss:00096178 EXPORT __have_no_stat64 .bss:00096178 __have_no_stat64 % 4 ; DATA XREF: __fxstat64+10o .bss:00096178 ; __fxstat64+18r ... .bss:0009617C EXPORT __gconv_modules_db .bss:0009617C __gconv_modules_db % 4 ; DATA XREF: find_derivation:loc_37214o .bss:0009617C ; find_derivation+16Cr ... .bss:00096180 EXPORT __gconv_alias_db .bss:00096180 __gconv_alias_db % 4 ; DATA XREF: do_lookup_alias+14o .bss:00096180 ; do_lookup_alias:off_37668o ... .bss:00096184 EXPORT __gconv_max_path_elem_len .bss:00096184 __gconv_max_path_elem_len % 4 ; DATA XREF: __gconv_get_path+154o .bss:00096184 ; __gconv_get_path+15Cw ... .bss:00096188 EXPORT __gconv_path_elem .bss:00096188 __gconv_path_elem % 4 ; DATA XREF: __gconv_get_path:loc_382A4o .bss:00096188 ; __gconv_get_path+2Cr ... .bss:0009618C ALIGN 0x10 .bss:00096190 EXPORT __libc_setlocale_lock .bss:00096190 __libc_setlocale_lock % 0x18 ; DATA XREF: setlocale+210o .bss:00096190 ; setlocale:off_3F2ECo ... .bss:000961A8 EXPORT tzstring_list .bss:000961A8 tzstring_list % 4 ; DATA XREF: __tzstring+14o .bss:000961A8 ; __tzstring+1Cr ... .bss:000961AC EXPORT __tzname_cur_max .bss:000961AC __tzname_cur_max % 4 ; DATA XREF: __tzname_max:loc_4C7E4o .bss:000961AC ; __tzname_max+48r ... .bss:000961B0 EXPORT __use_tzfile .bss:000961B0 __use_tzfile % 4 ; DATA XREF: tzset_internal+F0o .bss:000961B0 ; tzset_internal+F4r ... .bss:000961B4 EXPORT __have_no_getdents64 .bss:000961B4 __have_no_getdents64 % 4 ; DATA XREF: __getdents+14o .bss:000961B4 ; __getdents+1Cr ... .bss:000961B8 EXPORT __have_no_new_getrlimit .bss:000961B8 __have_no_new_getrlimit % 4 ; DATA XREF: getrlimit+Co .bss:000961B8 ; getrlimit+14r ... .bss:000961BC ALIGN 0x10 .bss:000961C0 EXPORT _tmbuf .bss:000961C0 _tmbuf % 0x2C ; DATA XREF: __tz_convert:loc_4CD9Co .bss:000961C0 ; __tz_convert:off_4CED0o ... .bss:000961EC EXPORT _dl_global_scope_alloc .bss:000961EC _dl_global_scope_alloc % 4 ; DATA XREF: add_to_global+10o .bss:000961EC ; .text:off_51370o ... .bss:000961F0 EXPORT _r_debug .bss:000961F0 _r_debug % 0x14 ; DATA XREF: _dl_close+3B0o .bss:000961F0 ; _dl_close:loc_51E9Co ... .bss:000961F0 ; .bss ends .bss:000961F0 abs:00096204 ; =========================================================================== abs:00096204 abs:00096204 ; Segment type: Absolute symbols abs:00096204 _bss_end__ = 0x96204 abs:00096208 __stop___libc_subfreeres = 0x63154 abs:0009620C __bss_start__ = 0x6C260 abs:00096210 __start___libc_subfreeres = 0x63118 abs:00096214 __start___libc_atexit = 0x63108 abs:00096218 __stop___libc_subinit = 0x63118 abs:0009621C __bss_end__ = 0x96204 abs:00096220 __stop___libc_atexit = 0x6310C abs:00096224 __bss_start = 0x6C260 abs:00096228 __end__ = 0x96204 abs:0009622C __start___libc_subinit = 0x6310C abs:00096230 _edata = 0x6C260 abs:00096234 _end = 0x96204 abs:00096238 _ABS_ = 0 abs:0009623C abs:00096240 abs:00096244 abs:00096248 abs:0009624C abs:00096250 abs:00096254 abs:00096258 abs:0009625C abs:00096260 abs:00096264 abs:00096268 abs:0009626C abs:00096270 abs:00096274 abs:00096278 abs:0009627C abs:00096280 abs:00096284 abs:00096288 abs:0009628C abs:00096290 abs:00096294 abs:00096298 abs:0009629C abs:000962A0 abs:000962A4 abs:000962A8 abs:000962AC abs:000962B0 abs:000962B4 abs:000962B8 abs:000962BC abs:000962C0 abs:000962C4 abs:000962C8 abs:000962CC extern:00097E20 ; =========================================================================== extern:00097E20 extern:00097E20 ; Segment type: Externs extern:00097E20 IMPORT __pthread_rwlock_trywrlock, WEAK extern:00097E24 IMPORT __pthread_mutexattr_destroy, WEAK extern:00097E28 IMPORT __pthread_once, WEAK extern:00097E2C IMPORT __pthread_mutex_lock, WEAK extern:00097E30 IMPORT __pthread_mutexattr_settype, WEAK extern:00097E34 IMPORT _dl_sysdep_start, WEAK extern:00097E38 IMPORT __pthread_rwlock_init, WEAK extern:00097E3C IMPORT __pthread_key_create, WEAK extern:00097E40 IMPORT __pthread_rwlock_wrlock, WEAK extern:00097E44 IMPORT __pthread_atfork, WEAK extern:00097E48 IMPORT _dl_rtld_map, WEAK extern:00097E4C IMPORT __pthread_mutex_init, WEAK extern:00097E50 IMPORT __pthread_rwlock_tryrdlock, WEAK extern:00097E54 IMPORT __pthread_rwlock_rdlock, WEAK extern:00097E58 IMPORT _pthread_cleanup_pop_restore, WEAK extern:00097E5C IMPORT __pthread_rwlock_unlock, WEAK extern:00097E60 IMPORT __pthread_kill_other_threads_np, WEAK extern:00097E64 IMPORT __pthread_initialize, WEAK extern:00097E68 IMPORT __pthread_mutex_unlock, WEAK extern:00097E6C IMPORT __pthread_getspecific, WEAK extern:00097E70 IMPORT __pthread_mutex_trylock, WEAK extern:00097E74 IMPORT __deregister_frame_info, WEAK extern:00097E78 IMPORT __pthread_initialize_minimal, WEAK extern:00097E7C IMPORT __pthread_mutex_destroy, WEAK extern:00097E80 IMPORT __pthread_mutexattr_init, WEAK extern:00097E84 IMPORT _pthread_cleanup_push_defer, WEAK extern:00097E88 IMPORT __pthread_rwlock_destroy, WEAK extern:00097E8C IMPORT __pthread_setspecific, WEAK extern:00097E90 IMPORT _dl_hwcap, WEAK extern:00097E94 IMPORT __register_frame_info, WEAK extern:00097E98 IMPORT __gmon_start__, WEAK extern:00097E98 extern:00097E98 END _start